<div dir="ltr">[This has degenerated into a debate about whether a given file is a valid CF DSG file, but I'll continue.]<div><br><div>Perhaps I am misunderstanding this, but it is very hard for me to interpret H4 as "defective", as if it were a minor error within an otherwise valid CF DSG file. </div><br>The description right above it says "When the intention of a data variable is to contain only a single time series, <b>the preferred encoding</b> is a special case of the multidimensional array representation." [emphasis mine]<br><br>That reference to an encoding that is a special case of the multidimensional array representation is almost certainly a reference to an entire paragraph in section 9.2 which starts with<br>"If there is only a single feature to be stored in a data variable, there is no need for an instance dimension and it is permitted to omit it." and then discusses that.<br><br>So the whole point of H4 is to give an example where there is an <b>implied</b> time series dimension, not an actual one.  [I'm not happy about this type of file either, but CF DSG seems to explicitly allow it, and even actively encourage it. I'm just trying to follow the rules.]</div><div><br></div><div>---</div><div>And if H4 is defective, several groups that now make this type of file are going to be surprised to hear it.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 28, 2017 at 12:16 PM, Jonathan Gregory <span dir="ltr"><<a href="mailto:j.m.gregory@reading.ac.uk" target="_blank">j.m.gregory@reading.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Rich, Bob<br>
<br>
Rich asked<br>
> What is the difference that makes example CF H.4 okay, but not Bob's example?<br>
<br>
That's a good question. You're right, I think example H4 has the same<br>
problem! I didn't read it carefully enough - sorry. The station_name:cf_role<br>
attribute in H4 says it's a station ID, but there's no association with the<br>
data variable. If you had more than one data variable in the file, as in Bob's<br>
example as he gave it originally, you couldn't tell which one it belonged to,<br>
so it can't be used as identification. In examples H6 and H7, however, where<br>
there are several timeseries, there is an instance (station) dimension, and the<br>
timeseries_id variable is station_name(station, name_strlen). So here's it's<br>
clear that the station_name belongs to the stations, and you can infer that<br>
it's an array of strings, not a 2D character array.<br>
<br>
Therefore I think H4 and H5 are defective.<br>
<br>
In Bob's example, he has several data variables (five, I think) each of size<br>
996, and a variable<br>
<br>
    char timeseries(timeseries=10);<br>
      :cf_role = "timeseries_id";<br>
      :long_name = "timeseries";<br>
<br>
I don't know what this refers to - that's my problem. Does it belong to any<br>
of the data variables? The dimension timeseries is not otherwise used.<br>
<br>
Best wishes<br>
<br>
Jonathan<br>
<br>
<br>
On Mon, Feb 27, 2017 at 02:41:49PM -0500, Signell, Richard wrote:<br>
> Date: Mon, 27 Feb 2017 14:41:49 -0500<br>
> From: "Signell, Richard" <<a href="mailto:rsignell@usgs.gov">rsignell@usgs.gov</a>><br>
> To: Jonathan Gregory <<a href="mailto:j.m.gregory@reading.ac.uk">j.m.gregory@reading.ac.uk</a>><br>
> Subject: Re: [CF-metadata] Pre-proposal for "charset"<br>
><br>
> On Mon, Feb 27, 2017 at 1:11 PM, Jonathan Gregory<br>
> <<a href="mailto:j.m.gregory@reading.ac.uk">j.m.gregory@reading.ac.uk</a>> wrote:<br>
> > Dear Bob<br>
> ><br>
> > That's right, there doesn't have to be an instance dimension. The problem with<br>
> > the file is that the variable you're concerned with (timeseries) isn't linked<br>
> > to any of the other variables, so its purpose is not clear.<br>
> ><br>
><br>
> Jonathan,<br>
><br>
><br>
><br>
> #1 CF Example H.4<br>
> <a href="http://cfconventions.org/cf-conventions/v1.6.0/cf-conventions.html#example-h.4" rel="noreferrer" target="_blank">http://cfconventions.org/cf-<wbr>conventions/v1.6.0/cf-<wbr>conventions.html#example-h.4</a><br>
><br>
> dimensions:<br>
>       time = 100233 ;<br>
>       name_strlen = 23 ;<br>
><br>
>    variables:<br>
>       float lon ;<br>
>           lon:standard_name = "longitude";<br>
>           lon:long_name = "station longitude";<br>
>           lon:units = "degrees_east";<br>
>       float lat ;<br>
>           lat:standard_name = "latitude";<br>
>           lat:long_name = "station latitude" ;<br>
>           lat:units = "degrees_north" ;<br>
>       float alt ;<br>
>           alt:long_name = "vertical distance above the surface" ;<br>
>           alt:standard_name = "height" ;<br>
>           alt:units = "m";<br>
>           alt:positive = "up";<br>
>           alt:axis = "Z";<br>
>       char station_name(name_strlen) ;<br>
>           station_name:long_name = "station name" ;<br>
>           station_name:cf_role = "timeseries_id";<br>
><br>
>       double time(time) ;<br>
>           time:standard_name = "time";<br>
>           time:long_name = "time of measurement" ;<br>
>           time:units = "days since 1970-01-01 00:00:00" ;<br>
>           time:missing_value = -999.9;<br>
>       float humidity(time) ;<br>
>           humidity:standard_name = “specific_humidity” ;<br>
>           humidity:coordinates = "time lat lon alt" ;<br>
>           humidity:_FillValue = -999.9;<br>
>       float temp(time) ;<br>
>           temp:standard_name = “air_temperature” ;<br>
>           temp:units = "Celsius" ;<br>
>           temp:coordinates = "time lat lon alt" ;<br>
>           temp:_FillValue = -999.9;<br>
><br>
>    attributes:<br>
>           :featureType = "timeSeries";<br>
><br>
><br>
> #2 Bob's example:<br>
><br>
> netcdf summary_allTB2007.nc {<br>
>   dimensions:<br>
>     timeseries = 10;<br>
>     time = 996;<br>
>   variables:<br>
>     char timeseries(timeseries=10);<br>
>       :cf_role = "timeseries_id";<br>
>       :long_name = "timeseries";<br>
><br>
>     double time(time=996);<br>
>       :units = "seconds since 1970-01-01T00:00:00Z";<br>
>       :standard_name = "time";<br>
>       :long_name = "time";<br>
>       :calendar = "gregorian";<br>
>       :axis = "T";<br>
><br>
>     double latitude;<br>
>       :valid_min = -90.0; // double<br>
>       :valid_max = 90.0; // double<br>
>       :axis = "Y";<br>
>       :long_name = "latitude";<br>
>       :standard_name = "latitude";<br>
>       :units = "degrees_north";<br>
><br>
>     double longitude;<br>
>       :valid_min = -180.0; // double<br>
>       :valid_max = 180.0; // double<br>
>       :axis = "X";<br>
>       :long_name = "longitude";<br>
>       :standard_name = "longitude";<br>
>       :units = "degrees_east";<br>
><br>
>     double depth;<br>
>       :positive = "down";<br>
>       :axis = "Z";<br>
>       :valid_min = 0.0; // double<br>
>       :valid_max = 10971.0; // double<br>
>       :long_name = "depth";<br>
>       :standard_name = "depth";<br>
>       :units = "m";<br>
><br>
>     char platform;<br>
>       :long_name = "MVCO ASIT";<br>
><br>
>     char instrument;<br>
>       :long_name = "Imaging FlowCytobot";<br>
><br>
>     double crs;<br>
>       :grid_mapping_name = "latitude_longitude";<br>
>       :longitude_of_prime_meridian = 0.0; // double<br>
>       :semi_major_axis = 6378137.0; // double<br>
>       :inverse_flattening = 298.257223563; // double<br>
>       :epsg_code = "EPSG:4326";<br>
><br>
>     double Phaeocystis(time=996);<br>
>       :_FillValue = -9999.9; // double<br>
>       :long_name = "Phaeocystis";<br>
>       :standard_name = "Phaeocystis";<br>
>       :units = "1";<br>
>       :coordinates = "time depth latitude longitude";<br>
>       :grid_mapping = "crs";<br>
>       :platform = "platform";<br>
>       :instrument = "instrument";<br>
><br>
>   // global attributes:<br>
>   :featureType = "timeSeries";<br>
>   :cdm_data_type = "TimeSeries";<br>
>   :Conventions = "CF-1.6";<br>
>   :summary = "Phytoplankton concentration by class derived from images<br>
> collected by Imaging FlowCytobot\n";<br>
>   :institution = "WHOI";<br>
>   :title = "Phytoplankton concentration by class";<br>
> }<br>
<span class="HOEnZb"><font color="#888888">><br>
> --<br>
> Dr. Richard P. Signell   <a href="tel:%28508%29%20457-2229" value="+15084572229">(508) 457-2229</a><br>
> USGS, 384 Woods Hole Rd.<br>
> Woods Hole, MA 02543-1598<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr">Sincerely,<br><br>Bob Simons<br>IT Specialist<br>Environmental Research Division<br>NOAA Southwest Fisheries Science Center <br>99 Pacific St., Suite 255A      (New!)<br>Monterey, CA 93940               (New!) <br>Phone: (831)333-9878            (New!<span style="font-size:13.3333339691162px">)</span><div>Fax:   (831)648-8440<br>Email: <a href="mailto:bob.simons@noaa.gov" target="_blank">bob.simons@noaa.gov</a><br><br>The contents of this message are mine personally and <br>do not necessarily reflect any position of the <br>Government or the National Oceanic and Atmospheric Administration.<br><>< <>< <>< <>< <>< <>< <>< <>< <>< <br><br></div></div></div>
</div>