Anda di halaman 1dari 15

Agung Baruna Setiawan Noor, Graduate Student, KLI-SPs, IPB

Pengolahan Data Berformat


NetCDF Menggunakan Aplikasi

Source: http://geog.uoregon.edu/bartlein/courses/geog490/week04-netCDF.html, https://rpubs.com/alobo/vectorplot,


http://geog.uoregon.edu/bartlein/courses/geog490/week06-geospatial.html#spatial-data-and-geospatial-analyses-in-r
Sekilas Mengenai Format NetCDF
• NetCDF adalah format yang banyak digunakan untuk bertukar atau
mendistribusikan data-data iklim, di mana array data multidimensi
besar dihasilkan.
• Beberapa komponen file NetCDF
• Dimension names
• Dimension sizes
• Variables
• Global attributes

https://geoserver.geo-solutions.it/edu/en/_images/md1.png
Variable (2t)

Descriptor File Dimension Sizes &

NetCDF Dimension Names (lat, lon,


height, time)

Global attributes
Package yang Dibutuhkan

install.package(“ncdf4”)
install.package(“lattice”)

Jalankan package Pada Console R


library(“ncdf4”)
library(“lattice”)
1. Membaca File
• Unduh data .nc berikut
http://geog.uoregon.edu/GeogR/data/
raster/cru10min30_tmp.nc

• Membuka file .nc dengan perintah


sebagai berikut
nc = nc_open(filename =
“C:/Users/absen/Documents/cru10min30
_tmp.nc”)
2. Mengambil Variabel
Koordinat (lon, lat, time, tmp)
lat = ncvar_get(nc,”lat”)
lon = ncvar_get(nc,”lon”)
time = ncvar_get(nc,”time”)
tmp = ncvar_get(nc,”tmp”)
• Jika variable tmp dicetak, maka akan
muncul seperti gambar di samping
• Variabel tmp terdiri dari 3 dimensi
(kotak merah), yaitu longitude, latitude,
dan time dan bertipe array
• Keterangan: sebelum tanda koma ke-1
menunjukkan indeks longitude dan
koma ke-2 menunjukkan indeks latitude
3. Menampilkan Data

• Misalkan data yang ditampilkan


adalah suhu udara pada bulan Januari
untuk seluruh dunia
m = 1
tmp_slice = tmp[ , , m]
grid = expand.grid(lon = lon, lat =
lat)
interval_suhu = seq(-50,50,5)
levelplot(tmp_slice~lon*lat,data =
grid, at = interval_suhu, cuts =
length(interval_suhu), pretty = TRUE,
col.regions =
colorRampPalette(c('darkblue','blue','
yellow','orange','red','darkred’)),
main = “CRU CL 2.0 January 1961-1990“)
Bagaimana Memilih Wilayah Kajian Spesifik?
• Slide sebelumnya menjelaskan
bagaimana menampilkan suhu
udara klimatologi (1961-1990)
secara global.
• Cara ini lebih mudah dilakukan
pada GrADS, yaitu hanya dengan
mengetik perintah set lat dan
set lon.
• Cara yang dilakukan pada
pemrograman R adalah dengan
memilih indeks latitude dan
longitude pada suatu array.
Bagaimana Memilih Wilayah Kajian Spesifik?
• Ketika variabel lat/lon dicetak,
maka akan muncul respons pada
gambar di samping
• Misalkan ingin memilih wilayah
kajian Indonesia, berarti indeks
yang harus dipilih adalah 158-
193 (lat) dan 550-643 (lon)
Bagaimana Memilih Wilayah Kajian Spesifik?
Jadi untuk memilih wilayah
Indonesia (Mis. Januari),
Longitude
perintahnya adalah
Latitude
tmp_indo = tmp[550:643,158:193,1]

Waktu
1 = Januari,
2 = Februari, dst
Hasil
tmp_indo = tmp[550:643,158:193,1]

grid_indo = expand.grid(lon =
lon[550:643], lat = lat[158:193])

interval_suhu_indo = seq(15,30,0.2)

levelplot(tmp_indo~lon*lat, data =
grid_indo, at = interval_suhu_indo,
cuts = length(interval_suhu_indo),
pretty = TRUE, col.regions =
colorRampPalette(c('darkblue','blue'
,'yellow','orange','red','darkred’))
, main = “CRU CL 2.0 January
Climatology (1961-1990) Indonesia“)
Bagaimana Cara Menambahkan Garis Pantai?

Beberapa package yang dibutuhkan


install.package(“sp”)
install.package(“latticeExtra”)
install.package(“raster”)
1. Unduh Data Garis Pantai (Pastikan terhubung internet)

• Oleh karena negara cakupan pada gambar sebelumnya tidak hanya Indonesia, maka shp negara-
negara tetangga juga dapat diunduh dengan perintah
indo_shp = getData(name = "GADM", country = "IDN", level = 0)
mly_shp = getData(name = "GADM", country = “MYS", level = 0)
timor_shp = getData(name = "GADM", country = “TLS", level = 0)
sin_shp = getData(name = "GADM", country = “SGP", level = 0)
brunei_shp = getData(name = "GADM", country = “BRN", level = 0)
• Bagian “country = …” adalah kode negara dari ISO 3166-1 alpha 3 (dapat dilihat
https://unstats.un.org/unsd/tradekb/Knowledgebase/Country-Code) atau dapat diketik perintah
pada console R: getData(‘ISO3’)
• Bagian “level = 0” menunjukkan data shp hanya garis pantai negara. Jika “level = 1”, maka
akan terunduh garis pantai beserta batas administrasi provinsi
2. Overlay *shp dengan *nc

levelplot(tmp_indo ~ lon*lat, data =


grid_indo, at = interval_suhu_indo,
cuts = length(interval_suhu_indo),
pretty = TRUE, col.regions =
colorRampPalette(c('darkblue','blue',
'yellow','orange','red','darkred’)),
main = “CRU CL 2.0 January
Climatology (1961-1990) Indonesia“) +
layer(sp.polygon(indo_shp)) +
layer(sp.polygon(mly_shp)) +
layer(sp.polygon(timor_shp)) +
layer(sp.polygon(sin_shp)) +
layer(sp.polygon(brunei_shp))
Contoh Hasil Overlay shp (per Kabupaten) dengan nc

Sumber shp: tanahair.indonesia.go.id/

Anda mungkin juga menyukai