Changes between Version 1 and Version 2 of PointObservationConventions


Ignore:
Timestamp:
12/12/08 13:15:23 (11 years ago)
Author:
caron
Comment:

1) change pointFeature to featureType. 2) add 5.8.2.5 flattened representation for station data 3) clarify what coordinates are required 4) add standard_name on station id

Legend:

Unmodified
Added
Removed
Modified
  • PointObservationConventions

    v1 v2  
    11= 5.8 Point Observation Data =
    22
    3 Section 5 explains how to specify Coordinate Systems using coordinate variables and auxilary coordinate variables. This section extends and modifies that framework for point observational data.
     3Section 5 explains how to specify Coordinate Systems using coordinate variables and auxiliary coordinate variables. This section extends and modifies that framework for point observational data.
    44
    55== Overview ==
     
    99Point data files contain collections of point observation data of one of the following feature types:
    1010
    11     * point: one or more parameters measured at one point in time and space
    12     * stationTimeSeries: a time-series of data points at the same location, with varying time
    13     * trajectory: a connected set of data points along a 1D curve in time and space
    14     * profile: a set of data points along a vertical line
    15     * stationProfileTimeSeries: a time-series of profiles at a named location
    16     * section:  a collection of profiles which originate along a trajectory.
    17 
    18 You cannot mix multiple types of data in the same file. A global attribute CF:pointFeature indicates the feature type used in a particular file.
     11    * '''point''': one or more parameters measured at one point in time and space
     12    * '''stationTimeSeries''': a time-series of data points at the same location, with varying time
     13    * '''trajectory''': a connected set of data points along a 1D curve in time and space
     14    * '''profile''': a set of data points along a vertical line
     15    * '''stationProfileTimeSeries''': a time-series of profiles at a named location
     16    * '''section''':  a collection of profiles which originate along a trajectory.
     17
     18You cannot mix multiple types of data in the same file. A global attribute CF:featureType indicates the feature type used in a particular file, and its value must be one of the above names in order to be correctly processed as point observation data.
     19
     20All point data must have lat, lon and time coordinate or auxiliary coordinate variables, which are identified according to section 4 of this document. Some feature types allow the vertical coordinate to be optional, and some require it.
    1921
    2022There are several ways to represent point data in the classic netCDF model:
     
    5961
    6062attributes:
    61   :CF\:pointFeature = "point";
     63  :CF\:featureType = "point";
    6264}}}
    6365
     
    8991    alt:long_name = "altitude above MSL" ;
    9092    alt:units = "m" ;
     93    alt:positive= "up" ;
    9194  char station_name(station, name_strlen) ;
    9295    station_name:long_name = "station name" ;
     96    station_name:standard_name = "station_id";
    9397  int station_info(station) ;
    94     station_name:long_name = "any kind of station info" ;
     98    station_info:long_name = "any kind of station info" ;
    9599
    96100  double time(station, obs) ;
     
    109113
    110114attributes:
    111     :CF\:pointFeature = "stationTimeSeries";
    112 }}}
    113 
    114 
    115 The humidity(s,i) and temp(s,i) data are associated with the coordinate values time(s,i), lat(s), lon(s), and optionally alt(s). The station dimension may be the unlimited dimension or not. All variables that have station as their single dimension are considered to be station information.
     115    :CF\:featureType = "stationTimeSeries";
     116}}}
     117
     118
     119The humidity(s,i) and temp(s,i) data are associated with the coordinate values time(s,i), lat(s), lon(s), and optionally vertical(s). The station dimension may be the unlimited dimension or not. All variables that have station as their outer dimension are considered to be station information. There must be a station variable (of any type) with standard_name attribute "station_id", whose values uniquely identify the station.
    116120
    117121The time coordinate may use a missing value, which indicates that data is missing for that station and obs index. This allows one to have a variable number of observations at different stations, at the cost of some wasted space. The data variables may also use missing data values, to indicate that just that data variable is missing.
     
    141145  char station_name(station, name_strlen) ;
    142146    station_name:long_name = "station name" ;
     147    station_name:standard_name = "station_id";
    143148  int station_info(station) ;
    144     station_name:long_name = "some kind of station info" ;
     149    station_info:long_name = "some kind of station info" ;
    145150  int nobs(station) ;
    146151    nobs:long_name = "number of observations for this station " ;
     
    161166
    162167attributes:
    163     :CF\:pointFeature = "stationTimeSeries";
     168    :CF\:featureType = "stationTimeSeries";
    164169}}}
    165170
     
    179184
    180185The rowSize variable contains the number of observations for each station, and is identified by having a standard_name of "ragged_rowSize". It must have the station dimension as its single dimension.
     186
     187All variables that have station as their outer dimension are considered to be station information. There must be a station variable (of any type) with standard_name attribute "station_id", whose values uniquely identify the station.
    181188
    182189=== 5.8.2.3 Ragged array (non-contiguous) representation ===
     
    202209  char station_name(station, name_strlen) ;
    203210    station_name:long_name = "station name" ;
     211    station_name:standard_name = "station_id";
    204212  int station_info(station) ;
    205     station_name:long_name = "some kind of station info" ;
     213    station_info:long_name = "some kind of station info" ;
    206214
    207215  int stationIndex(obs) ;
     
    222230
    223231attributes:
    224     :CF\:pointFeature = "stationTimeSeries";
     232    :CF\:featureType = "stationTimeSeries";
    225233}}}
    226234
     
    229237
    230238All variables that have station as their only dimension are considered to be information about that station. The obs dimension may use the unlimited dimension or not.
     239
     240All variables that have station as their outer dimension are considered to be station information. There must be a station variable (of any type) with standard_name attribute "station_id", whose values uniquely identify the station.
    231241
    232242=== 5.8.2.4 Single station ===
     
    265275
    266276attributes:
    267     :CF\:pointFeature = "stationTimeSeries";
    268 }}}
    269 
     277    :CF\:featureType = "stationTimeSeries";
     278}}}
     279
     280=== 5.8.2.5 Flattened representation ===
     281
     282When factoring out the station information is not needed, one may use a flattened representation, in which the station information is repeated for each observation. A station_id variable is required to associate the observations into a time series.
     283
     284
     285{{{
     286dimensions:
     287  obs = UNLIMITED ;
     288
     289variables:
     290  float lon(obs) ;
     291    lon:long_name = "station longitude";
     292    lon:units = "degrees_east";
     293  float lat(obs) ;
     294    lat:long_name = "station latitude" ;
     295    lat:units = "degrees_north" ;
     296  float alt(obs) ;
     297    alt:long_name = "altitude above MSL" ;
     298    alt:units = "m" ;
     299  int station_id(obs) ;
     300    station_name:long_name = "station" ;
     301    station_name:standard_name = "station_id";
     302
     303  double time(obs) ;
     304    time:long_name = "time of measurement" ;
     305    time:units = "days since 1970-01-01 00:00:00" ;
     306  float humidity(obs) ;
     307    humidity:long_name = "specific humidity" ;
     308    humidity:coordinates = "time lat lon alt" ;
     309    humidity:_FillValue = -999.9;
     310  float temp(obs) ;
     311    temp:long_name = "temperature" ;
     312    temp:units = "Celsius" ;
     313    temp:coordinates = "time lat lon alt" ;
     314    temp:_FillValue = -999.9;
     315
     316attributes:
     317    :CF\:featureType = "stationTimeSeries";
     318}}}
     319
     320
     321The humidity(i) and temp(i) data are associated with the coordinate values time(i), lat(i), lon(i), and optionally alt(i). There must be a variable (of any type) with the observation dimension as its outer dimension, with a standard_name attribute "station_id", whose values uniquely identify the station.
     322
     323In some observational networks, station location may change. However, for station feature types this should be infrequent and not overly consequential. In principle, a new station identifier should be assigned. In practice, occasional and small adjustments to station location may not matter for typical processing of data, and generic clients may not detect these changes, eg they may assume that the first loccation encountered is valid for all other observations at the same station. Specialized clients, of course, may be more careful in examining station location data, and nothing prevents data providers from using a factored representation as above, and also putting location information into the observation record, as in the flattened representation here.
    270324
    271325== 5.8.3 Trajectory Data ==
     
    308362
    309363attributes:
    310   :CF\:pointFeature = "trajectory";
     364  :CF\:featureType = "trajectory";
    311365}}}
    312366
     
    314368The NO3(n) and O3(n) data is associated with the coordinate values time(n), z(n), lat(n), and lon(n). The time coordinate should be ordered, so it is appropriate to use a coordinate variable for time. The time dimension may be unlimited or not.
    315369
    316 Note that structurally this looks like unconnected point data as in example 5.8.1. The presence of the :CF\:pointFeature = "trajectory" global attribute indicates that in fact the points are connected along a trajectory.
     370Note that structurally this looks like unconnected point data as in example 5.8.1. The presence of the :CF\:featureType = "trajectory" global attribute indicates that in fact the points are connected along a trajectory.
    317371
    318372Note that this is the same as Example 5.5.
     
    360414
    361415attributes:
    362   :CF\:pointFeature = "trajectory";
     416  :CF\:featureType = "trajectory";
    363417}}}
    364418
     
    412466
    413467attributes:
    414   :CF\:pointFeature = "trajectory";
     468  :CF\:featureType = "trajectory";
    415469}}}
    416470
     
    464518
    465519attributes:
    466   :CF\:pointFeature = "trajectory";
     520  :CF\:featureType = "trajectory";
    467521}}}
    468522
     
    518572
    519573attributes:
    520   :CF\:pointFeature = "profile";
     574  :CF\:featureType = "profile";
    521575}}}
    522576
     
    566620
    567621attributes:
    568   :CF\:pointFeature = "profile";
     622  :CF\:featureType = "profile";
    569623}}}
    570624
     
    622676
    623677attributes:
    624   :CF\:pointFeature = "profile";
     678  :CF\:featureType = "profile";
    625679}}}
    626680
     
    673727
    674728attributes:
    675   :CF\:pointFeature = "profile";
     729  :CF\:featureType = "profile";
    676730}}}
    677731
     
    725779
    726780attributes:
    727   :CF\:pointFeature = "stationProfileTimeSeries";
     781  :CF\:featureType = "stationProfileTimeSeries";
    728782}}}
    729783
     
    780834
    781835attributes:
    782  :CF\:pointFeature = "stationProfileTimeSeries";
     836 :CF\:featureType = "stationProfileTimeSeries";
    783837}}}
    784838
     
    835889
    836890attributes:
    837   :CF\:pointFeature = "stationProfileTimeSeries";
     891  :CF\:featureType = "stationProfileTimeSeries";
    838892}}}
    839893
     
    896950
    897951attributes:
    898   :CF\:pointFeature = "stationProfileTimeSeries";
     952  :CF\:featureType = "stationProfileTimeSeries";
    899953}}}
    900954
     
    9481002
    9491003attributes:
    950   :CF\:pointFeature = "section";
     1004  :CF\:featureType = "section";
    9511005}}}
    9521006
     
    9991053
    10001054attributes:
    1001   :CF\:pointFeature = "profileSection";
     1055  :CF\:featureType = "profileSection";
    10021056}}}
    10031057