01. Tantangan & Kebutuhan Utama
Operasi logistik dan hauling tambang menghasilkan data telemetri dalam jumlah masif. Setiap unit mencatat Latitude, Longitude, Kecepatan, dan Odometer setiap beberapa detik, menghasilkan ribuan baris data yang tersebar di puluhan file Excel (XLS) setiap harinya.
Memproses data ini secara manual untuk mengetahui seberapa cepat truk melaju di segmen jalan tertentu (berdasarkan patok Kilometer / KM) sangatlah mustahil. Data mentah memiliki banyak anomali (misalnya: kecepatan terbaca 0 padahal sedang bergerak), membutuhkan konteks spasial (mencocokkan titik GPS dengan fisik patok KM jalan), dan memerlukan *clustering* waktu yang rumit untuk menghitung durasi akurat saat truk melanggar batas kecepatan aman (misal >40 km/jam) tanpa menghitung waktu istirahat (idle).
02. Peran & Implementasi Sistem
Saya merancang dan membangun keseluruhan pipeline pemrosesan data menggunakan Python, Pandas, dan GeoPandas, yang dikemas rapi dalam sebuah Jupyter Notebook sehingga dapat dijalankan secara terjadwal:
- Konversi Format Otomatis: Membuat skrip yang menggunakan LibreOffice mode headless untuk secara otomatis mengkonversi file
.xlsusang menjadi format.xlsxmodern sebelum diolah, mencegah kerusakan file dan memastikan kompatibilitas dengan library pembaca Excel. - Geospatial Joining (GeoPandas): Memetakan setiap titik koordinat GPS ke patok rute kilometer (KM) tertentu menggunakan
gpd.sjoin()dengan fungsi `intersects` terhadap shapefile *bounding box* yang telah ditentukan. - Klasifikasi Arah Jalan (Direction): Mengimplementasikan logika untuk melacak perubahan nilai KM terhadap waktu (
dKM) untuk secara otomatis menandai apakah unit sedang bergerak maju (Return / kosong) atau mundur (Hauling / bermuatan) di sepanjang rute. - Analitik Kecepatan Berbasis Clustering Waktu: Mengembangkan algoritma kustom seperti
mean_valid_speed()(untuk mengabaikan pembacaan anomali) danduration_over40_clustered(), yang menghitung secara pasti berapa menit yang dihabiskan di atas batas kecepatan, sekaligus menangani data jeda atau truk berhenti.
03. Pipa Data Interaktif (Pipeline Explorer)
Berikut adalah demonstrasi interaktif tentang bagaimana log telemetri mentah digabungkan secara spasial dan diagregasi menjadi tabel analitik yang bersih:
01. Data Mentah Koordinat & Kecepatan
Setiap unit truk (TRK-015, TRK-030, dll) mengirimkan data lokasi (Latitude/Longitude), kecepatan, dan odometer setiap beberapa detik. Data ini digabungkan dari puluhan file XLS harian:
| # | Date | Unit | Latitude | Longitude | Speed (km/h) | Kecepatan (km/jam) | Odometer |
|---|---|---|---|---|---|---|---|
| 1 | 2025-12-28 08:14:38 | TRK-015_XX1234YY | -2.78471 | 121.202570 | 0 | 30635.225 | |
| 2 | 2025-12-28 08:14:26 | TRK-015_XX1234YY | -2.78458 | 121.202680 | 28 | 30635.340 | |
| 3 | 2025-12-28 08:14:22 | TRK-015_XX1234YY | -2.78451 | 121.202810 | 42 | 30635.500 | |
| 4 | 2025-12-16 07:49:05 | B-015_DD8966UF | -2.832530 | 121.202950 | 35 | 30635.750 |
02. Spatial Join & Penentuan Arah (Direction)
Menggunakan GeoPandas, titik koordinat (Latitude/Longitude) di-map ke bounding box KM yang telah ditentukan. Perubahan nilai KM antar waktu digunakan untuk menentukan apakah truk sedang jalan kosong (Return) atau bermuatan (Hauling):
03. Agregasi Metrik Kecepatan & Output Akhir
Setelah pengelompokan, data dihitung untuk mendapatkan rata-rata kecepatan yang valid (mengabaikan speed 0 atau speed tidak masuk akal), dan menggunakan algoritma clustering durasi waktu untuk menghitung persis berapa lama truk melaju di atas 40 km/jam:
| Daily Average Speed per Segment - Dec 27 | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Driver | Unit | KM Route Segments | AVG Speed | AVG Payload (t) | ||||||||||||||||||||||
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ||||
| John Smith | TRK-053 | - | - | 25 | 39 | 32 | 27 | 24 | 21 | 26 | 34 | 29 | 31 | 39 | 38 | 31 | 35 | 33 | 30 | 39 | 39 | 43 | 41 | 27 | 32.58 | 26.71 |
| Unknown | TRK-020 | 15 | 23 | 21 | 31 | 37 | 27 | 26 | 38 | 39 | 33 | 32 | 26 | 38 | 37 | 35 | 33 | 32 | 30 | 34 | - | 48 | 45 | 26 | 32.13 | 0.00 |
| David Miller | TRK-009 | 23 | 40 | 27 | 39 | 30 | 25 | 23 | 21 | 33 | 41 | 32 | 27 | 37 | 35 | 30 | 35 | 29 | 28 | 39 | 36 | 38 | 39 | 22 | 31.70 | 24.60 |
| Robert Chen | TRK-008 | - | - | 20 | 35 | 33 | 22 | 22 | 22 | 29 | 30 | 31 | 27 | 36 | 37 | 32 | 33 | 29 | 31 | 41 | 36 | 41 | 43 | 28 | 31.35 | 24.95 |
| Michael Chang | TRK-011 | 32 | 36 | 23 | 35 | 32 | 26 | 22 | 22 | 28 | 35 | 31 | 28 | 36 | 35 | 29 | 33 | 31 | 31 | 36 | 32 | 36 | 34 | 26 | 30.82 | 26.32 |
| James Wilson | TRK-010 | 26 | 41 | 23 | 35 | 31 | 20 | 19 | 33 | 33 | 34 | 31 | 26 | 34 | 33 | 29 | 30 | 28 | 27 | 40 | 35 | 34 | 34 | 31 | 30.72 | 25.46 |
| William Davis | TRK-054 | - | - | 25 | 38 | 30 | 25 | 23 | 19 | 23 | 34 | 27 | 32 | 35 | 38 | 30 | 34 | 31 | 31 | 33 | 33 | 38 | 31 | 27 | 30.29 | 24.68 |
| Thomas Brown | TRK-003 | 28 | 43 | 30 | 37 | 32 | 22 | 21 | 21 | 27 | 38 | 27 | 26 | 31 | 32 | 25 | 31 | 31 | 30 | 33 | 35 | 36 | 31 | 26 | 30.12 | 25.03 |
| Daniel Taylor | TRK-038 | 11 | 34 | 24 | 36 | 32 | 25 | 23 | 21 | 25 | 33 | 30 | 28 | 35 | 35 | 28 | 33 | 27 | 27 | 38 | 37 | 38 | 36 | 25 | 29.49 | 25.70 |
| Joseph Anderson | TRK-050 | 15 | 32 | 24 | 39 | 32 | 24 | 22 | 22 | 27 | 35 | 28 | 29 | 42 | 39 | 27 | 33 | 27 | 29 | 27 | 30 | 35 | 35 | 26 | 29.48 | 26.61 |
| Route Average Speed | 21 | 33 | 23 | 33 | 30 | 23 | 21 | 23 | 26 | 31 | 27 | 26 | 32 | 33 | 28 | 30 | 27 | 27 | 31 | 31 | 35 | 31 | 25 | 28.14 | 26.03 | |
04. Hasil & Dampak (Outcomes)
Pipeline otomatis ini sepenuhnya menghilangkan kebutuhan untuk manipulasi Excel secara manual. Pekerjaan yang sebelumnya membutuhkan waktu berjam-jam untuk melakukan VLOOKUP manual dan perapian format kini dapat diselesaikan dalam hitungan detik.
Manajemen kini menerima laporan ringkasan harian Excel yang bersih, yang menunjukkan secara akurat unit mana yang melanggar batas kecepatan, di patok kilometer mana, dan untuk berapa lama. Tingkat kedalaman analisis secara spasial dan temporal ini sangat penting untuk menegakkan protokol keselamatan (safety) dan mengoptimalkan siklus hauling.