[gdal-dev] guidance on NSIDC Sea Ice concentration data

Even Rouault even.rouault at spatialys.com
Mon Jul 27 10:34:48 PDT 2015

On Friday 24 July 2015 22:56:42 Michael Sumner wrote:
> Hello, I've put together an example of using NSDIC sea ice concentration
> data with GDAL VRT.
> In this Github readme I list two example data sets, one for the Northern
> and one for the Southern hemisphere where the raw
> binary NSDIC .bin files have accompanying VRT files:
> https://github.com/mdsumner/NSIDC-seaice
> I'd really like to see this format as a GDAL driver, but I don't have the
> C++ expertise to make it happen. I can offer help and testing if anyone was
> interested in writing the driver, but I would also appreciate any guidance
> and kick start for me to learn to do it myself.
> The format itself is detailed here, and everything required can be gleaned
> from the header - though in the VRT pathway I simply skip the header and
> apply the right CRS, orientation, grid size and geotransform:
> http://nsidc.org/data/docs/daac/nsidc0051_gsfc_seaice.gd.html#format
> The repo includes the minimal .vrt required to read this as a valid GDAL
> data set and uses plotting in R with standard R
> mapping tools to show that the interpretation is right, at least visibly.
> I have these questions:
> * what is the best template driver for these data, should it derive from
>  GDALPamDataset like JDEM or from RawDataset as ERS does? (I'm way out of
> my depth here)


Deriving from RawDataset is certainly the best option here. You can take 
exemple on drivers in frmts/raw/

> * is it appropriate to use this SRS when the datum is unspecified? I'm not
> clear on the pitfalls here and how to advise downstream use

Do you mean EPSG 3411 and 3412 ? Well, why not... ?

> I am competent with building GDAL but I get lost in the steps required to
> add a new driver. A dummy example, or some more detailed guidance for how I
> would apply the "GDAL Driver Implementation Tutorial" to these data would
> be enough for me to flesh out the details.

You'll basically have to use a new file and reference it in 
frmts/raw/GNUmakefile and makefile.vc, as well as declaring the driver register 
function in gcore/gdal_frmts.h and calling it in frmts/gdalallregister.cpp


Spatialys - Geospatial professional services

More information about the gdal-dev mailing list