Lewati ke isi
Profil penulisSeri Buku GIS Kehutanan dan Pertanian/ M1
Tampilkan bagian untuk:

BAB 1: Fondasi Modern & Manajemen Data Cerdas

#Bagian A: QGIS

#1.1. Menarik Citra Satelit via STAC API (Tanpa Download)

Spatiotemporal Asset Catalog (STAC) adalah standar modern pencarian data spasial. QGIS 4.x dapat membaca format ini dengan sangat baik.

#A. Langkah Eksekusi (Cara Visual):

  1. Buka QGIS. Pastikan Anda telah memasang plugin STAC API Browser (cari di Plugins > Manage and Install Plugins).
  2. Tampilkan batas konsesi atau area kajian Anda di kanvas peta.
  3. Buka ikon STAC API Browser di toolbar.
Ilustrasi 1.1: Antarmuka STAC API Browser
+---------------------------------------------------------+
| πŸ›°οΈ STAC API BROWSER                                     |
| ------------------------------------------------------- |
| Connection : [ Earth Search (AWS) / Microsoft Planetary]|
| Collection : [ Sentinel-2 Level-2A (Surface Reflectance)]|
| Extent     : [x] Fetch from Map Canvas Extent           |
| Date Range : 2026-01-01  TO  2026-03-31                 |
| Cloud Cover: < 10%                                      |
|                                                         |
| [ SEARCH ] ---> Ditemukan: 4 Scene.                     |
|                                                         |
| Aset Tersedia:                                          |
| [x] B04 (Red)   [ Add as Cloud Optimized GeoTIFF (COG)] |
| [x] B08 (NIR)   [ Add as Cloud Optimized GeoTIFF (COG)] |
+---------------------------------------------------------+
  1. Klik Add as COG untuk Band 4 (Merah) dan Band 8 (Inframerah Dekat).
  2. Citra resolusi 10m langsung muncul di layar Anda. Anda hanya men-streaming piksel yang tampil di layar, tanpa membebani penyimpanan komputer Anda.
Ilustrasi 1.2: Alur menarik citra lewat STAC dan COG di QGIS
Diagram alur: katalog STAC di cloud, pencarian area dan tanggal, aset COG B04 dan B08, lalu layer di QGIS yang hanya membaca piksel yang tampil.

#1.2. Standardisasi Sistem Proyeksi (Reprojecting)

Agar analisis spasial (seperti perhitungan luas dalam Hektar) akurat, data tidak boleh berada dalam sistem derajat/geografis (WGS 84 / EPSG:4326). Pastikan kanvas proyek memakai sistem metrik/proyeksi seperti Universal Transverse Mercator (UTM).

#A. Langkah Eksekusi:

  1. Klik kode EPSG di sudut kanan bawah antarmuka QGIS (misal: EPSG:4326).
  2. Jendela Project Properties - CRS akan terbuka.
  3. Cari sistem UTM lokal Anda. (Contoh: Pekanbaru, Riau, berada di sekitar bujur 101Β° BT sehingga masuk zona 47; Pontianak, Kalimantan Barat, di sekitar bujur 109Β° BT sehingga masuk zona 49. Nomor zona dihitung dari bujur: (bujur + 180) Γ· 6, dibulatkan ke atas. Pilih belahan Utara (N) untuk area di utara ekuator dan belahan Selatan (S) untuk area di selatan ekuator. Misalnya WGS 84 / UTM zone 49N = EPSG:32649, dan WGS 84 / UTM zone 49S = EPSG:32749).
  4. Klik Apply.
Ilustrasi 1.3: Menentukan zona UTM dari bujur
Diagram zona UTM 47, 48, dan 49 dengan posisi Pekanbaru dan Pontianak, rumus zona, dan kode EPSG utara serta selatan ekuator.

#1.3. Memuat Data Latar Belakang Cepat (XYZ Tiles)

