Hello Daniele and all

There is my comments about the latest Geographic metadata document from 
Geosolution (http://www.geo-solutions.it/doc/nd-metadata-doc.odt):

Figure 5
--------
This figure splits the CRS into 3 compenents: SpatialCRS, VerticalCRS and 
TemporalCRS. I suggest to remove all of those and keep a plain CRS instead. 
Rational:

(note: I noticed after writing the points below that the document defines 
"TemporalCRS" and "VerticalCRS" as redundant nodes in case the SpatialCRS is 
not 
compound. If this is the intend, then I suggest to remove this redundancy 
completly and rename "SpatialCRS" as "CRS" since it is not restricted to 
spatial 
dimensions)


   * The figure sets SpatialCRS as mandatory and VerticalCRS / TemporalCRS
     as optional. There is no reason for that. Some coverage in oceanography
     are (depth, time) coverages (e.g. the output of current-meters using
     Dopler effects).

   * Splitting SpatialCRS and VerticalCRS in two independant is assuming
     that horizontal and vertical CRS are always independant, e.g. there is
     never coverage on inclined planes. Again this is not always the case
     (e.g. raster modelising the flow of some substance, water/ice/mud...).

   * Furthermore the term "spatial" is problematic. Isn't vertical CRS
     spatial?

   * This split introduces an other split between Envelope, VerticalExtent
     and TemporalExtent. We have a little bit of inconsistency here. The
     Extent are defined in ISO 19115 while the Envelope is defined in
     ISO 19107. They have a quite different hierarchy. A more consistent
     approach would be to have either an Envelope alone, of an ISO 19115
     Extent (which is itself built of GeographicExtent, VerticalExtent
     and TemporalExtent) rather than mixing them.

   * If we were to keep the split, we would need to remove at least the
     VerticalDatum and TemporalDatum from the list of datum allowed for
     a SpatialCRS in the figure. What to do about EngineeringDatum and
     ImageDatum? (they are not necessarly spatial).

Given all the reasons above and given that this split is not in a specification 
I'm aware of, I recommand to remove this split and stick to a single Envelope 
with a single CRS. It is more generic and would simplify a lot the metadata. A 
user can extract the vertical and temporal components from the Envelope and CRS 
if they are present.


Table 1
-------
Documentation said "It is also worth to point out that the Geodetic Datum needs 
at least an Ellipsoid or the Prime Meridian description in order to be fully 
described". It needs both an ellipsoid *and* a prime meridian.


Figure 5 (continuing) and figure 8
----------------------------------
Why ProjectedCRS and DerivedCRS are under the "SpatialCRS" node? (on side of 
various Datum)? If the goal is to represent the base CRS, it would be more in 
ISO 19111 spirit to have an explicit "baseCRS" node for them.


Figure 8
--------
"OperationMethod" is in the wrong place. It should be "Conversion" (the class 
name) or "conversionFromBase" (the property name - I suggest the later name; 
see 
may last comment in the "generic comment" section) with two child nodes: 
"method" (the name of the property associated to an "OperationMethod") and 
"usesValue" (lets find a more Java-friendly name; I suggest "parameters"). I 
suggest to *not* details the parameter descriptors under "OperationMethod" 
(this 
is what you did with the "usesParameters" child node) - they are descriptors, 
not actual values. The parameter values are rather under the "parameters" node 
under the "conversionFromBase" node.



Figure 9
--------
See the comment for figure 5. I suggest to remove the VerticalExtent and 
TemporalExtent and rely to a simple Envelope instead. Having redudancy will 
make 
usage of the metadata more complicated (any client of those metadata will now 
need to check for vertical range in two places. If we want to be really safe, 
we 
would need to make sure thay are consistent)


Figure 10
---------
Why "srsName" and "id" attribute for the origin point? I think that the srs 
should be the CRS given above in figure 5. Allowing a different CRS for the 
point will make the job more difficult for metadata clients (need to parse an 
other srs) and introduce ambiguity (which CRS should be applicable to offset 
vectors? The one in figure 5 or the one associated to the origin?)


Figure 11
---------
"Scale" and "Offset" are not what I call "calibration". To me, calibration as a 
whole different (and much more complex) topic.

* Calibration are used for transforming the sensor output to geophysics units,
   taking in account the uncertanties. The purpose of "scale" and "offset" is
   *not* to transform sensor output. It is only an encoding for more compact
   data transfert (typically *after* the calibration coefficient has been
   applied).

* In some case calibration involves more than one band at once. In oceanography
   the computation if Sea Surface Temperature involves two or three bands and 
the
   result appears in a single band.

* Calibration are usually of higher order (typically at least cubic).

* Calibration needs a calibration date.

If you want a calibration section in metadata, I'm 100% for that - this is 
really important and relevant information. But we should not confuse 
calibration 
and data encoding. Scale and offset are for encoding. Calibration is an other 
topic which should have its own section.

So I suggest to:

* Rename "calibration" to something else, and keep the "calibration" name
   for real calibration informations (lets revisit that later).

* Remove the "error" attribute because they apply to calibration,
   not to data encoding.

* Move "scale" and "offset" to one of the following (at your choice):
   - As category attributes (more powerful and generic)
   - As SampleDimension attributes (more consistent with current
     location of nodataValues).



Generic comment
---------------
There is a mix of node name begining with lower case and upper case. In my 
understanding of XML schema defined by OGC:

   - Nodes begining by lower case are property names
   - Nodes begining by upper case are class names
   - There is always an alternance lower-upper-lower-upper-...

Current schema has more variations. In our GeographicMetadata class that we 
started to implement in the unsupported/coverageio module, we choosed the 
following policy:

    - Always put nodes for properties, never for the class
      (the later is redundant and is rely a departure from
      XML usage; I don't know why OGC do that).

    - Records the class name in the property node (for now
      only in comments, later in the code), so we can insert
      back the class name at runtime if we wish.

So using those rules every nodes beging with a lower case (as we usually do in 
XML). In figure 11 "Categories" become "categories" and "Category" become 
"category" (because in those cases the property name is the same than the class 
name). In figure 8 "ParameterValue" become "includesValue" (the ISO 19111 name 
for the ParameterValues.values() method) or "value" or "parameter" if we want 
to 
stay more Java-like (I vote for "parameter" for consistency with the 
"parameters" name suggested in the Figure 8 comments).


        Regards,

                Martin

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to