[CF-metadata] scalar coordinates
Hello Jamie
I think I see where you are coming from, thank you for sharing your thoughts.
If the relationship between the different coordinates is known and explicitly defined, then an encoding not using scalar coordinates, as you have defined, is a plausible approach.
I have not seen the 'coordinates' attribute used on a coordinate before, as in your second example; I see what you mean but I'm not sure if this is a valid encoding.
However, in the case I am putting forward, the flexibility desired is the flexibility not to encode the relationship between the coordinates; this is a situation where coordinates which are truly scalars become useful.
As a data creator with these data sets I do not want to define that:
- experiment_id is a function of ensemble_member_number
or
- ensemble_member_number is a function of experiment_id
This relationship is not clear from the data, in different scenarios different relationships exist. I do not want to encode any relationship in my data and the facility I thought I could use for this is the scalar coordinate.
In many cases there is no controlling coordinate, the only way to identify a member of the multi-model analysis is to take a collection of coordinates and use the values of each of them as a compound 'key' which identifies the member.
This flexibility is a key feature I would like to see formally recognised in CF; I and others have viewed it as implicit until now and I am concerned about the impacts of banning this interpretation.
I do not think this interpretation detracts from the other uses of scalar coordinates: scalar coordinates may always be interpreted as describing a real degree of freedom which has not been encoded in the file, but this interpretation should not be the only one available.
mark
________________________________________
From: Kettleborough, Jamie
Sent: 24 May 2013 12:34
To: Hedley, Mark; cf-metadata at cgd.ucar.edu
Cc: Kettleborough, Jamie
Subject: RE: [CF-metadata] scalar coordinates
Hello Mark,
I'm not sure I understand your example:
>
> For example a data creator may have a set of descriptors and
> identifiers which define how a particular data set is defined
> with respect to a larger study, such as a multi-model
> analysis meta-experiment. Each data set is produced by a
> model with a collection of scalar coordinates from that model
> run, e.g. 'ensemble member number', 'experiment id',
> 'perturbation scheme', 'forcing parameter a', forcing
> parameter b', ... etc.
>
For instance I *think* this can be encoded without the use of scalar coordinates as something like:
dimensions:
ensemble_member_number = 1;
strlen = 64;
variables:
int ensemble_member_number(ensemble_member_number);
:
float tas(realization); // example data
:
char experiment_id(ensemble_member_number, strlen);
:
char perturbations_scheme(ensemble_member_number, strlen);
: //etc
Do you agree, or have I misunderstood the example? (if I've misunderstood what follows can be ignored). The relationship between ensemble_member_number, experiment_id, perturbation_scheme can be encoded in this case - to reflect the one degree of freedom.
It is possible to encode this using scalar coordinates too - I think something like:
dimensions:
strlen = 64;
variables:
float tas; // example data
coordinates = 'ensemble_member_number'
:
int ensemble_member_number;
coordinates = 'ensemble_member_number'
:
char experiment_id(strlen);
coordinates = 'ensemble_member_number'
:
char perturbations_scheme(strlen);
coordinates = 'ensemble_member_number'
: //etc
>From what you say this isn't how these files have been encoded (maybe, as Jonathan says, because the documentation wasn?t clear enough?) - so that may be a problem.
I think the above scalar coordinate encoding is, however, clearer - it gives a data user more information on how the data is related.
See you,
Jamie
Received on Wed May 29 2013 - 02:38:05 BST
This archive was generated by hypermail 2.3.0
: Tue Sep 13 2022 - 23:02:41 BST