Package yang Dibutuhkan

install.packages(c(
  "sf",
  "terra",
  "ggplot2",
  "dplyr",
  "tmap",
  "mapview",
  "viridis",
  "remotes"
))
remotes::install_github("rlesur/klippy")
## Skipping install of 'klippy' from a github remote, the SHA1 (378c247f) has not changed since last install.
##   Use `force = TRUE` to force installation
library(sf)        # Mengolah data spasial vektor (titik, garis, polygon)
## Linking to GEOS 3.14.1, GDAL 3.12.1, PROJ 9.7.1; sf_use_s2() is TRUE
library(terra)     # Mengolah data spasial raster
## terra 1.9.34
library(ggplot2)   # Membuat visualisasi dan peta
library(dplyr)     # Manipulasi dan pengolahan data
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:terra':
## 
##     intersect, union
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tmap)      # Membuat visualisasi peta statis dan interaktif
library(mapview)   # Menampilkan peta spasial secara interaktif
library(viridis)   # Palet warna untuk visualisasi data dan peta
## Loading required package: viridisLite

A. Pengertian Spasial

1. Apa itu Spasial?

Istilah spasial berkaitan dengan ruang, lokasi, posisi, dan hubungan antarobjek berdasarkan lokasinya.

Dalam statistika, kita biasanya berfokus pada pertanyaan seperti:

“Berapa nilai suatu variabel?”

Sedangkan dalam analisis spasial, kita juga memperhatikan:

“Di mana nilai tersebut berada?”

Informasi mengenai lokasi menjadi penting karena objek yang berada berdekatan secara geografis dapat memiliki karakteristik yang saling berkaitan.

Contoh

Misalkan kita memiliki data titik panas (hotspot) kebakaran hutan di Jawa Barat. Setiap kejadian memiliki informasi lokasi berupa koordinat:

Lokasi Longitude Latitude
A 107.20 -6.80
B 107.30 -6.90
C 107.90 -6.40
D 108.00 -6.50

Dari tabel tersebut, kita dapat mengetahui posisi masing-masing kejadian berdasarkan nilai longitude dan latitude. Namun, pola persebaran titik-titik tersebut akan lebih mudah dipahami apabila data divisualisasikan dalam bentuk peta.

Dengan demikian, data spasial tidak hanya memberikan informasi mengenai apa yang terjadi, tetapi juga di mana suatu kejadian atau fenomena terjadi.


2. Apa itu Data Spasial?

Data spasial adalah data yang memiliki informasi mengenai lokasi atau posisi suatu objek di permukaan bumi serta informasi mengenai karakteristik atau atribut dari objek tersebut.

Secara sederhana:

Data Spasial = Informasi Lokasi + Informasi Atribut

Komponen Data Spasial

1. Lokasi

Menunjukkan posisi suatu objek. Lokasi dapat dinyatakan dalam bentuk:

  • koordinat longitude dan latitude;
  • koordinat X dan Y; atau
  • batas wilayah dalam bentuk polygon.

2. Atribut

Menunjukkan karakteristik atau informasi yang dimiliki oleh objek tersebut.

Contohnya pada data titik panas kebakaran:

  • tanggal kejadian;
  • tingkat kepercayaan (confidence);
  • jenis kejadian; dan
  • lokasi kejadian.

3. Apa itu Statistika Spasial?

Statistika spasial merupakan penerapan metode statistika untuk menganalisis data yang memiliki komponen lokasi dengan mempertimbangkan pola dan hubungan antarobjek berdasarkan posisi geografisnya.

Sebagai contoh, pada data kebakaran hutan kita dapat mengajukan beberapa pertanyaan:

  • Apakah titik panas cenderung mengelompok pada wilayah tertentu?
  • Apakah titik panas yang berdekatan memiliki karakteristik yang serupa?
  • Apakah terdapat wilayah yang memiliki konsentrasi kejadian lebih tinggi?

Pertanyaan-pertanyaan tersebut menunjukkan bahwa lokasi menjadi bagian penting dalam analisis, bukan hanya sebagai informasi tambahan.


4. Mengapa Lokasi Penting?

Dua objek yang memiliki nilai atribut yang sama belum tentu memberikan informasi yang sama apabila berada pada lokasi yang berbeda.

Sebagai contoh, dua wilayah dapat memiliki jumlah kasus yang sama, tetapi kondisi di sekitarnya dapat berbeda. Wilayah tersebut mungkin memiliki karakteristik geografis, sosial, maupun lingkungan yang berbeda.

Oleh karena itu, dalam analisis spasial kita tidak hanya memperhatikan nilai suatu objek, tetapi juga posisi objek tersebut dan hubungan dengan objek di sekitarnya.

Inti Pembelajaran

Dalam statistika spasial, lokasi adalah bagian dari informasi yang dianalisis.

B. Mengapa Belajar Analisis Spasial?

Pada analisis statistika biasa, kita umumnya memperhatikan nilai atau karakteristik dari setiap pengamatan. Namun, pada data yang memiliki informasi lokasi, terdapat informasi tambahan yang penting, yaitu posisi setiap pengamatan dan hubungannya dengan pengamatan lain di sekitarnya.

Sebagai contoh, misalkan kita memiliki data jumlah kasus suatu penyakit pada beberapa kabupaten/kota. Kita dapat mengetahui kabupaten/kota mana yang memiliki jumlah kasus paling tinggi.

Namun, muncul pertanyaan lain:

  • Apakah wilayah dengan jumlah kasus tinggi cenderung berada berdekatan?
  • Apakah suatu wilayah dengan kasus tinggi dikelilingi oleh wilayah dengan kasus tinggi juga?
  • Apakah terdapat wilayah yang memiliki pola berbeda dengan wilayah di sekitarnya?

Pertanyaan tersebut tidak hanya berkaitan dengan nilai pengamatan, tetapi juga dengan lokasi pengamatan.


1. Lokasi dapat memberikan informasi tambahan

Perhatikan dua kondisi berikut.

Kondisi 1

Dua kabupaten memiliki nilai yang tinggi, tetapi letaknya berjauhan.

Kondisi 2

Dua kabupaten memiliki nilai yang tinggi dan letaknya berdekatan.

Secara statistik, kedua kondisi tersebut mungkin memiliki nilai pengamatan yang sama. Namun, secara spasial, keduanya dapat memberikan informasi yang berbeda.

Hal ini karena objek yang berdekatan secara geografis dapat memiliki kondisi yang lebih mirip dibandingkan objek yang berjauhan.


2. Contoh dalam Kehidupan Sehari-hari

Analisis spasial digunakan dalam berbagai bidang, antara lain:

Bidang Contoh Pertanyaan
Kesehatan Apakah kasus penyakit mengelompok pada wilayah tertentu?
Lingkungan Di mana konsentrasi pencemaran paling tinggi?
Pertanian Bagaimana persebaran produktivitas tanaman?
Kehutanan Apakah kejadian kebakaran hutan mengelompok?
Sosial Apakah kemiskinan terkonsentrasi pada wilayah tertentu?
Transportasi Di mana lokasi kecelakaan lalu lintas paling banyak terjadi?
Perencanaan wilayah Wilayah mana yang membutuhkan fasilitas publik tambahan?

Dari berbagai contoh tersebut, terlihat bahwa lokasi dapat memberikan informasi yang tidak dapat diperoleh hanya dengan melihat data dalam bentuk tabel.


3. Apa yang Ingin Kita Ketahui dari Data Spasial?

Dalam analisis spasial, beberapa pertanyaan yang dapat diajukan antara lain:

a. Di mana?

Kita ingin mengetahui lokasi terjadinya suatu fenomena.

Contoh: Di mana lokasi titik panas kebakaran hutan?

b. Bagaimana pola persebarannya?

Kita ingin mengetahui apakah suatu fenomena:

  • menyebar secara acak;
  • mengelompok (clustered); atau
  • menyebar secara teratur (dispersed).

c. Apakah terdapat hubungan antarwilayah?

Kita ingin mengetahui apakah nilai suatu wilayah berkaitan dengan nilai wilayah di sekitarnya.

Contoh: Apakah kabupaten dengan tingkat kematian bayi yang tinggi cenderung berdekatan dengan kabupaten lain yang juga memiliki tingkat kematian bayi tinggi?

d. Bagaimana fenomena berubah menurut lokasi?

Untuk beberapa fenomena, nilai suatu variabel dapat berbeda dari satu lokasi ke lokasi lainnya.

Contoh: Apakah suhu udara berbeda antara wilayah pegunungan dan wilayah pesisir?


4. Mengapa Tidak Cukup Menggunakan Data Biasa?

Data dalam bentuk tabel dapat memberikan informasi mengenai nilai setiap pengamatan, tetapi sering kali sulit digunakan untuk melihat pola geografis.

Sebagai contoh, tabel berikut menunjukkan jumlah titik panas pada beberapa wilayah:

