NSF Unidata

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[IDV #WON-355400]: Problematic point netcdf file

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.



Hi David,

Oops, you've been trying to replicate the wrong file. The THREDDS page I 
pointed you to has 3 access methods: OPENDAP, NetcdfSubset, and HTTPServer. I 
meant for you to download from the HTTPServer service, not NetcdfSubset. My 
fault, I should have been more clear.

The original H.2.1.1.nc file, which HTTPServer will return to you unaltered, 
uses the Orthogonal multidimensional array representation of time series [1]. 
The NetcdfSubset service rewrote the original file to be in Indexed ragged 
array representation [2].

Orthogonal is what you want. For clarity, I'll go ahead and paste the ncdump of 
the correct file:

netcdf C:/Users/cwardgar/Desktop/H.2.1.1.nc {
  dimensions:
    station = 10;
    time = 5;
    name_strlen = 3;
  variables:
    float humidity(station=10, time=5);
      :standard_name = "specific_humidity";
      :coordinates = "time lat lon alt";

    double time(time=5);
      :standard_name = "time";
      :long_name = "time of measurement";
      :units = "days since 1970-01-01 00:00:00";

    float lon(station=10);
      :standard_name = "longitude";
      :long_name = "station longitude";
      :units = "degrees_east";

    float lat(station=10);
      :standard_name = "latitude";
      :long_name = "station latitude";
      :units = "degrees_north";

    float alt(station=10);
      :long_name = "vertical distance above the surface";
      :standard_name = "height";
      :units = "m";
      :positive = "up";
      :axis = "Z";

    char station_name(station=10, name_strlen=3);
      :long_name = "station name";
      :cf_role = "timeseries_id";

  // global attributes:
  :featureType = "timeSeries";
  :Conventions = "CF-1.6";
}

If you can get your dataset to look like that, you'll be good to go. You may 
wonder about the "station_name" variable and its "cf_role" attribute. From the 
CF docs [3]:

"It is strongly recommended that there should be a station variable (which may 
be of any type) with the attribute cf_role=”timeseries_id”, whose values 
uniquely identify the stations."

So, the values needn't be names or even strings, but they ought to be unique.

Cheers,
Christian

[1] 
http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/cf-conventions.html#idm43165546432
[2] 
http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/cf-conventions.html#idm43165513616
[3] 
http://cfconventions.org/Data/cf-conventions/cf-conventions-1.7/build/cf-conventions.html#time-series-data


Ticket Details
===================
Ticket ID: WON-355400
Department: Support netCDF Java
Priority: Normal
Status: Closed