Lupakan plugin berat untuk memuat peta dasar. QGIS 4.x sudah memiliki fitur native di panel Browser.

  1. Buka panel Browser di sisi kiri.
  2. Cari menu XYZ Tiles.
  3. Klik kanan > New Connection.
  4. Masukkan nama: EOX Sentinel-2 Cloudless.
  5. Masukkan URL: https://tiles.maps.eox.at/wmts/1.0.0/s2cloudless-2024_3857/default/g/{z}/{y}/{x}.jpg [CEK]
  6. Seret EOX Sentinel-2 Cloudless ke panel layer. Ini sangat berguna untuk validasi batas area tebangan atau kebun secara visual. Cantumkan atribusi EOX pada hasil kerja Anda (lihat catatan lisensi di akhir bagian ini).
Ilustrasi 1.4: Cara kerja XYZ Tiles
Diagram ubin peta pada zoom 0, 1, dan 2 dengan satu, empat, dan enam belas ubin, serta bentuk alamat tile z, x, y.

#1.4. Eksekusi Tingkat Lanjut: Otomatisasi dengan PyQGIS 3

Bagi analis tingkat mahir, mengeklik menu berulang kali adalah pemborosan waktu. Anda bisa memakai Python Console (PyQGIS) untuk memuat layer STAC, mengatur simbologi NDVI, dan memotong citra secara otomatis.

Skenario Python: Anda ingin menghitung Normalized Difference Vegetation Index (NDVI) secara on-the-fly dari URL citra COG di cloud, lalu memotongnya sesuai batas Vektor Area Kajian.

Ilustrasi 1.5: Alur Skrip 1.1 di QGIS
Diagram alur: band Red dan NIR dari COG di cloud, dipotong dengan batas, dihitung NDVI, menghasilkan layer NDVI_KPH.

Buka Plugins > Python Console dan jalankan skrip berikut:

PYTHON
# [SKRIP 1.1: Memuat COG & Eksekusi NDVI Virtual di QGIS 4.x]
# Penulis: Badar Mubarok Yogaswara
# Syarat: Pastikan layer batas area (misal: 'Batas_KPH') aktif di QGIS.

import processing
from qgis.core import QgsProject, QgsRasterLayer

print("πŸ”— Memulai koneksi ke Cloud-Optimized GeoTIFF (COG)...")

# 1. Tentukan URL COG dari STAC API (Contoh URL dummy Sentinel-2)
url_b4 = "/vsicurl/https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/2026/T48M/B04.tif"
url_b8 = "/vsicurl/https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/2026/T48M/B08.tif"

# 2. Muat Layer secara Virtual
layer_b4 = QgsRasterLayer(url_b4, "B04_Red_Cloud", "gdal")
layer_b8 = QgsRasterLayer(url_b8, "B08_NIR_Cloud", "gdal")

if not layer_b4.isValid() or not layer_b8.isValid():
    print("❌ Gagal memuat citra dari Cloud. Cek koneksi internet.")
else:
    QgsProject.instance().addMapLayers([layer_b4, layer_b8])
    print("βœ… Citra Red dan NIR berhasil dimuat.")

    # 3. Ambil layer Vektor untuk batas pemotongan
    batas_kph = QgsProject.instance().mapLayersByName('Batas_KPH')[0]

    # 4. Potong (Clip) Citra langsung dari Cloud menggunakan Algoritma Native GDAL
    print("βœ‚οΈ Memotong citra berdasarkan batas KPH...")

    # Clip Band 8 (NIR)
    clip_b8 = processing.run("gdal:cliprasterbymasklayer", {
        'INPUT': layer_b8,
        'MASK': batas_kph,
        'CROP_TO_CUTLINE': True,
        'OUTPUT': 'TEMPORARY_OUTPUT'
    })['OUTPUT']

    # Clip Band 4 (Red)
    clip_b4 = processing.run("gdal:cliprasterbymasklayer", {
        'INPUT': layer_b4,
        'MASK': batas_kph,
        'CROP_TO_CUTLINE': True,
        'OUTPUT': 'TEMPORARY_OUTPUT'
    })['OUTPUT']

    # 5. Kalkulasi NDVI Menggunakan Raster Calculator Native
    # Rumus: (NIR - RED) / (NIR + RED)
    print("πŸ“Š Menghitung NDVI...")

    ndvi_result = processing.run("qgis:rastercalculator", {
        'EXPRESSION': '("B08@1" - "B04@1") / ("B08@1" + "B04@1")',
        'LAYERS': [clip_b8, clip_b4],
        'CELLSIZE': 10,
        'OUTPUT': 'memory:NDVI_KPH'
    })

    QgsProject.instance().addMapLayer(ndvi_result['OUTPUT'])
    print("πŸš€ Selesai! Layer NDVI_KPH telah ditambahkan ke kanvas.")