Kabupaten/Kota Jumlah Hotspot
Kabupaten A 15
Kabupaten B 12
Kabupaten C 5
Kabupaten D 18
Kabupaten E 3

Dari tabel tersebut, kita dapat mengetahui bahwa Kabupaten D memiliki jumlah hotspot paling tinggi.

Namun, kita belum mengetahui:

Apakah Kabupaten D berdekatan dengan wilayah lain yang juga memiliki jumlah hotspot tinggi?

Untuk menjawab pertanyaan tersebut, kita membutuhkan informasi lokasi dan visualisasi dalam bentuk peta.


C. Jenis Data Spasial

Data spasial dapat dibedakan menjadi beberapa jenis berdasarkan bentuk representasinya.

1 Data Titik (Point Data)

a. Pengertian Data Titik

Data titik (point data) merupakan data spasial yang digunakan untuk merepresentasikan lokasi suatu objek atau kejadian dalam ruang. Setiap objek atau kejadian direpresentasikan oleh sebuah titik yang memiliki posisi tertentu.

Posisi titik biasanya dinyatakan menggunakan koordinat, seperti koordinat X dan Y atau longitude dan latitude.

Secara sederhana:

Satu objek atau kejadian → satu titik lokasi

Contoh fenomena yang dapat direpresentasikan sebagai data titik antara lain:

  • lokasi kebakaran hutan;
  • lokasi sekolah;
  • lokasi rumah sakit;
  • lokasi kecelakaan lalu lintas;
  • lokasi kejadian kriminal; dan
  • lokasi pohon atau tanaman.

Dalam analisis spasial, kumpulan titik tersebut dapat digunakan untuk mempelajari pola persebaran suatu fenomena di ruang.


b. Contoh Data Titik: clmfires

Pada praktikum ini, data titik akan diperkenalkan menggunakan dataset clmfires dari package spatstat.data.

Dataset clmfires berisi catatan kejadian kebakaran hutan di wilayah Castilla-La Mancha, Spanyol selama periode 1998–2007. Setiap kejadian kebakaran direpresentasikan sebagai sebuah titik berdasarkan lokasi kejadiannya. Dataset ini merupakan contoh point pattern yang digunakan dalam pembelajaran dan analisis pola titik spasial.

Selain informasi lokasi, dataset clmfires juga memiliki beberapa atribut yang disebut sebagai marks, yaitu:

  • cause → penyebab kebakaran;
  • burnt.area → luas area yang terbakar dalam hektare;
  • date → tanggal kejadian kebakaran;
  • julian.date → jumlah hari sejak 1 Januari 1998.

c. Memanggil Dataset

Dataset clmfires tersedia di dalam package spatstat.data.

library(spatstat.data)
library(spatstat.geom)
## Loading required package: spatstat.univar
## spatstat.univar 3.1-6
## spatstat.geom 3.7-0
## 
## Attaching package: 'spatstat.geom'
## The following objects are masked from 'package:terra':
## 
##     area, delaunay, is.empty, rescale, rotate, shift, where.max,
##     where.min
data(clmfires)

Setelah dataset dipanggil, kita dapat melihat objek clmfires dengan mengetikkan:

clmfires
## Marked planar point pattern: 8488 points
## Mark variables: cause, burnt.area, date, julian.date 
## window: polygonal boundary
## enclosing rectangle: [4.1311, 391.3795] x [18.565, 385.189] kilometres

Dataset tersebut merupakan objek dengan kelas ppp (planar point pattern), yaitu format data yang digunakan dalam keluarga package spatstat untuk merepresentasikan pola titik pada suatu wilayah pengamatan.


d. Melihat Struktur Data

Untuk mengetahui struktur objek yang digunakan, kita dapat menggunakan fungsi class():

class(clmfires)
## [1] "ppp"

Selanjutnya, kita dapat melihat informasi mengenai objek secara lebih lengkap:

summary(clmfires)
## Marked planar point pattern:  8488 points
## Average intensity 0.1069628 points per square kilometre
## 
## Coordinates are given to 14 decimal places
## 
## Mark variables: cause, burnt.area, date, julian.date
## Summary:
##          cause        burnt.area             date             julian.date  
##  lightning  :1256   Min.   :    0.000   Min.   :1998-01-07   Min.   :   6  
##  accident   :4193   1st Qu.:    0.060   1st Qu.:2001-06-23   1st Qu.:1270  
##  intentional:1786   Median :    0.595   Median :2003-08-07   Median :2044  
##  other      :1253   Mean   :   11.297   Mean   :2003-05-09   Mean   :1954  
##                     3rd Qu.:    3.000   3rd Qu.:2005-05-02   3rd Qu.:2678  
##                     Max.   :12887.370   Max.   :2007-12-31   Max.   :3651  
## 
## Window: polygonal boundary
## single connected closed polygon with 2325 vertices
## enclosing rectangle: [4.1311, 391.3795] x [18.565, 385.189] kilometres
##                      (387.2 x 366.6 kilometres)
## Window area = 79354.7 square kilometres
## Unit of length: 1 kilometre
## Fraction of frame area: 0.559

Pada dataset ini, setiap titik tidak hanya memiliki informasi lokasi, tetapi juga memiliki atribut mengenai karakteristik kejadian kebakaran.


e. Visualisasi Data Titik

Untuk melihat persebaran lokasi kejadian kebakaran, kita dapat menggunakan fungsi plot().

plot(
  clmfires,
  use.marks = FALSE,
  pch = "."
)

Pada grafik tersebut, setiap titik menunjukkan satu lokasi kejadian kebakaran hutan.

use.marks = FALSE digunakan agar seluruh kejadian ditampilkan sebagai titik tanpa membedakan berdasarkan atribut atau marks yang dimiliki.

Sedangkan pch = "." digunakan untuk menampilkan titik dengan simbol yang berukuran kecil sehingga kumpulan titik dapat terlihat dengan lebih jelas.


f. Visualisasi Berdasarkan Atribut

Selain melihat lokasi seluruh kejadian, kita juga dapat membedakan titik berdasarkan penyebab kebakaran.

Atribut penyebab kebakaran terdapat pada variabel cause.

plot(
  clmfires,
  which.marks = "cause",
  cols = 2:5,
  cex = 0.5
)

Dengan visualisasi tersebut, warna titik menunjukkan kategori penyebab kebakaran.

Kategori cause dalam dataset terdiri atas:

  • lightning → petir;
  • accident → kecelakaan atau kelalaian;
  • intentional → sengaja dilakukan; dan
  • other → penyebab lainnya atau penyebab yang tidak diketahui.

g. Contoh Data Titik Lain: hamster

Selain clmfires, package spatstat.data juga menyediakan dataset hamster.

Dataset hamster berisi lokasi inti sel pada jaringan ginjal hamster. Setiap titik menunjukkan posisi inti sel dan memiliki informasi mengenai jenis sel, yaitu dividing dan pyknotic. Dataset ini merupakan contoh multitype point pattern.

Dataset dapat dipanggil dengan:

data(hamster)

Kemudian divisualisasikan dengan:

plot(hamster)

Contoh tersebut menunjukkan bahwa data titik tidak hanya dapat digunakan untuk merepresentasikan lokasi kejadian seperti kebakaran, tetapi juga dapat digunakan untuk merepresentasikan lokasi objek biologis atau objek lainnya.


2 Data Area / Lattice Data

### a. Pengertian Data Area / Lattice Data

Data area atau lattice data merupakan data spasial yang setiap pengamatannya dikaitkan dengan suatu wilayah atau area tertentu.

Berbeda dengan data titik, pada data area satu pengamatan tidak merepresentasikan satu titik lokasi, tetapi mewakili suatu wilayah.

Secara sederhana:

Satu wilayah → satu pengamatan atau nilai

Wilayah yang digunakan dapat berupa:

  • negara;
  • provinsi;
  • kabupaten/kota;
  • kecamatan; atau
  • wilayah administratif lainnya.

Data area umumnya direpresentasikan menggunakan polygon, yaitu bentuk geometris yang memiliki batas dan luas.

Contohnya, data jumlah penduduk berdasarkan kabupaten/kota merupakan data area karena setiap nilai penduduk dikaitkan dengan wilayah kabupaten/kota tertentu.


b. Contoh Data Area: nc

Pada praktikum ini, contoh data area yang digunakan adalah dataset nc yang tersedia dalam package sf.

Dataset nc berisi data untuk 100 county di North Carolina, Amerika Serikat. Data tersebut mencakup jumlah kelahiran hidup dan jumlah kasus Sudden Infant Death Syndrome (SIDS) atau kematian bayi mendadak pada beberapa periode.

Salah satu variabel yang akan digunakan adalah:

  • SID74 → jumlah kasus SIDS pada periode 1974–1978.

Dengan demikian, setiap polygon county memiliki nilai SID74 yang menunjukkan jumlah kasus SIDS pada wilayah tersebut.

Catatan: SID74 merupakan jumlah kasus SIDS atau kematian bayi mendadak, bukan jumlah kasus kanker.


c. Import Data

Dataset nc sudah tersedia di dalam package sf, sehingga kita tidak perlu mengunduh file secara terpisah.

Data dapat dibaca menggunakan fungsi st_read():

d <- st_read(
  system.file("shape/nc.shp", package = "sf"),
  quiet = TRUE
)

Fungsi system.file() digunakan untuk menemukan lokasi file nc.shp yang tersedia di dalam package sf, sedangkan st_read() digunakan untuk membaca data spasial tersebut ke dalam R.


d. Melihat Data

Setelah data berhasil diimpor, kita dapat melihat objek d:

d
## Simple feature collection with 100 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -84.32385 ymin: 33.88199 xmax: -75.45698 ymax: 36.58965
## Geodetic CRS:  NAD27
## First 10 features:
##     AREA PERIMETER CNTY_ CNTY_ID        NAME  FIPS FIPSNO CRESS_ID BIR74 SID74
## 1  0.114     1.442  1825    1825        Ashe 37009  37009        5  1091     1
## 2  0.061     1.231  1827    1827   Alleghany 37005  37005        3   487     0
## 3  0.143     1.630  1828    1828       Surry 37171  37171       86  3188     5
## 4  0.070     2.968  1831    1831   Currituck 37053  37053       27   508     1
## 5  0.153     2.206  1832    1832 Northampton 37131  37131       66  1421     9
## 6  0.097     1.670  1833    1833    Hertford 37091  37091       46  1452     7
## 7  0.062     1.547  1834    1834      Camden 37029  37029       15   286     0
## 8  0.091     1.284  1835    1835       Gates 37073  37073       37   420     0
## 9  0.118     1.421  1836    1836      Warren 37185  37185       93   968     4
## 10 0.124     1.428  1837    1837      Stokes 37169  37169       85  1612     1
##    NWBIR74 BIR79 SID79 NWBIR79                       geometry
## 1       10  1364     0      19 MULTIPOLYGON (((-81.47276 3...
## 2       10   542     3      12 MULTIPOLYGON (((-81.23989 3...
## 3      208  3616     6     260 MULTIPOLYGON (((-80.45634 3...
## 4      123   830     2     145 MULTIPOLYGON (((-76.00897 3...
## 5     1066  1606     3    1197 MULTIPOLYGON (((-77.21767 3...
## 6      954  1838     5    1237 MULTIPOLYGON (((-76.74506 3...
## 7      115   350     2     139 MULTIPOLYGON (((-76.00897 3...
## 8      254   594     2     371 MULTIPOLYGON (((-76.56251 3...
## 9      748  1190     2     844 MULTIPOLYGON (((-78.30876 3...
## 10     160  2038     5     176 MULTIPOLYGON (((-80.02567 3...

Untuk melihat beberapa baris pertama:

head(d)
## Simple feature collection with 6 features and 14 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -81.74107 ymin: 36.07282 xmax: -75.77316 ymax: 36.58965
## Geodetic CRS:  NAD27
##    AREA PERIMETER CNTY_ CNTY_ID        NAME  FIPS FIPSNO CRESS_ID BIR74 SID74
## 1 0.114     1.442  1825    1825        Ashe 37009  37009        5  1091     1
## 2 0.061     1.231  1827    1827   Alleghany 37005  37005        3   487     0
## 3 0.143     1.630  1828    1828       Surry 37171  37171       86  3188     5
## 4 0.070     2.968  1831    1831   Currituck 37053  37053       27   508     1
## 5 0.153     2.206  1832    1832 Northampton 37131  37131       66  1421     9
## 6 0.097     1.670  1833    1833    Hertford 37091  37091       46  1452     7
##   NWBIR74 BIR79 SID79 NWBIR79                       geometry
## 1      10  1364     0      19 MULTIPOLYGON (((-81.47276 3...
## 2      10   542     3      12 MULTIPOLYGON (((-81.23989 3...
## 3     208  3616     6     260 MULTIPOLYGON (((-80.45634 3...
## 4     123   830     2     145 MULTIPOLYGON (((-76.00897 3...
## 5    1066  1606     3    1197 MULTIPOLYGON (((-77.21767 3...
## 6     954  1838     5    1237 MULTIPOLYGON (((-76.74506 3...

Untuk mengetahui struktur data:

str(d)
## Classes 'sf' and 'data.frame':   100 obs. of  15 variables:
##  $ AREA     : num  0.114 0.061 0.143 0.07 0.153 0.097 0.062 0.091 0.118 0.124 ...
##  $ PERIMETER: num  1.44 1.23 1.63 2.97 2.21 ...
##  $ CNTY_    : num  1825 1827 1828 1831 1832 ...
##  $ CNTY_ID  : num  1825 1827 1828 1831 1832 ...
##  $ NAME     : chr  "Ashe" "Alleghany" "Surry" "Currituck" ...
##  $ FIPS     : chr  "37009" "37005" "37171" "37053" ...
##  $ FIPSNO   : num  37009 37005 37171 37053 37131 ...
##  $ CRESS_ID : int  5 3 86 27 66 46 15 37 93 85 ...
##  $ BIR74    : num  1091 487 3188 508 1421 ...
##  $ SID74    : num  1 0 5 1 9 7 0 0 4 1 ...
##  $ NWBIR74  : num  10 10 208 123 1066 ...
##  $ BIR79    : num  1364 542 3616 830 1606 ...
##  $ SID79    : num  0 3 6 2 3 5 2 2 2 5 ...
##  $ NWBIR79  : num  19 12 260 145 1197 ...
##  $ geometry :sfc_MULTIPOLYGON of length 100; first list element: List of 1
##   ..$ :List of 1
##   .. ..$ : num [1:27, 1:2] -81.5 -81.5 -81.6 -81.6 -81.7 ...
##   ..- attr(*, "class")= chr [1:3] "XY" "MULTIPOLYGON" "sfg"
##  - attr(*, "sf_column")= chr "geometry"
##  - attr(*, "agr")= Factor w/ 3 levels "constant","aggregate",..: NA NA NA NA NA NA NA NA NA NA ...
##   ..- attr(*, "names")= chr [1:14] "AREA" "PERIMETER" "CNTY_" "CNTY_ID" ...

Untuk melihat nama variabel:

names(d)
##  [1] "AREA"      "PERIMETER" "CNTY_"     "CNTY_ID"   "NAME"      "FIPS"     
##  [7] "FIPSNO"    "CRESS_ID"  "BIR74"     "SID74"     "NWBIR74"   "BIR79"    
## [13] "SID79"     "NWBIR79"   "geometry"

Dari hasil tersebut, kita dapat melihat bahwa data d tidak hanya memiliki variabel atribut, tetapi juga memiliki kolom geometry.

Kolom geometry berisi informasi mengenai bentuk dan batas wilayah masing-masing county.


e. Mengecek Geometri Data

Untuk mengetahui jenis geometri yang digunakan:

st_geometry_type(d)
##   [1] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##   [6] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [11] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [16] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [21] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [26] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [31] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [36] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [41] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [46] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [51] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [56] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [61] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [66] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [71] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [76] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [81] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [86] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [91] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
##  [96] MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON MULTIPOLYGON
## 18 Levels: GEOMETRY POINT LINESTRING POLYGON MULTIPOINT ... TRIANGLE

Data nc menggunakan geometri berupa MULTIPOLYGON. Setiap polygon merepresentasikan satu county di North Carolina.

Kita juga dapat melihat sistem koordinat data:

st_crs(d)
## Coordinate Reference System:
##   User input: NAD27 
##   wkt:
## GEOGCRS["NAD27",
##     DATUM["North American Datum 1927",
##         ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
##             LENGTHUNIT["metre",1]]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433]],
##     CS[ellipsoidal,2],
##         AXIS["latitude",north,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433]],
##         AXIS["longitude",east,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433]],
##     ID["EPSG",4267]]

Dataset nc menggunakan sistem koordinat geografis NAD27 (EPSG:4267). Pembahasan mengenai CRS akan dijelaskan lebih lanjut pada bagian khusus mengenai Coordinate Reference System (CRS).


f. Visualisasi Batas Wilayah

Untuk melihat bentuk wilayah tanpa menampilkan nilai atribut tertentu, kita dapat menggunakan:

plot(st_geometry(d))

Visualisasi tersebut menunjukkan pembagian wilayah menjadi beberapa polygon.

Setiap polygon merupakan satu county yang menjadi unit pengamatan dalam dataset.


g. Visualisasi Berdasarkan Variabel SID74

Karena SID74 merupakan variabel yang menunjukkan jumlah kasus SIDS pada masing-masing county, kita dapat memvisualisasikan persebarannya pada peta.

Dengan menggunakan tmap, kita dapat membuat peta berdasarkan nilai SID74:

library(tmap)

mapview(d, zcol = "SID74")

Pada peta tersebut, warna digunakan untuk menunjukkan perbedaan nilai SID74 antarwilayah.

Wilayah dengan warna yang berbeda menunjukkan jumlah kasus SIDS yang berbeda.

Alternatif lain menggunakan fungsi plot():

plot(d["SID74"])

Fungsi tersebut menghasilkan peta berdasarkan nilai variabel SID74.


3 Data Geostatistik (Geostatistical Data)

a. Pengertian Data Geostatistik

Data geostatistik merupakan data spasial yang diperoleh dari pengukuran suatu fenomena pada lokasi-lokasi tertentu, di mana nilai fenomena tersebut dianggap dapat berubah secara kontinu dalam ruang.

Dengan demikian, selain mengetahui nilai suatu variabel, kita juga memperhatikan lokasi tempat nilai tersebut diukur.

Secara sederhana:

Lokasi pengukuran + nilai pengukuran → data geostatistik

Contoh fenomena yang dapat diamati menggunakan data geostatistik antara lain:

  • kandungan unsur dalam tanah;
  • suhu;
  • curah hujan;
  • kadar pencemaran;
  • kandungan mineral; dan
  • karakteristik lingkungan lainnya.

Salah satu karakteristik penting data geostatistik adalah bahwa jarak dan posisi antar lokasi pengamatan menjadi informasi yang penting.


b. Contoh Dataset: meuse

Pada praktikum ini, data geostatistik akan diperkenalkan menggunakan dataset meuse.

Dataset meuse berisi lokasi pengambilan sampel dan konsentrasi beberapa logam berat pada tanah di daerah dataran banjir Sungai Meuse, dekat Stein, Belanda. Pengukuran dilakukan pada sejumlah lokasi dengan koordinat spasial tertentu.

Beberapa variabel yang tersedia antara lain:

Variabel Keterangan
x Koordinat X lokasi pengamatan
y Koordinat Y lokasi pengamatan
cadmium Konsentrasi kadmium
copper Konsentrasi tembaga
lead Konsentrasi timbal
zinc Konsentrasi seng
elev Elevasi relatif
dist Jarak relatif terhadap Sungai Meuse
soil Jenis tanah
landuse Penggunaan lahan

Dataset meuse memiliki 155 lokasi pengamatan dan digunakan secara luas sebagai contoh untuk analisis geostatistik.


c. Import Dataset

Dataset meuse tersedia melalui package sp.

library(sp)

data(meuse)

Setelah dataset dipanggil, kita dapat melihat objek tersebut:

meuse
##          x      y cadmium copper lead zinc   elev       dist   om ffreq soil
## 1   181072 333611    11.7     85  299 1022  7.909 0.00135803 13.6     1    1
## 2   181025 333558     8.6     81  277 1141  6.983 0.01222430 14.0     1    1
## 3   181165 333537     6.5     68  199  640  7.800 0.10302900 13.0     1    1
## 4   181298 333484     2.6     81  116  257  7.655 0.19009400  8.0     1    2
## 5   181307 333330     2.8     48  117  269  7.480 0.27709000  8.7     1    2
## 6   181390 333260     3.0     61  137  281  7.791 0.36406700  7.8     1    2
## 7   181165 333370     3.2     31  132  346  8.217 0.19009400  9.2     1    2
## 8   181027 333363     2.8     29  150  406  8.490 0.09215160  9.5     1    1
## 9   181060 333231     2.4     37  133  347  8.668 0.18461400 10.6     1    1
## 10  181232 333168     1.6     24   80  183  9.049 0.30970200  6.3     1    2
## 11  181191 333115     1.4     25   86  189  9.015 0.31511600  6.4     1    2
## 12  181032 333031     1.8     25   97  251  9.073 0.22812300  9.0     1    1
## 13  180874 333339    11.2     93  285 1096  7.320 0.00000000 15.4     1    1
## 14  180969 333252     2.5     31  183  504  8.815 0.11393200  8.4     1    1
## 15  181011 333161     2.0     27  130  326  8.937 0.16833600  9.1     1    1
## 16  180830 333246     9.5     86  240 1032  7.702 0.00000000 16.2     1    1
## 17  180763 333104     7.0     74  133  606  7.160 0.01222430 16.0     1    1
## 18  180694 332972     7.1     69  148  711  7.100 0.01222430 16.0     1    1
## 19  180625 332847     8.7     69  207  735  7.020 0.00000000 13.7     1    1
## 20  180555 332707    12.9     95  284 1052  6.860 0.00000000 14.8     1    1
## 21  180642 332708     5.5     53  194  673  8.908 0.07034680 10.2     1    1
## 22  180704 332717     2.8     35  123  402  8.990 0.09751360  7.2     1    1
## 23  180704 332664     2.9     35  110  343  8.830 0.11393200  7.2     1    1
## 24  181153 332925     1.7     24   85  218  9.020 0.34232100  7.0     1    2
## 25  181147 332823     1.4     26   75  200  8.976 0.38580400  6.9     1    2
## 26  181167 332778     1.5     22   76  194  8.973 0.42928900  6.3     1    2
## 27  181008 332777     1.3     27   73  207  8.507 0.31511600  5.6     1    2
## 28  180973 332687     1.3     24   67  180  8.743 0.32057400  4.4     1    2
## 29  180916 332753     1.8     22   87  240  8.973 0.24986300  5.3     1    2
## 30  181352 332946     1.5     21   65  180  9.043 0.48906400  4.8     1    2
## 31  181133 332570     1.3     29   78  208  8.688 0.47277800  2.6     1    2
## 32  180878 332489     1.3     21   64  198  8.727 0.28795700  1.0     1    2
## 33  180829 332450     2.1     27   77  250  8.328 0.27162200  2.4     1    2
## 34  180954 332399     1.2     26   80  192  7.971 0.38580700  1.9     1    2
## 35  180956 332318     1.6     27   82  213  7.809 0.41841700  3.1     1    2
## 37  180710 332330     3.0     32   97  321  6.986 0.24447400  1.6     1    2
## 38  180632 332445     5.8     50  166  569  7.756 0.13570900  3.5     1    2
## 39  180530 332538     7.9     67  217  833  7.784 0.04849650  8.1     1    1
## 40  180478 332578     8.1     77  219  906  7.000 0.00000000  7.9     1    1
## 41  180383 332476    14.1    108  405 1454  6.920 0.00135803  9.5     1    1
## 42  180494 332330     2.4     32  102  298  7.516 0.13570900  1.4     1    2
## 43  180561 332193     1.2     21   48  167  8.180 0.26622000   NA     1    2
## 44  180451 332175     1.7     22   65  176  8.694 0.21184300   NA     1    2
## 45  180410 332031     1.3     21   62  258  9.280 0.32057200  2.0     1    2
## 46  180355 332299     4.2     51  281  746  7.940 0.08122200  5.1     1    2
## 47  180292 332157     4.3     50  294  746  6.360 0.19008600  5.3     1    2
## 48  180283 332014     3.1     38  211  464  7.780 0.28794100  4.5     1    2
## 49  180282 331861     1.7     26  135  365  8.180 0.42382600  4.9     1    2
## 50  180270 331707     1.7     24  112  282  9.420 0.55428900  4.5     1    2
## 51  180199 331591     2.1     32  162  375  8.867 0.60322500  5.5     1    2
## 52  180135 331552     1.7     24   94  222  8.292 0.61407100  3.4     1    2
## 53  180237 332351     8.2     47  191  812  8.060 0.00135803 11.1     1    1
## 54  180103 332297    17.0    128  405 1548  7.980 0.00000000 12.3     1    1
## 55  179973 332255    12.0    117  654 1839  7.900 0.00543210 16.5     1    1
## 56  179826 332217     9.4    104  482 1528  7.740 0.00543210 13.9     1    1
## 57  179687 332161     8.2     76  276  933  7.552 0.00543210  8.1     1    1
## 58  179792 332035     2.6     36  180  432  7.760 0.14657800  3.1     1    1
## 59  179902 332113     3.5     34  207  550  6.740 0.13568400  5.8     1    1
## 60  180100 332213    10.9     90  541 1571  6.680 0.07033330 10.2     1    1
## 61  179604 332059     7.3     80  310 1190  7.400 0.04848310 12.0     1    1
## 62  179526 331936     9.4     78  210  907  7.440 0.00543210 14.1     1    1
## 63  179495 331770     8.3     77  158  761  7.360 0.00543210 14.5     1    1
## 64  179489 331633     7.0     65  141  659  7.200 0.03166630 14.8     1    1
## 65  179414 331494     6.8     66  144  643  7.220 0.01222430 13.3     1    1
## 66  179334 331366     7.4     72  181  801  7.360 0.01222430 15.2     1    1
## 67  179255 331264     6.6     75  173  784  5.180 0.03733950 11.4     1    1
## 69  179470 331125     7.8     75  399 1060  5.800 0.21184600  9.0     1    1
## 75  179692 330933     0.7     22   45  119  7.640 0.45103700  3.6     1    1
## 76  179852 330801     3.4     55  325  778  6.320 0.57587700  6.9     1    1
## 79  179140 330955     3.9     47  268  703  5.760 0.07568690  7.0     1    1
## 80  179128 330867     3.5     46  252  676  6.480 0.12481000  6.2     1    1
## 81  179065 330864     4.7     55  315  793  6.480 0.10302400  6.5     1    1
## 82  179007 330727     3.9     49  260  685  6.320 0.15746900  5.7     1    1
## 83  179110 330758     3.1     39  237  593  6.320 0.20097600  7.0     1    1
## 84  179032 330645     2.9     45  228  549  6.160 0.20097600  7.3     1    1
## 85  179095 330636     3.9     48  241  680  6.560 0.26622000  8.2     1    1
## 86  179058 330510     2.7     36  201  539  6.900 0.29883500  4.3     1    1
## 87  178810 330666     2.5     36  204  560  7.540 0.08122470  4.4     1    1
## 88  178912 330779     5.6     68  429 1136  6.420 0.07035500  8.2     1    1
## 89  178981 330924     9.4     88  462 1383  6.280 0.01222430  8.5     1    1
## 90  179076 331005    10.8     85  333 1161  6.340 0.00000000  9.6     1    1
## 123 180151 330353    18.1     76  464 1672  7.307 0.05377230 17.0     1    1
## 160 179211 331175     6.3     63  159  765  5.700 0.05936620 12.8     1    1
## 163 181118 333214     2.1     32  116  279  7.720 0.21184300  5.9     1    2
## 70  179474 331304     1.8     25   81  241  7.932 0.12481000  2.9     2    2
## 71  179559 331423     2.2     27  131  317  7.820 0.12481000  4.5     2    1
## 91  179022 330873     2.8     36  216  545  8.575 0.09215160 10.7     2    1
## 92  178953 330742     2.4     41  145  505  8.536 0.11394100  9.4     2    1
## 93  178875 330516     2.6     33  163  420  8.504 0.17921600  9.0     2    1
## 94  178803 330349     1.8     27  129  332  8.659 0.23359600  7.0     2    1
## 95  179029 330394     2.0     38  148  400  7.633 0.33686100  6.5     2    1
## 96  178605 330406     2.7     37  214  553  8.538 0.07035500  9.4     2    1
## 97  178701 330557     2.7     34  226  577  7.680 0.05936620 10.2     2    1
## 98  179547 330245     0.9     19   54  155  7.564 0.25534100  6.4     2    1
## 99  179301 330179     0.9     22   70  224  7.760 0.36406700  7.6     2    1
## 100 179405 330567     0.4     26   73  180  7.653 0.42929500  7.0     2    1
## 101 179462 330766     0.8     25   87  226  7.951 0.38032800  5.6     2    1
## 102 179293 330797     0.4     22   76  186  8.176 0.24987400  6.5     2    1
## 103 179180 330710     0.4     24   81  198  8.468 0.26621200  6.6     2    1
## 104 179206 330398     0.4     18   68  187  8.410 0.45103700  5.9     2    1
## 105 179618 330458     0.8     23   66  199  7.610 0.30971000  6.5     2    1
## 106 179782 330540     0.4     22   49  157  7.792 0.29335900  6.4     2    1
## 108 179980 330773     0.4     23   63  203  8.760 0.53235100  7.2     2    2
## 109 180067 331185     0.4     23   48  143  9.879 0.61951300  6.6     2    3
## 110 180162 331387     0.2     23   51  136  9.097 0.68472500  4.3     2    2
## 111 180451 331473     0.2     18   50  117  9.095 0.80974200  5.3     2    3
## 112 180328 331158     0.4     20   39  113  9.717 0.88038900  4.1     2    3
## 113 180276 330963     0.2     22   48  130  9.924 0.74959100  6.1     2    3
## 114 180114 330803     0.2     27   64  192  9.404 0.57575200  7.5     2    3
## 115 179881 330912     0.4     25   84  240 10.520 0.58148400  8.8     2    3
## 116 179774 330921     0.2     30   67  221  8.840 0.49452000  5.7     2    3
## 117 179657 331150     0.2     23   49  140  8.472 0.32058000  6.1     2    3
## 118 179731 331245     0.2     24   48  128  9.634 0.33685100  7.1     2    3
## 119 179717 331441     0.2     21   56  166  9.206 0.24985200  4.1     2    2
## 120 179446 331422     0.2     24   65  191  8.470 0.07568690  6.0     2    1
## 121 179524 331565     0.2     21   84  232  8.463 0.07568690  6.6     2    1
## 122 179644 331730     0.2     23   75  203  9.691 0.16285300  6.8     2    1
## 124 180321 330366     3.7     53  250  722  8.704 0.09749160  9.1     2    2
## 125 180162 331837     0.2     33   81  210  9.420 0.44014200  5.9     2    2
## 126 180029 331720     0.2     22   72  198  9.573 0.46190000  4.9     2    2
## 127 179797 331919     0.2     23   86  139  9.555 0.22270100  7.1     2    1
## 128 179642 331955     0.2     25   94  253  8.779 0.10302400  8.1     2    1
## 129 179849 332142     1.2     30  244  703  8.540 0.09213530  8.3     2    1
## 130 180265 332297     2.4     47  297  832  8.809 0.04848840 10.0     2    1
## 131 180107 332101     0.2     31   96  262  9.523 0.16833100  5.9     2    1
## 132 180462 331947     0.2     20   56  142  9.811 0.38581000  5.0     2    2
## 133 180478 331822     0.2     16   49  119  9.604 0.48906400  4.5     2    2
## 134 180347 331700     0.2     17   50  152  9.732 0.57602000  5.4     2    2
## 135 180862 333116     0.4     26  148  415  9.518 0.08121940  2.3     2    1
## 136 180700 332882     1.6     34  162  474  9.720 0.03733690  7.5     2    1
## 161 180201 331160     0.8     18   37  126  9.036 0.77169800  4.6     2    3
## 162 180173 331923     1.2     23   80  210  9.528 0.33682900  5.8     2    2
## 137 180923 332874     0.2     20   80  220  9.155 0.22812300  4.4     3    1
## 138 180467 331694     0.2     14   49  133 10.080 0.59776100  4.4     3    2
## 140 179917 331325     0.8     46   42  141  9.970 0.44558000  4.5     3    2
## 141 179822 331242     1.0     29   48  158 10.136 0.39667500  5.2     3    2
## 142 179991 331069     0.8     19   41  129 10.320 0.58147800  4.6     3    3
## 143 179120 330578     1.2     31   73  206  9.041 0.28796600  6.9     3    1
## 144 179034 330561     2.0     27  146  451  7.860 0.23359600  7.0     3    1
## 145 179085 330433     1.5     29   95  296  8.741 0.36406700  5.4     3    1
## 146 179236 330046     1.1     22   72  189  7.822 0.33145400  6.2     3    1
## 147 179456 330072     0.8     20   51  154  7.780 0.21184600  5.0     3    1
## 148 179550 329940     0.8     20   54  169  8.121 0.10302900  5.1     3    1
## 149 179445 329807     2.1     29  136  403  8.231 0.07035500  8.1     3    1
## 150 179337 329870     2.5     38  170  471  8.351 0.14657600  8.0     3    1
## 151 179245 329714     3.8     39  179  612  7.300 0.05377230  8.8     3    1
## 152 179024 329733     3.2     35  200  601  7.536 0.11928600  9.3     3    1
## 153 178786 329822     3.1     42  258  783  7.706 0.09214350  8.4     3    1
## 154 179135 329890     1.5     24   93  258  8.070 0.24986300  7.7     3    1
## 155 179030 330082     1.2     20   68  214  8.226 0.37494000  5.7     3    1
## 156 179184 330182     0.8     20   49  166  8.128 0.42383700  4.7     3    1
## 157 179085 330292     3.1     39  173  496  8.577 0.42383700  9.1     3    1
## 158 178875 330311     2.1     31  119  342  8.429 0.27709000  6.5     3    1
## 159 179466 330381     0.8     21   51  162  9.406 0.35860600  5.7     3    1
## 164 180627 330190     2.7     27  124  375  8.261 0.01222430  5.5     3    3
##     lime landuse dist.m
## 1      1      Ah     50
## 2      1      Ah     30
## 3      1      Ah    150
## 4      0      Ga    270
## 5      0      Ah    380
## 6      0      Ga    470
## 7      0      Ah    240
## 8      0      Ab    120
## 9      0      Ab    240
## 10     0       W    420
## 11     0      Fh    400
## 12     0      Ag    300
## 13     1       W     20
## 14     0      Ah    130
## 15     0      Ah    220
## 16     1       W     10
## 17     1       W     10
## 18     1       W     10
## 19     1       W     10
## 20     1    <NA>     10
## 21     1      Am     80
## 22     1      Am    140
## 23     1      Ag    160
## 24     0      Ah    440
## 25     0       W    490
## 26     0       W    530
## 27     0      Ab    400
## 28     0      Ag    400
## 29     0      Ah    330
## 30     0      Ag    630
## 31     0       B    570
## 32     0      Ag    390
## 33     0      Ah    360
## 34     0       B    500
## 35     0       B    550
## 37     0      Ab    340
## 38     0      Ab    210
## 39     1      Am     60
## 40     1       W     10
## 41     1       W     20
## 42     0      Am    170
## 43     0      Ga    320
## 44     0       W    260
## 45     0      Ah    360
## 46     0      Ah    100
## 47     0      Am    200
## 48     0      Ah    320
## 49     0      Ah    480
## 50     0      Bw    660
## 51     0      Bw    690
## 52     0      Ab    710
## 53     1      Ah     10
## 54     1       W     10
## 55     1       W     10
## 56     1       W     10
## 57     1       W     20
## 58     0      Fw    200
## 59     0      Fw    140
## 60     1      Fw     70
## 61     1       W     20
## 62     1       W     10
## 63     1      Fw     10
## 64     1       W     20
## 65     1      Ah     10
## 66     1       W     20
## 67     1       W     20
## 69     0      Ah    270
## 75     1      Fw    560
## 76     0      Bw    750
## 79     1      Ab     80
## 80     1      Ab    130
## 81     0       W    110
## 82     0       W    200
## 83     1      Ah    260
## 84     0       W    270
## 85     0       W    320
## 86     0      Ah    360
## 87     1      Am     80
## 88     1       W    100
## 89     1       W     70
## 90     1       W     20
## 123    1       W     50
## 160    1       W     80
## 163    0       W    290
## 70     1      Ah    160
## 71     0       W    160
## 91     0       W    140
## 92     0       W    150
## 93     0      Ah    220
## 94     0      Am    280
## 95     1      Am    450
## 96     1      Am     70
## 97     0      Am     70
## 98     0       W    340
## 99     0       W    470
## 100    0      Am    630
## 101    0      Am    460
## 102    0      Am    320
## 103    0      Ah    320
## 104    0       W    540
## 105    0       W    420
## 106    0     SPO    380
## 108    0       W    500
## 109    0      Am    760
## 110    0      Ah    750
## 111    0      Fw   1000
## 112    0      Ah    860
## 113    0      Ah    680
## 114    0      Fw    500
## 115    0     STA    650
## 116    0     DEN    630
## 117    0      Fw    410
## 118    0      Ah    390
## 119    0      Ah    310
## 120    0      Ah     70
## 121    0       W     70
## 122    1     STA    150
## 124    0      Bw     80
## 125    0      Ah    450
## 126    0      Aa    530
## 127    0       W    240
## 128    1      Tv     70
## 129    0      Fw     70
## 130    0      Ah     60
## 131    0      Ah    190
## 132    0      Ah    450
## 133    0      Am    550
## 134    0      Am    650
## 135    0      Am    100
## 136    0       W    170
## 161    1      Ah    860
## 162    0       W    410
## 137    0      Aa    290
## 138    0      Am    680
## 140    0      Am    540
## 141    0      Am    480
## 142    0       W    720
## 143    0       W    380
## 144    0       W    310
## 145    0      Ah    430
## 146    0      Ah    370
## 147    0      Fw    290
## 148    0       W    150
## 149    0      Bw     70
## 150    0      Bw    220
## 151    0       W     80
## 152    0       W    120
## 153    0      Ah    120
## 154    0      Am    260
## 155    0      Ah    440
## 156    0      Am    540
## 157    0      Ah    520
## 158    0      Ah    350
## 159    0       W    460
## 164    0       W     40

Karena meuse pada dasarnya berupa data frame yang memiliki koordinat dan atribut, kita dapat melihat struktur datanya menggunakan:

str(meuse)
## 'data.frame':    155 obs. of  14 variables:
##  $ x      : num  181072 181025 181165 181298 181307 ...
##  $ y      : num  333611 333558 333537 333484 333330 ...
##  $ cadmium: num  11.7 8.6 6.5 2.6 2.8 3 3.2 2.8 2.4 1.6 ...
##  $ copper : num  85 81 68 81 48 61 31 29 37 24 ...
##  $ lead   : num  299 277 199 116 117 137 132 150 133 80 ...
##  $ zinc   : num  1022 1141 640 257 269 ...
##  $ elev   : num  7.91 6.98 7.8 7.66 7.48 ...
##  $ dist   : num  0.00136 0.01222 0.10303 0.19009 0.27709 ...
##  $ om     : num  13.6 14 13 8 8.7 7.8 9.2 9.5 10.6 6.3 ...
##  $ ffreq  : Factor w/ 3 levels "1","2","3": 1 1 1 1 1 1 1 1 1 1 ...
##  $ soil   : Factor w/ 3 levels "1","2","3": 1 1 1 2 2 2 2 1 1 2 ...
##  $ lime   : Factor w/ 2 levels "0","1": 2 2 2 1 1 1 1 1 1 1 ...
##  $ landuse: Factor w/ 15 levels "Aa","Ab","Ag",..: 4 4 4 11 4 11 4 2 2 15 ...
##  $ dist.m : num  50 30 150 270 380 470 240 120 240 420 ...

d. Eksplorasi Data

Untuk melihat beberapa baris pertama:

head(meuse)
##        x      y cadmium copper lead zinc  elev       dist   om ffreq soil lime
## 1 181072 333611    11.7     85  299 1022 7.909 0.00135803 13.6     1    1    1
## 2 181025 333558     8.6     81  277 1141 6.983 0.01222430 14.0     1    1    1
## 3 181165 333537     6.5     68  199  640 7.800 0.10302900 13.0     1    1    1
## 4 181298 333484     2.6     81  116  257 7.655 0.19009400  8.0     1    2    0
## 5 181307 333330     2.8     48  117  269 7.480 0.27709000  8.7     1    2    0
## 6 181390 333260     3.0     61  137  281 7.791 0.36406700  7.8     1    2    0
##   landuse dist.m
## 1      Ah     50
## 2      Ah     30
## 3      Ah    150
## 4      Ga    270
## 5      Ah    380
## 6      Ga    470

Untuk melihat ukuran data:

dim(meuse)
## [1] 155  14

Untuk melihat nama variabel:

names(meuse)
##  [1] "x"       "y"       "cadmium" "copper"  "lead"    "zinc"    "elev"   
##  [8] "dist"    "om"      "ffreq"   "soil"    "lime"    "landuse" "dist.m"

Untuk mendapatkan ringkasan statistik:

summary(meuse)
##        x                y             cadmium           copper      
##  Min.   :178605   Min.   :329714   Min.   : 0.200   Min.   : 14.00  
##  1st Qu.:179371   1st Qu.:330762   1st Qu.: 0.800   1st Qu.: 23.00  
##  Median :179991   Median :331633   Median : 2.100   Median : 31.00  
##  Mean   :180005   Mean   :331635   Mean   : 3.246   Mean   : 40.32  
##  3rd Qu.:180630   3rd Qu.:332463   3rd Qu.: 3.850   3rd Qu.: 49.50  
##  Max.   :181390   Max.   :333611   Max.   :18.100   Max.   :128.00  
##                                                                     
##       lead            zinc             elev             dist        
##  Min.   : 37.0   Min.   : 113.0   Min.   : 5.180   Min.   :0.00000  
##  1st Qu.: 72.5   1st Qu.: 198.0   1st Qu.: 7.546   1st Qu.:0.07569  
##  Median :123.0   Median : 326.0   Median : 8.180   Median :0.21184  
##  Mean   :153.4   Mean   : 469.7   Mean   : 8.165   Mean   :0.24002  
##  3rd Qu.:207.0   3rd Qu.: 674.5   3rd Qu.: 8.955   3rd Qu.:0.36407  
##  Max.   :654.0   Max.   :1839.0   Max.   :10.520   Max.   :0.88039  
##                                                                     
##        om         ffreq  soil   lime       landuse       dist.m      
##  Min.   : 1.000   1:84   1:97   0:111   W      :50   Min.   :  10.0  
##  1st Qu.: 5.300   2:48   2:46   1: 44   Ah     :39   1st Qu.:  80.0  
##  Median : 6.900   3:23   3:12           Am     :22   Median : 270.0  
##  Mean   : 7.478                         Fw     :10   Mean   : 290.3  
##  3rd Qu.: 9.000                         Ab     : 8   3rd Qu.: 450.0  
##  Max.   :17.000                         (Other):25   Max.   :1000.0  
##  NA's   :2                              NA's   : 1

Dari hasil eksplorasi tersebut, dapat diketahui bahwa setiap baris mewakili satu lokasi pengamatan dan memiliki nilai pengukuran untuk beberapa variabel lingkungan.


e. Mengenali Koordinat

Pada dataset meuse, lokasi pengamatan ditunjukkan oleh dua variabel:

  • x → koordinat X;
  • y → koordinat Y.

Kita dapat melihat koordinat tersebut menggunakan:

head(meuse[, c("x", "y")])
##        x      y
## 1 181072 333611
## 2 181025 333558
## 3 181165 333537
## 4 181298 333484
## 5 181307 333330
## 6 181390 333260

Koordinat x dan y pada dataset meuse menggunakan satuan meter dalam sistem koordinat nasional Belanda (RD/Rijksdriehoek).

Berbeda dengan data hotspot sebelumnya yang menggunakan longitude dan latitude, koordinat x dan y pada dataset ini merupakan koordinat terproyeksi.

Pembahasan mengenai sistem koordinat geografis dan terproyeksi akan dijelaskan lebih lanjut pada bagian CRS.


f. Mengubah Data Menjadi Objek Spasial

Data meuse awalnya berupa data frame yang memiliki kolom koordinat. Agar dapat diperlakukan sebagai data spasial modern menggunakan sf, kita dapat mengubahnya menjadi objek sf.

library(sf)

meuse_sf <- st_as_sf(
  meuse,
  coords = c("x", "y"),
  crs = 28992
)

Pada kode tersebut:

  • x digunakan sebagai koordinat X;
  • y digunakan sebagai koordinat Y; dan
  • crs = 28992 menunjukkan sistem koordinat RD New / Amersfoort yang digunakan untuk koordinat RD Belanda.

Kita dapat memeriksa hasilnya:

meuse_sf
## Simple feature collection with 155 features and 12 fields
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: 178605 ymin: 329714 xmax: 181390 ymax: 333611
## Projected CRS: Amersfoort / RD New
## First 10 features:
##    cadmium copper lead zinc  elev       dist   om ffreq soil lime landuse
## 1     11.7     85  299 1022 7.909 0.00135803 13.6     1    1    1      Ah
## 2      8.6     81  277 1141 6.983 0.01222430 14.0     1    1    1      Ah
## 3      6.5     68  199  640 7.800 0.10302900 13.0     1    1    1      Ah
## 4      2.6     81  116  257 7.655 0.19009400  8.0     1    2    0      Ga
## 5      2.8     48  117  269 7.480 0.27709000  8.7     1    2    0      Ah
## 6      3.0     61  137  281 7.791 0.36406700  7.8     1    2    0      Ga
## 7      3.2     31  132  346 8.217 0.19009400  9.2     1    2    0      Ah
## 8      2.8     29  150  406 8.490 0.09215160  9.5     1    1    0      Ab
## 9      2.4     37  133  347 8.668 0.18461400 10.6     1    1    0      Ab
## 10     1.6     24   80  183 9.049 0.30970200  6.3     1    2    0       W
##    dist.m              geometry
## 1      50 POINT (181072 333611)
## 2      30 POINT (181025 333558)
## 3     150 POINT (181165 333537)
## 4     270 POINT (181298 333484)
## 5     380 POINT (181307 333330)
## 6     470 POINT (181390 333260)
## 7     240 POINT (181165 333370)
## 8     120 POINT (181027 333363)
## 9     240 POINT (181060 333231)
## 10    420 POINT (181232 333168)

Kemudian:

st_geometry(meuse_sf)
## Geometry set for 155 features 
## Geometry type: POINT
## Dimension:     XY
## Bounding box:  xmin: 178605 ymin: 329714 xmax: 181390 ymax: 333611
## Projected CRS: Amersfoort / RD New
## First 5 geometries:
## POINT (181072 333611)
## POINT (181025 333558)
## POINT (181165 333537)
## POINT (181298 333484)
## POINT (181307 333330)

dan:

st_crs(meuse_sf)
## Coordinate Reference System:
##   User input: EPSG:28992 
##   wkt:
## PROJCRS["Amersfoort / RD New",
##     BASEGEOGCRS["Amersfoort",
##         DATUM["Amersfoort",
##             ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
##                 LENGTHUNIT["metre",1]]],
##         PRIMEM["Greenwich",0,
##             ANGLEUNIT["degree",0.0174532925199433]],
##         ID["EPSG",4289]],
##     CONVERSION["RD New",
##         METHOD["Oblique Stereographic",
##             ID["EPSG",9809]],
##         PARAMETER["Latitude of natural origin",52.1561605555556,
##             ANGLEUNIT["degree",0.0174532925199433],
##             ID["EPSG",8801]],
##         PARAMETER["Longitude of natural origin",5.38763888888889,
##             ANGLEUNIT["degree",0.0174532925199433],
##             ID["EPSG",8802]],
##         PARAMETER["Scale factor at natural origin",0.9999079,
##             SCALEUNIT["unity",1],
##             ID["EPSG",8805]],
##         PARAMETER["False easting",155000,
##             LENGTHUNIT["metre",1],
##             ID["EPSG",8806]],
##         PARAMETER["False northing",463000,
##             LENGTHUNIT["metre",1],
##             ID["EPSG",8807]]],
##     CS[Cartesian,2],
##         AXIS["easting (X)",east,
##             ORDER[1],
##             LENGTHUNIT["metre",1]],
##         AXIS["northing (Y)",north,
##             ORDER[2],
##             LENGTHUNIT["metre",1]],
##     USAGE[
##         SCOPE["Engineering survey, topographic mapping."],
##         AREA["Netherlands - onshore, including Waddenzee, Dutch Wadden Islands and 12-mile offshore coastal zone."],
##         BBOX[50.75,3.2,53.7,7.22]],
##     ID["EPSG",28992]]

g. Visualisasi Lokasi Pengamatan

Untuk melihat persebaran lokasi pengamatan, kita dapat menggunakan:

ggplot(meuse_sf) +
  geom_sf()

Peta tersebut menunjukkan lokasi 155 titik pengamatan pada wilayah penelitian.

Setiap titik menunjukkan lokasi tempat sampel tanah dikumpulkan.


h. Visualisasi Nilai Variabel

Selain melihat lokasi pengamatan, kita dapat melihat nilai suatu variabel pada setiap lokasi.

Sebagai contoh, kita gunakan variabel zinc, yaitu konsentrasi seng pada tanah.

ggplot(meuse_sf) +
  geom_sf(aes(color = zinc))

Pada peta tersebut, warna titik menunjukkan perbedaan konsentrasi zinc pada setiap lokasi pengamatan.

Kita juga dapat menggunakan ukuran titik untuk membantu menunjukkan perbedaan nilai:

ggplot(meuse_sf) +
  geom_sf(aes(size = zinc))

Dengan demikian, kita tidak hanya mengetahui di mana lokasi pengamatan, tetapi juga mengetahui berapa nilai variabel yang diamati pada lokasi tersebut.


D. Pengolahan Data Spasial

Pengolahan data spasial merupakan proses untuk membaca, mengelola, memvisualisasikan, dan menyimpan kembali data yang memiliki informasi lokasi.

Dalam Sistem Informasi Geografis (GIS), data spasial secara umum direpresentasikan dalam dua bentuk utama, yaitu:

  1. data vektor; dan
  2. data raster.

Pada bagian ini akan dilakukan beberapa operasi dasar GIS menggunakan R, meliputi proses import, eksplorasi, visualisasi, dan ekspor data spasial.

1. Operasi GIS pada Data Vektor

Data spasial vektor merepresentasikan fenomena di permukaan bumi dengan menggunakan titik (point), garis (line), dan poligon (polygon).

  • Titik digunakan untuk objek yang hanya memiliki posisi, misalnya lokasi sumur, pohon, atau rumah sakit.

  • Garis digunakan untuk objek yang memiliki panjang, misalnya jalan, sungai, atau jaringan listrik.

  • Poligon digunakan untuk objek yang memiliki luas, misalnya batas desa, area hutan, atau danau.

data(meuse)
meuse <- st_as_sf(meuse, coords = c("x", "y"), crs = 28992)
coord <- st_coordinates(meuse)
plot(meuse[1], main = "points")

line <- SpatialLines(list(Lines(list(Line(coord)), "line1")))
plot(line, main = "lines")

data("meuse.riv")
meuse.lst <- list(Polygons(list(Polygon(meuse.riv)), "meuse.riv"))
meuse.pol <- SpatialPolygons(meuse.lst)

plot(meuse.pol, col = "grey", main ="polygons")

2. Raster

