Modul analisis CoVARM atau Coastal Vulnerability Assessment and Reduction Module dikembangkan untuk memfasilitasi pengukuran kualitatif terhadap kerentanan pesisir dalam bentuk indeks relatif yang komprehensif.
Tujuan modul ini adalah untuk menghitung kerentanan komposit (multidimensi) yang tidak hanya mencakup risiko fisik/paparan terhadap bencana, tetapi juga faktor risiko sosial dan kapasitas adaptif komunitas masyarakat pesisir. Dengan mengagregasi indeks secara berjenjang, modul ini dapat menghasilkan penilaian holistik mengenai kerentanan, risiko, dan paparan suatu wilayah.
Metode
Konsep
Analisis dalam CoVARM mengadopsi metode yang telah dikembangkan oleh Tao WU (2021) menggunakan analisis statistik multivariat untuk mengukur kerentanan pesisir komposit (multidimensi) dalam bentuk indeks relatif kualitatif. Metode ini mengintegrasikan indikator-indikator dari tiga komponen utama, meliputi:
Keterpaparan (exposure): mengacu pada tingkat di mana suatu area pesisir dimungkinkan akan terdampak oleh bahaya/ancaman eksternal baik secara biofisik maupun iklim yang diperparah oleh peningkatan perubahan iklim, misalnya keterpaparan oleh kenaikan muka air laut atau peristiwa banjir 100 tahun.
Sensitivitas: mengacu pada sejumlah faktor internal yang mengakibatkan kerentanan pada populasi yang terdampak baik positif maupun negatif oleh variasi perubahan iklim dan biofisik, misalnya kepadatan populasi.
Kapasitas adaptasi: mengacu pada kemampuan internal untuk mempersiapkan, mengatasi, dan memulihkan diri terhadap dampak dari paparan yang ditimbulkan dari perubahan iklim, misalnya indeks membangun desa.
Secara khusus, CoVARM menggunakan analisis komponen utama (PCA) untuk mereduksi dimensi penelitian dari sejumlah besar indikator, sekaligus menghasilkan bobot objektif untuk setiap indikator yang berkontribusi terhadap kerentanan pesisir. Indikator yang telah dikelompokkan oleh PCA ini kemudian diagregasi secara berjenjang untuk menghasilkan indeks komposit, yang memungkinkan perbandingan kerentanan antar-wilayah pesisir dan identifikasi dimensi yang paling signifikan menyumbang pada kerentanan tersebut.
Cakupan area pesisir
Gambaran area transisi pesisir
Analisis ini berfokus pada area pesisir yang didefinisikan secara spesifik sebagai zona litoral, yang mencakup pantai (pesisir), zona dekat pantai (nearshore), dan habitat seperti mangrove, karang, serta lamun, namun tidak meliputi area offshore.
Pendekatan agregasi
xxx
Data
Kerentanan pesisir dikembangkan dari integrasi 3 komponen yang terdiri dari paparan (kerentanan fisik), sensitivitas, dan kapasitas adaptasi. Komponen-komponen tersebut dijabarkan ke dalam indikator-indikator biofisik, tutupan dan penggunaan lahan, sosial dan demografi, ekonomi, serta kerawanan bencana. Terdapat 13 indikator yang dikumpulkan dari berbagai sumber dengan rincian sebagai berikut.
Daftar indikator dalam analisis kerentanan pesisir Sulawesi Tengah
Indikator
Komponen
Deskripsi
Sumber
Persentase populasi lanjut usia (%)
Kapasitas adaptasi
Persentase populasi penduduk dengan umur lebih dari 60 tahun (UU No. 13 Tahun 1998 tentang Kesejahteraan Lanjut Usia) terhadap total penduduk
www.worldpop.org
Indeks desa membangun (tanpa unit)
Kapasitas adaptasi
Kategori pembangunan desa (sangat tertinggal, tertinggal, berkembang, maju, mandiri)
Kepadatan populasi (jiwa/ha)
Sensitivitas
Total populasi penduduk (semua kelas umur dan jenis kelamin) yang tinggal dalam satu hektare lahan
www.worldpop.org
Persentase lahan terbangun (%)
Sensitivitas
Persentase luas lahan terbangun (permukiman dan lahan terbangun lainnya) dalam setiap grid
ICRAF
Persentase lahan terbuka (%)
Sensitivitas
Persentase luas lahan terbuka/terlantar dalam setiap grid
ICRAF
Persentase hutan di area pesisir (%)
Sensitivitas
Persentase luas penutupan hutan mangrove dan hutan pantai dalam setiap grid
ICRAF
Area banjir 100 tahun (meter)
Paparan
Potensi kedalaman genangan pada kejadian banjir setiap 100 tahun
Baugh dkk (2024)
Paparan gelombang (kW/m)
Paparan
Potensi paparan energi yang dihasilkan gelombang
Paparan angin (tanpa unit)
Paparan
Potensi paparan kecepatan angin
Kenaikan muka air laut (mm/tahun)
Paparan
Total laju peningkatan muka air laut
Rerata elevasi (mdpl)
Paparan
Rata-rata elevasi topografi dalam setiap grid
USGS
Persentase habitat laut (%)
Paparan
Persentase luas habitat coral dan rumput laut dalam setiap grid
Jarak ke sungai (meter)
Paparan
Jarak suatu titik ke sungai terdekat
BIG
Implementasi
1. Membaca data
# 1a. Read the lookup table listing indicator names and raster file pathsindicator_lookup <- readr::read_csv("data/indicator_lookup.csv")
Rows: 9 Columns: 3
── Column specification ────────────────────────────────────────────────────────
Delimiter: ","
chr (3): variable_name, unit, path_to_raster_file
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
# 1b. Read each raster referenced in the lookup table# Store them in a tibble keyed by 'variable_name' for downstream processingindicator_rasters <- indicator_lookup %>%mutate(raster = purrr::map(path_to_raster_file, terra::rast) ) %>% dplyr::select(variable_name, raster)
2. Menentukan batas area transisi
Wilayah transisi sudah dibaca pada langkah 1b. Wilayah ini didefinisikan sebagai zona litoral sepanjang pesisir dan akan menjadi acuan pembuatan grid sampling.
# batas transisi dari WH# I assume transition area is 4 km buffer landwards from the coastline# Read the transition zone shapefile and reproject to a projected CRS (EPSG:32751)trans_area <-st_read("data/Transition_Zone_Sulteng/ST_trzone_clip.shp") %>% sf::st_transform("EPSG:32751")
Reading layer `ST_trzone_clip' from data source
`C:\Users\DIndiarto\OneDrive - CIFOR-ICRAF\Research Group 2 - LUMENS\Exploratory\Coastal Exposure Index\CoVARM\data\Transition_Zone_Sulteng\ST_trzone_clip.shp'
using driver `ESRI Shapefile'
Simple feature collection with 1 feature and 60 fields
Geometry type: MULTIPOLYGON
Dimension: XY
Bounding box: xmin: 13269060 ymin: -233433.2 xmax: 13511890 ymax: 83069.01
Projected CRS: WGS 84 / World Mercator
3. Membuat grid di dalam area transisi
Membangun grid persegi 1000×1000 m di dalam trans_area menggunakan fungsi generate_grid_by_size() yang telah Anda definisikan pada R/functions.R. Grid ini akan menjadi unit analisis untuk mengekstrak nilai indikator.
# menghasilkan grids 1000x1000 m~ 100 Ha di dalam zona transisi (landwards)sampling_grids <- trans_area %>%generate_grid_by_size(cellsize_m =500) %>%select(-area, )# plot(sampling_grids)
4. Mensinkronisasikan geometri
Sebelum mengekstrak nilai raster, semua raster perlu diselaraskan (harmonised) ke grid referensi. Kami membuat raster template dari grid sampling untuk memastikan semua raster memiliki proyeksi, resolusi, dan jangkauan (extent) yang sama. Setiap raster kemudian diproyeksikan dan di‑resample untuk cocok dengan template ini.
# 4a. Create a template raster from the sampling grids with 1000 m resolutiontemplate_raster <- terra::rast(sampling_grids, resolution =1000)# 4b. Rasterise the sampling grids to an ID raster (optional but useful for checks)rasterised_grids <- terra::rasterize(vect(sampling_grids), template_raster,field ="ID",touches =TRUE)# 4c. Project and resample each indicator raster to match the templateresampled_rasters <- indicator_rasters %>% dplyr::mutate(# reproject to match CRS of templateraster_proj = purrr::map( raster,~ terra::project(.x, terra::crs(template_raster)) ),# resample to match resolution and extent; use 'near' by defaultraster_resampled = purrr::map( raster_proj,~ terra::resample(.x, template_raster, method ="near") ) )
5. Mereklasifikasikan peta menjadi peta kategorikal
Langkah ini dapat diisi jika Anda memiliki peta yang memerlukan re‑klasifikasi ke dalam kelas‑kelas tertentu (misalnya kategori kedalaman banjir).
# Contoh re-klasifikasi kedalaman banjir ke dalam tiga kelas# r_depth_class <- classify(depth_raster, cbind(breaks, classes))# Untuk saat ini, kita akan melewati langkah reklasifikasi umum# dan langsung ke analisis sensitivitas yang menggunakan pendekatan kuantilcat("Melewati reklasifikasi umum - akan menggunakan pendekatan kuantil dalam analisis sensitivitas\n")
Melewati reklasifikasi umum - akan menggunakan pendekatan kuantil dalam analisis sensitivitas
# Simpan resampled_rasters untuk digunakan nanti jika diperlukanreclassified_rasters <- resampled_rasters
6. Ekstrak nilai tiap indikator di masing-masing grid
Setelah semua raster diselaraskan, kita dapat menghitung nilai rata‑rata setiap indikator di dalam setiap grid. Nilai‑nilai tersebut kemudian digabungkan kembali ke objek sampling_grids sebagai kolom baru.
# 6a. Extract mean values from each resampled raster over the sampling gridsextracted_df <- reclassified_rasters %>% dplyr::mutate(values = purrr::map( raster_resampled,~ {# extract mean for each grid; return vector without ID terra::extract( .x, sampling_grids,fun ="mean",na.rm =TRUE,ID =FALSE ) } ) ) %>%# convert list of vectors into a data frame with indicator names as columns { purrr::set_names(.$values, .$variable_name) } %>% dplyr::bind_cols()# 6b. Combine extracted values with the sampling grid geometrysampling_grids_with_data <- sampling_grids %>% dplyr::bind_cols(extracted_df)
7. Analisis Sensitivitas Terestrial
Catatan Penting: Implementasi ini hanya mencakup komponen sensitivitas dari kerangka kerja CoVARM. Kami masih dalam tahap pengembangan untuk komponen kapasitas adaptasi dan paparan (exposure). Selain itu, integrasi data CMS (Coral, Mangrove, Seagrass) untuk aspek seascape-landscape interaction belum diimplementasikan. Indeks kerentanan komposit yang menggabungkan ketiga komponen akan dikembangkan setelah semua komponen individual selesai.
Pada tahap ini, kita akan mengimplementasikan analisis sensitivitas menggunakan metodologi klasifikasi berbasis ambang batas (threshold-based classification) untuk menghitung indeks sensitivitas terestrial. Analisis ini fokus pada empat variabel sensitivitas utama: kepadatan populasi, lahan terbangun, lahan terbuka, dan vegetasi pesisir.
7.1 Persiapan Data Sensitivitas
# Load required libraries for sensitivity analysislibrary(units)# Get sensitivity variablessensitivity_vars <-get_sensitivity_variables()cat("Variabel sensitivitas:", paste(sensitivity_vars, collapse =", "), "\n")
Variabel sensitivitas: population_density_persons_per_ha, built_area_percent, open_area_percent, coastal_vegetation_percent