Skrip alternatif (memakai native:rastercalc):

PYTHON (ALTERNATIF)
# [SKRIP 1.1 - ALTERNATIF: Memuat COG & Eksekusi NDVI di QGIS 4.x]
# Penulis: Badar Mubarok Yogaswara
# Syarat: Pastikan layer batas area (misal: 'Batas_KPH') aktif di QGIS.
# Perbedaan dengan Skrip 1.1: langkah 5 memakai native:rastercalc (terdokumentasi) dan hasilnya
# disimpan ke berkas sementara lalu dimuat sebagai layer. Keluaran 'memory:' tidak menghasilkan layer raster.

import processing
from qgis.core import QgsProject, QgsRasterLayer

print("πŸ”— Memulai koneksi ke Cloud-Optimized GeoTIFF (COG)...")

# 1. Tentukan URL COG dari STAC API (Contoh URL dummy Sentinel-2)
url_b4 = "/vsicurl/https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/2026/T48M/B04.tif"
url_b8 = "/vsicurl/https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/2026/T48M/B08.tif"

# 2. Muat Layer secara Virtual
layer_b4 = QgsRasterLayer(url_b4, "B04_Red_Cloud", "gdal")
layer_b8 = QgsRasterLayer(url_b8, "B08_NIR_Cloud", "gdal")

if not layer_b4.isValid() or not layer_b8.isValid():
    print("❌ Gagal memuat citra dari Cloud. Cek koneksi internet.")
else:
    QgsProject.instance().addMapLayers([layer_b4, layer_b8])
    print("βœ… Citra Red dan NIR berhasil dimuat.")

    # 3. Ambil layer Vektor untuk batas pemotongan
    batas_kph = QgsProject.instance().mapLayersByName('Batas_KPH')[0]

    # 4. Potong (Clip) Citra langsung dari Cloud menggunakan Algoritma Native GDAL
    print("βœ‚οΈ Memotong citra berdasarkan batas KPH...")

    # Clip Band 8 (NIR)
    clip_b8 = processing.run("gdal:cliprasterbymasklayer", {
        'INPUT': layer_b8,
        'MASK': batas_kph,
        'CROP_TO_CUTLINE': True,
        'OUTPUT': 'TEMPORARY_OUTPUT'
    })['OUTPUT']

    # Clip Band 4 (Red)
    clip_b4 = processing.run("gdal:cliprasterbymasklayer", {
        'INPUT': layer_b4,
        'MASK': batas_kph,
        'CROP_TO_CUTLINE': True,
        'OUTPUT': 'TEMPORARY_OUTPUT'
    })['OUTPUT']

    # 5. Kalkulasi NDVI Menggunakan Raster Calculator Native
    # Rumus: (NIR - RED) / (NIR + RED)
    print("πŸ“Š Menghitung NDVI...")

    # Beri nama pada hasil potongan agar bisa dirujuk di ekspresi sebagai "B08@1" dan "B04@1"
    lyr_b8 = QgsRasterLayer(clip_b8, "B08", "gdal")
    lyr_b4 = QgsRasterLayer(clip_b4, "B04", "gdal")
    QgsProject.instance().addMapLayers([lyr_b8, lyr_b4], False)

    ndvi_path = processing.run("native:rastercalc", {
        'EXPRESSION': '("B08@1" - "B04@1") / ("B08@1" + "B04@1")',
        'LAYERS': [lyr_b8, lyr_b4],
        'OUTPUT': 'TEMPORARY_OUTPUT'
    })['OUTPUT']

    QgsProject.instance().addMapLayer(QgsRasterLayer(ndvi_path, "NDVI_KPH", "gdal"))
    print("πŸš€ Selesai! Layer NDVI_KPH telah ditambahkan ke kanvas.")

#Bagian B: ArcGIS Pro

#1.1. Menarik Citra Satelit via STAC (ArcGIS Pro)

Di ArcGIS Pro, dukungan STAC sudah bawaan, jadi tidak perlu plugin seperti pada QGIS. Prinsipnya sama: Anda mencari citra dari katalog di cloud lalu menambahkannya ke peta.

Ilustrasi 1.6: Alur menarik citra lewat STAC di ArcGIS Pro
Diagram alur: berkas koneksi penyimpanan cloud, telusuri di panel Explore STAC, tambahkan item sebagai layer, opsional mosaic dataset.

#A. Langkah Eksekusi:

  • Buat koneksi ke STAC API memakai berkas koneksi penyimpanan cloud (cloud storage connection), seperti dijelaskan pada dokumentasi Esri "Introduction to STAC". [CEK]
  • Telusuri koleksi (collections) dan item pada panel Explore STAC. [CEK]
  • Pilih item yang Anda perlukan, lalu tambahkan sebagai layer ke peta (panel Contents). [CEK]
  • Opsional: tambahkan item ke mosaic dataset bila akan dianalisis lebih lanjut.

#1.2. Standardisasi Sistem Proyeksi (ArcGIS Pro)

Alasannya sama dengan Bagian A: perhitungan luas dan jarak yang akurat memerlukan sistem koordinat metrik seperti UTM, bukan derajat (WGS 84 / EPSG:4326).

Ilustrasi 1.7: Mengubah proyeksi data di ArcGIS Pro
Diagram: data WGS 84 diproses dengan Project untuk vektor atau Project Raster untuk raster menjadi data UTM dalam meter.

#A. Langkah Eksekusi:

  • Buka properti peta (Map Properties) dan pilih tab sistem koordinat (Coordinate Systems). [CEK]
  • Pilih zona UTM sesuai lokasi. Nomor zona dihitung dari bujur: (bujur + 180) Γ· 6, dibulatkan ke atas. Contoh: WGS 84 / UTM zone 49S = EPSG:32749, dan WGS 84 / UTM zone 49N = EPSG:32649.
  • Klik OK.
  • Bila data fisiknya perlu diubah, buka panel Geoprocessing, lalu pakai Project untuk data vektor atau Project Raster untuk raster (kelompok Data Management Tools). Keduanya tersedia pada semua level lisensi tanpa ekstensi.

#1.3. Memuat Data Latar Belakang (ArcGIS Pro)

  • Buka galeri Basemap pada tab Map. [CEK]
  • Pilih peta dasar yang tersedia, lalu periksa syarat penggunaannya.

#1.4. Eksekusi Tingkat Lanjut: Otomatisasi dengan ArcPy (Python 3)

Skenario sama dengan Bagian A: menghitung NDVI dari band Red dan NIR, setelah dipotong sesuai batas area kajian. Bedanya, skrip ini bekerja pada berkas lokal.

Ilustrasi 1.8: Alur skrip NDVI dengan ArcPy di ArcGIS Pro
Diagram alur: raster B04 dan B08, ExtractByMask dengan batas, Float dan rumus NDVI, lalu disimpan sebagai NDVI_KPH.tif.

Buka jendela Python di ArcGIS Pro dan jalankan skrip berikut:

PYTHON (ARCPY, PYTHON 3)
# [SKRIP 1.1-Pro: Memotong citra dan menghitung NDVI dengan ArcPy]
# Penulis: Badar Mubarok Yogaswara
# [CEK] Cocokkan dengan versi Anda. Butuh ekstensi Spatial Analyst atau Image Analyst.
import arcpy
from arcpy.sa import Raster, Float, ExtractByMask

arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\data_kph"      # ganti dengan folder Anda

# 1. Masukan: band Red, band NIR, dan batas area (CRS harus sama, lihat 1.2)
red = Raster("B04.tif")
nir = Raster("B08.tif")
batas = "Batas_KPH.shp"

# 2. Potong kedua band sesuai batas
red_clip = ExtractByMask(red, batas)
nir_clip = ExtractByMask(nir, batas)

# 3. NDVI = (NIR - RED) / (NIR + RED)
ndvi = (Float(nir_clip) - Float(red_clip)) / (Float(nir_clip) + Float(red_clip))
ndvi.save("NDVI_KPH.tif")

arcpy.CheckInExtension("Spatial")
print("Selesai: NDVI_KPH.tif tersimpan.")

#Bagian C: ArcMap 10.8

