Hi Rich, Tom, Jonathan,
I am offline at the moment (on "jury duty" ... or should I say "dreary
duty" as it
is all waiting ...) so do not have access to all of the on-line specs.
Please
forgive syntactic errors and other clutsy mistakes I will probably
intersperse ...
My comment is not on the specifics of the proper standard names or how
to encode
the starting index. It is on the more general outlook -- that the
approach we are discussing to encoding unstructured meshes in netCDF
seems in some important ways
inconsistent with the spirit behind the handling of coordinates in CF.
In CF we do
not standardize the names given to coordinate variables. Rather we
standardize the
attributes that create the associations between dependent variables and
their
coordinates: "coordinates =" and "bounds =". And we standardize units
and attributes
for axis orientation -- the semantics of the coordinate. For
unstructured meshes the
definition of the "grid" becomes more complex and requires additional
supporting
structures. So we need additional information creating the association
between
dependent variables and their underlying coordinates -- similar in
spirit to the
"coordinates =" and "bounds =". I wonder if, rather than standardizing
new
dependent variable names, "Horizontal_Triangular_Element_Incidence_List"
and
"Boundary_Segment_Node_List", we shouldn't be instead standardizing
attributes that
point to these:
e.g.
(1) Add the following **attributes** to CF:
my_var: Horizontal_Triangular_Element_Incidence_List = "foo";
my_var: Boundary_Segment_Node_List = "foo2";
The importance of this approach is that the coordinate system is a
property of the
dependent variable -- not a property of the file. Unstructured meshes,
curvilinear
grids, and rectilinear grids should be able to co-exist in the same
file.
Similarly, differing unstructured meshes should be able to co-exist
within the same
file. The use of a global attribute, ':grid_type = "Triangular" ;' and
standardized
names for coordinate variables will make this difficult to achieve, no?
(Ditto for
the "z_type" attribute as a global property of the file.)
- steve
===============================================
Rich Signell wrote:
> Jonathan,
>
> I just had a long talk with Tom Gross, and we have the following proposal
> for handling unstructured grids:
>
> (1) Add the following standard_names to CF:
>
> Horizontal_Triangular_Element_Incidence_List
> Boundary_Segment_Node_List
>
> (2) remove units attributes from the variables that correspond to
> these names.
>
> (3) Define the upcoming CF Convention "parameters" attribute
> as "index_start_0" or "index_start_1"
>
> The resulting unstructured CDL would thus look like:
>
> netcdf umesh_cf {
> dimensions:
> node = 9700 ;
> nele = 17925 ;
> nbnd = 1476 ;
> nface = 3 ;
> nbi = 4 ;
> sigma = 1 ;
> time = UNLIMITED ; // (0 currently)
> variables:
> int ele(nele, nface) ;
> ele:standard_name =
> "Horizontal_Triangular_Element_Incidence_List" ;
> ele:parameters = "index_start_1" ;
> int bnd(nbnd, nbi) ;
> bnd:standard_name = "Boundary_Segment_Node_List" ;
> bnd:parameters = "index_start_1" ;
> float time(time) ;
> time:long_name = "Time" ;
> time:units = "days since 2003-01-01 0:00:00 00:00" ;
> time:base_date = 2003, 1, 1, 0 ;
> time:standard_name = "time" ;
> float lon(node) ;
> lon:long_name = "Longitude" ;
> lon:units = "degrees_east" ;
> lon:standard_name = "longitude" ;
> float lat(node) ;
> lat:long_name = "Latitude" ;
> lat:units = "degrees_north" ;
> lat:standard_name = "latitude" ;
> float depth(node) ;
> depth:long_name = "Bathymetry" ;
> depth:units = "meters" ;
> depth:positive = "down" ;
> depth:standard_name = "depth" ;
>
>
> // global attributes:
> :file_type = "FEM" ;
> :Conventions = "CF-1.0" ;
> :grid_type = "Triangular" ;
> :z_type = "sigma" ;
> :model = "quoddyv511" ;
> :title = "Chesapeake Bay FEM" ;
> :comment = "zzrtquoddylinux Twice Daily Runs" ;
> :source = "bassmmap" ;
> :institution = "NOAA/NOS/OCS/CSDL/MMAP" ;
> :history = "original" ;
> :references = "tom.gross at noaa.gov" ;
> :creation_date = "2004-05-06 9:18:23 04:00" ;
> }
>
> Jonathan Gregory wrote:
>
> >Dear Tom
> >
> >I think we didn't finish the earlier discussion, back in February.
> >
> >We need to have standard names for the various quantities that define your
> >mesh, such as your "Horizontal Triangular Element Incidence List" and "Boundary
> >Segment Node List". We agreed that the convention for whether it numbers from
> >0 or 1 needs to be stated. You've suggested doing this with the units
> >attribute e.g. units="index_start_1". I think that it would be better to put
> >the "start 0" or "start 1" information into the standard name itself because
> >
> >(a) units="index_start_1" or similar is not a legal udunit. Hence it would
> >cause a problem to anything which uses udunits to interpret the attribute.
> >
> >(b) we do not use units to indicate sign conventions, and this strikes me as
> >a similar kind of issue.
> >
> >(c) it is absolutely essential that this information is specified. With
> >physical quantities you could often make an intelligent guess if the units
> >weren't specified, but in this case a guess would be hard to make. Since it is
> >essential, putting it in the standard name is good because it's unavoidable.
> >
> >However a compromise might be to consider putting this into a standard_name_
> >parameter which has to be specified as well as the standard name, such as we
> >have been discussing in another thread.
> >
> >Any comments?
> >
> >Best wishes
> >
> >Jonathan
> >_______________________________________________
> >CF-metadata mailing list
> >CF-metadata at cgd.ucar.edu
> >http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata
> >
> >
>
> --
> Richard P. Signell rsignell at usgs.gov
> U.S. Geological Survey Phone: (508) 457-2229
> 384 Woods Hole Road Fax: (508) 457-2310
> Woods Hole, MA 02543-1598
>
> _______________________________________________
> CF-metadata mailing list
> CF-metadata at cgd.ucar.edu
> http://www.cgd.ucar.edu/mailman/listinfo/cf-metadata
Received on Wed Nov 17 2004 - 13:06:29 GMT