⇐ ⇒

[CF-metadata] [CF Metadata] #37: Conventions for Point Observation Data

From: John Caron <caron>
Date: Thu, 19 Nov 2009 17:54:07 -0700

Hi Martina:

Martina Stockhause wrote:
> Hi John,
>
> thanks for your answer. I was half a week out of office and had to read through quite a lot of emails to catch up in this lively discussion. Hopefully, I didn't miss too much.
>
> I'd like to contribute my example to the discussion - much more concrete than before.
>
> We came to the decision to write datasets per instrument or sensor. So, e.g. temperature measurements in different height of the same type of measurement instrument or sensor are aggregated in one dataset. For these we have the same time interval (1, 5 or 10 min) and fixed heights. Even the Micro Rain Radar detects at fixed heights. And most of the applications have to handle data from different sensors, separately. So we have instrument-dependent time and vertical coordinate systems. Examples for instruments on the large 300m mast are:
>
> 1. Single instrument measuring in a concrete height z, e.g. VTP - dew
> point mirror in 110 m height measuring air_temperature,
> relative_humidity etc.
>
> 2. Multiple instruments of same type in different heights z, e.g.
> MINERVA measuring all basic meteorological parameters, installed in 2 10
> 50 70 110 175 250 m
>
> 3. Single instrument measuring vertical profiles (at the moment in fixed
> detection heights) and points, e.g. rain radar MRR measuring in 1050
> heights liquid_water_content(z), atmosphere_number_content_of_droplets
> as total and for size classes A to K of 0.5 to 5.5 mm in diameter, and
> precipitation_amount (daily)
>
> Therefore we have not a single station in CF's station concept, but
> several - one for each instrument type. For the general case - all data in one file - I get for
> the 300m mast (the location is 30 cm above MSL and therefore the height
> above ground is usually used as above MSL):
>
> dimensions:
> station = 8 ;
> time = UNLIMITED ;
> lon = 1;
> lat = 1;
> z = 1050 ;
>
> // global variables:
> float lon(station);
> lon:long_name = "station longitude";
> lon:units = "degrees_east";
> float lat(station);
> lat:long_name = "station latitude" ;
> lat:units = "degrees_north" ;
>
> // variables:
> char station_name(station, name_strlen) ;
> station_name:standard_name = "station_id" ;
> station_name:long_name ="Instrument on weather mast" ;
> int station_info(station) ;
> station_name:long_name = "" ;
>
> float height(station, z) ;
> height:long_name = "height above ground level" ;
> height:units = "m" ;
> height:positive = "up" ;
> // MINERVA values "2 10 50 70 110 175 250"
> // MRR values minimum:35 interval:35 maximum:1085
> // other single instruments in different heights
>
> double time(station, time) ;
> time:long_name = "time of measurement" ;
> time:units = "minutes since 1970-01-01 00:00:00" ;
> // dep. on instrument/station:
> // time:interval=1;
> // time:interval=5;
> // time:interval=10;
> time:missing_value = -999.9;
>
> double dsize(station,time,z);
> dsize:long_name="droplet size";
> dsize:unit="mm";
> // values "0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5"
>
> float air_temperature(station, time, height) ;
> air_temperature:long_name = "air temperature" ;
> air_temperature:units = "Celsius" ;
> air_temperature:coordinates = "time lon lat height" ;
>
> float wind_speed(station, time, height) ;
> wind_speed:long_name = "wind speed" ;
> wind_speed:units = "m/s" ;
> wind_speed:coordinates = "time lon lat height" ;
>
> float total_liquid_water_content(station, time, height) ;
> total_liquid_water_content:long_name = "liquid water content" ;
> total_liquid_water_content:units = "g/m3" ;
> total_liquid_water_content:coordinates = "time lon lat height" ;
>
> float liquid_water_content(station, time, height, dsize) ;
> liquid_water_content:long_name = "liquid water content" ;
> liquid_water_content:units = "g/m3" ;
> liquid_water_content:coordinates = "time lon lat height dsize" ;
>
> float precipitation_amount(station, time, height);
> precipitation_amount:long_name = "liquid water content" ;
> precipitation_amount:cell_methods="time: sum over days";
> precipitation_amount:units = "g/m3" ;
> precipitation_amount:coordinates = "time lon lat height" ;
>
>
> In our special case of separated datasets for each instrument type the
> station dimension becomes 1 and all gets a bit simpler. And the z dimension can be defined much smaller in most cases.
>
> MINERVA example:
>
> dimensions:
> station = 1 ;
> time = UNLIMITED ;
> lon = 1;
> lat = 1;
> z = 7 ;
>
> float lon(station);
> lon:long_name = "station longitude";
> lon:units = "degrees_east";
> float lat(station);
> lat:long_name = "station latitude" ;
> lat:units = "degrees_north" ;
>
> char station_name(station, name_strlen) ;
> station_name:standard_name = "station_id" ;
> station_name:long_name ="MINERVA instrument on weather mast Hamburg" ;
> int station_info(station) ;
> station_name:long_name = "" ;
>
> float height(station, z) ;
> height:long_name = "height above ground level" ;
> height:units = "m" ;
> height:positive = "up" ;
> // MINERVA values "2 10 50 70 110 175 250"
>
> double time(station, time) ;
> time:long_name = "time of measurement" ;
> time:units = "minutes since 1970-01-01 00:00:00" ;
> time:interval=1;
> time:missing_value = -999.9;
>
> float air_temperature(station, time, height) ;
> air_temperature:long_name = "air temperature" ;
> air_temperature:units = "Celsius" ;
> air_temperature:coordinates = "time lon lat height" ;
>
> float wind_speed(station, time, height) ;
> wind_speed:long_name = "wind speed" ;
> wind_speed:units = "m/s" ;
> wind_speed:coordinates = "time lon lat height" ;
>
> Are there any comments on the idea of using the CF station for a single instrument type at a weather station?
>
> Best wishes,
> Martina
>
>
in the first case, it appears that all of the data appears on 1050
levels. Im guessing thats not what you want.

