This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>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