Changes between Version 1 and Version 2 of PointObservationConventions
- Timestamp:
- 12/12/08 13:15:23 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
PointObservationConventions
v1 v2 1 1 = 5.8 Point Observation Data = 2 2 3 Section 5 explains how to specify Coordinate Systems using coordinate variables and auxil ary coordinate variables. This section extends and modifies that framework for point observational data.3 Section 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. 4 4 5 5 == Overview == … … 9 9 Point data files contain collections of point observation data of one of the following feature types: 10 10 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 18 You 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 20 All 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. 19 21 20 22 There are several ways to represent point data in the classic netCDF model: … … 59 61 60 62 attributes: 61 :CF\: pointFeature = "point";63 :CF\:featureType = "point"; 62 64 }}} 63 65 … … 89 91 alt:long_name = "altitude above MSL" ; 90 92 alt:units = "m" ; 93 alt:positive= "up" ; 91 94 char station_name(station, name_strlen) ; 92 95 station_name:long_name = "station name" ; 96 station_name:standard_name = "station_id"; 93 97 int station_info(station) ; 94 station_ name:long_name = "any kind of station info" ;98 station_info:long_name = "any kind of station info" ; 95 99 96 100 double time(station, obs) ; … … 109 113 110 114 attributes: 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 119 The 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. 116 120 117 121 The 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. … … 141 145 char station_name(station, name_strlen) ; 142 146 station_name:long_name = "station name" ; 147 station_name:standard_name = "station_id"; 143 148 int station_info(station) ; 144 station_ name:long_name = "some kind of station info" ;149 station_info:long_name = "some kind of station info" ; 145 150 int nobs(station) ; 146 151 nobs:long_name = "number of observations for this station " ; … … 161 166 162 167 attributes: 163 :CF\: pointFeature = "stationTimeSeries";168 :CF\:featureType = "stationTimeSeries"; 164 169 }}} 165 170 … … 179 184 180 185 The 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 187 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. 181 188 182 189 === 5.8.2.3 Ragged array (non-contiguous) representation === … … 202 209 char station_name(station, name_strlen) ; 203 210 station_name:long_name = "station name" ; 211 station_name:standard_name = "station_id"; 204 212 int station_info(station) ; 205 station_ name:long_name = "some kind of station info" ;213 station_info:long_name = "some kind of station info" ; 206 214 207 215 int stationIndex(obs) ; … … 222 230 223 231 attributes: 224 :CF\: pointFeature = "stationTimeSeries";232 :CF\:featureType = "stationTimeSeries"; 225 233 }}} 226 234 … … 229 237 230 238 All 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 240 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. 231 241 232 242 === 5.8.2.4 Single station === … … 265 275 266 276 attributes: 267 :CF\:pointFeature = "stationTimeSeries"; 268 }}} 269 277 :CF\:featureType = "stationTimeSeries"; 278 }}} 279 280 === 5.8.2.5 Flattened representation === 281 282 When 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 {{{ 286 dimensions: 287 obs = UNLIMITED ; 288 289 variables: 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 316 attributes: 317 :CF\:featureType = "stationTimeSeries"; 318 }}} 319 320 321 The 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 323 In 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. 270 324 271 325 == 5.8.3 Trajectory Data == … … 308 362 309 363 attributes: 310 :CF\: pointFeature = "trajectory";364 :CF\:featureType = "trajectory"; 311 365 }}} 312 366 … … 314 368 The 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. 315 369 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.370 Note 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. 317 371 318 372 Note that this is the same as Example 5.5. … … 360 414 361 415 attributes: 362 :CF\: pointFeature = "trajectory";416 :CF\:featureType = "trajectory"; 363 417 }}} 364 418 … … 412 466 413 467 attributes: 414 :CF\: pointFeature = "trajectory";468 :CF\:featureType = "trajectory"; 415 469 }}} 416 470 … … 464 518 465 519 attributes: 466 :CF\: pointFeature = "trajectory";520 :CF\:featureType = "trajectory"; 467 521 }}} 468 522 … … 518 572 519 573 attributes: 520 :CF\: pointFeature = "profile";574 :CF\:featureType = "profile"; 521 575 }}} 522 576 … … 566 620 567 621 attributes: 568 :CF\: pointFeature = "profile";622 :CF\:featureType = "profile"; 569 623 }}} 570 624 … … 622 676 623 677 attributes: 624 :CF\: pointFeature = "profile";678 :CF\:featureType = "profile"; 625 679 }}} 626 680 … … 673 727 674 728 attributes: 675 :CF\: pointFeature = "profile";729 :CF\:featureType = "profile"; 676 730 }}} 677 731 … … 725 779 726 780 attributes: 727 :CF\: pointFeature = "stationProfileTimeSeries";781 :CF\:featureType = "stationProfileTimeSeries"; 728 782 }}} 729 783 … … 780 834 781 835 attributes: 782 :CF\: pointFeature = "stationProfileTimeSeries";836 :CF\:featureType = "stationProfileTimeSeries"; 783 837 }}} 784 838 … … 835 889 836 890 attributes: 837 :CF\: pointFeature = "stationProfileTimeSeries";891 :CF\:featureType = "stationProfileTimeSeries"; 838 892 }}} 839 893 … … 896 950 897 951 attributes: 898 :CF\: pointFeature = "stationProfileTimeSeries";952 :CF\:featureType = "stationProfileTimeSeries"; 899 953 }}} 900 954 … … 948 1002 949 1003 attributes: 950 :CF\: pointFeature = "section";1004 :CF\:featureType = "section"; 951 1005 }}} 952 1006 … … 999 1053 1000 1054 attributes: 1001 :CF\: pointFeature = "profileSection";1055 :CF\:featureType = "profileSection"; 1002 1056 }}} 1003 1057