Re: GDAL netcdf convention CF support

NOTE: The galeon mailing list is no longer active. The list archives are made available for historical reasons.


Hi Denis,

I'd also done a "bit" of work on this, but I'll happily abandon my efforts if your driver is now in the distribution.

I had a look at your code (haven't compiled it yet) but one thing I had in my driver that you might like to consider adding is a check to see if the file is CF compliant (or rather, a check to see if it has the CF "Conventions" attribute).

Also, if I remember rightly (it's been a few months since I wrote it) this check should stop your netCDF driver picking up "GMT" grid files, which should be left to the GMT driver to deal with.

This is the check I added, with a bit of the existing code for reference:

/* -------------------------------------------------------------------- */
/*      Try opening the dataset.                                        */
/* -------------------------------------------------------------------- */
   int cdfid, dim_count, var_count;

   if( nc_open( poOpenInfo->pszFilename, NC_NOWRITE, &cdfid ) != NC_NOERR )
       return NULL;

/* ----------------------------------------------------------------------- */
   /*This bit added by Dominic Lowe, British Atmospheric Data Centre.*/
   /*Checking for CF (Climate & Forecast) compliance:
   First check for Conventions global attribute*/
/* ----------------------------------------------------------------------- */
       attname = (char *) malloc(NC_MAX_NAME*sizeof(char));
if ((status = nc_get_att_text(cdfid, NC_GLOBAL, "Conventions", attname)) != NC_NOERR)
   {
CPLError( CE_Warning, CPLE_AppDefined, "No Conventions global attribute");*/
        /* note that 'Conventions' is always capital 'C' in CF spec*/
       return NULL;
       nc_close( cdfid );
   }

   /*then check Conventions is of the form "CF-etc" eg "CF-1.0"*/
     if( attname[0] != 'C'
       || attname[1] != 'F'
       || attname[2] != '-'  )
   {
CPLError( CE_Warning, CPLE_AppDefined, "Convention attribute did not match CF convention");
       return NULL;
       nc_close( cdfid );
    }
/* ----------------------------------------------------------------------- */
Hope that's useful, I'll give the driver a go sometime soon.

Dominic



Denis Nadeau wrote:

GDAL now supports netcdf format using CF convention as specified by unidata.

   http://www.unidata.ucar.edu/software/netcdf/conventions.hdf

The software looks if the variables lat/latitude and lon/longitude are presents in the netcdf file. If found, these variables are used to specify the georeferencing transformation.

I'd like the community to try it out and if there are some problems, let me know. GDAL netcdf format also works on Windows with he precompile library version 3.6.1-beta1 (January 2005).

Regards,
Denis Nadeau



  • 2005 messages navigation, sorted by:
    1. Thread
    2. Subject
    3. Author
    4. Date
    5. ↑ Table Of Contents
  • Search the galeon archives: