⇐ ⇒

[CF-metadata] Standard name(s) needed for satellite-based icedrift products

From: Thomas Lavergne <thomasl>
Date: Fri, 07 Nov 2008 14:47:36 +0000

Hi Alison,

Thanks for taking the time.
I think I agree with the current definitions with your modifications. I am happy we could be a bit
less strict on the time bounds and that I could convey the idea that "a displacement does not
prescribe a trajectory". I will now communicate with my 'scientific community' to hear if they have
some further inputs.

I would however like to discuss here the time bounds thing and see if someone can help me
understanding how/if I can apply the concept to my data model.

My comments come below:

Pamment, JA (Alison) wrote:
> To take your two points in order:
>
> a) The purpose of including the text about the bounds variable is to
> provide a 'handy hint' for data providers and users on how to use these
> standard names in conjunction with other CF attributes to obtain a
> complete description of the data. This is not an uncommon thing to do
> in the standard name table because often the standard name on its own
> does not completely describe the data. For example, the definition of
> the standard name
> change_over_time_in_atmospheric_water_content_due_to_advection reads:
> "The specification of a physical process by the phrase due_to_process
> means that the quantity named is a single term in a sum of terms which
> together compose the general quantity named by omitting the phrase.
> 'change_over_time_in_X' means change in a quantity X over a
> time-interval, which should be defined by the bounds of the time
> coordinate. 'Content' indicates a quantity per unit area. 'Water' means
> water in all phases."
> If you were trying to work with real data 'change_over_time' would be
> difficult to interpret unless you also knew the time interval involved.
> If I have understood your names correctly I think the same would be true
> for 'displacement' so there is a need to include the text about time
> bounds.
Yes. My displacement is nothing more that a 'change_over_time_in_geoposition'. Is there actually a
quantity X for 'geoposition' (which would be lat/lon)? I saw that there was a reference to
'position' in magnitude_of_derivative_of_position_wrt_model_level_number where it is a 3D position.
Displacements can be 3D so 'displacement' is maybe nothing more than a
'change_over_time_in_position', with 'position' being a 3D point. I do not know if we will win
anything in recognizing the aliasing but it might help understanding how to build the standard_name
as well as the time bounds thing. Plus, I did not find the definition of what 'change_over_y_in_x'
describes but it is clear that we cannot use it for displacement if the 'change' is intended as
being 'continuous', like dx/dy = constant for all y.
>
> b) At present I think the only way in the CF conventions of describing
> the start and end of a time interval is to use a bounds variable for the
> time axis. (I hope someone will correct me if I am wrong). It is one
> of the fundamental philosophies of CF development that the conventions
> are only modified in response to current needs, rather than trying to
> foresee all possible future requirements. (The same is true of standard
> names - we don't add them unless somebody has an actual need for them).
> If the CF conventions on specifying time intervals were to be modified
> in future we would need also to modify that part of all the standard
> name definitions which explains how to specify the time interval.
Fine :-).
I think we agree that :
1) the time interval is crucial for the displacement variable to be interpreted;
2) that time bounds is the current implementation of an interval. If I want CF compliance, I should
live with this fact.

>
> I note that you say that 'bounds' may not be the easiest solution for
> you to implement. Please could you explain a bit more about why this
> is? If your start and end times are not clearly defined then perhaps we
> could cope with that using the cell_methods attribute applied to a
> standard_name of time, rather than to the time coordinate variable
> itself. I realise that my last sentence may seem rather cryptic -
> please see section 7.3 of the conventions, particularly the text
> immediately following example 7.5 for a fuller explanation.

My start and end times are clearly defined and I can give a numerical value to them (e.g. in seconds
since a reference date/time). I would have no issue with time bounds if my product file contained
displacements from t0 to t1, with t0 and t1 being constant in my file.
But this is not the case. I actually have, in the same file, several displacements (from several
locations) which have slightly different t0 and t1. Plus, my product is 'gridded'. It means that it
currently have a CDL structure like (sorry for the long copy-paste):

dimensions:
         time = 1 ;
         xc = 120 ;
         yc = 178 ;
variables:
         int Polar_Stereographic_Grid ;
                 Polar_Stereographic_Grid:grid_mapping_name = "polar_stereographic" ;
                 Polar_Stereographic_Grid:straight_vertical_longitude_from_pole = -45.f ;
                 Polar_Stereographic_Grid:latitude_of_projection_origin = 90.f ;
                 Polar_Stereographic_Grid:standard_parallel = 70.f ;
                 Polar_Stereographic_Grid:false_easting = 0.f ;
                 Polar_Stereographic_Grid:false_northing = 0.f ;
                 Polar_Stereographic_Grid:earth_shape = "elliptical" ;
                 Polar_Stereographic_Grid:proj4_string = "+proj=stere +a=6378273 +b=6356889.44891
+lat_0=90 +lat_ts=70 +lon_0=-45" ;
         int time(time) ;
                 time:long_name = "reference time of product" ;
                 time:units = "seconds since 1978-01-01 00:00:00" ;
         double xc(xc) ;
                 xc:axis = "X" ;
                 xc:units = "km" ;
                 xc:long_name = "x coordinate of projection (eastings)" ;
                 xc:standard_name = "projection_x_coordinate" ;
                 xc:grid_spacing = "62.50 km" ;
         double yc(yc) ;
                 yc:axis = "Y" ;
                 yc:units = "km" ;
                 yc:long_name = "y coordinate of projection (northings)" ;
                 yc:standard_name = "projection_y_coordinate" ;
                 yc:grid_spacing = "62.50 km" ;
         float lon(yc, xc) ;
                 lon:long_name = "longitude coordinate" ;
                 lon:standard_name = "longitude" ;
                 lon:units = "degrees_east" ;
                 lon:_FillValue = -9999.f ;
                 lon:grid_mapping = "Polar_Stereographic_Grid" ;
                 lon:coordinates = "yc xc" ;
         float lat(yc, xc) ;
                 lat:long_name = "latitude coordinate" ;
                 lat:standard_name = "latitude" ;
                 lat:units = "degrees_north" ;
                 lat:_FillValue = -9999.f ;
                 lat:grid_mapping = "Polar_Stereographic_Grid" ;
                 lat:coordinates = "yc xc" ;
         float dX(time, yc, xc) ;
                 dX:long_name = "component of the displacement along the x axis of the grid" ;
                 dX:standard_name = "sea_ice_x_displacement" ;
                 dX:units = "km" ;
                 dX:_FillValue = -1.e+10f ;
                 dX:grid_mapping = "Polar_Stereographic_Grid" ;
                 dX:coordinates = "yc xc" ;
}

I want to keep the time dimension to 1 because it guarantees that current softwares will open the
file and present it as a map with one time stamp. This time stamp corresponds (arbitrarily) to t0,
the (average) start time of my displacements. If all my t0 and t1 times where the same, I could
(correct me if I am wrong) keep the scalar time dimension and add a bounds attribute to my times
variable:

>>>>>>>>>>>
dimensions:
  time = 1 ;
  nv = 2 ;

variables:
    int time(time) ;
            time:long_name = "reference time of product" ;
            time:units = "seconds since 1978-01-01 00:00:00" ;
            time:bounds = "time_bnds";
    double time_bnds(time,nv);

data :
    time = t0;
    time_bnds : t0,t1;
>>>>>>>>>>>>

Would that be clear enough? Or do I have to use a cell_methods for my dX and dY variable? And which
one would it be?

Finally, if my 'nominal' or 'average' t0 and t1 are known per file, I still have a different t0 and
t1 at each grid point. May I use a 'correction to time_bounds'? Or is my data model incompatible
with the concept of a scalar time variable?