Data spasial raster merepresentasikan permukaan bumi dalam bentuk grid (pixel), di mana setiap sel memiliki nilai tertentu. Raster umumnya digunakan untuk data kontinu, seperti citra satelit, foto udara, model elevasi digital (DEM), nilai NDVI, suhu, atau curah hujan.

  • Resolusi raster ditentukan oleh ukuran pixel, semakin kecil pixel maka detail yang ditampilkan semakin tinggi.

  • Data raster cocok digunakan untuk analisis spasial berbasis permukaan, misalnya klasifikasi tutupan lahan atau interpolasi data geostatistik.

pathraster <- system.file("ex/elev.tif", package = "terra")
r <- terra::rast(pathraster)
r
## class       : SpatRaster
## size        : 90, 95, 1  (nrow, ncol, nlyr)
## resolution  : 0.008333333, 0.008333333  (x, y)
## extent      : 5.741667, 6.533333, 49.44167, 50.19167  (xmin, xmax, ymin, ymax)
## coord. ref. : lon/lat WGS 84 (EPSG:4326)
## source      : elev.tif
## name        : elevation
## min value   :       141
## max value   :       547
plot(r)

E. Coordinate Reference System

Coordinate Reference System (CRS) adalah sistem acuan yang digunakan untuk menentukan posisi titik di permukaan bumi. CRS menjelaskan bagaimana koordinat (x, y) atau (longitude, latitude) diproyeksikan ke dalam peta sehingga posisi geografis dapat direpresentasikan dengan benar. Tanpa CRS, angka koordinat tidak memiliki makna karena kita tidak tahu apakah satuannya derajat, meter, atau dari acuan mana dihitung.

1. Kode EPSG

EPSG adalah standar internasional berupa kode angka unik yang diberikan untuk masing-masing CRS. Dengan EPSG, kita bisa menyebut suatu sistem koordinat tanpa perlu menuliskan definisi panjangnya. Misalnya:

  • EPSG:4326 → WGS84 (koordinat lintang–bujur, dipakai GPS).

  • EPSG:32748 → UTM Zona 48S berbasis WGS84 (Indonesia bagian barat daya, satuan meter).

  • EPSG:28992 → Amersfoort / RD New (Belanda).

Dengan mengetahui kode EPSG, pengguna GIS atau R bisa dengan mudah menetapkan atau mengubah CRS pada data spasial.

st_crs("EPSG:4326")$Name
## [1] "WGS 84"
st_crs("EPSG:4326")$epsg
## [1] 4326

2. Transformasi CRS dengan sf dan terra

Dalam R, transformasi CRS dengan paket sf dan terra berarti mengubah sistem koordinat data spasial dari satu proyeksi ke proyeksi lain agar sesuai dengan kebutuhan analisis, pemetaan, atau integrasi data.

a. Untuk data Vektor

library(sf)
pathshp <- system.file("shape/nc.shp", package = "sf")
map <- st_read(pathshp, quiet = TRUE)

st_crs(map) # cek CRS untuk tau sistem koordinat apa yang dipakai data aslinya
## Coordinate Reference System:
##   User input: NAD27 
##   wkt:
## GEOGCRS["NAD27",
##     DATUM["North American Datum 1927",
##         ELLIPSOID["Clarke 1866",6378206.4,294.978698213898,
##             LENGTHUNIT["metre",1]]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433]],
##     CS[ellipsoidal,2],
##         AXIS["latitude",north,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433]],
##         AXIS["longitude",east,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433]],
##     ID["EPSG",4267]]
# Transform CRS
map2 <- st_transform(map, crs = "EPSG:4326")
st_crs(map2)
## Coordinate Reference System:
##   User input: EPSG:4326 
##   wkt:
## GEOGCRS["WGS 84",
##     ENSEMBLE["World Geodetic System 1984 ensemble",
##         MEMBER["World Geodetic System 1984 (Transit)"],
##         MEMBER["World Geodetic System 1984 (G730)"],
##         MEMBER["World Geodetic System 1984 (G873)"],
##         MEMBER["World Geodetic System 1984 (G1150)"],
##         MEMBER["World Geodetic System 1984 (G1674)"],
##         MEMBER["World Geodetic System 1984 (G1762)"],
##         MEMBER["World Geodetic System 1984 (G2139)"],
##         MEMBER["World Geodetic System 1984 (G2296)"],
##         ELLIPSOID["WGS 84",6378137,298.257223563,
##             LENGTHUNIT["metre",1]],
##         ENSEMBLEACCURACY[2.0]],
##     PRIMEM["Greenwich",0,
##         ANGLEUNIT["degree",0.0174532925199433]],
##     CS[ellipsoidal,2],
##         AXIS["geodetic latitude (Lat)",north,
##             ORDER[1],
##             ANGLEUNIT["degree",0.0174532925199433]],
##         AXIS["geodetic longitude (Lon)",east,
##             ORDER[2],
##             ANGLEUNIT["degree",0.0174532925199433]],
##     USAGE[
##         SCOPE["Horizontal component of 3D system."],
##         AREA["World."],
##         BBOX[-90,-180,90,180]],
##     ID["EPSG",4326]]

b. Untuk Data Raster

library(terra)
pathraster <- system.file("ex/elev.tif", package = "terra")
r <- rast(pathraster)
crs(r) # cek CRS dari raster untuk tau sistem koordinat aslinya.
## [1] "GEOGCRS[\"WGS 84\",\n    ENSEMBLE[\"World Geodetic System 1984 ensemble\",\n        MEMBER[\"World Geodetic System 1984 (Transit)\"],\n        MEMBER[\"World Geodetic System 1984 (G730)\"],\n        MEMBER[\"World Geodetic System 1984 (G873)\"],\n        MEMBER[\"World Geodetic System 1984 (G1150)\"],\n        MEMBER[\"World Geodetic System 1984 (G1674)\"],\n        MEMBER[\"World Geodetic System 1984 (G1762)\"],\n        MEMBER[\"World Geodetic System 1984 (G2139)\"],\n        MEMBER[\"World Geodetic System 1984 (G2296)\"],\n        ELLIPSOID[\"WGS 84\",6378137,298.257223563,\n            LENGTHUNIT[\"metre\",1]],\n        ENSEMBLEACCURACY[2.0]],\n    PRIMEM[\"Greenwich\",0,\n        ANGLEUNIT[\"degree\",0.0174532925199433]],\n    CS[ellipsoidal,2],\n        AXIS[\"geodetic latitude (Lat)\",north,\n            ORDER[1],\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n        AXIS[\"geodetic longitude (Lon)\",east,\n            ORDER[2],\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n    USAGE[\n        SCOPE[\"Horizontal component of 3D system.\"],\n        AREA[\"World.\"],\n        BBOX[-90,-180,90,180]],\n    ID[\"EPSG\",4326]]"

Raster ini menggunakan sistem koordinat WGS 84 (World Geodetic System 1984), sistem global yang paling umum dipakai.

# Transform CRS
r2 <- terra::project(r, "EPSG:2169")
crs(r2)
## [1] "PROJCRS[\"LUREF / Luxembourg TM\",\n    BASEGEOGCRS[\"LUREF\",\n        DATUM[\"Luxembourg Reference Frame\",\n            ELLIPSOID[\"International 1924\",6378388,297,\n                LENGTHUNIT[\"metre\",1]]],\n        PRIMEM[\"Greenwich\",0,\n            ANGLEUNIT[\"degree\",0.0174532925199433]],\n        ID[\"EPSG\",4181]],\n    CONVERSION[\"Luxembourg TM\",\n        METHOD[\"Transverse Mercator\",\n            ID[\"EPSG\",9807]],\n        PARAMETER[\"Latitude of natural origin\",49.8333333333333,\n            ANGLEUNIT[\"degree\",0.0174532925199433],\n            ID[\"EPSG\",8801]],\n        PARAMETER[\"Longitude of natural origin\",6.16666666666667,\n            ANGLEUNIT[\"degree\",0.0174532925199433],\n            ID[\"EPSG\",8802]],\n        PARAMETER[\"Scale factor at natural origin\",1,\n            SCALEUNIT[\"unity\",1],\n            ID[\"EPSG\",8805]],\n        PARAMETER[\"False easting\",80000,\n            LENGTHUNIT[\"metre\",1],\n            ID[\"EPSG\",8806]],\n        PARAMETER[\"False northing\",100000,\n            LENGTHUNIT[\"metre\",1],\n            ID[\"EPSG\",8807]]],\n    CS[Cartesian,2],\n        AXIS[\"northing (X)\",north,\n            ORDER[1],\n            LENGTHUNIT[\"metre\",1]],\n        AXIS[\"easting (Y)\",east,\n            ORDER[2],\n            LENGTHUNIT[\"metre\",1]],\n    USAGE[\n        SCOPE[\"Engineering survey, topographic mapping.\"],\n        AREA[\"Luxembourg.\"],\n        BBOX[49.44,5.73,50.19,6.53]],\n    ID[\"EPSG\",2169]]"

Melakukan transformasi CRS raster r ke CRS baru yaitu EPSG:2169 (Luxembourg 1930 / Gauss).