Anda di halaman 1dari 21

FORMAT DATA DALAM

SAINS ATMOSFER DAN KEPLANETAN

LAPORAN PRAKTIKUM KOMPUTASI

Nama : Destriano Rahmadona Putri


NIM : 120290024
Kelompok :6
Asisten : Sulthan Julieri Djumari

PROGRAM STUDI
SAINS ATMOSFER DAN KEPLANETAN JURUSAN SAINS
INSTITUT TEKNOLOGI SUMATERA
LAMPUNG SELATAN
2020

1
Format Data Dalam Sains Atmosfer dan Keplanetan

Destriano Rahmadona Putri

Prodi Sains Atmosfer dan Keplanetan, Jurusan Sains, Institut Teknologi


Sumatera

Destriano.120290024@student.itera.ac.id

ABSTRAK

Berbagai jenis data diolah dalam ilmu sains atmosfer dan keplanetan.
Beberapa data yang diolah seperti data cuaca dan iklim, data kimia
atmosfer, data spektroskopi, data astrometri, data fotometri dan juga masih
banyak data-data lainnya. Data-data yang telah disebutkan memiliki
beragam jenis format serta cara pengolahan yang berbeda-beda. Dari
banyaknya format data yang berkembang, beberapa yang pupoler
diantaranya yaitu netcdf, hdf5, data gfeopasila ( beerupa data raster dan
vektor), liitle r, FITS, dan sebagainya. Pada praktikum kali ini, format data
yang akan diujikan berupa format data pengolahan netcdf hingga
visualisasiya dalam bentuk peta.

Kata Kunci: data, format, netcdf.

2
DAFTAR ISI

ABSTRAK ii
DAFTAR TABEL iv
DAFTAR GAMBAR v
BAB I 6
PENDAHULUAN 6
1.1 Latar Belakang 6
1.2 Perumusan Masalah 7
1.3 Tujuan Praktikum 7
1.4 Sistematika Penulisan Laporan 7
BAB II 9
TINJAUAN PUSTAKA 9
2.1 Pengertian NetCDF 9
2.2 Python 10
2.3 NetCDF4 10
2.4 Langkah Pengerjaan 11
BAB III 18
METODOLOGI PRAKTIKUM 18
3.1 Waktu dan Tempat 18
3.2 Diagram Alir 18
BAB IV 19
4.1 Hasil 19
4.2 Pembahasan 19
BAB V 20
PENUTUP 20
5.1 Kesimpulan 20
5.2 Saran 20
DAFTAR PUSTAKA 21

3
DAFTAR TABEL

Tabel Halaman
1.1 (Judul Tabel) 7
1.2 (Judul Tabel) 8
1.3 (Judul Tabel) 9
2.1 (Judul Tabel) 12
2.2 (Judul Tabel) 13
….........

4
DAFTAR GAMBAR

Gambar Halaman
1.1 (Judul Gambar) 2
1.2 (Judul Gambar) 5
1.3 (Judul Gambar) 10
2.1 (Judul Gambar) 15
2.2 (Judul Gambar) 25
….

5
BAB I

PENDAHULUAN

1.1 Latar Belakang

NetCDF atau Network Common Data Form adalah format file untuk
menyimpan data ilmiah multidimensi (variabel) seperti suhu, kelembapan,
tekanan, kecepatan angin serta arah angin. Netcdf merupakan salah satu jenis
format standar dalam pengolahan data, salah satunya dalam mengolah data Sub
Bidang Pengolahan Citra Radar Badan Meteorologi Klimatologi dan Geologi
yaitu integrasi radar. Selain itu format file NetCDF dikembangkan dan dikelola
oleh Unidata dari University Corporation for Atmospheric Research (UCAR).
Data dalam NetCDF memiliki komponen seperti waktu (time), lintang
(latitude), dan bujur (longitude), dengan bentuk matriks. Berikut gambar
ilustrasi struktur data NeCDF.

Gambar 1.1. Struktur Data NetCDF


