1) You shouldn't depend on the mesh_topology variable being called "Mesh2" or anything like that. I used Mesh1, Mesh2 and Mesh3 to separate 1D, 2D, and 3D meshes in the examples such that at the end, I would be able to combine all three in one file containing a mesh composed of 1D, 2D, and 3D parts (similar to structured grid mosaics).
2) The reason for changing from standard_name to cf_role was that standard_name is used solely for physical quantities and none of the names that we introduced fall in that category.
I like the fact that one use the UGRID convention without immediately needing to go into an extensive discussion about the drawbacks and benefits of the CF standard_names in general, although the use of cf_role has introduced a kind of a weird link to CF while UGRID remains a separate convention for the time being.\
> 2 )Related to the Python code, in netcdf4, which builds on hdf5, you can specify a "chunk size" for variables.
> However, it turns out that the netcdf4 lib currently has really bad defaultsRuss Rew posted a very nice blog piece about selecting chunk size here:
> for 1-d variables (or 2-d variables with one of the dimensions really small,
> like 2 or three -- common case for the mesh)
>
> So anyone have suggestions as to good chunk sizes? Option one is to use the
> full array size as the chunk size -- but that defeats the purpose of
> chunking. In some experiments for a different use case, I found having a
> minimum chunk size of about 1k helped a lot, and going to a larger one was
> helpful, but not hugely.
>
http://www.unidata.ucar.edu/blogs/developer/entry/chunking_data_choosing_shapes
If you can't figure it out after reading that, just ask Russ. He's a great guy.
Chris,
The default chunking of netCDF is 1 for
unlimited dimensions, and chunk size matching the full dimension length
for fixed dimensions, unless those fixed dimensions are very large.
1. For 1D only vars, try making it big, like 1024 or something (or bigger)
2. For UGRID you might not think chunking on the node or element
dimension makes any sense, but if you have users trying to extract
time series from a particular node or element, it will pay off to
chunk your domain. If you break your domain into 10 pieces or so, it
won't slow down the extraction of the whole domain much, but will
really speed up time series extraction.
3. I'm kind of stating stuff like I know what I'm talking about. It
would be good if you run some tests and report back.
Yes, you are absolutely correct. This issue was in a slightly different context also raised during a Met Ocean DWG session during last year's OGC TC meeting in Frascati. If I remember correctly, Chris Little (UK Met) gave some presentation on splitting data sets in space and grouping them together in time to balance time- and space-slicing overhead costs as bit. Since the OGC standard only concerns classic CF-netCDF3 files, I believe the focus was there on actually splitting a files, but in this context, it would imply increasing the chunk for the time dimension, and reducing it for the node/space dimension.