Re: grid data sources

Hi Nathan,
With the holidays etc. I haven't had a chance yet to respond to this until now.

I'm trying to modify IDV to retrieve a catalog of gridded data and then the
gridded data itself from a specific web service.  This catalog and retrieval
would look quite similar to the current IDV Catalog chooser.

My question is: Is there a way to create a GridDataSource without a .nc file?
It appears that once a user chooses a model and time and clicks Add Source, IDV
creates a DataSource of type GridDataSource and retrieves a .nc file from the
ucar server.  This Data Source is then used to display all the available 2D and
3D parameters and forecast times in the Data Selector window, and the same data
source is also used when creating the display.  Is that correct?

Yes, sort of. Actually the GridDataSource class is an abstract class that simply holds the 2d and 3d data categories. For netcdf files a GeoGridDataSource is created which knows how to handle gridded netcdf files (a sub-class knows how
to handle OpenDap based data)

The issue is that from the web service I will only be receiving XML.  The XML
document would describe the grid data, including parameters and forecast times.
But the actual .nc file will not be available until the final step of Create
Display, and it seems that IDV needs the .nc file for a grid data source at the
step of Add Source in the Chooser window.

I have no intention of heavily modifying the baseline of IDV, I'm only adding
functionality on top of it.  I'm just interested in knowing if there's something
I'm missing or not understanding about DataSources for gridded data and how they
are used to fill the Data Selector window and then create a display.

So you'll have an xml document that defines a collection of available data sources - e.g., like our catalog chooser. Does the granularity of this xml doc go down to the parameter level? or is that held in another document. For example, our catalog chooser lists the model data available. The user selects a particular model/run and then the GeoGridDataSource is created that then opens the netcdf file (or queries the opendap server) to determine
the parameters/times.

If you end up having an xml document that describes the fields available you could create a DataSource class that reads the xml, creates the appropriate DataChoices and knows how to read the data for a particular
field and create the appropriate visad.Data data structure.

On an unrelated note, nice easter eggs.  ;)

And just out of curiousity, does anyone know of any active work on enabling IDV
to read GriB files directly?

There is another unidata group that is developing Java libraries for reading in a variety of data formats, including Grib.
We are hoping to integrate this effort into the IDV in the coming months.