>
> I think we could soften my original text by inserting 'if possible', and
> taking into account your later comment about the use of 'during', I now
> suggest: "If possible, the time interval over which the motion took
> place should be specified using a bounds variable for the time
> coordinate variable." Does that sound better?
Yes it does, thanks.
> The 'when this is not true longitude' phrase appears in all standard
> name definitions referring to x_components. See, for example, the
> definition of the standard name projection_x_coordinate: " 'x' indicates
> a vector component along the grid x-axis, when this is not true
> longitude, positive with increasing x. Projection coordinates are
> distances in the x- and y-directions on a plane onto which the surface
> of the Earth has been projected according to a map projection. The
> relationship between the projection coordinates and latitude and
> longitude is described by the grid_mapping." Corresponding names and
> definitions exist for y_components.
>
> In CF, if the horizontal coordinates of the data are true longitude and
> latitude (i.e., lines of longitude converge at the earth's geographical
> poles and lines of latitude are orthogonal to that) then it is
> appropriate to use eastward|northward standard names to refer to
> components of motion. If, however, your data are on a rotated pole grid
> or a planar map projection you should use x|y standard names. Does this
> answer your question? Section 5.6 of the conventions document
> "Horizontal Coordinate Reference Systems, Grid Mappings, and
> Projections" gives more information.
>
> I would prefer that we keep this sentence as it is in view of the
> distinction that CF makes between (lon,lat) and (x,y) coordinates. Also
> for consistency with other standard name definitions. Do you agree?
I do. This is great to keep the sentence 'when this is not true longitude' or 'latitude'.

> So now the full definitions would read as follows:
I agree with them. Thanks.

>
> eastward_sea_ice_displacement [m]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. "Eastward"
> indicates a vector component which is positive when directed eastward
> (negative westward). An eastward displacement is the distance across the
> earth's surface calculated from the change in a moving object's
> longitude between the start and end of the time interval associated with
> the displacement variable.
>
> northward_sea_ice_displacement [m]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. "Northward"
> indicates a vector component which is positive when directed northward
> (negative southward). A northward displacement is the distance across
> the earth's surface calculated from the change in a moving object's
> latitude between the start and end of the time interval associated with
> the displacement variable.
>
> sea_ice_x_displacement [m]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. "x" indicates a
> vector component along the grid x-axis, when this is not true longitude,
> positive with increasing x. An x displacement is calculated from the
> difference in the moving object's grid x coordinate between the start
> and end of the time interval associated with the displacement variable.
>
> sea_ice_y_displacement [m]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. "y" indicates a
> vector component along the grid y-axis, when this is not true latitude,
> positive with increasing y. A y displacement is calculated from the
> difference in the moving object's grid y coordinate between the start
> and end of the time interval associated with the displacement variable.
>
> sea_ice_displacement [m]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. In that case,
> "displacement" is also the distance across the earth's surface
> calculated from the change in a moving object's geospatial position
> between the start and end of the time interval associated with the
> displacement variable.
>
> direction_of_sea_ice_displacement [degrees]
> 'Displacement' means the change in geospatial position of an object that
> has moved over time. If possible, the time interval over which the
> motion took place should be specified using a bounds variable for the
> time coordinate variable. A displacement can be represented as a
> vector. Such a vector should however not be interpreted as describing a
> rectilinear, constant speed motion but merely as an indication that the
> start point of the vector is found at the tip of the vector after the
> time interval associated with the displacement variable. A displacement
> does not prescribe a trajectory. Sea ice displacement can be defined as
> a two-dimensional vector, with no vertical component. "direction_of_X"
> means direction of a vector, a bearing. The
> 'direction of displacement' is the angle between due north and the
> displacement vector.
Received on Fri Nov 07 2008 - 07:47:36 GMT

This archive was generated by hypermail 2.3.0 : Tue Sep 13 2022 - 23:02:40 BST

⇐ ⇒