Skip to content

pptik/terawang-worker-visualization

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Layanan Pemrosesan Tomografi

Layanan ini adalah worker berbasis Python yang secara otomatis memproses data tomografi. Ia mendengarkan pesan dari antrian RabbitMQ, mengambil file data dari server FTP, melakukan pemrosesan untuk menghasilkan gambar visualisasi, mengunggah hasilnya ke S3 dan server FTP tujuan, dan terakhir memperbarui catatan di MongoDB.

Alur Kerja

  1. Mendengarkan Pesan: Layanan terus mendengarkan pesan baru di antrian RabbitMQ yang telah ditentukan. Setiap pesan berisi nama file JSON yang perlu diproses.
  2. Mengunduh Data: Setelah menerima pesan, layanan akan terhubung ke server FTP sumber untuk mengunduh file JSON yang sesuai.
  3. Pemrosesan Data: Data dari file JSON diproses menggunakan NumPy dan SciPy untuk merekonstruksi gambar tomografi berdasarkan data sensor.
  4. Menghasilkan Visualisasi: Gambar visualisasi dari data yang telah diproses dibuat menggunakan Matplotlib.
  5. Mengunggah Hasil: Gambar yang dihasilkan diunggah ke dua lokasi:
    • Amazon S3: Untuk penyimpanan objek yang skalabel dan akses melalui URL.
    • Server FTP Tujuan: Untuk integrasi dengan sistem lain atau untuk keperluan arsip.
  6. Memperbarui Database: URL gambar dari S3 dan metadata lainnya disimpan ke dalam dokumen yang relevan di koleksi MongoDB, menggunakan guidSurvey yang berasal dari nama file sebagai kunci.

Prasyarat

  • Python 3.8+
  • Server RabbitMQ
  • Dua server FTP (satu untuk sumber data, satu untuk hasil)
  • Bucket Amazon S3 (atau layanan kompatibel seperti MinIO)
  • Server MongoDB

Instalasi

  1. Clone Repositori

    git clone <url-repositori-anda>
    cd <nama-direktori-repositori>
  2. Instal Dependensi

    Buat dan aktifkan virtual environment (dianjurkan), lalu instal semua paket yang diperlukan dari file requirements.txt.

    python -m venv venv
    source venv/bin/activate  # Di Windows, gunakan `venv\Scripts\activate`
    pip install -r requirements.txt
  3. Konfigurasi Lingkungan

    Buat file .env di direktori root proyek. Anda dapat menyalin dari env.example jika ada. Isi semua variabel yang diperlukan.

    # RabbitMQ
    RABBITMQ_HOST=localhost
    RABBITMQ_PORT=5672
    RABBITMQ_VHOST=/
    RABBITMQ_USERNAME=user
    RABBITMQ_PASSWORD=password
    RABBITMQ_QUEUE=tomograph_queue
    
    # FTP Sumber (untuk mengambil file JSON)
    FTP_HOST=ftp.sumber.com
    FTP_PORT=21
    FTP_USER=user_sumber
    FTP_PASS=pass_sumber
    FTP_FOLDER=/path/to/json/files
    
    # FTP Tujuan (untuk mengunggah hasil gambar)
    FTP_HOST_HASIL=ftp.tujuan.com
    FTP_PORT_HASIL=2121
    FTP_USER_HASIL=user_tujuan
    FTP_PASS_HASIL=pass_tujuan
    FTP_FOLDER_HASIL=/result_visualisasi
    
    # S3
    S3_ENDPOINT_URL=[https://s3.amazonaws.com](https://s3.amazonaws.com)
    S3_ACCESS_KEY=your_access_key
    S3_SECRET_KEY=your_secret_key
    S3_BUCKET=nama-bucket-anda
    
    # MongoDB
    MONGO_URI=mongodb://user:pass@host:port/
    MONGO_DB=nama_database_anda

Menjalankan Layanan

Untuk memulai worker, jalankan skrip utama dari terminal:

python tomograph_processor.py

Layanan akan mulai mengonsumsi pesan dari RabbitMQ dan memproses data sesuai alur kerja. Untuk menghentikan layanan, tekan CTRL+C.

About

Final Terawang Worker Visualization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages