-
Notifications
You must be signed in to change notification settings - Fork 2
Description
As mentioned in cchdo/hydro#56 the data model here is in need of some updates. Some other things that might be needed or nice to have:
- "Template" Parameters like the url templates in e.g. flask:
CDOM{int:wavelength} [/METER]CTDBETA{int:wavelength}_{int:scattering_angle} [M^-1/SR]FDOM_{int:ex_wavelength}_{int:em_wavelength}FDOM_{int:ex_wavelength}_{int:em_wavelength_start}:{int:em_wavelength_end}(needs cf "cell methods" to describe)
- More generic ancillary variables:
- Analytical Temperatures
- Analytical salinities
- Replicates
- Whatever else we can think of...
- Error/uncertainties for everything without needing to add an explicit name
The API also needs some help, right now there is a combination of full_*_name and name properties that not consistent, this has led to at least one bug recently.
How these things are unambiguously represented in both CF netCDF and a CSV (e.g. exchange) needs to be considered and probably experimented on. We probably want to allow the CSV file to be "wide" for working, even if the final exchange format wouldn't have all the parameters.
We should also come up with rules for what the parameter names should be in the netCDF file for the same measurement with different units. Right now, every parameter/unit pair has an explicitly defined ncname, this would be difficult if the NVS is the canonical data source as the units are represented by "related" relationships and not as an explicit property of the name. One idea I've had is to designate any "per mass" units as being the canonical ones and anything else gets some sort of suffix on the ncname. e.g:
CTDOXY [UMOL/KG]->ctd_oxygen(because /kg)CTDOXY [UMOL/L]->ctd_oxygen_umol_lCTDOXY [ML/L]->ctd_oxygen_ml_l
The above is what is currently defined in the params database, but it should be automatic/formalized and not need explicit definitions.