NetCDF conventions for mobile stations

John Caron caron at unidata.ucar.edu
Wed Jun 20 16:53:22 MDT 2007



Janine Goldstein wrote:
> John,
> 
> Thanks for the link.  I wasn't aware you had added conventions for 
> observation data. I don't see this page linked off the main "NetCD 
> conventions" page. I am glad you are working on  them!
> 
> I *am* planning to put all of these variations into a single file.  We 
> create "composite" datasets, and advertise them to the users as having 
> all the date in the same format in a single file.

In that case, you'll be forging new ground.

You can put multiple coordinate systems in the same file, so I would approach it that way; a file that contains multiple sets of data, each with its own coordinate system. 

Do your observations have multiple parameters (temperature, pressure, etc) at the same time and point? If so, you want to group these together.

For station data:

  id(station)
  lat(station)
  lon(station)
  alt(station)
  firstChild(station) // index into stationObs
  numChildred(station)

  time(stationObs)
  param1(stationObs)
  param2(stationObs)
  ...

For trajectory data:

  id(trajectory)
  firstChild(trajectory) // index into trajectoryObs
  numChildred(trajectory)

  lat(trajectoryObs)
  lon(trajectoryObs)
  alt(trajectoryObs)
  time(trajectoryObs)
  param3(trajectoryObs)
  param4(trajectoryObs)

For station data that occasionally moves, perhaps you should just break it up into seperate "stations" whenever it moves. You can add another variable that stays constant across the move:

  id(station)
  name(station); // may be the same for different "stations" indicating that the station moved.


> 
> I read the new conventions and I see two options.
> 
> 1) Use the multiple trajectory format, for true trajectories make 
> lat(time), and for fixed location stations  make lat a scalar variable 
> so that the scalar value will be applied to all observations.
> 
> Would that meet the convention?  Do you foresee any problems doing it 
> this way?
> 
> 
> 2) Use the station observation format, and break trajectories into a 
> series of individual stations (i.e. for a 100 observation long 
> trajectory I would define 100 stations each with a unique lat/lon and 
> numChildren=1 (i.e. one report per station).
> 
> This option is less optimal because you loose the information that those 
> 100 stations are actually a trajectory.  But would it work otherwise?  
> Do you foresee any problems?
> 
> Which do you think is the better way to go, if either?
> 
> Thanks!
> 
> Janine
> 
> 
> John Caron wrote:
>> Hi Janine:
>>
>> Im unclear if you plan on putting all of these variations in the same 
>> file? My first choice might be to put them in multiple files. The 
>> formats that you seem to have:
>>
>> 1) station data
>> 2) track data
>> 3) station data that occasionally moves.
>>
>> Our format for this kind of data is here:
>>
>> http://www.unidata.ucar.edu/software/netcdf-java/formats/UnidataObsConvention.html 
>>
>>
>> which covers 1 and 2. we havent dealt with 3 before, but we can come 
>> up with some variant. these are not part of the CF spec, but we plan 
>> to submit them.
>>
>> perhaps you should look at the above spec, then we can talk some more.
>>
>> Janine Goldstein wrote:
>>> Hi John,
>>>
>>> I am over at EOL and am wondering if you are the right person to help 
>>> me.  I am developing a netCDF file to contain data from irregularly 
>>> spaced surface stations. Most of these are fixed with respect to time 
>>> (i.e. ASOS stations, etc) but some move continuously with time 
>>> (ships) or move intermittently, maybe even just once (as in stations 
>>> that are relocated but keep the same station id, or truck mounted 
>>> stations used during field deployments which are stationary for a few 
>>> hours to a few days, and then move and are stationary again.
>>>
>>> I am wondering how best to implement this within a CF compliant 
>>> netCDF file.  For fixed stations, I currently have:
>>>
>>> parameter(time, station)
>>> time(time)
>>> lat(station)
>>> lon(station)
>>>
>>> I can change this to:
>>>
>>> lat(time, station)
>>> lon(time, station)
>>>
>>> but less that 1% of the stations are mobile, so this seems like a 
>>> huge waste of space. For example, 2 months worth of 5 minute data = 
>>> 17280 repetitions of the lat/lon for each fixed station, compared to 
>>> one instance of lat/lon in my current model, and I have hundreds of 
>>> stations per file.
>>>
>>> Do you have any suggestions as to how to implement this? Can you 
>>> point me at any resources that try to tackle this problem?
>>>
>>> I just wanted to check before I reinvent the wheel (-:
>>>
>>> Thanks so much,
>>>
>>> Janine Goldstein
>>> NCAR/EOL



More information about the Netcdf-java mailing list