Dear Chris > * In general, what is of interest is a collection (100s to 10,000s, > or more... ) of particles, rather than an one individual particle. > Thus, it is more likely that the user might ask: > > "where are all the particles at time T?" > than: > "How did particle X travel over time?" > > * particles can have many associated attributes (properties, etc) > that change over time. > > * many models create and destroy particles as the model runs
I agree, this is a case for a ragged array, with two unlimited dimensions, logically speaking. However such a thing can be accommodated in the new discrete geometry conventions http://www.unidata.ucar.edu/staff/caron/public/CFch9-may10.pdf This describes two ragged array representations, which are intended for this purpose. Only one netCDF unlimited dimension is used; the two logical axes are combined into one netCDF axis. I have not thought about this in detail, but I suspect it could look something like this: int row_size(time) ; row_size:long_name = "number of particles for this time"; row_size:sample_dimension = "obs" ; double time(obs) ; time:standard_name = "time"; time:units = "days since 1970-01-01 00:00:00" ; int particle(obs) particle:long_name="particle number"; float quantity(obs) ; quantity:long_name="one of the physical properties of the particle" quantity:coordinates = "lat lon alt particle" ; which associates a 3D position lat,lon,alt and a particle identifier with each observation i.e. datum. obs is the unlimited dimension. If there is also invariant information for each particle, a large enough particle dimension would also be needed and various auxiliary coord vars of this dimension. I think this is like the trajectory feature type, but with an additional indirection via the particle identifier to link the observations with invariant information on particles. Cheers Jonathan _______________________________________________ CF-metadata mailing list [email protected] http://mailman.cgd.ucar.edu/mailman/listinfo/cf-metadata
