Proses Cropping Data Pengolahan Data

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