62
Gambar 20. Direktori raw data dan data hasil ekstrak.
2.5.1 Proses Cropping Data
Proses cropping data merupakan proses selanjutnya dari proses ekstrak data. Data hasil ekstrak mempunyai scope satu bumi, dalam penelitian ini data
yang dihasilkan dalam scope Indonesia yaitu -20.125º LS sampai 20.125º LU.dan 90.125º BT sampai 145.125º BT. Modul yang digunakan untuk script cropping
ini adalah: import os, os.path
from Scientific.IO import NetCDF import numpy
import shutil
63
Pada proses cropping data menggunakan modul netcdf yang berbeda dari proses ekstrak data. Modul ini digunak untuk membuka file netCDF di python,
dan berguna untuk membuat file netCDF yang baru. 1. filenc=NetCDF.NetCDFFilefullpath,r
2. time_ind = filenc.variables[time][:] 3. depth_ind = filenc.variables[depth][:]
4. lat_ind = filenc.variables[latitude][239:401] 5. lon_ind = filenc.variables[longitude][1080:1301]
6. ws_ind = filenc.variables[wind_speed][:,239:401,1080:1301] 7. zws = filenc.variables[zonal_wind_speed][:]
8. zws_ind = zws[:,239:401,1080:1301] 9. mws = filenc.variables[meridional_wind_speed][:]
10. mws_ind = mws[:,239:401,1080:1301] 11. wst = filenc.variables[wind_stress][:]
12. wst_ind = wst[:,239:401,1080:1301] 13. zwst = filenc.variables[zonal_wind_stress][:]
14. zwst_ind = zwst[:,239:401,1080:1301] 15. mwst = filenc.variables[meridional_wind_stress][:]
16. mwst_ind = mwst[:,239:401,1080:1301]
Baris nomor satu pada code di atas merupakan perintah untuk membuka file nerCDF ke dalam memory komputer. Baris-baris selanjutnya digunakan
untuk mengambil variable dari file netCDF yang di buka, variable yang di ambil adalah time waktu, depth kedalaman, latitude, longitude, wind speed, zonal
wind speed, meridional wind speed, wind stress, zona wind stress, dan meridional wind stress, setiap variable ini tersusun dalam array. Time dan depth merupakan
array 1dimensi, latitude dan longitude merupakan array dua dimensi dan wind speed, zonal wind speed, meridional wind speed, wind stress, zona wind stress,
dan meridional wind stress merupakan array tiga dimensi. Untuk melakukan cropping data Indonesia kita perlu mengetahui letak di array ke berapa data yang
kita inginkan untuk mengetahui hal itu di lakukan dengan perhitungan yang dapat dilihat pada Gambar 21.
64
7.5 LU 12.5 LS
95 BT 142.5 BT
80 LU
80 LS
1
80BB 180BT
Indon esia
1440 kolom 641 baris
Gambar 21. Cropping data Perhitungan untuk lintang menggunkan rumus:
yx =
Baris pada array lmaks =
Nilai lintang terbesar l
= Lintang
A =
Total semua baris pada array =
Total jumlah maksimum dan minimum dari lintang Batas lintang yang gunakan adalah -20.125º LS sampai 20.125º LU.
Perhitungan untuk 20.125º LU
65
Perhitungan untuk -20.125º LS
Batas bujur yang digunakan adalah 90.125 º BT sampai 142.5 º BT. Perhitungan untuk 90.125º BT
Perhitungan untuk 145.125º BT
Berdasarkan hasil perhitungan diatas, batas lintang Indonesia yang telah ditentukan terdapat pada array [239:401], dan untuk longitude berada pada array
[1080:1301]. Pengambilan nilai dari variabel wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind
stress yang merupakan array tiga dimensi yang dipengaruhi oleh variable time, latitude dan longitude maka untuk mengambil nilai yang kita inginkan maka
array tempat nilai variabel yang kita inginkan berada di array [:,239:401,1080:1301]. Pada variable time dan depth mempunyai nilai yang sama
dan hanya berisi satu nilai untuk mengambil nilai pada variabel ini menggunakan code [:] yang menandakan mengambil semua nilai yag ada pada variabel tersebut.
Semua variabel yang diperlukan telah tersimpan dalam memory yang dibuat oleh bahasa pemograman python, langkah selanjutnya adalah membuat file
netCDF baru dan memasukan nilai yang telah kita ambil dari file netCDF yang asli. Berikut code untuk melakukan tugas ini:
66
1.
nc_indo = NetCDF.NetCDFFilepathindo, w
2.
nc_indo.createDimensionlatdims,162,
3.
nc_indo.createDimensionlondims,221,
4.
nc_indo.createDimensiontime,1,
5.
nc_indo.createDimensiondepth,1,
Baris pertama merupakan code untuk membuat file netCDF baru yang di tunjukan oleh w yang berarti write. Baris ke 2 sampai ke 5 digunakan untuk
membuat dimensi. Dimensi akan di isi oleh nilai nilai yang telah kita ambil pada langkah sebelumnya.. Penetuan nilai dimensi menggunakan rumus :
D = Nilai dimensi x1 = Nilai posisi array pertama
x2 = Nilai posisi array kedua
1. timedims = time
, 2. time_indo = nc_indo.createVariable
time ,
i ,timedims
3. nc_indo.variables [
time ][
: ]
= time_ind 4.
setattr time_indo,
units ,
hours since 1900-1-1 0:0:0 5. nc_indo.sync
6. lat = latdims
, 7. latitude_indo = nc_indo.createVariable
latitude ,
f ,lat
8. nc_indo.variables [
latitude ][
: ]
= lat_ind 9.
setattr latitude_indo,
units ,
degrees_N 10. nc_indo.sync
11. lon = londims
, 12. longitudes_indo = nc_indo.createVariable
longitude ,
f ,lon
13. nc_indo.variables [
longitude ][
: ]
= lon_ind 14.
setattr latitude_indo,
units ,
degrees_N 15. nc_indo.sync
16. 17. dimensi =
time ,
latdims ,
londims ,
18. windspeed_indo = nc_indo.createVariable wind_speed
, s
,dimensi 19. nc_indo.variables
[ wind_speed
][ :
] = ws_ind
20. setattr
windspeed_indo, units
, meters per second
21. setattr
windspeed_indo, scale_factor
, 0.0100000
22. nc_indo.sync
67
Baris kedua dalam code diatas digunakan untuk membuat variabel time dengan format data integer bilangan bulat, variable ini akan ditempatkan pada
dimensi timedims, demikian juga pada variabel latitude dan longitude yang ditunjukan oleh baris ke 7 dan 12. Pada variabel wind speed, zonal wind speed,
meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind ditunjukkan oleh baris ke 18 variabel wind speed, zonal wind speed, meridional
wind speed, wind stress, zona wind stress, dan meridional wind disimpan dalam 3 dimensi yang berbeda yaitu time,latdims,londims, ini berarti untuk mengambil
nilai dari variabel wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind memperhitungkan variabel dari
time, latitude dan longitude. Nilai dimasukan ke dalam variabel dengan cara code pada baris ke 3,
variabel yang telah selesai berisi file bernilai kosong dengan jumlah sesuai dengan dimensi yang telah ditentukan. Nilai yang dimasukan harus sesuai jumlahnya
dengan dimensi yang dibuat. Variabel selain mempunyai nilai juga mempunyai attribute. Attribute
berisi keterangan dari variabel seperti satuan dan scale factor, untuk membuat attribute pada variabel digunakan perintah seperti pada baris ke 4 ,9 ,14, 20, dan
21. Hal terakhir yang dilakukan adalah menulis semua dimensi, variabel, dan attribute ke dalam file yang telah dibuat dengan menggunakan perintah pada baris
ke 22. File asli mempunyai penamaan BlendedEcmwf25km6h_yymmddhh.nc data hasil cropping mempunyai penamaan indoBlendedEcmwf25km6h_
yymmddhh.nc yang dapat dilihat pada Gambar 22.
68
Gambar 22. Direktori data hasil cropping
3.5.1 Proses Perata-rataan Data