CarbonMind adalah sebuah proyek Proof-of-Concept (PoC) yang bertujuan untuk membangun model simulasi lalu lintas di area Jakarta Pusat menggunakan SUMO (Simulation of Urban MObility). Proyek ini secara dinamis menghasilkan jaringan jalan dari data OpenStreetMap (OSM) dan membuat agen (kendaraan) sintetis dengan pola perjalanan harian untuk mensimulasikan skenario lalu lintas yang realistis.
Tujuan utamanya adalah untuk menciptakan fondasi yang dapat digunakan untuk analisis dampak lingkungan, seperti jejak karbon, dari mobilitas perkotaan.
- Fitur Utama
- Demo Visualisasi
- Teknologi yang Digunakan
- Prasyarat
- Instalasi
- Cara Menjalankan
- Struktur Proyek
- Pembuatan Jaringan Dinamis: Mengunduh data jalan terbaru dari OpenStreetMap (OSM) untuk area Jakarta Pusat dan mengonversinya menjadi format jaringan SUMO (
.net.xml) menggunakanOSMnxdannetconvert. - Generasi Agen Sintetis: Membuat 200 agen (kendaraan pribadi) dengan sekuens perjalanan harian yang logis (misalnya, dari rumah ke kantor dan kembali), berdasarkan data Points of Interest (POI) nyata.
- Pembuatan Rute Otomatis: Menghasilkan file perjalanan (
.trips.xml) dan rute (.rou.xml) yang kompatibel dengan SUMO menggunakanduarouter. - Siap untuk Simulasi: Menghasilkan semua file yang diperlukan, termasuk file konfigurasi SUMO (
.sumocfg), untuk langsung menjalankan simulasi.
Berikut adalah diagram alur kerja sistem CarbonMind dari data mentah hingga siap simulasi:
Berikut adalah tautan ke video demo yang menunjukkan hasil visualisasi dari simulasi lalu lintas yang dihasilkan oleh proyek ini.
(Catatan: Anda mungkin perlu mengunduh repository untuk melihat video ini.)
- SUMO: Platform simulasi lalu lintas open-source.
- Python 3: Bahasa pemrograman utama.
- Jupyter Notebook: Untuk alur kerja generasi data dan rute yang interaktif.
- OSMnx: Untuk mengunduh dan memodelkan data jaringan jalan dari OpenStreetMap.
- Pandas & GeoPandas: Untuk manipulasi dan analisis data tabular dan geospasial.
- NetworkX: Untuk analisis graf jaringan.
Sebelum memulai, pastikan sistem Anda telah terinstal:
- Python 3.8+
- SUMO: Pastikan direktori
sumo/bintelah ditambahkan kePATHenvironment variable sistem Anda. Ini diperlukan agar skrip Python dapat memanggilnetconvertdanduarouter. Anda dapat mengunduhnya dari halaman unduhan SUMO.
-
Clone repository ini:
git clone <URL_REPOSITORY_ANDA> cd <NAMA_DIREKTORI>
-
Buat dan aktifkan virtual environment (direkomendasikan):
python -m venv venv source venv/bin/activate # Pada Windows, gunakan: venv\Scripts\activate
-
Install semua dependensi Python: Buat file
requirements.txtdengan konten berikut:// filepath: requirements.txt pandas osmnx networkx numpy geopandas tqdm jupyterKemudian jalankan perintah instalasi:
pip install -r requirements.txt
Proses utama untuk menghasilkan data dan rute simulasi dijalankan melalui Jupyter Notebook.
-
Jalankan Jupyter Notebook:
jupyter notebook
-
Buka dan Jalankan Notebook: Dari antarmuka web Jupyter, buka file
Generate routes.ipynb. Jalankan semua sel dari atas ke bawah.Notebook ini akan melakukan langkah-langkah berikut secara otomatis:
- Langkah 1: Mengunduh data OSM dan membuat file jaringan
network.net.xml. - Langkah 2 & 3: Membuat data agen sintetis berdasarkan POI.
- Langkah 4: Mengonversi data agen menjadi file
agent.trips.xml. - Langkah 5: Menjalankan
duarouteruntuk menghasilkan file rute finalagent_routes.rou.xml.
- Langkah 1: Mengunduh data OSM dan membuat file jaringan
-
Jalankan Simulasi di SUMO: Setelah notebook selesai dijalankan, Anda dapat membuka file
jakarta_simulation.sumocfgmenggunakansumo-guiuntuk melihat visualisasi simulasi.sumo-gui -c jakarta_simulation.sumocfg
.
├── Generate routes.ipynb # Notebook utama untuk menghasilkan jaringan dan rute
├── jakarta_simulation.sumocfg # File konfigurasi utama untuk simulasi SUMO
├── network.net.xml # File jaringan jalan (dihasilkan oleh notebook)
├── agent_routes.rou.xml # File rute agen (dihasilkan oleh notebook)
├── random.trips.xml # Contoh file trips (opsional)
└── demo/
└── Visualization Demo.mp4 # Video
