Transformasi Data Spasial ke format GeoJSON dan TopoJSON untuk Klimatologi Urban dan Analisis Urban Heat Island: Mendukung Kebijakan Adaptasi Perubahan Iklim
Perubahan iklim telah menjadi tantangan global yang memerlukan respons adaptif berbasis bukti ilmiah. Di konteks perurbanan pesat di negara-negara tropis seperti Indonesia, fenomena Urban Heat Island (UHI) atau pulau panas urban memperparah dampak pemanasan global pada tingkat lokal. Transformasi Data Spasial ke format GeoJSON dan TopoJSON memainkan peran kritis sebagai enabler teknis untuk mengintegrasikan data suhu permukaan tanah (LST), tutupan lahan, indeks vegetasi, dan parameter mikroklimat lainnya ke dalam platform analisis spasial yang interoperabel dan skalabel.
Mengapa Format GeoJSON dan TopoJSON Vital untuk Analisis UHI?
Analisis Urban Heat Island melibatkan pengolahan data raster multitemporal (misalnya Landsat 8/9 TIRS, MODIS LST, Sentinel-3 SLSTR) yang kemudian dikonversi menjadi vektor untuk analisis spasial lanjutan: zonal statistics per kelurahan, korelasi spasial dengan NDVI/NDBI, hingga pemodelan regresi geografis tertimbang (GWR). Format GeoJSON menawarkan kemudahan pertukaran data antar platform GIS (QGIS, ArcGIS, Google Earth Engine, Python geopandas, R sf) dan visualisasi web mapping (Leaflet, Mapbox GL JS, Deck.gl). Sementara TopoJSON mengurangi ukuran file hingga 80% melalui encoding topologi shared-arcs, krusial untuk pengiriman data UHI resolusi tinggi ke dashboard pemantauan real-time di bandwidth terbatas.
Keunggulan Teknis dalam Konteks Klimatologi Urban
- Interoperabilitas standar OGC: GeoJSON mendukung CRS:84 (WGS84 longitude-latitude) sebagai default, memastikan konsistensi proyeksi saat mengintegrasikan data satelit, AWS (Automatic Weather Station), dan crowdsourcing suhu mobile.
- Efisiensi topologi TopoJSON: Untuk analisis kontiguitas termal (misalnya Queen/Rook contiguity matrix untuk Local Moran’s I), TopoJSON menyimpan informasi adjacency secara implisit, mempercepat perhitungan spatial weights matrix.
- Time-series ready: Struktur FeatureCollection memungkinkan penyimpanan properti temporal (tanggal akuisisi, jam overpass, kondisi cuaca) sebagai properti feature, mendukung animasi dinamika UHI harian/musiman.
Arsitektur Pipeline Transformasi Data UHI End-to-End
Berikut arsitektur referensi untuk transformasi data spasial ke format GeoJSON dan TopoJSON dalam konteks analisis Urban Heat Island skala kota:
1. Ingesti Data Multisumber
- Satelit optikal/termal: Landsat Collection 2 Level-2 ST (Surface Temperature), Sentinel-3 LST, MODIS MYD11A1.
- Data vektor administratif: Batas kelurahan/kecamatan dari BIG (Badan Informasi Geospasial) atau OpenStreetMap.
- Data in-situ: Suhu udara dari BMKG AWS, sensor IoT komunitas (misalnya Weather Underground, Netatmo), travers mobil dengan sensor termal.
- Data auxiliari: DEM (DEMNAS/ALOS PALSAR), tutupan lahan (ESA WorldCover, FROM-GLC), indeks vegetasi (NDVI, EVI), indeks bangunan (NDBI, UI).
2. Preprocessing dan Harmonisasi
# Contoh pseudocode Google Earth Engine untuk harmonisasi LST Landsat 8/9
function harmonizeLST(image) {
var lst = image.select('ST_B10').multiply(0.00341802).add(149.0).subtract(273.15); // Kelvin ke Celsius
var qa = image.select('QA_PIXEL');
var cloudMask = qa.bitwiseAnd(1 << 3).eq(0).and(qa.bitwiseAnd(1 << 4).eq(0));
return lst.updateMask(cloudMask)
.set('system:time_start', image.get('system:time_start'))
.set('satellite', image.get('SPACECRAFT_ID'));
}
var collection = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
.filterBounds(aoi)
.filterDate('2023-01-01', '2023-12-31')
.map(harmonizeLST);
3. Ekstraksi Fitur Spasial dan Zonal Statistics
Lakukan reduksi raster ke vektor per unit administrasi atau grid reguler (misalnya 100m x 100m) untuk menghasilkan fitur-fitur berikut:
- Mean LST, stdDev LST, min/max LST per zona
- Persentase tutupan impervious, vegetasi, air, tanah terbuka
- Mean NDVI, NDBI, albedo permukaan
- Elevasi rata-rata, kemiringan, aspek
- Jarak ke pusat kota, jalan utama, badan air, green space
4. Konversi ke GeoJSON dengan Validasi Skema
import geopandas as gpd
import json
from jsonschema import validate
# Load zonal stats result
gdf = gpd.read_file('uhi_zonal_stats.gpkg')
# Ensure WGS84
gdf = gdf.to_crs('EPSG:4326')
# Add metadata properties
gdf['metadata'] = gdf.apply(lambda row: {
'processing_date': '2024-01-15',
'source': 'Landsat 8/9 Collection 2 ST',
'resolution_m': 30,
'crs': 'EPSG:4326',
'version': '1.0'
}, axis=1)
# GeoJSON Schema validation (simplified)
schema = {
"type": "FeatureCollection",
"properties": {
"type": "object",
"required": ["name", "description", "crs", "bbox"]
}
}
geojson_data = json.loads(gdf.to_json())
geojson_data['properties'] = {
'name': 'UHI_Zonal_Stats_Kota_Bandung_2023',
'description': 'Urban Heat Island zonal statistics per kelurahan Bandung 2023',
'crs': {'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:OGC:1.3:CRS84'}},
'bbox': gdf.total_bounds.tolist()
}
with open('uhi_zonal_stats.geojson', 'w') as f:
json.dump(geojson_data, f, separators=(',', ':'))
5. Optimasi TopoJSON untuk Distribusi Web
# CLI topojson (Node.js)
topojson
-o uhi_zonal_stats.topojson
--id-property KELURAHAN
--properties name=KELURAHAN,mean_lst=MEAN_LST,ndvi=MEAN_NDVI,impervious=PCT_IMPERVIOUS
--quantization 1e5
--simplification 0.5
uhi_zonal_stats.geojson
Parameter --quantization 1e5 (presisi ~0.1 meter di ekuator) dan --simplification 0.5 (Visvalingam-Whyatt) menyeimbangkan ukuran file dan fidelitas visual untuk dashboard UHI interaktif.
Studi Kasus: Analisis UHI dan Kebijakan Adaptasi di Kota Semarang
Kota Semarang, dengan topografi dataran rendah di utara dan perbukitan di selatan, mengalami intensifikasi UHI signifikan. Tim riset BPPT/BRIN mengimplementasikan pipeline transformasi data spasial ke format GeoJSON dan TopoJSON untuk mendukung Climate Adaptation Action Plan (RAPI) kota.
Metodologi Khusus Tropis
- Koreksi atmosfer tropis: Menggunakan algoritma Split-Window Algorithm (SWA) dengan koefisien lokal yang dikalibrasi menggunakan data radiosonde BMKG Stasiun Maritim Semarang.
- Masking awan adaptif: Kombinasi Fmask 4.0 + threshold NDVI < 0.2 untuk mendeteksi awan tipis yang sering terlewat di wilayah tropis lembab.
- Normalisasi musiman: LST dinormalisasi terhadap percentil 95 musiman (DJF/MAM/JJA/SON) untuk mengisolasi anomali UHI dari variasi musiman.
Hasil Kunci dan Insight Kebijakan
| Indikator | Nilai | Implikasi Kebijakan |
|---|---|---|
| Intensitas UHI malam (ΔTurban-rural) | 3.2 – 5.8°C | Prioritas cool roof dan green corridor di kecamatan Semarang Utara & Tengah |
| Korelasi LST-NDVI (Spearman ρ) | -0.72 (p<0.001) | Target penambahan 15% tutupan hijau di area impervious > 70% |
| Hotspot persistensi (frekuensi > 75% waktu) | 12 kelurahan (4.200 ha) | Penentuan Heat Vulnerability Zone untuk alokasi dana adaptasi |
| Ukuran file TopoJSON (kelurahan n=177) | 47 KB (vs 380 KB GeoJSON) | Memuat <2 detik di 3G untuk dashboard partisipatif warga |
Data TopoJSON diintegrasikan ke dashboard WebGIS partisipatif di mana warga dapat melaporkan keluhan panas berlebih, validasi ground-truth, dan mengusulkan lokasi penanaman pohon. Format ringan memungkinkan akses via smartphone entry-level tanpa WiFi.
Praktik Terbaik Transformasi Data Spasial untuk Klimatologi Urban
1. Metadata dan Provenance yang Lengkap
Setiap FeatureCollection GeoJSON/TopoJSON harus menyertakan blok properties root dengan:
processing_level: L2A, L3, L4 (derivative product)temporal_coverage: {start, end, frequency}spatial_resolution_m: resolusi nominaluncertainty_estimate: RMSE validasi in-situ (°C)algorithm_version: versi SWA, Fmask, harmonisasidoi: Digital Object Identifier untuk reproducibility
2. Penanganan Geometri Kompleks
Batas administrasi di Indonesia sering memiliki geometri multipolygon dengan lubang (enklav) dan sliver gaps. Sebelum konversi TopoJSON:
# Membersihkan geometri dengan GEOS/Shapely
gdf['geometry'] = gdf.geometry.buffer(0) # fix invalid
gdf = gdf.explode(index_parts=True).reset_index(drop=True) # multipolygon -> polygon
gdf = gdf.dissolve(by='KELURAHAN').reset_index() # gabung kembali per kelurahan
gdf['geometry'] = gdf.geometry.simplify(0.00001, preserve_topology=True) # ~1m
3. Versioning dan Change Detection
Gunakan git-lfs atau DVC untuk versioning file GeoJSON/TopoJSON besar. Implementasikan semantic versioning (MAJOR.MINOR.PATCH) pada nama file: uhi_v1.2.0_2023_Q4.topojson. Perubahan MINOR = update data temporal; PATCH = perbaikan geometri/metadata; MAJOR = perubahan skema properti atau metodologi.
Tantangan Khusus dan Solusi di Konteks Indonesia
Awan Tebal Persisten dan Data Gaps
Wilayah tropis mengalami tutupan awan > 70% tahunan. Solusi:
- Data fusion: Gabungkan Landsat (30m, 16 hari) + Sentinel-3 (1km, harian) + ERA5-Land reanalysis (0.1°, hourly) menggunakan STARFM/ESTARFM untuk menghasilkan LST harian 30m gap-free.
- Synthetic Aperture Radar (SAR): Sentinel-1 VV/VH untuk deteksi impervious surface tidak terpengaruh awan, melengkapi NDBI optikal.
Skala Multi-Resolusi
Analisis UHI memerlukan skala mikro (blok bangunan, 10m), meso (kelurahan, 100m), dan makro (kota, 1km). Strategi:
- Hasilkan GeoJSON multi-resolusi:
uhi_block.geojson,uhi_kelurahan.geojson,uhi_kota.geojson. - Gunakan TopoJSON
--quantizationdiferensial: 1e6 untuk blok, 1e5 untuk kelurahan, 1e4 untuk kota. - Implementasikan vector tiles (MBTiles/PMTiles) dari TopoJSON untuk rendering web multi-zoom efisien.
Kapakitas Komputasi Terbatas di Daerah
Banyak pemerintah kota tidak memiliki HPC. Rekomendasi:
- Gunakan Google Earth Engine untuk preprocessing berat (cloud masking, harmonisasi, zonal stats) – gratis untuk penelitian/pemerintah.
- Ekspor hasil zonal stats sebagai CSV/GeoJSON kecil (< 5 MB) untuk analisis lanjutan di laptop standar (Python/R).
- Manfaatkan SEPAL (System for Earth Observation Data Access, Processing and Analysis for Land Monitoring) FAO untuk capacity building.
Integrasi dengan Kerangka Kebijakan Nasional
Transformasi Data Spasial ke format GeoJSON dan TopoJSON untuk analisis UHI mendukung langsung:
- RAN-API (Rencana Aksi Nasional Adaptasi Perubahan Iklim): Data UHI spatial explicit sebagai bukti basis penetapan priority adaptation actions di sektor perkotaan.
- KLHS (Kajian Lingkungan Hidup Strategis) RTRW: Layer UHI sebagai constraint spasial dalam penentuan Kawasan Lindung dan Kawasan Budidaya.
- Program Kota Sehat/Iklim: Indikator “Suhu Permukaan Rata-rata Kawasan Perkotaan” terukur objektif via pipeline GeoJSON terstandarisasi.
- One Map Policy: GeoJSON/TopoJSON UHI terintegrasi ke Geoportal BIG melalui standar WFS/WMS/OAPIF.
Masa Depan: AI/ML-Enhanced Spatial Transformation
Ekspansi pipeline transformasi data spasial ke format GeoJSON dan TopoJSON ke arah AI-ready:
- Foundation models untuk LST downscaling: Fine-tuning SatMAE/Prithvi pada data LST Indonesia untuk super-resolution 10m dari Sentinel-3 1km.
- Graph Neural Networks (GNN) pada topologi TopoJSON: Shared-arc topology sebagai graph structure untuk prediksi UHI spatio-temporal (GNN-LSTM).
- AutoML untuk feature engineering: Otomatisasi seleksi fitur spasial (NDVI, NDBI, SVF, morphometry) yang paling prediktif per kota.
- Federated learning across cities: Model UHI terlatih terdistribusi di server kota-kota tanpa pertukaran data mentah, hanya update model – output akhirnya GeoJSON feature importance per kelurahan.
FAQ: Transformasi Data Spasial untuk Analisis Urban Heat Island
1. Kapan sebaiknya menggunakan GeoJSON vs TopoJSON untuk data UHI?
GeoJSON untuk: pertukaran data antar tim analisis (Python/R/QGIS), penyimpanan arsip canonical, validasi skema, editing manual. TopoJSON untuk: pengiriman ke web client (dashboard, storymap), vector tiles generation, mobile app offline-first, bandwidth-constrained environments.
2. Bagaimana menangani data LST dengan resolusi berbeda (30m Landsat vs 1km MODIS) dalam satu GeoJSON?
Gunakan properti resolution_m per feature atau buat FeatureCollection terpisah per resolusi. Untuk analisis terintegrasi, lakukan downscaling/upscaling terlebih dahulu ke resolusi target umum (misalnya 100m grid) sebelum zonal statistics.
3. Apakah TopoJSON mendukung properti time-series per fitur?
Ya. Simpan array time-series di properti feature: "lst_timeseries": [["2023-01-15", 32.1], ["2023-02-14", 31.8], ...]. Untuk efisiensi, pertimbangkan encoding delta atau kompresi terpisah (misalnya Apache Arrow/Parquet untuk time-series, TopoJSON untuk geometri).
4. Bagaimana memvalidasi kualitas GeoJSON UHI sebelum publikasi?
Checklist: (1) Validasi skema JSON Schema, (2) CRS = EPSG:4326, (3) Geometri valid (ST_IsValid), (4) Tidak ada duplikat ID, (5) Properti numerik dalam rentang fisik wajar (LST: -10 hingga 60°C), (6) Metadata provenance lengkap, (7) Ukuran file < 50 MB untuk web, (8) Visualisasi spot-check di QGIS/kepler.gl.
5. Apa tools open-source terbaik untuk pipeline transformasi UHI end-to-end?
Cloud processing: Google Earth Engine, openEO, Microsoft Planetary Computer. Desktop/Server: GDAL/OGR, PDAL, WhiteboxTools, SAGA GIS. Python: geopandas, rasterio, xarray, rioxarray, dask-geopandas, topojson.py. Web: Tippecanoe (vector tiles), PMTiles, MapLibre GL JS, Deck.gl. Orchestration: Apache Airflow, Prefect, Dagster.
Kesimpulan
Transformasi Data Spasial ke format GeoJSON dan TopoJSON bukan sekadar konversi format teknis, melainkan infrastruktur data fundamental yang memungkinkan bukti ilmiah Urban Heat Island diterjemahkan menjadi kebijakan adaptasi perubahan iklim yang actionable, partisipatif, dan accountable. Dengan mengadopsi pipeline terstandarisasi, metadata kaya, dan optimasi TopoJSON untuk distribusi web, pemangku kepentingan – dari perencana kota, klimatolog, hingga warga biasa – dapat berkolaborasi pada platform data yang sama untuk membangun kota-kota tropis yang lebih sejuk, adil, dan tangguh iklim.
Investasi pada kapasitas transformasi data spasial di tingkat pemerintah daerah, universitas, dan komunitas sipil akan mengembalikan nilai manifes dalam bentuk kebijakan berbasis bukti, alokasi dana adaptasi yang tepat sasaran, dan partisipasi masyarakat yang bermakna dalam mengelola risiko panas urban di era perubahan iklim.
Artikel ini merupakan bagian dari seri Praktik Terbaik Transformasi Data Spasial. Untuk implementasi teknis detail, rujuk pada dokumentasi GeoJSON Specification RFC 7946 dan TopoJSON v3 Reference.