[ncl-talk] change dimensions to lat/lon
Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC]
jian.su at nasa.gov
Fri May 5 07:24:28 MDT 2017
Thank you Mary,
An easy way to tell if it’s a Geo2D is, to open the file with panoply and plot a variable with Geo2D, you will see the global grid as well. Otherwise, just a rectangle region.
From: Mary Haley <haley at ucar.edu>
Date: Thursday, May 4, 2017 at 7:05 PM
To: "Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC]" <jian.su at nasa.gov>
Cc: Rick Brownrigg <brownrig at ucar.edu>, "ncl-talk at ucar.edu" <ncl-talk at ucar.edu>
Subject: Re: [ncl-talk] change dimensions to lat/lon
Jian,
The first issue is that you cannot assign a missing value using a different type. For example, the following will produce the same error, because "x" is an integer array, and you are trying to assign a floating point _FillValue:
x = (/1,2,3,4,5,-999/) ; x is an array of integers
x at _FillValue = -999. ; -999. is a float, which is a "higher" type than an integer
The fix in your case would be to use "totype":
x at _FillValue = totype(x at CodeMissingValue,typeof(x))
You have to be careful with this kind of assignment, however, because you could lose precision when going from a higher type to a lower type.
As for the second question, I'm not sure what you mean by "Geo2D".
--Mary
On Tue, May 2, 2017 at 8:44 AM, Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC] <jian.su at nasa.gov<mailto:jian.su at nasa.gov>> wrote:
Thank you again Rick, and thank you Dennis.
There are still two issues:
1. x at _FillValue = x at CodeMissingValue
fatal:Type Mismatch: The type of missing value could not be converted to type of variable (x)
2. It’s 2D but not Geo2D if you open it with eg, panoply.
From: Rick Brownrigg <brownrig at ucar.edu<mailto:brownrig at ucar.edu>>
Date: Tuesday, May 2, 2017 at 10:23 AM
To: "Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC]" <jian.su at nasa.gov<mailto:jian.su at nasa.gov>>
Cc: "ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>" <ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>>
Subject: Re: [ncl-talk] change dimensions to lat/lon
Hi Jian,
This is from my colleague Dennis Shea; it presumes you need to generate the actual lat/lon values:
Re: the hdf5 question ... a (720,1440) is a 'classic' 0.25 degree grid. This is offset from the poles an dateline by 0.125. The grisd point is the cented of the local grid.
nlat = 720
lat = latGlobeFo(nlat, "lat", "latitude", "degrees_north")
lat = lat(::-1) ; lat: [89.875..-89.875]
print(lat)
mlon = 1440
lon = lonGlobeFo(mlon, "lon", "longitude", "degrees_east")
lon = (/ lon - 180. /) ; subtract 180 from all values
lon&lon = lon ; update coordinate
print<http://www.ncl.ucar.edu/Document/Functions/Built-in/print.shtml>(lon) ; lon: [-179.875..179.875]
x = f->pixTot
x!0 = "lat"
x!1 = "lon"
x at _FillValue = x at CodeMissingValue
fout->pixTot = x
On Tue, May 2, 2017 at 7:59 AM, Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC] <jian.su at nasa.gov<mailto:jian.su at nasa.gov>> wrote:
Thank you Rick,
Filedimdef successfully added lat/lon, but how can we remove DIM_001/ DIM_002 and assign lat/lon to the variable pixTot?
file global attributes:
dimensions:
DIM_001 = 1440
DIM_002 = 720
lat = 1440
lon = 720
variables:
integer pixTot ( DIM_001, DIM_002 )
CodeMissingValue : -9999
DimensionNames : nlon,nlat
From: Rick Brownrigg <brownrig at ucar.edu<mailto:brownrig at ucar.edu>>
Date: Monday, May 1, 2017 at 4:15 PM
To: "Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC]" <jian.su at nasa.gov<mailto:jian.su at nasa.gov>>
Cc: "ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>" <ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>>
Subject: Re: [ncl-talk] change dimensions to lat/lon
Hi Jay,
There are probably several ways to do this. One that occurs to me is to create the dimensions in the new file with the "filedimdef" procedure:
http://ncl.ucar.edu/Document/Functions/Built-in/filedimdef.shtml
So in your case, that might look something like:
filedimdef(f,(/"lat","lon"/),(/1440, 720/), (/False,False/))
You can add the other information directly as global attributes of the file:
f->LatitudeResolution=0.25
f->LongitudeResolution=0.25
...etc...
Hope that helps...
Rick
On Mon, May 1, 2017 at 12:28 PM, Su, Jian (GSFC-610.2)[ADNET SYSTEMS INC] <jian.su at nasa.gov<mailto:jian.su at nasa.gov>> wrote:
Hello,
I am using ncl to convert HDF5 files to netCDF, and one of them looks like this:
Variable: f
Type: file
filename: out
path: out.nc4
file global attributes:
dimensions:
DIM_001 = 1440
DIM_002 = 720
variables:
integer pixTot ( DIM_001, DIM_002 )
CodeMissingValue : -9999
DimensionNames : nlon,nlat
How can I change DIM_001 and DIM_002 to lat/lon, and add the grid information eg,
LatitudeResolution=0.25;
LongitudeResolution=0.25;
NorthBoundingCoordinate=90;
SouthBoundingCoordinate=-90;
EastBoundingCoordinate=180;
WestBoundingCoordinate=-180;
Thanks,
Jay
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
_______________________________________________
ncl-talk mailing list
ncl-talk at ucar.edu<mailto:ncl-talk at ucar.edu>
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/ncl-talk/attachments/20170505/a80fb43e/attachment.html
More information about the ncl-talk
mailing list