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