Untuk melakukan pengujian pengujian data dengan NetCDF diperlukan
bahasa pemrograman python. Python adalah salah satu bahasa pemrograman
tingkat tinggi yang menggunakan interpreter sebagai penerjemah kode. Selain

6
itu library-library lain juga diperlukan sebagai pendukung yaitu NetCDF4.

1.2 Perumusan Masalah

Berikut rumusan masalah dalam praktikum kali ini

a) Bagaimana cara mengolah salah satu format data dalam sains atmosfer
dan keplanetan yaitu NetCDF dan melakukan ekstraksi data berupa
timeseries?

b) Bagaimana cara menyimpan data hasil olahan dalam bentuk csv file?

c) Bagaimana cara melakukan plotting peta 2D dari hasil olahan data


NetCDF?

1.3 Tujuan Praktikum

Adapun tujuan praktikum kali ini adalah

a) Mampu mengolah salah satu format data dalam sains atmosfer dan
keplanetan yaitu NetCDF dan melakukan ekstraksi data berupa
timeseries

b) Mampu menyimpan data hasil olahan dalam bentuk csv file

c) Mampu melakukan plotting peta 2D dari hasil olahan data NetCDF.

1.4 Sistematika Penulisan Laporan

Sistematika penulisan laporan ini secara garis besar akan diuraikan sebagai
berikut:

BAB I: PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang pemilihan tema, ruang lingkup
permasalahan, tujuan dan manfaat, metodelogi yang digunakan, dan sistematika
penulisan.

BAB II: KAJIAN PUSTAKA

Bab ini menjelasakan teori-teori yang menjadi acuan dalam penulisan laporan,
yaitu mengenai tahapan dalam pembuatan laporan, komponen-komponen
pendukung dalam mengolah data yang diperoleh dari buku literature,
perpustakaan, serta internet.

7
BAB III: METODELOGI PENELITIAN

Bab ini menjelasakan tentang bagaimana kajian ini dilakukan. Sebagai kajian
ilmiah maka kebenaran fakta merupakan keharusan dengan demikian dalam bab
ini harus jelas terungkap bagaimana cara mencari fakta, instrument yang
digunakan, teknik-teknik pegujian keberadaan dan lain-lainnya.

BAB IV: HASIL DAN PEMBAHASAN

Bab ini menjelaskan mengenai penelitian yang dilakukan sehingga dapat dibuat
perancangan implementasi sistem yang diusulkan.

BAB V: SIMPULAN DAN SARAN

Bab ini menjelaskan mengenai kesimpulan dan saran yang dibutuhkan terhadap
hasil akhir dari penelitian yang telah dibuat. Mampu memahami diagram alir
yang diterapkan dalam pengolahan data.

8
BAB II
TINJAUAN PUSTAKA

2.1 Pengertian NetCDF

NetCDF adalah seperangkat pustaka perangkat lunak dan self


describing yang artinya ada header yang mendeskripsikan tata letak file,
khususnya larik data, serta metadata file arbitrer dalam bentukatribut
nama/nilai. Mendukunng pembuatan akses, dan bebagi data ilmiah berorientasi
array. Array data memiliki lebih kecil dari atau sama dengan 1 dimensi. Saat
ini NetCDF mendukung dalam membaca data HDF5. Bahkan, data NetCDF
dapat langsung diolah secara online menggunakan open source project for a
Network Data Access Protocol (OPeNDAP). Salah satu bahasa pemrograman
yang mendukung dalam membaca data NetCDF yaitu Python. Data NetCDF
sering kali digunakan untuk menyimpan data-data dalam ilmu kebumian
khususnya dalam bidang meteorologi dan klimatologi. Beberapa contoh data-
data luaran model seperti ERA5 dan ERA-interim, bahkan data observasi
seperti CHIRPS menggunakan format NetCDF. Berikut contoh data hasil
luaran model ERA5 dan ERA-interim.

9
Gambar 2.1 Luaran data model ERA5 dan ERA-Interim.

2.2 Python
Python merupakan bahasa pemrograman interpretatif yang digunakan di
banyak sekali platform dengan perancangan yang memfokuskan kepada
tingkat keterbacaan kode dan merupakan bahasa pemrograman yang
paling populer yang berkaitan dengan data sains, machine learning serta
internet of things atau iot[1]. Dalam NetCDF sendiri pyhon digunakan
sebagai komponen pengimport dan pengekstrak data file NetCDF.

2.3 NetCDF4

NetCDF versi 4 memiliki banyak fitur setelah pengupgradetan dari


versi sebelumnya seperti grup hierarki, kompresi zlib, beberapa
dimensi tak terbatas, dan tipe data baru. NetCDF4 diimplementasikan
diatas HDF5. Untuk dapat mengimport dan mengekstrak data file pada
NetCDF di bahasa pemrograman python, dibutuhkan library NetCDF.
Variabel pada NetCDF umumnya berisi lebih dari 1 variabel sehingga
ukuran file dapat mencapai beberapa GB.

 Memilih Variabel
Variabel pada NetCDF dapat dianalisis dan divisualisasikan dengan
fungsi ncvar_get() pada ncdf4 atau lebih mudahnya menggunakan
fungsi brick(). Perbedaan dari dari kedua fungsi tersebut yaitu fungsi

10
ncvar_get() menghasilkan tipe array sehingga ukurannya lebih besar
jika dibandingkan dengan fungsi brick(). Selain itu, variabel lokasi
(longitude dan latitude) dan waktu tidak perlu dipanggil dengan objek
baru ketika ingin membuat grafik.
 Menambahkan Waktu ke Objek Raster
Untuk menambahkan waktu ke objek raster sebenarnya sudah terdapat
dalam objek chirps.raster, namun masih dalam bentuk numerik. Format
numerik tersebut dapat diubah kedalam format date menggunakan
objek konv.waktu. dapat dilihat label time memilki format tanggal. Hal
ini berfungsi untuk memanipulasi data jika ingin mengetahui
klimatologi bulanan atau musiman.
 Memilih Lokasi Spesifik
Lokasi spesifik dapat ditentukan dengan fungsi crop(). Jika memiliki
data shapefile batas administratif, dapat langsung diterapkan fungsi
tersebut.
 Membuat grafik
Fungsi stadar yang digunakan untuk membuat grafik dari data netCDF
adalah plot(), secara default fungsi tersebut menghasilkan gambar
sejumlah 16 grafik.

2.4 Langkah Pengerjaan


Berikut adalah langkah-langkah membaca file netcdf4 di python.
Pastikan laptop yang digunakan sudah terinstal library netcdf4. Jika belum,
lakukan langkah-langkah berikut.
a) Untuk cek library netcdf4, buka anaconda prompt dan ketik python
-m pip show netcdf4. Jika belum terinstal, maka lakukan instalasi
b) Untuk instalasi, ketik python -m pip install netcdf4 kemudian enter.
Setelah melakukan instalasi, lakukan pengecekan kembali (point
(a))

11
c) Setelah Proses instalasi selesai, buka aplikasi spyder.

Untuk mengekstrak timeseries data dari netCDF file ke CSV


dibutuhkan 2 libraries yaitu netCDF dan juga numpy. Berikut langkah-
langkah untuk proses ekstraksi data netCDF berdasarkan koordinat
yang telah ditentukan.
a) Import libraries yang dibutuhkan
from netCDF4 import Dataset
import numpy as np
b) Buka data netcdf menggunakan Dataset
data = Dataset(r'D:\BELAJAR_MODEL\PYTHON\chirps
v2.0.2020.days_p05.nc','r')
c) Untuk melihat tipe data, ketik print(data) pada bagian console,
maka akanmuncul informasi terkait data netcdf dari proses point
(b), seperti variables (latitudes, longitudes, precip, dll), tipe data,
dimensi data, dll.
 print(data.variables.keys()) – untuk melihat variabel yang tersedia
dalam data

 print(data.variables[‘precip’]) – untuk melihat informasi terkait


variable precip

 Untuk melihat dimensi dari variabel, ketik


nama_variable.dimesions contoh