#1.1. Menarik Citra Satelit (ArcMap): Tidak Ada Padanan STAC

Dokumentasi ArcMap yang diperiksa penulis tidak memuat dukungan STAC. Alternatif terdekat adalah menambahkan image service. Ini citra yang disajikan server dan ditampilkan di peta tanpa menyalin seluruh datanya.

Ilustrasi 1.9: Menambahkan image service di ArcMap
Diagram langkah: Add Data, folder GIS Servers, klik ganda server, pilih image service, klik Add, dengan dua cara alternatif.

#A. Langkah Eksekusi:

  1. Klik tombol Add Data.
  2. Pada daftar Look in, buka folder GIS Servers.
  3. Klik ganda server yang Anda inginkan (atau tambahkan koneksi ArcGIS Server baru bila belum ada).
  4. Pilih layer image service (ikonnya khas), lalu klik Add. Cara lain: seret image service dari jendela Catalog.
  5. Alternatif: File > Add Data > Add Data From ArcGIS Online untuk mencari citra yang dibagikan komunitas.

#1.2. Standardisasi Sistem Proyeksi (ArcMap)

Ilustrasi 1.10: Mengubah proyeksi data di ArcMap
Diagram: data WGS 84 diproses dengan Project untuk vektor atau Project Raster untuk raster menjadi data UTM dalam meter.

#A. Langkah Eksekusi:

  1. Buka properti data frame dan pilih tab sistem koordinat. [CEK]
  2. Pilih zona UTM sesuai lokasi (rumus dan kode EPSG sama seperti Bagian B).
  3. Bila data fisiknya perlu diubah, pakai Project (vektor) atau Project Raster (raster) di Data Management. Keduanya tersedia pada semua level lisensi tanpa ekstensi.

#1.3. Memuat Data Latar Belakang (ArcMap)

  1. Pilih File > Add Data > Add Basemap. [CEK]
  2. Pilih peta dasar yang tersedia, lalu periksa syarat penggunaannya.

#1.4. Eksekusi Tingkat Lanjut: Otomatisasi dengan ArcPy (Python 2.7)

Skenario dan hasilnya sama dengan Bagian B, tetapi kode harus mengikuti Python 2.7.

Ilustrasi 1.11: Alur skrip NDVI dengan ArcPy di ArcMap
Diagram alur: raster B04 dan B08, ExtractByMask dengan batas, Float dan rumus NDVI, lalu disimpan sebagai NDVI_KPH.tif, dengan Python 2.7.

Buka jendela Python di ArcMap dan jalankan skrip berikut:

PYTHON (ARCPY, PYTHON 2.7)
# [SKRIP 1.1-ArcMap: Memotong citra dan menghitung NDVI dengan ArcPy]
# Penulis: Badar Mubarok Yogaswara
# [CEK] Cocokkan dengan versi Anda. Butuh ekstensi Spatial Analyst.
from __future__ import print_function   # agar print() berlaku di Python 2.7
import arcpy
from arcpy.sa import Raster, Float, ExtractByMask

arcpy.CheckOutExtension("Spatial")
arcpy.env.overwriteOutput = True
arcpy.env.workspace = r"C:\data_kph"      # ganti dengan folder Anda

red = Raster("B04.tif")
nir = Raster("B08.tif")
batas = "Batas_KPH.shp"

red_clip = ExtractByMask(red, batas)
nir_clip = ExtractByMask(nir, batas)

ndvi = (Float(nir_clip) - Float(red_clip)) / (Float(nir_clip) + Float(red_clip))
ndvi.save("NDVI_KPH.tif")

arcpy.CheckInExtension("Spatial")
print("Selesai: NDVI_KPH.tif tersimpan.")

#Ringkasan, Latihan, dan Bantuan Bab 1

#Ringkasan

  • Citra satelit dapat dibaca langsung dari cloud lewat STAC dan COG, tanpa mengunduh berkas utuh.
  • Ubah CRS proyek ke sistem metrik (UTM) di awal agar luas dan jarak akurat.
  • XYZ Tiles memuat peta dasar tanpa plugin tambahan.
  • PyQGIS dapat memuat COG, memotong, dan menghitung NDVI dalam satu skrip.
  • [ArcGIS Pro] STAC bawaan; Project dan Project Raster untuk mengubah proyeksi; ArcPy dengan Python 3.
  • [ArcMap] Tidak ada padanan STAC (alternatif: image service); Project dan Project Raster; ArcPy dengan Python 2.7.

