File: test_gd.rb

package info (click to toggle)
ruby-hdfeos5 1.2-9
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 18,860 kB
  • sloc: ansic: 13,294; ruby: 2,809; makefile: 18
file content (253 lines) | stat: -rw-r--r-- 8,168 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
# -*- coding: utf-8 -*-
require 'numru/hdfeos5'
include NumRu


############################################################################### OK
##### OMI データを読み込んで作業ができるようにする
############################################################################### OK
filename1 = "test/OMI-Aura_L3-OMAEROe_2008m0101_v003-2009m0114t114202.he5"
# print "reading ",filename1,"...\n"
file1=HE5.open(filename1,"r")
# p file1.has_swath?()
# p file1.has_grid?()
# p file1.has_za?()
# p file1.has_point?()
gridlist=file1.grid_names()
# p gridlist[0]
########################################
##### Gridをよむ
########################################
grid1=file1.grid(gridlist[0])
#-------
# print "ndims = " ,grid1.ndims ,"\n"
# print "inqdims =", grid1.inqdims('HE5_HDFE_NENTDIM'),"\n"
#-------
# print "inqdatafields : \n"
# print "var_names : " , grid1.var_names ,"\n"
#-------
# print "inqattrs : "  ,grid1.inqattrs(), "\n"
# print "nvars() = "   ,grid1.nvars() ,"\n"
# print "var_names = " ,grid1.var_names ,"\n"
#-------
dname1=grid1.var("AerosolModelMW")
# print "fieldinfo : \n"
# p dname1.fieldinfo()
grid1.close
############################################################################### OK
##### GridFieldをよむ
########################################
dname1=HE5GdField.open(filename1, gridlist[0],"AerosolModelMW")
# p "HE5GdField fieldinfo : \n"
# p dname1.fieldinfo()
start= [0,0]
edge = [100,300]
# p dname1.readfield([0,0],[1,1],[100,300],"sint")
#-------
# print "inqlocattrs : \n"
# p dname1.inqlocattrs()
# p dname1.get_att("Units")
# p dname1.get_att("Title")
# p dname1.get_att("_FillValue")
# p dname1.get_att("MissingValue")
# p dname1.get_att("UniqueFieldDefinition")
# p dname1.grid.inqdatatype(dname1.name,"Title","HE5_HDFE_DATAGROUP")
dname1.grid.close
############################################################################### OK
dname1=HE5GdField.open(filename1, gridlist[0],"Longitude")
# print "HE5GdField fieldinfo : \n"
# p dname1.fieldinfo()

start= [0,0]
edge = [20,10]

#p dname1.readfield([0,0],[1,1],[20,10],"sfloat")
#p dname1.name
#p dname1.get({"start"=>[3,5]})


dname1.grid.close
############################################################################################
# HDF-EOS5 sample program ( for C )
############################################################################### OK
##### he5_gd_setup.c
############################################################################### OK
filename1 = "test_gd.he5"
#print "creating ",filename1,"...\n"
file1=HE5.open(filename1,"w")

uplft = [210584.50041, 322395.95445]
lowrgt = [813931.10959, 2214162.53278]
xdim=120
ydim=200
grid1=file1.gdcreate("UTMGrid",xdim,ydim,uplft,lowrgt)
zonecode=40
spherecode=0
projparm = NArray.float(16)
projparm[] = 0
grid1.defproj("HE5_GCTP_UTM", zonecode, spherecode, projparm)

grid1.defdim("Time", 10)
grid1.defdim("ExtDim", 60)
grid1.defdim("XDim", 120)
grid1.defdim("YDim", 200)

file1.close
file2=HE5.open(filename1,"a")

spherecode = 3
projparm[4] = 0.0
projparm[5] = 90000000.00
xdim=100
ydim=100
grid2=file2.gdcreate("PolarGrid",xdim,ydim,uplft,lowrgt)
grid2.defproj("HE5_GCTP_PS", zonecode, spherecode, projparm)

grid2.deforigin("HE5_HDFE_GD_LR")
grid2.defdim("Bands", 3)
file2.close
############################################################################### OK
##### he5_gd_defunlimfld.c he5_sw_definefields.c
############################################################################### OK
#print "add2 ",filename1,"...\n"
file2=HE5.open(filename1,"a")

tilerank = 2
tiledims = [ 100, 60, 0, 0, 0, 0, 0, 0 ]
compparm = [ 8, 0, 0, 0, 0]
grid2=file2.grid("UTMGrid")
grid2.def_var("Pollution", "sfloat", "Time,YDim,XDim")
fillvalue2 = -7.0
#p grid2.setfillvalue("Pollution","sfloat",fillvalue2)
grid2.deftile("HE5_HDFE_TILE", tilerank, tiledims)
grid2.defcomp("HE5_HDFE_COMP_DEFLATE", compparm)
grid2.def_var("Vegetation", "sfloat", "YDim,XDim")
grid2.detach()

grid2=file2.grid("PolarGrid")
grid2.def_var("Temperature", "sfloat", "YDim,XDim")
grid2.def_var("Pressure", "sfloat", "YDim,XDim")
grid2.def_var("Soil Dryness", "sfloat", "YDim,XDim")
grid2.def_var("Spectra", "float", "Bands,YDim,XDim")
fillvalue2 = -9999.0
#p grid2.setfillvalue("Pressure","sfloat",fillvalue2)
grid2.detach()
############################################################################### OK
##### he5_gd_writedata.c
############################################################################### OK
#print "add3 ",filename1,"...\n"
file3=HE5.open(filename1,"a")
grid3=file3.grid("UTMGrid")
dname1=grid3.var("Vegetation")

start= [0,0]
edge = [200,120]
tmp = NArray.float(1,121)
veg = tmp * NArray.float(201,1)
veg[] = 1.0
dname1.writefield(start, nil, edge, veg,"sfloat")
edge[0] = 1
flt = 3.1415
grid3.writeattr("GlobalAttribute","sfloat",edge,flt)
edge[0] = 3
grpattr = [3,7,11]
grid3.writegrpattr("GroupAttribute","int",edge,grpattr)
edge[0] = 4
attr = [1.1,2.2,3.3,4.4]
dname1.writelocattr("LocalAttribute","sfloat",edge,attr)
grid2.detach()

grid3=file3.grid("PolarGrid")
dname1=grid3.var("Temperature")

start= [0,0]
edge = [100,100]
tmp = NArray.float(1,101)
temp = tmp * NArray.float(101,1)
temp[] = 100.0
dname1.writefield(start, nil, edge, temp,"sfloat")
grid3.close
############################################################################### OK
##### he5_gd_info.c
############################################################################### OK
#print "info1 ",filename1,"...\n"
file4=HE5.open(filename1,"r")
grid41=file4.grid("UTMGrid")
grid42=file4.grid("PolarGrid")

#p grid41.inqdims('HE5_HDFE_NENTDIM')
#p grid42.inqdims('HE5_HDFE_NENTDIM')
#p grid41.diminfo('Time')
#p grid42.diminfo('Bands')
#p grid41.gridinfo()
#p grid42.gridinfo()
#p grid41.projinfo()
#p grid42.projinfo()
#p grid41.inqfields("HE5_HDFE_NENTDIM")
#p grid42.inqfields("HE5_HDFE_NENTDIM")
#p grid41.inqfields("HE5_HDFE_NENTDFLD")
#p grid42.inqfields("HE5_HDFE_NENTDFLD")
############################################################################### OK
dname2=grid42.var("Spectra")
#p dname2.fieldinfo()
dname1=grid41.var("Vegetation")
#p dname1.fieldinfo()

#p grid41.attrinfo()
#p grid41.grpattrinfo()
#p dname1.locattrinfo()
#p grid41.inqattrs()
#p grid41.inqgrpattrs()
#p dname1.inqlocattrs()
#p dname1.tileinfo()
#p dname1.compinfo()
############################################################################### ?
##### he5_gd_datainfo.c
############################################################################### ?
#print "info2 ",filename1,"...\n"
file5=HE5.open(filename1,"r")
grid51=file5.grid("UTMGrid")
grid52=file5.grid("PolarGrid")

### datatype が文字化けして出てしまう!
#p grid51.inqdatatype("Vegetation","NULL",'HE5_HDFE_DATAGROUP')
#p grid51.inqdatatype("NULL","GlobalAttribute",'HE5_HDFE_ATTRGROUP')
#p grid51.inqdatatype("NULL","GroupAttribute",'HE5_HDFE_GRPATTRGROUP')
#p grid51.inqdatatype("Vegetation","LocalAttribute",'HE5_HDFE_LOCATTRGROUP')
file5.close
############################################################################### OK
##### he5_gd_readdata.c
############################################################################### OK
#print "info3 ",filename1,"...\n"
file6=HE5.open(filename1,"r")
grid61=file6.grid("UTMGrid")
grid62=file6.grid("PolarGrid")
dname1=grid61.var("Vegetation")

start= [0,0]
edge = [200,120]
#p dname1.readfield(start, nil, edge,"sfloat")
#p grid61.get_att_("GlobalAttribute")
#p grid61.get_grpatt_("GroupAttribute")
#p dname1.get_att_("LocalAttribute")

file6.close
###############################################################################
##### he5_gd_subset.c    (途中まで)
###############################################################################
#print "add1 ",filename1,"...\n"
#file2=HE5.open(filename1,"a")
#grid2=file2.grid("PolarGrid")
#cornerlon = NArray.float(2)
#cornerlat = NArray.float(2)
#cornerlon[0] = 0.0
#cornerlon[1] = 90.0
#cornerlat[1] = 0.0
#cornerlat[0] = 90.0
#regionid=grid3.defboxregion(cornerlon, cornerlat)
#exit
#regionid.regioninfo("Temperature", "int")
#grid2.detach()
#file2.close()
############################################################################### OK
exit