prep =data.variables(‘precip’)
prep.dimensions

12
 Untuk mengakses data dalam bentuk, lakukan seperti berikut
time_data = data.variables[‘time’][:]

Data dimulai dari nilai 14610, artinya tanggal 1 Januari 2020.


Seperti yang diketahui dalam informasi time, units time (days)
dimulai dari 1 Januari 1980. 14610 hari setelah tanggal tersebut
adalah 1 Januari 2020 sampai 14975, yaitu 31 Desember 2020.

 Berikut adalah contoh skrip mengakses data netcdf dan disimpan


dalam csv file

#importing libraries
from netCDF4 import Dataset
import numpy as np
import pandas as pd

#Reading the netcdf file


data = Dataset(r’C:\Users\User\Downloads\chirps_2018.nc','r')

#Accessing the data from variables


time_data = data.variables['time'][:]
lon_data = data.variables['longitude'][:]
lat_data = data.variables['latitude'][:]

#Storing coordinate of study area


lat_aceh = 4.879279
lon_aceh = 96.279439

#Squared difference of coordinates


sq_diff_lat = (lat_aceh - lat_data)**2
sq_diff_lon = (lon_aceh - lon_data)**2

#Identifying the index of minimum value of coordinates


min_index_lat = sq_diff_lat.argmin()

13
min_index_lon = sq_diff_lon.argmin()

prep = data.variables['precip']

#Creating a pandas dataframe


starting_date = '2018-01-01'
ending_date = '2018-12-31'
date_range = pd.date_range(start = starting_date, end =
ending_date)
df = pd.DataFrame(0, columns=['CH'], index = date_range)

dt = np.arange(0,data.variables['time'].size)

for time_index in dt:


df.iloc[time_index] =
prep[time_index,min_index_lat,min_index_lon]

#Saving the time series into the csv


df.to_csv("curah_hujan_2018.csv")

Plot netcdf file menjadi peta menggunakan Python


a) Untuk memplot data netcdf menjadi sebuah peta, digunakan
beberapa libraries diantaranya metplotlib toolkit basemap. Berikut
langkah-langkahnya. Kunjungi website berikut:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
b) Cari keyword ‘basemap’ (bisa menggunakan ctrl + F) dan klik
‘basemap’
c) Download salah satu file berdasarkan versi aplikasi spyder, contoh
basemap 1.2.2-cp38-cp38-win_amd64.whl (untuk versi spyder 3.8
windows 64 bit). Tempatkan file download di folder C:/basemap
(buat folder baru) atau di direktori kerja python.
d) Buka Anaconda prompt dan install matplotlib toolkit basemap pip
install D:\Python\basemap 1.2.2 cp38 cp38 win_amd64.whl

14
e) Untuk proses plotting data netcdf menjadi map, diperlukan 4
libraries
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
f) Untuk menggunakan basemap lakukan hal berikut
mp = Basemap(projection = ‘merc’, llcrnrlon = , llcrnrlat
= , urcrnrlon = , urcrnrlat = , resolution = ‘i’)
keterangan:

Tabel 1. Keterangan tool Basemap (sumber:


https://matplotlib.org/basemap/api/basemap_api.html)

Parameter Keterangan Pilihan

projection Tipe dari map llc = ‘lambert conformal’; merc = ‘mercator’; cyl
Projection = ‘cylindrical equidistant’; laea = ‘lambert
azimuthal’; dll

llcrnrlon Longitude of lower left hand corner of the desired map domain (degrees)

15
llcrnrlat Latitude of lower left hand corner of the desired map domain (degrees)

urcrnrlon Longitude of upper right hand corner of the desired map domain
(degrees)

urcrnrlat Latitude of upper right hand corner of the desired map domain (degrees)

width Width of desired map domain in projection coordinates (meters)

height Height of desired map domain in projection coordinates (meters)

lon_o center of desired map domain (in degrees)

lat_o center of desired map domain (in degrees)

resolution resolution of c (crude), l (low), i (intermediate), h (high), f


boundary (full) or None
database to use

Contoh:
mp = Basemap(projection = 'merc', llcrnrlon = 94.101431, llcrnrlat =
1.450824, urcrnrlon = 99.540642, urcrnrlat = 7.097567, resolution = 'i')
g) Mengatur color map menggunakan pcolor, lakukan hal
berikut c_scheme = mp.pcolor(x, y, np.squeez(prep[2, :,
:]), cmap = 'jet', vmin=0, vmax=20)
untuk informasi cmap dapat kunjungi situs berikut:
https://matplotlib.org/stable/tutorials/colors/colormaps.htm
l
h) Untuk membuat legenda, lakukan langkah berikut.
cbar = mp.colorbar(c_scheme, location = ‘right’, pad =
‘10%’, )
i) Berikut adalah contoh script untuk plot data netcdf ke peta
2D
from netCDF4 import Dataset
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap

#Reading the netcdf file


data = Dataset(r'C:\Users\User|Downloads\chirps_2019.nc','r')

#Accessing the data from variables


time_data = data.variables['time'][:]
lon_data = data.variables['longitude'][:]
lat_data = data.variables['latitude'][:]

16
prep = data.variables['precip']

mp = Basemap(projection = 'merc',
llcrnrlon = 94.101431,
llcrnrlat = 1.450824,
urcrnrlon = 99.540642,
urcrnrlat = 7.097567,
resolution = 'i')

lon, lat = np.meshgrid(lon_data, lat_data)


x, y = mp(lon, lat)
c_scheme = mp.pcolor(x, y, np.squeeze(prep[2,:,:]), cmap =
'jet', vmin=0, vmax=20) mp.drawcoastlines()
mp.drawstates()
mp.drawcountries()

cbar = mp.colorbar(c_scheme, location = 'right', pad = '10%')


plt.title('Curah Hujan pada 2 Januari 2019')
plt.show()

17
BAB III

METODOLOGI PRAKTIKUM

3.1 Waktu dan Tempat

Praktikum mata kuliah Praktikum Komputasi Sains Atmosfer dan


Keplanetan tentang Format Data Dalam Sains Atmosfer dan Keplanetan
dilaksanakan pada Sabtu,18 Febuari 2022 pukul 20.00 s/d selesai dirumah
masing-masing praktikan secara daring.

3.2 Diagram Alir

Diagram Alir pemrograman NetCDF4 dalam python seperti berikut.

Gambar 3.2 Diagram Alir python pemrograman NetCDF4

18
BAB IV
HASIL DAN PEMBAHASAN

4.1 Hasil

Berisikan hasil kerja yang kalian lakukan terhadap contoh


kasus yang adapada modul. Penamaan gambar: “Gambar 4.1 Blabla
Cccc”.

Untuk penulisan separator desimal bisa koma semua atau titik boleh, asal
konsisten.

Contoh : 0,6; 0,7; 0,8 atau 0.8, 0.4, 0.4

(Gambar [BAB].[Gambar ke- dari BAB tersebut]

Judul Gambar)Cantumkan pada DAFTAR

GAMBAR

4.2 Pembahasan

Membahas hasil yang peroleh.

19
BAB V

PENUTUP

5.1 Kesimpulan

Mengandung kesimpulan yang menjawab tujuan praktikum:

1. Aaaaa
2. Bbbb
3. Ccccc

5.2 Saran

20
DAFTAR PUSTAKA

[1] Saputra Irsan, "Memulai Pemrograman Dengan Python," 2022.


[Daring]. Available:https://www.dicoding.com/academies/86.

[2] stackoverflow, "Plancks Formula for Blackbody Spectrum,"


[Daring]. Available:
https://stackoverflow.com/questions/22417484/plancks-formula-
for-blackbody-spectrum.

[3] Baskoro, Purna dan Fauzi, Panduan Penggunaan Alat-Alat


Meteorologi dan Perhitungan Indeks Kekeringan Keetch-Byram
(KBDI) Serta Sistem Peringkat Bahaya Kebakaran (SPBK),
Palembang: BMKG, 2007.

21

Anda mungkin juga menyukai