one should be able to have multiple z coordinates in the same file:

dimensions:
 station = 8 ;
 time = UNLIMITED ;
 lon = 1;
 lat = 1;
 z1 = 7;
 z2 = 12;

 
// global variables:
 float lon(station);
   lon:long_name = "station longitude";
   lon:units = "degrees_east";
 float lat(station);
   lat:long_name = "station latitude" ;
   lat:units = "degrees_north" ;

// variables:
 char station_name(station, name_strlen) ;
   station_name:standard_name = "station_id" ;
   station_name:long_name ="Instrument on weather mast" ;

 int station_info(station) ;
   station_name:long_name = "" ;

float z1(z1) ;
   height:long_name = "height above ground level for MINERVA instrument" ;
   height:units = "m" ;
   height:positive = "up" ;

float z2(z2) ;
   height:long_name = "height above ground level for APHRODITE instrument" ;
   height:units = "m" ;
   height:positive = "up" ;


 double time(station, time) ;
   time:long_name = "time of measurement" ;
   time:units = "minutes since 1970-01-01 00:00:00" ;
// dep. on instrument/station:
// time:interval=1;
// time:interval=5;
// time:interval=10;
   time:missing_value = -999.9;

double dsize(station,time,z2);
   dsize:long_name="droplet size";
   dsize:unit="mm";
// values "0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0 5.5"

 float air_temperature(station, time, z1) ;
   air_temperature:long_name = "air temperature" ;
   air_temperature:units = "Celsius" ;
   air_temperature:coordinates = "time lon lat height" ;

 float wind_speed(station, time, z1) ;
   wind_speed:long_name = "wind speed" ;
   wind_speed:units = "m/s" ;
   wind_speed:coordinates = "time lon lat height" ;

 float total_liquid_water_content(station, time, z2) ;
   total_liquid_water_content:long_name = "liquid water content" ;
   total_liquid_water_content:units = "g/m3" ;
   total_liquid_water_content:coordinates = "time lon lat height" ;

 float liquid_water_content(station, time, z2, dsize) ;
   liquid_water_content:long_name = "liquid water content" ;
   liquid_water_content:units = "g/m3" ;
   liquid_water_content:coordinates = "time lon lat height dsize" ;

float precipitation_amount(station, time, z1);
   precipitation_amount:long_name = "liquid water content" ;
   precipitation_amount:cell_methods="time: sum over days";
   precipitation_amount:units = "g/m3" ;
   precipitation_amount:coordinates = "time lon lat height"


obviously just making this up. What do you think?

Having offered that, I need to see if theres any impossible problems in
recognizing these files automatically.
Received on Thu Nov 19 2009 - 17:54:07 GMT

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

⇐ ⇒