Skrip ini berfungsi sebagai layanan latar belakang (daemon) yang secara otomatis memproses data sensor tomografi.
Perbaikan AI-written code pada function gcc dan onetap.
- Memonitor: Terus-menerus memonitor folder
data_mentahuntuk file JSON baru. - Mengelompokkan: Mencari satu set data yang terdiri dari 8 file JSON (
_1.jsonhingga_8.json) yang berasal dari perangkat yang sama dan dibuat dalam rentang waktu 15 menit. - Memproses: Jika satu set data yang valid ditemukan, skrip akan menjalankan algoritma Generalized Cross-Correlation (GCC-PHAT) untuk menghitung matriks kecepatan 8x8.
- Menyimpan: Menyimpan file hasil pemrosesan (misalnya,
result_guid_timestamp.json) di folder lokalhasil_proses_lokal. - Mengunggah: Mengunggah file hasil yang sama ke server FTP.
- Memberi Notifikasi: Mengirimkan nama file hasil ke antrian (queue) RabbitMQ sebagai notifikasi bahwa pemrosesan telah selesai.
- Membersihkan: Menghapus 8 file JSON sumber dari folder
data_mentahsetelah berhasil diproses.
Pastikan Anda membuat struktur folder berikut di direktori yang sama dengan skrip:
.
├── index.py # Skrip utama ini
├── .env # File konfigurasi (dibuat manual)
├── requirements.txt # File dependensi
├── data_mentah/ # Tempat menaruh file JSON sumber
├── hasil_proses_lokal/ # Hasil pemrosesan akan disimpan di sini
└── temp_data/ # Digunakan sementara oleh skrip
-
Kloning Repositori (Opsional) Jika kode ini berada dalam repositori git, kloning terlebih dahulu.
-
Buat Virtual Environment (Sangat Direkomendasikan)
python -m venv venv source venv/bin/activate # Di Windows: ./venv/Scripts/activate
-
Instal Dependensi Jalankan perintah berikut untuk menginstal semua pustaka Python yang diperlukan.
pip install -r requirements.txt
-
Buat File Konfigurasi
.envBuat file baru bernama.envdi direktori yang sama denganmain.py. Salin konten dari file.env.exampleke dalamnya dan isi dengan kredensial Anda yang sebenarnya.# Konten untuk file .env FTP_HOST="" FTP_PORT=2121 FTP_USER="" FTP_PASSWORD="" FTP_FOLDER_HASIL="/result" RABBITMQ_HOST="r" RABBITMQ_PORT=5672 RABBITMQ_USERNAME="" RABBITMQ_PASSWORD="" RABBITMQ_VHOST="/terawang" RABBITMQ_QUEUE="result_queue"
Untuk memulai layanan, cukup jalankan skrip utama dari terminal:
python index.pySkrip akan mulai berjalan dan mencetak log aktivitasnya ke konsol. Untuk menghentikannya, tekan Ctrl+C.