Data Harian Proses Perata-rataan Data

69

4.3.3.1 Data Harian

Kode program di bawah berfungsi untuk membuat lokasi direktori dari empat file yang akan disatukan. Lokasi direktori ditentukan dari y[x]+m[z]+d[a] yang merupakan tahun, bulan, dan hari, y[x]+m[z]+d[a] diatur oleh x, z, a yang berisi nilai posisi dari array yang akan loop terus menerus. Variabel y, m, d seperti terlihat pada bari 3, 4 ,dan 5 merupakan array yang mempunyai nilai yang menggambarkan hari, bulan, dan tahun yang nantinya akan mengisi code pada baris 15, 16, 17, dan 18. Variabel x, z, dan a mengatur urutan nilai yang keluar dari array y, m, dan d. 1. path = homeaditridata_nc_indo 2. path1day = homeaditridata_nc_indo_1day 3. m = [ 01 , 02 , 03 , 04 , 05 , 06 , 07 , 08 , 09 , 10 , 11 , 12 ] 4. d = [ 01 , 02 , 03 , 04 , 05 , 06 , 07 , 08 , 09 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 ] 5. y = [ 2006 , 2007 , 2008 ] 6. for x in range 3 : 7. print x = ,x 8. y [ x ] 9. for z in range 12 : 10. m [ z ] 11. print z= ,z 12. for a in range 31 : 13. d [ a ] 14. print a= ,a 15. path1 = path+ indoBlendedEcmwf25km6h_ +y [ x ] +m [ z ] +d [ a ] + 00.nc 16. path2 = path+ indoBlendedEcmwf25km6h_ +y [ x ] +m [ z ] +d [ a ] + 06.nc 17. path3 = path+ indoBlendedEcmwf25km6h_ +y [ x ] +m [ z ] +d [ a ] + 12.nc 18. path4 = path+ indoBlendedEcmwf25km6h_ +y [ x ] +m [ z ] +d [ a ] + 18.nc Data windblended dari IFREMER mempunya range waktu per 6 jam, dalam satu hari terdapat empat data. perata-rataan data harian ini menggunakan 4 file ini menjadi satu file netCDF. 70 Berdasarkan dari lokasi direktori yang dibuat oleh code diatas langkah selanjutnya adalah membuka file netcdf tersebut dan mengambil variabel yang di inginkan yaitu time, depth, latitude, longitude, wind speed, zonal wind speed, meriditiona wind speed, wind stress, zona wind stress, dan meriditional wind stress dari setiap file dengan menggunakan modul netCDF. Semua nilai dalam variabel yang diambil tersimpan dalam memori komputer yang diciptakan oleh python, dan langkah selanjutnya adalah menyatukan variabel yang sama dari setiap file netCDF yang dibuka. Berikut code untuk menyatukan variabel : 1. for r in range35802: 2. if r 35802: 3. wsf = wsf1[r:r+1]+wsf2[r:r+1]+wsf3[r:r+1]+wsf4[r:r+1]4 4. zwsf = zwsf1[r:r+1]+zwsf2[r:r+1]+zwsf3[r:r+1]+zwsf4[r:r+1]4 5. mwsf = mwsf1[r:r+1]+mwsf2[r:r+1]+mwsf3[r:r+1]+mwsf4[r:r+1] 4 6. wstf = wstf1[r:r+1]+wstf2[r:r+1]+wstf3[r:r+1]+wstf4[r:r+1]4 7. zwstf = zwstf1[r:r+1]+zwstf2[r:r+1]+zwstf3[r:r+1]+zwstf4[r:r+1]4 8. mwstf = mwstf1[r:r+1]+mwstf2[r:r+1]+mwstf3[r:r+1]+mwstf4[r:r+1] 4 9. print coba,coba 10. wsfgabung.appendwsf 11. zwsfgabung.appendzwsf 12. mwsfgabung.appendmwsf 13. wstfgabung.appendwstf 14. zwstfgabung.appendzwstf 15. mwstfgabung.appendmwstf 16. wsfreshape = numpy.reshapewsfgabung, 1,162,221 17. print wsfreshape 18. zwsfreshape = numpy.reshapezwsfgabung, 1,162,221 19. mwsfreshape = numpy.reshapemwsfgabung, 1,162,221 20. wstfreshape = numpy.reshapewstfgabung, 1,162,221 21. zwstfreshape = numpy.reshapezwstfgabung, 1,162,221 22. mwstfreshape = numpy.reshapemwstfgabung, 1,162,221 71 Pada kode di atas terdapat “wsf = wsf1[r:r+1]+wsf2[r:r+1]+wsf3[r:r+1]+wsf4[r:r+1]4 “ kode ini digunakan untuk merata-ratakan file dari setiap file yang dibuka dengan “r” sebagai penanda array yang akan di rata-ratakan. Perata-rataan file netCDF variabel menggunakan modul numpy. Fungsi yang digunakan adalah append dan. Append merupakan fungsi dari numpy yang berfungsi untuk menambahkan nilai pada akhir array, yang mengunakan fungsi ini adalah variabel time untuk menyatukan dan mengurutkan time dari yang terlama,. Array yang selesai digabung telah tersimpan di memory komputer, langkah selanjutnya adalah membuat file netCDF baru dan memasukan nilai dari array yang telah digabung ke dalam variabel baru. Ini dilakukan dengan cara : 1. pathday = path1day+indoBlendedEcmwf25km6h_+y[x]+m[z]+d[a]+.nc 2. nc_indo = NetCDF.NetCDFFilepathday, w

3. nc_indo.createDimensionlatitude,162, 4. nc_indo.createDimensionlongitude,221,

5. nc_indo.createDimensiontime,1, 6. nc_indo.createDimensiondepth,1,

7. depthdims = depth, 8. timedims = time,

9. lats = latitude, 10. lons = longitude,

11. dimensi = time,latitude,longitude, 12. latitude_1day = nc_indo.createVariablelatitude,f,lats

13. nc_indo.variables[latitude][:] = lat 14. setattrlatitude_1day,units,degrees_N

15. nc_indo.sync 16. longitudes_1day = nc_indo.createVariablelongitude,f,lons

17. nc_indo.variables[longitude][:] = lon 18. setattrlongitudes_1day,units,degrees_N

19. nc_indo.sync 20. windspeed_1day = nc_indo.createVariablewind_speed,s,dimensi

21. nc_indo.variables[wind_speed][:] = gabungws 22. setattrwindspeed_1day,units,meters per second

23. setattrwindspeed_1day,scale_factor,0.0100000 24. nc_indo.sync