Analisis Tutupan dan Penggunaan Lahan (TUPLAH) dengan R dan MapBiomas Indonesia
MapBiomas Indonesia Koleksi 3 · Reproyeksi UTM Zone 50N · Visualisasi Seri Waktu
1 Pendahuluan
Dokumen ini menyajikan prosedur teknis analisis data Tutupan dan Penggunaan Lahan (TUPLAH) berbasis citra satelit secara multitemporal menggunakan bahasa pemrograman R. Data yang digunakan merupakan produk klasifikasi tutupan lahan dari platform MapBiomas Indonesia Koleksi 3, yang mencakup 14 kelas tutupan dan penggunaan lahan untuk seluruh wilayah Indonesia [@mapbiomas2024].
Analisis yang dilakukan meliputi empat tahapan utama:
- Pemuatan data raster multitahun ke dalam satu objek
SpatRastermultilayer. - Reproyeksi ke sistem koordinat metrik UTM Zone 50N (EPSG: 32650) untuk perhitungan luas yang akurat secara geometrik.
- Pembuatan peta seri waktu 1990–2024 dengan skema warna resmi MapBiomas.
- Kuantifikasi dan visualisasi perubahan luas setiap kelas tutupan lahan pada delapan titik waktu pengamatan.
Data input yang digunakan:
| Parameter | Nilai |
|---|---|
| File raster | MapBiomas_LULC_1990.tif — MapBiomas_LULC_2024.tif |
| Direktori | D:/MapBiomas/ |
| Format | GeoTIFF (.tif) |
| Sistem koordinat asal | WGS 84 / Geographic (EPSG: 4326) |
| Sistem koordinat target | WGS 84 / UTM Zone 50N (EPSG: 32650) |
| Resolusi spasial | 30 m × 30 m |
| Skema klasifikasi | MapBiomas Indonesia Koleksi 3 [@mapbiomas2024] |
2 Prasyarat dan Pemuatan Paket
Sebelum menjalankan skrip, pastikan keempat paket berikut telah terpasang pada lingkungan R (versi minimum ≥ 4.2). Instalasi cukup dilakukan satu kali per mesin.
Setiap sesi analisis dimulai dengan memanggil seluruh paket yang dibutuhkan:
Tabel berikut merangkum versi minimum dan peran masing-masing paket dalam alur kerja ini.
| Paket | Versi Min. | Fungsi dalam Analisis |
|---|---|---|
terra |
≥ 1.7 | rast(), project(), freq(), res(), values(), resample() |
ggplot2 |
≥ 3.4 | ggplot(), geom_raster(), geom_line(), facet_wrap(), ggsave() |
dplyr |
≥ 1.1 | mutate(), filter(), operator pipe %>% |
scales |
≥ 1.2 | label_comma() — format ribuan pada sumbu numerik |
3 Fungsi Kustom rasterdf()
Paket ggplot2 tidak dapat memproses objek SpatRaster secara langsung. Fungsi geom_raster() membutuhkan input berupa data.frame yang memuat kolom koordinat spasial x, y, nilai atribut, dan nama layer. Fungsi kustom rasterdf() mengotomatiskan proses konversi tersebut.
Fungsi ini menerima dua argumen:
x: objekSpatRasteryang akan dikonversi.aggregate: faktor pengurangan resolusi spasial sebelum konversi. Nilaiaggregate = 3berarti setiap 3 × 3 piksel direpresentasikan oleh satu piksel dalamdata.frame, yang penting untuk mencegah kelebihan memori pada raster berskala regional atau nasional.
rasterdf <- function(x, aggregate = 1) {
resampleFactor <- aggregate
inputRaster <- x
inCols <- ncol(inputRaster)
inRows <- nrow(inputRaster)
# Buat raster baru dengan resolusi setelah agregasi
resampledRaster <- rast(
ncol = (inCols / resampleFactor),
nrow = (inRows / resampleFactor),
crs = crs(inputRaster)
)
# Sesuaikan extent dengan raster asli
ext(resampledRaster) <- ext(inputRaster)
# Resample dengan nearest-neighbor — wajib untuk data kategorik
y <- resample(inputRaster, resampledRaster, method = "near")
# Ekstrak koordinat dan nilai piksel ke dalam data frame
coords <- xyFromCell(y, seq_len(ncell(y)))
dat <- stack(values(y, dataframe = TRUE))
names(dat) <- c("value", "variable")
dat <- cbind(coords, dat)
dat
}method = "near" pada Data Kategorik
Metode near (nearest-neighbor) wajib digunakan untuk data raster kategorik seperti TUPLAH. Metode interpolasi lain (bilinear, cubic) hanya sesuai untuk data kontinu karena akan menghasilkan nilai piksel berupa interpolasi antara dua kode kelas — misalnya nilai 4.3 di antara kelas Mangrove (pixel_id = 5) dan Formasi Hutan (pixel_id = 3) — yang tidak memiliki makna semantik dalam skema klasifikasi MapBiomas.
4 Legenda Klasifikasi MapBiomas Indonesia Koleksi 3
MapBiomas Indonesia Koleksi 3 menggunakan sistem klasifikasi dua tingkat yang mengacu pada kerangka FAO Land Cover Classification System [@DiGregorio2000]. Setiap kelas tutupan dan penggunaan lahan direpresentasikan oleh nilai piksel unik (pixel_id) pada data raster, serta memiliki kode warna heksadesimal resmi yang konsisten di seluruh produk peta MapBiomas [@mapbiomas2024].
mapbiomas_legend <- data.frame(
pixel_id = c(3, 5, 76, 13, 40, 35, 9, 21, 30, 24, 25, 31, 33, 27),
class_id = c(
"Formasi Hutan", "Mangrove",
"Hutan Rawa Gambut", "Tumbuhan Non-Hutan Lainnya",
"Sawah", "Sawit",
"Kebun Kayu", "Pertanian Lainnya",
"Lubang Tambang", "Permukiman",
"Non-Vegetasi Lainnya", "Tambak",
"Sungai/Danau/Laut", "Citra Tertutup Awan"
),
hex_color = c(
"#1f8d49", "#04381d", "#2f7360", "#d89f5c",
"#c71585", "#9065d0", "#7a5900", "#ffefc3",
"#9c0027", "#d4271e", "#db4d4f", "#091077",
"#2532e4", "#ffffff"
),
stringsAsFactors = FALSE
)
# Vektor bernama untuk scale_fill_manual() dan scale_color_manual()
mb_colors <- setNames(mapbiomas_legend$hex_color,
as.character(mapbiomas_legend$pixel_id))
mb_labels <- setNames(mapbiomas_legend$class_id,
as.character(mapbiomas_legend$pixel_id))Tabel berikut merangkum seluruh 14 kelas beserta kode warna resminya.
pixel_id |
Nama Kelas | Warna (Hex) |
|---|---|---|
| 3 | Formasi Hutan | #1f8d49 |
| 5 | Mangrove | #04381d |
| 76 | Hutan Rawa Gambut | #2f7360 |
| 13 | Tumbuhan Non-Hutan Lainnya | #d89f5c |
| 40 | Sawah | #c71585 |
| 35 | Sawit | #9065d0 |
| 9 | Kebun Kayu | #7a5900 |
| 21 | Pertanian Lainnya | #ffefc3 |
| 30 | Lubang Tambang | #9c0027 |
| 24 | Permukiman | #d4271e |
| 25 | Non-Vegetasi Lainnya | #db4d4f |
| 31 | Tambak | #091077 |
| 33 | Sungai/Danau/Laut | #2532e4 |
| 27 | Citra Tertutup Awan | #ffffff |
5 Pemuatan Data Raster TUPLAH
Delapan file GeoTIFF yang merepresentasikan tutupan dan penggunaan lahan pada titik waktu 1990, 1995, 2000, 2005, 2010, 2015, 2020, dan 2024 dimuat sekaligus ke dalam satu objek SpatRaster berlapis-ganda (multilayer) menggunakan satu pemanggilan fungsi rast().
# Definisikan path file raster — sesuaikan dengan direktori penyimpanan data
tuplah_files <- c(
"D:/MapBiomas/MapBiomas_LULC_1990.tif",
"D:/MapBiomas/MapBiomas_LULC_1995.tif",
"D:/MapBiomas/MapBiomas_LULC_2000.tif",
"D:/MapBiomas/MapBiomas_LULC_2005.tif",
"D:/MapBiomas/MapBiomas_LULC_2010.tif",
"D:/MapBiomas/MapBiomas_LULC_2015.tif",
"D:/MapBiomas/MapBiomas_LULC_2020.tif",
"D:/MapBiomas/MapBiomas_LULC_2024.tif"
)
tahun_list <- c("1990", "1995", "2000", "2005", "2010", "2015", "2020", "2024")
# Muat seluruh layer ke dalam satu objek SpatRaster multilayer
tuplah_stk <- rast(tuplah_files)
# Berikan label bermakna pada setiap layer
names(tuplah_stk) <- tahun_list
# Periksa ringkasan objek
print(tuplah_stk)names() pada Objek SpatRaster
Fungsi names() digunakan untuk memberikan label bermakna pada setiap layer. Label ini akan muncul sebagai judul panel pada grafik facet_wrap() dan sebagai identifikasi layer pada output freq(). Sebelum analisis, verifikasi CRS seluruh file dapat dilakukan dengan:
6 Reproyeksi ke UTM Zone 50N (EPSG: 32650)
Produk raster MapBiomas Indonesia umumnya disimpan dalam sistem koordinat geografis WGS 84 (EPSG: 4326) dengan satuan derajat. Sistem ini tidak cocok untuk perhitungan luas berbasis piksel karena panjang satu derajat bervariasi menurut garis lintang, sehingga menghasilkan estimasi luas yang tidak akurat secara geometrik.
Proyeksi UTM Zone 50N (EPSG: 32650) dipilih karena mencakup wilayah pada rentang bujur 114°E–120°E. Dalam sistem UTM, satuan koordinat adalah meter, sehingga luas piksel dapat dihitung secara langsung sebagai perkalian resolusi spasial dalam satuan meter persegi.
# Tampilkan CRS sebelum reproyeksi
cat("CRS asli:", crs(tuplah_stk, describe = TRUE)$name, "\n")
# Reproyeksi ke UTM Zone 50N
# method = "near" wajib digunakan untuk data raster kategorik
tuplah_stk <- project(
tuplah_stk,
y = "EPSG:32650",
method = "near"
)
# Kembalikan nama layer (fungsi project() mereset nama layer)
names(tuplah_stk) <- tahun_list
# Konfirmasi CRS dan metadata setelah reproyeksi
cat("CRS sesudah:", crs(tuplah_stk, describe = TRUE)$name, "\n")
print(tuplah_stk)Zona UTM yang digunakan harus sesuai dengan lokasi geografis wilayah studi. Penggunaan zona yang tidak sesuai menghasilkan distorsi geometrik dan kesalahan perhitungan luas.
| Zona UTM | EPSG | Cakupan Bujur | Wilayah Representatif |
|---|---|---|---|
| UTM Zone 47N | 32647 | 96°–102°E | Sumatera bagian barat |
| UTM Zone 48N | 32648 | 102°–108°E | Sumatera timur, Kalimantan barat |
| UTM Zone 49S | 32749 | 108°–114°E | Kalimantan tengah, Jawa |
| UTM Zone 50N | 32650 | 114°–120°E | Kalimantan timur |
| UTM Zone 53S | 32753 | 144°–150°E | Papua timur |
7 Verifikasi Nilai Piksel terhadap Legenda
Sebelum melanjutkan ke tahap visualisasi dan analisis, perlu dipastikan bahwa seluruh nilai piksel unik dalam raster memiliki padanan dalam tabel legenda mapbiomas_legend. Nilai yang tidak dikenali akan direpresentasikan sebagai NA pada peta dan grafik, yang berpotensi menyesatkan interpretasi hasil.
# Kumpulkan semua nilai unik dari seluruh layer
all_vals <- unique(na.omit(as.vector(values(tuplah_stk))))
cat("Nilai unik:", sort(all_vals), "\n")
# Identifikasi nilai yang tidak ada di legenda MapBiomas
unmatched <- setdiff(all_vals, mapbiomas_legend$pixel_id)
if (length(unmatched) > 0) {
warning("Nilai tidak dikenal: ", paste(unmatched, collapse = ", "))
} else {
cat("Semua nilai piksel bersesuaian dengan legenda MapBiomas.\n")
}Fungsi setdiff(A, B) mengembalikan elemen-elemen yang ada di vektor A tetapi tidak ada di vektor B. Jika hasilnya adalah integer(0) (vektor kosong), berarti seluruh nilai piksel telah dikenali. Nilai seperti 0 atau 255 umumnya merupakan indikasi piksel NoData yang perlu ditangani sebelum analisis dilanjutkan:
8 Konversi Raster ke Data Frame
Objek SpatRaster dikonversi ke data.frame menggunakan fungsi rasterdf() yang didefinisikan pada Bagian 3. Argumen aggregate = 3 berarti setiap 3 × 3 piksel direpresentasikan oleh satu piksel dalam data.frame. Pengurangan resolusi ini penting untuk mencegah penggunaan memori yang berlebihan pada raster dengan cakupan wilayah yang luas.
# Konversi ke data frame dengan pengurangan resolusi 3x
# Untuk cakupan wilayah kecil : aggregate = 1
# Untuk cakupan regional/nasional : aggregate = 3 atau lebih
tuplah_df <- rasterdf(tuplah_stk, aggregate = 3)
# Tetapkan urutan panel pada facet_wrap() melalui faktor berurutan
tuplah_df$variable <- factor(tuplah_df$variable, levels = tahun_list)
# Hapus piksel NA (area di luar batas atau tertutup awan)
tuplah_df <- tuplah_df[!is.na(tuplah_df$value), ]
cat("Dimensi data frame:", nrow(tuplah_df), "baris\n")data.frame hasil konversi tuplah_df memiliki struktur empat kolom sebagai berikut:
data.frame tuplah_df hasil konversi fungsi rasterdf()
| Kolom | Tipe Data | Deskripsi |
|---|---|---|
x |
numerik | Koordinat easting (meter, UTM 50N) |
y |
numerik | Koordinat northing (meter, UTM 50N) |
value |
numerik | Nilai piksel = pixel_id kelas MapBiomas |
variable |
faktor | Nama layer = tahun (1990, 1995, …, 2024) |
9 Pembuatan Peta Seri Waktu 1990–2024
Peta tutupan lahan multitemporal divisualisasikan menggunakan facet_wrap() yang membagi tampilan menjadi delapan panel — masing-masing mewakili satu titik waktu pengamatan. Fungsi geom_raster() merender piksel sebagai grid spasial kontinu, sedangkan scale_fill_manual() menetapkan warna resmi MapBiomas untuk setiap kelas.
# Ekstrak kelas yang benar-benar hadir dalam data
# (menghindari entri legenda kosong pada grafik)
kelas_ada <- as.character(sort(unique(tuplah_df$value)))
warna_plot <- mb_colors[kelas_ada]
label_plot <- mb_labels[kelas_ada]
warna_plot <- warna_plot[!is.na(warna_plot)]
label_plot <- label_plot[!is.na(label_plot)]
p_peta <- ggplot(data = tuplah_df) +
geom_raster(aes(x = x, y = y, fill = as.character(value))) +
scale_fill_manual(
name = "Tutupan/Penggunaan\nLahan",
values = warna_plot,
labels = label_plot,
na.translate = FALSE
) +
facet_wrap(facets = vars(variable), ncol = 3) +
coord_sf(expand = FALSE) +
labs(
title = "Tutupan dan Penggunaan Lahan (TUPLAH) 1990–2024",
subtitle = "Klasifikasi MapBiomas Indonesia Koleksi 3",
x = "Easting (m)",
y = "Northing (m)",
caption = "Sumber: MapBiomas Indonesia Koleksi 3 | ATBD Desember 2024"
) +
theme_bw(base_size = 11) +
theme(
strip.text.x = element_text(size = 11, face = "bold"),
legend.position = "right",
legend.key.size = unit(0.5, "cm"),
legend.text = element_text(size = 8),
plot.title = element_text(face = "bold", size = 13)
)
ggsave("TUPLAH_Peta_2019_2024.png",
plot = p_peta,
width = 16,
height = 10,
dpi = 300,
bg = "white")
p_petafill
Argumen fill = as.character(value) mengkonversi nilai piksel dari numerik ke karakter agar ggplot2 memperlakukannya sebagai variabel kategorik. Tanpa konversi ini, scale_fill_manual() tidak akan bekerja sebagaimana mestinya karena ggplot2 akan mengasumsikan data bersifat kontinu. Argumen na.translate = FALSE mencegah entri NA muncul sebagai kategori tersendiri dalam legenda.
10 Perhitungan Luas Kelas dengan freq()
Kuantifikasi luas per kelas tutupan lahan dilakukan menggunakan fungsi freq() dari paket terra, yang menghitung jumlah piksel untuk setiap nilai unik pada setiap layer dalam objek SpatRaster. Hasilnya adalah data.frame dengan kolom layer (nama tahun), value (kode kelas piksel), dan count (jumlah piksel).
# Hitung jumlah piksel per kelas per tahun pada raster UTM 50N
freq_raw <- freq(tuplah_stk, usenames = TRUE)
glimpse(freq_raw)
# Ambil resolusi piksel dalam meter (valid karena proyeksi UTM — satuan meter)
res_m <- res(tuplah_stk) # c(lebar_x, tinggi_y) dalam meter
luas_m2 <- res_m[1] * res_m[2] # Luas satu piksel dalam m²
cat("Resolusi piksel:", res_m[1], "m ×", res_m[2], "m\n")
cat("Luas satu piksel:", luas_m2, "m²\n")
# Konversi jumlah piksel ke hektar dan tambahkan label kelas
tuplah_chg <- freq_raw %>%
mutate(
luas_ha = count * luas_m2 / 10000, # 1 ha = 10.000 m²
luas_km2 = count * luas_m2 / 1e6, # 1 km² = 1.000.000 m²
kelas = factor(value,
levels = mapbiomas_legend$pixel_id,
labels = mapbiomas_legend$class_id),
tahun = as.numeric(layer)
) %>%
filter(!is.na(kelas)) # Hapus nilai di luar legenda MapBiomasFormula konversi luas yang digunakan adalah sebagai berikut:
\[ \text{luas\_ha} = n_{\text{piksel}} \times \frac{r_x \cdot r_y}{10{,}000} \]
di mana \(r_x\) dan \(r_y\) adalah resolusi piksel dalam meter pada arah \(x\) dan \(y\). Penggunaan fungsi res() memastikan kode tetap valid meskipun resolusi raster berbeda dari 30 meter.
Kolom kelas dibuat sebagai factor dengan level yang diurutkan berdasarkan mapbiomas_legend$pixel_id dan label dari mapbiomas_legend$class_id. Penetapan level eksplisit ini memastikan urutan tampilan kelas pada legenda grafik konsisten dan dapat direproduksi, tidak bergantung pada urutan kemunculan kelas dalam data.
11 Visualisasi Line Chart Perubahan Luas
Tren perubahan luas seluruh kelas tutupan lahan divisualisasikan dalam satu grafik garis menggunakan geom_line() dan geom_point(). Setiap kelas diwakili oleh satu garis berwarna, konsisten dengan warna pada peta (Bagian 9), agar pembaca dapat mengaitkan pola spasial dengan tren temporal secara intuitif.
p_line <- ggplot(data = tuplah_chg) +
geom_line(
aes(x = tahun, y = luas_ha, color = kelas),
linewidth = 1.0
) +
geom_point(
aes(x = tahun, y = luas_ha, color = kelas),
size = 2.5
) +
scale_color_manual(
name = "Kelas Tutupan/\nPenggunaan Lahan",
values = setNames(mapbiomas_legend$hex_color,
mapbiomas_legend$class_id)
) +
scale_y_continuous(labels = label_comma(big.mark = ".")) +
scale_x_continuous(breaks = as.numeric(tahun_list)) +
labs(
title = "Perubahan Luas Kelas Tutupan dan Penggunaan Lahan 1990–2024",
subtitle = "Berdasarkan klasifikasi MapBiomas Indonesia Koleksi 3",
x = "Tahun",
y = "Luas (Hektar)",
caption = "Sumber: MapBiomas Indonesia Koleksi 3 | ATBD Desember 2024"
) +
theme_classic(base_size = 11) +
theme(
legend.text = element_text(size = 8),
legend.key.size = unit(0.5, "cm"),
plot.title = element_text(face = "bold", size = 12)
)
ggsave("TUPLAH_Perubahan_Luas_Line.png",
plot = p_line,
width = 12,
height = 7,
dpi = 300,
bg = "white")
p_line12 Konstruksi Vektor Warna Bernama
Konstruksi setNames(mapbiomas_legend$hex_color, mapbiomas_legend$class_id) menghasilkan vektor bernama di mana nama elemennya adalah nama kelas. Hal ini diperlukan karena kolom kelas pada tuplah_chg bertipe factor berlabel nama kelas, dan ggplot2 mencocokkan warna berdasarkan nama level faktor tersebut.
13 Visualisasi Faceted Line Chart per Kelas
Ketika semua kelas ditampilkan dalam satu panel, kelas-kelas dengan luas kecil — seperti Mangrove, Tambak, atau Lubang Tambang — sulit terbaca karena tertindih secara visual oleh kelas dominan. Untuk mengatasi keterbatasan ini, digunakan faceted line chart di mana setiap kelas ditampilkan dalam panel tersendiri dengan argumen scales = "free_y", sehingga tren relatif kelas minor tetap dapat diamati secara jelas.
p_facet_line <- ggplot(data = tuplah_chg) +
geom_line(aes(x = tahun, y = luas_ha), linewidth = 0.8) +
geom_point(aes(x = tahun, y = luas_ha), size = 2) +
facet_wrap(
facets = vars(kelas),
scales = "free_y", # Skala sumbu-y berbeda per panel
ncol = 4
) +
scale_x_continuous(breaks = as.numeric(tahun_list)) +
scale_y_continuous(labels = label_comma(big.mark = ".")) +
labs(
title = "Perubahan Luas per Kelas Tutupan dan Penggunaan Lahan 1990–2024",
x = "Tahun",
y = "Luas (Hektar)",
caption = "Skala sumbu-y bebas (free_y) per kelas"
) +
theme_bw(base_size = 10) +
theme(
strip.text.x = element_text(size = 8, face = "bold"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 7),
plot.title = element_text(face = "bold", size = 12)
)
ggsave("TUPLAH_Perubahan_Luas_Facet.png",
plot = p_facet_line,
width = 16,
height = 10,
dpi = 300,
bg = "white")
p_facet_linePerbedaan antara kedua jenis grafik dirangkum dalam tabel berikut:
| Aspek | Line Chart | Faceted Line Chart |
|---|---|---|
| Tujuan | Perbandingan luas absolut antar kelas | Tren temporal tiap kelas secara individual |
| Jumlah panel | Satu panel untuk semua kelas | Satu panel per kelas |
| Skala sumbu-y | Seragam — perbandingan absolut valid | Bebas (free_y) — tren relatif tampak jelas |
| Kelas minor | Tertindih oleh kelas dominan | Setara dengan kelas lain dalam panel |
| Argumen kunci | scale_color_manual() |
facet_wrap(scales = "free_y") |
14 Ringkasan Output
Setelah menjalankan skrip secara lengkap, tiga file PNG akan tersimpan di direktori kerja R aktif. Direktori aktif dapat diperiksa dengan getwd() dan diubah menggunakan setwd().
| File Output | Deskripsi |
|---|---|
TUPLAH_Peta_2019_2024.png |
Peta seri waktu 8 panel (1990–2024) dengan warna resmi MapBiomas, resolusi 300 dpi |
TUPLAH_Perubahan_Luas_Line.png |
Line chart semua kelas dalam satu panel, sumbu-y seragam, resolusi 300 dpi |
TUPLAH_Perubahan_Luas_Facet.png |
Faceted line chart satu panel per kelas, sumbu-y bebas (free_y), resolusi 300 dpi |
14.1 Tips Pemecahan Masalah
Lakukan reproyeksi di luar R menggunakan gdalwarp (GDAL) atau QGIS, simpan sebagai GeoTIFF berproyeksi UTM, kemudian muat langsung dengan rast().
project()
Tambahkan selalu names(tuplah_stk) <- tahun_list segera setelah project() karena fungsi ini mereset atribut nama layer.
Pastikan kolom kelas bertipe factor dan nama level faktornya identik dengan nama dalam vektor warna yang dibuat menggunakan setNames().
15 Informasi Sesi R
## R version 4.5.2 (2025-10-31 ucrt)
## Platform: x86_64-w64-mingw32/x64
## Running under: Windows 11 x64 (build 26200)
##
## Matrix products: default
## LAPACK version 3.12.1
##
## locale:
## [1] LC_COLLATE=English_Indonesia.utf8 LC_CTYPE=English_Indonesia.utf8
## [3] LC_MONETARY=English_Indonesia.utf8 LC_NUMERIC=C
## [5] LC_TIME=English_Indonesia.utf8
##
## time zone: Asia/Jakarta
## tzcode source: internal
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## loaded via a namespace (and not attached):
## [1] htmlwidgets_1.6.4 compiler_4.5.2 fastmap_1.2.0 cli_3.6.5
## [5] tools_4.5.2 htmltools_0.5.9 otel_0.2.0 rstudioapi_0.17.1
## [9] yaml_2.3.12 rmarkdown_2.29 knitr_1.51 jsonlite_2.0.0
## [13] xfun_0.56 digest_0.6.39 rlang_1.1.7 evaluate_1.0.5
Referensi
MapBiomas Indonesia. (2024). Algorithm Theoretical Basis Document (Dokumen Landasan Teoritis Algoritma), Koleksi 3, Versi 1. Jakarta: Auriga Nusantara. Desember 2024.
Di Gregorio, A. & Jansen, L.J.M. (2000). Land Cover Classification System (LCCS): Classification Concepts and User Manual for Software Version 1.0. Food and Agriculture Organization of the United Nations (FAO), Roma.
Hijmans, R.J. (2024). terra: Spatial Data Analysis. R package version 1.7. https://CRAN.R-project.org/package=terra
Souza, C.M. Jr. et al. (2020). Reconstructing Three Decades of Land Use and Land Cover Changes in Brazilian Biomes with Landsat Archive and Earth Engine. Remote Sensing, 12(17), 2735. https://doi.org/10.3390/rs12172735
Walker, J.D. (2024). Geographic Data Science with R: Visualizing and Analyzing Environmental Change. Edisi Pertama. CRC Press / Taylor & Francis Group.
Wickham, H. et al. (2023). ggplot2: Elegant Graphics for Data Analysis. Edisi Ketiga. Springer. https://ggplot2-book.org
Wickham, H. et al. (2023). dplyr: A Grammar of Data Manipulation. R package version 1.1. https://CRAN.R-project.org/package=dplyr