[ncl-talk] a question about assigning value mode?
dyjbean at gmail.com
dyjbean at gmail.com
Wed Oct 22 04:09:55 MDT 2014
i'm processing merra-land daily production, the variable latitude and longitude are both double.
the below is my code :
+++++++++++++++++++++++++++++++++++++++++++++++++++
1 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
2 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
3 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
4 load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl"
5
6 begin
7 files = systemfunc("sh sortname.sh")
8 setfileoption("nc","Format","LargeFile")
9 fallvars = addfiles(files,"r")
10 ListSetType(fallvars,"cat")
11 runoff = fallvars[:]->runoff
12 slat = fallvars[:]->latitude(0:360)
13 slon = fallvars[:]->longitude(0:539)
14
15 dims=dimsizes(runoff)
16
17 lat=new((/dims(1)/),float,"No_FillValue")
18 lon=new((/dims(2)/),float,"No_FillValue")
19 time=new((/dims(0)/),integer,"No_FillValue")
20 srunoff=new((/dims(2),dims(1),dims(0)/),float,runoff at _FillValue)
21
22 lon!0="lon"
23 lon at long_name="longitude"
24 lon at units="degrees-east"
25 lon=tofloat(slon)
26 print(slon(0)+" "+slon(539))
27 print(lon(0)+" "+lon(539))
28
29 lat!0="lat"
30 lat at long_name="latitude"
31 lat at units="degrees-north"
32 lat=tofloat(slat)
33
34 time!0="time"
35 time at long_name="time"
36 time at units="days since 1980-1-1 0"
37 time=yyyymm_time(1980,2013,"integer")
38
39 srunoff!0="lon"
40 srunoff!1="lat"
41 srunoff!2="time"
42 srunoff&lon=lon
43 srunoff&lat=lat
44 srunoff&time=(/time/)
45 srunoff at units = "kg.m-2.s-1"
46 srunoff at long_name = "Overland runoff"
47 ;srunoff=(/runoff(longitude|:,latitude|:,time|:)/)
48 do i=0,dims(0)-1
49 do j=0,dims(1)-1
50 do k=0,dims(2)-1
51 srunoff(k,j,i)=(/runoff(i,j,k)/)
52 end do
53 end do
54 end do
55
56 printVarSummary(runoff)
57 printVarSummary(srunoff)
58 end
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++=
in the line 25,32,37, if i change them with the following fashion:
lon&lon=tofloat(slon)
lat&lat=tofloat(slat)
time&time=yyyymm_time(1980,2013,"integer")
then, the wrong result will generate from line 26 and 27,
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(0) -180 179.3333282470703
(0) -254807 0
......
Variable: srunoff
Type: float
Total Size: 318142080 bytes
79535520 values
Number of Dimensions: 3
Dimensions and sizes: [lon | 540] x [lat | 361] x [time | 408]
Coordinates:
lon: [-180..179.3333]
lat: [-90..90]
time: [-931605192..0]
Number Of Attributes: 3
long_name : Overland runoff
units : kg.m-2.s-1
_FillValue : 1e+15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if i change them with direct assignment, like the line 25,32,37,the right result will appear
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
(0) -180 179.3333282470703
(0) -180 179.333
Variable: srunoff
Type: float
Total Size: 318142080 bytes
79535520 values
Number of Dimensions: 3
Dimensions and sizes: [lon | 540] x [lat | 361] x [time | 408]
Coordinates:
lon: [-180..179.3333]
lat: [-90..90]
time: [198001..201312]
Number Of Attributes: 3
long_name : Overland runoff
units : kg.m-2.s-1
_FillValue : 1e+15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++
i want to know why the "lon&lon, lat&lat, time&time" style gave wrong results?
thanks
dyjbean at gmail.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141022/dda463bc/attachment.html
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/jpeg
Size: 46225 bytes
Desc: not available
Url : http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20141022/dda463bc/attachment.jpe
More information about the ncl-talk
mailing list