Open unep-gwdc opened 9 months ago
Thanks for looking over the data model in such detail!
Temporal attributes: Good point, we should make it consistent. Simplest is just time
, but Datastream and Observation have multiple times, so they still need specific ones. So the most consistent would be using only specific times.
At the moment we can't change the STA core ones, but I've added this topic to the agenda for the discussions for version 2.
Spatial attributes: That's a bit of FROST implementation details leaking through. FeatureOfInterest/feature and Location/location are actually of type ANY, so users can also use WKT or FG-JSON if they like. FROST can currently only use the values in $filter if it is GeoJSON. I'll update the model to correctly list ANY. (and fix FROST so it outputs ANY)
Datastream.observationType: Yes, it should be a ValueCode. I'll fix the image. That's also a todo in FROST.
depthUom: Yes, proper alignment would be better.
The current FROST WQ data model has a couple of naming inconsistencies:
[ ] Temporal attributes: HistoricalLocation, Sampling, PreparationStep have a time attribute, Deployment a more specific deploymentTime attribute. Suggest to either name all temporal attributes directly related to the containing class as "time" (easier to handle but less explicit) or add entity name to time attributes such as in deploymentTime (e.g. samplingTime)
[ ] Spatial attributes: Location.location, FeatureOfInterest.feature are of data type GeoJSON, Datastream.observedArea, Sampling.samplingLocation a Geometry. Is there a specific reason for this distinction? Also consider renaming Sampling.samplingLocation to Sampling.location to be consistent with Location.location (same as with temporal attributes)?
[ ] Datastream.observationType is defined as a String but according to OMS (AbstractObservationType) this is rather a CodeList. In terms of interoperability, wouldn't it be better to enforce or recommend a code list depending of the contained observation result types?
[ ] depthUom in Deployment and Sampling defined as String, unitOfMeasurement in Datastream as dedicated data type UnitOfMeasurement. Better to align?