Hi All,
I still get a wrong result. For example
ncl 0> print(tosigned(157b))
The reslult is
(0) 157
However, the result should be
(0) -99
This may suggest that there is something wrong with our setup. I am confused whether it is related to the computer hardware. I run NCL in a unix system of AIX.
The returns of uname and gcc commands are shown
$uname -a
AIX cma18n01 1 7 0007471BD400
$gcc --version
gcc (GCC) 4.8.1
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Yin
Mar 31, 2014
The origins of the problem are shown as follows:
I got a strange error when I read TRMM version 7 Level 2 hdf file with NCL. The variable in the hdf file is named as freezingHeightIndex with the 1-byte integer type.
ncl 0> f = addfile("2A12.20100101.69095.7.HDF","r") ; Add file
ncl 1> fzHIndex = f->freezingHeightIndex ; read freezingHeightIndex
ncl 2> printVarSummary(fzHIndex)
Variable: fzHIndex
Type: byte
Total Size: 607568 bytes
607568 values
Number of Dimensions: 2
Dimensions and sizes: [nscan | 2921] x [npixel | 208]
I can get the values of freezingHeightIndex by the following command :
ncl_filedump -v freezingHeightIndex A12.20100101.69095.7.HDF
I can find a value of -99, and I can also find -99 by the HDFview. (The -99 (byte) is a missing value but the variable has no such information associated with it)
However, I got a strange result of 157 by the NCL read command:
According to previous responses from ncl-talk, several functions have been used, but didn't solve the proble.
ncl 0> f = addfile("2A12.20100101.69095.7.HDF","r") ; Add file
ncl 1> fzHIndex = f->freezingHeightIndex ; read freezingHeightIndex
ncl 2> printVarSummary(fzHIndex)
Variable: fzHIndex
Type: byte
Total Size: 607568 bytes
607568 values
Number of Dimensions: 2
Dimensions and sizes: [nscan | 2921] x [npixel | 208]
Coordinates:
Number Of Attributes: 1
hdf_name : freezingHeightIndex
ncl 3> print("fzHIndex: min="+min(fzHIndex)+" max="+max(fzHIndex))
(0) fzHIndex: min=0x01 max=0x9d
ncl 4> print("fzHIndex: min="+min(toshort(fzHIndex))+" max="+max(toshort(fzHIndex)))
(0) fzHIndex: min=1 max=157
ncl 5> print("fzHIndex: min="+min(toshort(fzHIndex))+" max="+max(toshort(fzHIndex)))
(0) fzHIndex: min=1 max=157
ncl 6> print("fzHIndex: min="+toshort(min(fzHIndex))+" max="+toshort(max(zHIndex)))
(0) fzHIndex: min=1 max=157
ncl 8> print("fzHIndex: min="+min(toint(fzHIndex))+" max="+max(toint(fzHIndex)))
(0) fzHIndex: min=1 max=157
ncl 9> print("fzHIndex: min="+toint(min(fzHIndex))+" max="+toint(max(fzHIndex)))
(0) fzHIndex: min=1 max=157
==============================
ncl 3> print(tounsigned(-99b))
(0) 157
ncl 5> print(tosigned(157b))
(0) 157
Those test suggest that the functions (toshort, tounsigned, etc) are not work.
Yin Jin-Fang
Department of Earth Science, Zhejiang University, Hangzhou 310027, China
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sun Mar 30 23:10:59 2014
This archive was generated by hypermail 2.1.8 : Mon Mar 31 2014 - 11:47:09 MDT