Version 6 (modified by domlowe, 15 years ago) (diff)


Rules for determining feature types programatically

First we assume that 'analysis code' is presented with one or more files containing unknown feature(s).

The code needs to determine what feature types are contained in those files. However this can't always be done by looking at a file in isolation, the code also must determine whether a feature is actually made up of data in several files.

For example in atmospheric model output one timeslice of GridSeriesFeature will look like a GridFeature, yet it would be wrong to model this data as a collection of GridFeatures. It should be a (collection of) GridSeriesFeatures. The analysis code must therefore work out whether something that looks like a GridFeature is actually part of a larger GridSeriesFeature.

So the current* CSML coverage feature types are:

  • Point
  • PointSeries
  • Profile
  • ProfileSeries
  • Grid
  • GridSeries

*currently under revision

So what are the defining characteristics of the domains of these features?


The domain is a single position in space and time.So a point feature it will be a single point in a spatial reference system at a single time (which may or may not be recorded).


The domain for a Point Series is a trajectory, which is a series of points in space at a series of times. So it can (usually) be thought of as a set of X,Y positions and a varying time dimension.


<come back to this when revised>


<come back to this when revised>


The domain of a grid is defined by a set of axes in space and a single point in time.


The domain of a GridSeries is definied by a set of axes in space at multiple points in time.

So can we make some rules that can be encoded?

If given a single file: Within this file there will be multiple variables. Each variable can be thought of as a phenomenon, and modelled as a separate feature.

First, the information we have about this feature/variable:

  • How many axes are in the reference system. Is this relevant? An SRS could be a arbitrary no. of axes.
  • Is one of these axes time?

If given multiple files: