File: factor_offset.rb

package info (click to toggle)
ruby-netcdf 0.6.6-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 1,184 kB
  • ctags: 882
  • sloc: ansic: 3,968; ruby: 1,661; makefile: 9; csh: 6
file content (53 lines) | stat: -rw-r--r-- 1,075 bytes parent folder | download | duplicates (5)
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
require 'numru/netcdf'
include NumRu

s = 'tmp.nc'
f = NetCDF.create(s)

nx = 10
d = f.def_dim('x',nx)
v1 = f.def_var('v1','sint',[d])
v2 = f.def_var('v2','sint',[d])
v3 = f.def_var('v3','int',[d])
v1.put_att('scale_factor',0.1,'sfloat')
v1.put_att('add_offset',100.0,'sfloat')
v2.put_att('scale_factor',0.1,'sfloat')
v2.put_att('add_offset',100.0,'sfloat')
v3.put_att('scale_factor',0.1,'sfloat')
v3.put_att('add_offset',100.0,'sfloat')
f.enddef
v1.put( NArray.sint(nx).indgen!+100 )
v2.scaled_put( NArray.float(nx).indgen!+100 )
v3.scaled_put( NArray.float(nx).indgen!+100 )
f.close


print "** originally unscaled\n"
f = NetCDF.open(s)
v1 = f.var('v1')
v11 = v1.get
v12 = v1.scaled_get
p v11
p v12

print "** originally scaled\n"
v2 = f.var('v2')
v21 = v2.get
v22 = v2.scaled_get
p v21
p v22

print "** originally sclaed (int --> double)\n"
v3 = f.var('v3')
v31 = v3.get
v32 = v3.scaled_get
p v31
p v32

print "** unpack type fixed to sfloat\n"
NetCDFVar.unpack_type = NArray::SFLOAT
v33 = v3.scaled_get
p v33
NetCDFVar.unpack_type = NArray::INT
v33 = v3.scaled_get
p v33