#Latihan

  1. Cari citra Sentinel-2 dengan tutupan awan di bawah 10% untuk area Anda, lalu muat Band 4 dan Band 8 sebagai COG.
  2. Tentukan zona UTM area Anda dengan rumus di langkah 1.2, lalu atur CRS proyek dan catat kode EPSG-nya.
  3. Jalankan skrip 1.1 dengan batas area Anda sendiri. Bagian mana pada hasil NDVI yang tampak paling hijau pekat, dan apakah sesuai dengan kenyataan di lapangan?
  4. [ArcGIS Pro / ArcMap] Proyeksikan satu citra dengan Project Raster. Catat metode resampling yang Anda pilih dan alasannya.
  5. [ArcGIS Pro / ArcMap] Jalankan Skrip 1.1 versi Anda dengan berkas B04, B08, dan batas area sendiri, lalu bandingkan hasil NDVI-nya dengan hasil di QGIS.

#Jika terjadi masalah

  • Layer gagal dimuat: periksa koneksi internet dan pastikan alamat citra diawali /vsicurl/. [CEK]
  • Luas area tampak tidak masuk akal: periksa apakah CRS proyek masih berupa derajat (EPSG:4326).
  • [ArcGIS Pro / ArcMap] Skrip berhenti dengan galat lisensi: pastikan ekstensi Spatial Analyst (atau Image Analyst di ArcGIS Pro) tersedia untuk akun Anda. [CEK]
  • [ArcMap] Skrip dari ArcGIS Pro gagal dijalankan: periksa apakah ia memakai sintaks Python 3, karena ArcMap memakai Python 2.7.
  • [ArcMap] Dialog Add Basemap gagal menambahkan peta dasar: lihat catatan Masalah yang Diketahui di bagian 1.3 ArcMap.

#Tabel Perbandingan Bab 1: QGIS, ArcGIS Pro, dan ArcMap 10.8

Kolom Status menjelaskan seberapa pasti padanan itu. Terbukti: dokumentasi resmi sudah dibaca penulis. Kemungkinan: berdasarkan informasi umum. [CEK]: perlu dicoba di perangkat lunaknya.

LangkahQGISArcGIS ProArcMap 10.8Status
1.1 Citra cloudSTAC API Browser (plugin); COGDukungan STAC bawaan; panel Explore STACTidak ada padanan STAC; image service atau Add Data From ArcGIS OnlinePro: ada, menu [CEK]. ArcMap: tidak ada padanan langsung
1.2 CRS proyekProject Properties - CRSMap Properties - Coordinate SystemsData frame propertiesLetak menu [CEK]
1.2 Ubah proyeksi dataReproject layerProject; Project RasterProject; Project RasterTerbukti ada di Pro dan ArcMap; tanpa ekstensi
1.3 Peta dasarXYZ Tiles (panel Browser)Galeri Basemap; XYZ murni belum terverifikasiAdd Basemap; Add Data From ArcGIS OnlineMenu [CEK]; XYZ murni: tidak ada padanan yang dijamin
1.4 Bahasa otomasiPyQGIS 3 (Python 3)ArcPy (Python 3)ArcPy (Python 2.7)Terbukti (versi Python)
1.4 Baca cloud langsung/vsicurl/ lewat GDALBelum diverifikasiBelum diverifikasiBelum diverifikasi
1.4 Potong citragdal:cliprasterbymasklayerExtract by MaskExtract by MaskKemungkinan; butuh Spatial Analyst [CEK]
1.4 Hitung NDVIqgis:rastercalculatorRaster Calculator atau ekspresi arcpy.saEkspresi arcpy.sa (Spatial Analyst)Pro: Raster Calculator butuh Spatial Analyst atau Image Analyst (terbukti). ArcMap: kemungkinan
Ilustrasi 1.12: Ringkasan ketersediaan padanan pada Bab 1
Matriks warna: ketersediaan STAC, ubah proyeksi, peta dasar XYZ, dan bahasa otomasi pada QGIS, ArcGIS Pro, dan ArcMap 10.8.