⇐ ⇒

[CF-metadata] Need help writing point netCDF 3 dataset

From: Mark Ohrenschall <Mark.A.Ohrenschall>
Date: Mon, 27 Nov 2006 15:56:07 -0700

Hi Simon,

Thanks for your help, and you're quite right about the peculiar scale
and valid ranges -- I've fixed that now (I think) and I have included a
new CDL listing with some other changes (such as using the more
intuitive "recNum" rather than "ri").

Sorry about the nomenclature confusion; what I meant to say was netCDF
ToolsUI version 2.2 -- true, I am using nj22, but which library I'm
using should be irrelevant as I'm hoping to consider the netCDF file as
the final product and not how I made it. I'm still hoping this is the
most appropriate list, as my question is not a Java question as such,
but more of a semantic question or question of conventions. True, it is
not strictly a CF question but I hope it's in the same ballpark
(strictly speaking I suppose it's a "Unidata Observation Dataset
Convention" question).

I didn't hand-write the CDL, but it was generated using the NCDump tab
of ToolsUI (which is essentially the same as running "ncdump -h" from
the command-line) -- I didn't include any data so as not to weigh down
the email, and I'm also hoping that the data content shouldn't matter.

So, I've been trying various things and I remain unable to get the IDV
(and ToolsUI) to recognize that my netCDF file has anything at all. Has
anyone succeeded in using the IDV with their point data?

Cheers *--* Mark

netcdf D:/test.nc {
 dimensions:
   recNum = UNLIMITED; // (99 currently)
 variables:
   short sst(recNum=99);
     :standard_name = "sea_surface_temperature aerosol-corrected";
     :long_name = "Aerosol Corrected SST";
     :units = "degC";
     :add_offset = 0.0f; // float
     :scale_factor = 0.1f; // float
     :valid_range = -20.0f, 350.0f; // float
   short latitude(recNum=99);
     :standard_name = "latitude";
     :long_name = "Latitude";
     :units = "degrees_north";
     :add_offset = 0.0f; // float
     :scale_factor = 0.01f; // float
     :valid_range = -9000.0f, 9000.0f; // float
   int obstime(recNum=99);
     :standard_name = "time";
     :long_name = "Date and Time of Observation";
     :units = "seconds since 1970-01-01 00:00:00 GMT";
   short longitude(recNum=99);
     :standard_name = "longitude";
     :long_name = "Longitude";
     :units = "degrees_east";
     :add_offset = 0.0f; // float
     :scale_factor = 0.01f; // float
     :valid_range = -18000.0f, 17999.0f; // float

 :Conventions = "Unidata Point Format";
 :StandardVocabulary = "CF";
 :CF_url = "http://www.cgd.ucar.edu/cms/eaton/cf-metadata";
 :version = 2.0; // double
 :title = "Sea Surface Temperatures calculated at points based on satellite observations.";
}

Simon Wood wrote:
> Hi Mark,
>
> I assume by netCDF 2.2 you are referring to netCDF-java 2.2 (nj22),
> which is not the same thing as netCDF-2.2 ;-) I also note that you
> are obviously trying to create CDM datasets. As I understand things
> CDM is compatible with CF, but it is not exactly the same... 'point'
> datasets do not mean anything in CF. So you're probably better off
> asking this question on the netCDF-java lists
> (http://www.unidata.ucar.edu/support/mailinglist/mjd/netcdf-java.html).
>
> That said, I can't see anything glaringly wrong with what you have
> here (of course it has no data but assume thats deliberate ;-). I'm
> not sure about the 'ni=99' syntax and the scale and valid range values
> look strange... '_CoordinateAxisType' is, I think, a CDM-ism, but
> should just be ignored by CF tools.
>
> Oh, you do need to prefix all your variable attributes with the
> variable name (or is this just your shorthand?), ie:
> short sst(ni=99);
> sst:standard_name = "sea_surface_temperature aerosol-corrected";
> sst:long_name = "Aerosol Corrected SST";
> ^^^
> ...
>
> cheers
>
> Simon
>
>
> Mark Ohrenschall wrote:
>> Hi folks,
>>
>> I'm writing a point netCDF 3 dataset which I've had no luck in
>> getting either the IDV or netCDF (2.2) Tools to open (it does an
>> NCDump but does nothing under the PointObs tab). It's essentially an
>> XYZT dataset; I've included its CDL below. Can anyone tell me what
>> I'm doing wrong, what I'm not doing that I need to do, and (or) send
>> me an example point netCDF dataset that can be opened by the IDV and
>> netCDF Tools?
>>
>> Thanks *--* Mark
>>
>> netcdf D:/test.nc {
>> dimensions:
>> ni = UNLIMITED; // (99 currently) // (has coord.var)
>> variables:
>> int ni(ni=99);
>> short sst(ni=99);
>> :standard_name = "sea_surface_temperature aerosol-corrected";
>> :long_name = "Aerosol Corrected SST";
>> :units = "degC";
>> :scale_factor = 1s; // short
>> :valid_range = -20s, 350s; // short
>> :coordinates = "latitude longitude obstime";
>> short latitude(ni=99);
>> :standard_name = "latitude";
>> :long_name = "Latitude";
>> :units = "degrees_north";
>> :scale_factor = 2s; // short
>> :valid_range = -9000s, 9000s; // short
>> :_CoordinateAxisType = "Lat";
>> int obstime(ni=99);
>> :standard_name = "time";
>> :long_name = "Date and Time of Observation";
>> :units = "seconds since 1970-01-01 00:00:00 GMT";
>> :_CoordinateAxisType = "Time";
>> short longitude(ni=99);
>> :standard_name = "longitude";
>> :long_name = "Longitude";
>> :units = "degrees_east";
>> :scale_factor = 2s; // short
>> :valid_range = -18000s, 17999s; // short
>> :_CoordinateAxisType = "Lon";
>>
>> :Conventions = "CF-1.0, Unidata Observation Dataset v1.0";
>> :title = "Sea Surface Temperatures calculated at points based on
>> satellite observations.";
>> :institution = "NOAA National Environmental Satellite, Data and
>> Information Service";
>> :source = "NOAA NESDIS Office of Satellite Data Processing and
>> Distribution";
>> :history = "2006-11-24 17:14:31 -0700 Translated from test into
>> netCDF at NGDC";
>> :references = "http://www2.ncdc.noaa.gov/docs/klm/html/c9/sec91-2.htm";
>> :comment = "Miscellaneous information about the data or methods used
>> to produce it.";
>> :cdm_datatype = "Point";
>> :observationDimension = "ni";
>> :geospatial_lat_max = 90; // int
>> :geospatial_lat_min = -90; // int
>> :geospatial_lon_max = 180; // int
>> :geospatial_lon_min = -180; // int
>> :time_coverage_start = "2000-01-01 00:00:00 UTC";
>> :time_coverage_end = "2007-01-01 00:00:00 UTC";
>> }
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> CF-metadata mailing list
>> CF-metadata at cgd.ucar.edu
>> http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.cgd.ucar.edu/pipermail/cf-metadata/attachments/20061127/222709e8/attachment-0002.html>
Received on Mon Nov 27 2006 - 15:56:07 GMT

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:40 BST

⇐ ⇒