[Gdal-dev] Re: GDAL netcdf convention CF support

Dominic Lowe d.lowe at rl.ac.uk
Thu Aug 18 05:00:18 EDT 2005


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://my.unidata.ucar.edu/content/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
>




More information about the Gdal-dev mailing list