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