Type single multidim ragged Nested Table
point

N/A

data(obs)
time,lat,lon,z(obs)
N/A
Table { 
  lat, lon, z, time;    
  data1, data2, ... 
} obs(sample);
timeSeries
data(time)
time(time)
scalar lat,lon,stn_alt,stn_id
data(station,obs)
time(station,obs) | time(time)         
lat,lon,stn_alt,stn_id(station) 
data(obs)        
time(obs)        
lat,lon,stn_alt,stn_id(station)
row_size(station) | stn_index(obs) 
Table {
  lat, lon, z;
  Table {
    time;
    data1, data2, ...
  } obs(*); 
} station(station); 
trajectory
data(obs)
time,lat,lon,z(obs)
scalar traj_id      
data(traj,obs)
      time,lat,lon,z(traj,obs)|time(obs)
traj_id(traj)     
data(obs)
time,lat,lon,z(obs)
row_size(traj) | traj_index(obs)
traj_id(traj)
Table {

  Table {
    time, lat, lon, z;
    data1, data2, ...
  } obs(*); 
} traj(traj); 
profile
data(z)
      time(z) | time
    scalar lat,lon
      z(z)

scalar profile_id   
data(profile,z)
time(profile,z) | time(profile)
lat,lon(profile)
alt(profile,z) | z(z)
profile_id(profile)     
data(obs)
time(profile) | time(obs) 
        lat,lon(profile)
z(obs)
row_size(profile) | profile_index(obs)

profile_id(profile) 
Table {
  lat, lon, time;
  Table {
    z;
    data1, data2, ...
  } obs(*); 
} profile(profile); 
seriesProfile
data(profile, z)
time(profile, z)|time(profile)
lat,lon,stn_alt,stn_id
      alt(profile,z) | z(z)     
data(station, profile, z)
time(sta,prof,z)|time(sta,prof)|time(prof)
        lat,lon,stn_alt,stn_id(station)
alt(sta,prof,z)|alt(prof,z)|z(z)     
// contig z, profiles in any sequence
data(obs)
time(profile) | time(obs)
lat,lon,stn_alt,stn_id(station)
        z(obs)
station_index(profile),row_size(profile)

Table {
  lat, lon, alt;
  Table {
    time;
    Table {
      z;
      data1, data2, ...
    } obs(*); 
  } profile(*); 
} station(station); 
trajProfile
data(profile, z)
      time(profile, z)|time(profile)
      lat,lon(profile)
alt( profile,z) | z(z)
scalar traj_id     
data(traj, profile, z)
time(traj,prof,z)|time(traj,prof)
lat,lon(traj, profile)
alt(traj,profile,z) | z(z)
traj_id(traj)     
// contig z, profiles in any sequence
data(obs)
time(profile) | time(obs)
        lat,lon(profile)
z(obs) | z(z)
traj_index(profile),row_size(profile)
traj_id(traj)
Table {
  Table {
    lat, lon, time;
    Table {
      z;
      data1, data2, ...
    } obs(*); 
  } profile(*); 
} traj(traj);