[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
20031113: IDV - reading netcdf file
- Subject: 20031113: IDV - reading netcdf file
- Date: Thu, 13 Nov 2003 09:31:56 -0700
>From: Tom Whittaker <address@hidden>
>Organization: SSEC
>Keywords: 200311131611.hADGBiOb008272 netCDF
Tom-
>When I try to read a netcdf file (whose "ncdump -h" is attached), and then try
>
>to display it in the omni control, I get this message:
>
>"RealType Latitude occurs more than once: ShadowType.testIndices"
>
>in the window.
>
>The issues here is that this is a new NetCDF file and they want to "get it
>right". This is a "latitude-longitude grid" of data derived from
>polar-orbitting satellites.
>
>I can make the file available if that would help.
>
>I hope you have some suggestions....thanks!
The problem is that they are using the coordinate variables incorrectly.
They have:
dimensions:
latitude = 1801 ;
longitude = 3600 ;
variables:
long date ;
date:long_name = "Date, in YYYYMMDD format" ;
long time ;
time:long_name = "Image time, UTC, in HHMM " ;
float lat(latitude) ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:precision = "1E-1" ;
lat:missing_value = "-9999.0" ;
float lon(longitude) ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:precision = "1E-1" ;
lon:missing_value = "-9999.0" ;
when it should be:
dimensions:
latitude = 1801 ;
longitude = 3600 ;
variables:
long date ;
date:long_name = "Date, in YYYYMMDD format" ;
long time ;
time:long_name = "Image time, UTC, in HHMM " ;
float latitude(latitude) ;
lat:long_name = "Latitude" ;
lat:units = "degrees_north" ;
lat:precision = "1E-1" ;
lat:missing_value = "-9999.0" ;
float longitude(longitude) ;
lon:long_name = "Longitude" ;
lon:units = "degrees_east" ;
lon:precision = "1E-1" ;
lon:missing_value = "-9999.0" ;
(i.e, lat(latitude) should be latitude(latitude) and lon(longitude)
should be longitude(longitude))
I would also suggest that they combine the date and time into
one field that is:
long time ;
time:long_name = "Image time" ;
time:units: "seconds since 1970-01-01 00:00:00.0" ;
However, the IDV will not use this in any way at present, so
it doesn't matter to the IDV.
I would also suggest trying to adhere to the COARDS or CF convention
and using a Conventions global attribute. In that case, time is
usually represented as coordinate variable, I believe.
>Here are some VisAD-type details:
>
>I get the follow while reading:
>
>The unit attribute (null) of variable "time" is incompatible with the unit (s
>since 1970-01-01 00:00:00.000 UTC) of the RealType of the same name.
>Attempting to create new RealType "time_0".
>Couldn't decode unit attribute (none) of variable "binnedCloudHeight": Unit
>not in database
>Couldn't decode unit attribute (none) of variable "cloudmask": Unit not in
>database
>Couldn't decode unit attribute (HHMMSS) of variable "timeLatency": Unit not in
>
>database
>
>And the following for dumpTypes():
>
> >>> dumpTypes(a)
>VisAD MathType analysis
> TupleType has 5 components:
> 0. RealType: date
> 0. Name = date
> 1. RealType: time_0
> 1. Name = time_0
> 2. FunctionType:
> 2. Domain has 1 components:
> 2. 0. RealType: Latitude
> 2. 0. Name = Latitude
> 2. 0. Unit: deg
> 2. Range:
> 2. RealType: Latitude
> 2. Name = Latitude
> 2. Unit: deg
> 3. FunctionType:
> 3. Domain has 1 components:
> 3. 0. RealType: Longitude
> 3. 0. Name = Longitude
> 3. 0. Unit: deg
> 3. Range:
> 3. RealType: Longitude
> 3. Name = Longitude
> 3. Unit: deg
> 4. FunctionType:
> 4. Domain has 2 components:
> 4. 0. RealType: Latitude
> 4. 0. Name = Latitude
> 4. 0. Unit: deg
> 4. 1. RealType: Longitude
> 4. 1. Name = Longitude
4. 1. Unit: deg
> 4. Range:
> 4. RealTupleType has 6 components:
> 4. 0. RealType: brightnessTemp
> 4. 0. Name = brightnessTemp
> 4. 0. Unit: K
> 4. 1. RealType: binnedCloudHeight
> 4. 1. Name = binnedCloudHeight
> 4. 2. RealType: cloudmask
> 4. 2. Name = cloudmask
> 4. 3. RealType: rawCloudHeight
> 4. 3. Name = rawCloudHeight
> 4. 3. Unit: international_foot
> 4. 4. RealType: timeLatency
> 4. 4. Name = timeLatency
> 4. 5. RealType: timeLatencyUTC
> 4. 5. Name = timeLatencyUTC
>- - - - - - - - - - - - - - - - - - - - - - -
>DataType analysis...
> Tuple has 5 components:
>
> 0. Real: 2.003111E7
>
> 1. Real: 160127.0
>
> 2. FlatField of length = 1801
> 2. (Latitude -> Latitude)
> 2. Domain has 1 components:
> 2. Integer1DSet (Latitude) Range = 0 to 1800
> 2. Range has 1 components:
> 2. 0. FloatSet (Latitude) Dimension = 1
> 2. 0. number missing = 1
>
> 3. FlatField of length = 3600
> 3. (Longitude -> Longitude)
> 3. Domain has 1 components:
> 3. Integer1DSet (Longitude) Range = 0 to 3599
> 3. Range has 1 components:
> 3. 0. FloatSet (Longitude) Dimension = 1
> 3. 0. number missing = 0
>
> 4. FlatField of length = 6483600
> 4. ((Latitude, Longitude) -> (brightnessTemp,
> binnedCloudHeight,
> cloudmask,
> rawCloudHeight,
> timeLatency,
> timeLatencyUTC))
> 4. Domain has 2 components:
> 4. Integer2DSet: Length = 6483600
> 4. 0. Integer1DSet (Latitude) Range = 0 to 1800
> 4. 1. Integer1DSet (Longitude) Range = 0 to 3599
> 4. Range has 6 components:
> 4. 0. FloatSet (brightnessTemp) Dimension = 1
> 4. 0. number missing = 0
> 4. 1. FloatSet (binnedCloudHeight) Dimension = 1
> 4. 1. number missing = 0
> 4. 2. FloatSet (cloudmask) Dimension = 1
> 4. 2. number missing = 0
> 4. 3. FloatSet (rawCloudHeight) Dimension = 1
> 4. 3. number missing = 0
> 4. 4. FloatSet (timeLatency) Dimension = 1
> 4. 4. number missing = 0
> 4. 5. FloatSet (timeLatencyUTC) Dimension = 1
> 4. 5. number missing = 0
>
>
>
>--
>Tom Whittaker (address@hidden)
>University of Wisconsin-Madison
>Space Science and Engineering Center
>Cooperative Institute for Meteorological Satellite Studies
>Phone/VoiceMail: 608.262.2759
>
>
>--------------030101050807050205040609
>Content-Type: text/plain;
> name="wayne.txt"
>Content-Transfer-Encoding: 7bit
>Content-Disposition: inline;
> filename="wayne.txt"
>
>netcdf wayne {
>dimensions:
> latitude = 1801 ;
> longitude = 3600 ;
>
>variables:
> long date ;
> date:long_name = "Date, in YYYYMMDD format" ;
> long time ;
> time:long_name = "Image time, UTC, in HHMM " ;
> float lat(latitude) ;
> lat:long_name = "Latitude" ;
> lat:units = "degrees_north" ;
> lat:precision = "1E-1" ;
> lat:missing_value = "-9999.0" ;
> float lon(longitude) ;
> lon:long_name = "Longitude" ;
> lon:units = "degrees_east" ;
> lon:precision = "1E-1" ;
> lon:missing_value = "-9999.0" ;
> float brightnessTemp(longitude, latitude) ;
> brightnessTemp:long_name = "11um brightness temperature of clou
> d top" ;
> brightnessTemp:units = "degrees_Kelvin" ;
> brightnessTemp:precision = "1E-1" ;
> brightnessTemp:missing_value = "-9999.0" ;
> float binnedCloudHeight(longitude, latitude) ;
> binnedCloudHeight:long_name = "Bin 0:0-10Kft, 1:10-20, 2:20-30,
> 3:30-40, 4:>40, 7:missing" ;
> binnedCloudHeight:units = "none" ;
> binnedCloudHeight:precision = "1E0" ;
> binnedCloudHeight:missing_value = "-9999.0" ;
> float cloudmask(longitude, latitude) ;
> cloudmask:long_name = " (0: < 10kft, 1: >10kft, 2:missing cloud
> data)" ;
> cloudmask:units = "none" ;
> cloudmask:precision = "1E0" ;
> cloudmask:missing_value = "-9999.0" ;
> float rawCloudHeight(longitude, latitude) ;
> rawCloudHeight:long_name = "Cloud height above mean sea level"
> ;
> rawCloudHeight:units = "feet" ;
> rawCloudHeight:precision = "1E0" ;
> rawCloudHeight:missing_value = "-9999.0" ;
> float timeLatency(longitude, latitude) ;
> timeLatency:long_name = "Time of observation, UTC" ;
> timeLatency:units = "HHMMSS" ;
> timeLatency:precision = "1E0" ;
> timeLatency:missing_value = "-9999.0" ;
> float timeLatencyUTC(longitude, latitude) ;
>
>// global attributes:
> :Comments = "\' \'" ;
> :SoftwareVersion = "$Id: sat_globalclouds.f,v 1.3 2003/10/24 16
> :14:09 benh Exp $" ;
>}
>
>--------------030101050807050205040609--
>
Date: Thu, 13 Nov 2003 10:38:03 CST
From: Tom Whittaker <address@hidden>
Subject: Re: 20031113: IDV - reading netcdf file
Thank you - I have passed this along...
tom