kdem

Frank Warmerdam warmerdam at p...
Mon Mar 12 21:18:00 EST 2001


Ben Discoe wrote:
> It would be great to see a little chart of how GDAL, OpenEV, OGR, PROJ.4,
> MITAB etc. fit togther, i am not entirely clear. Perhaps such a chart
> already exists?

Ben, 

Charting is a weak point for me. I never seem interested enough to learn to
use a charting tool well. 

Briefly:

o OpenEV always uses GDAL for all raster access.
o OpenEV always can load shapefiles using shapelib.
o OpenEV can sometimes load any other OGR format, if built appropriately 
though it expects OGR to come from the GDAL shared library.
o OpenEV always uses OGRSpatialReference to manipulate projections, and
uses OGC WKT as the internal projection description format. 
o OpenEV always uses OGRCoordinateTransform for reprojection services, but
can mostly operate even if that doesn't work (if PROJ.4 isn't available).

o OGRSpatialReference, OGRCoordinateTransformation, OGR vectors and GDAL 
raster formats are all from the same source tree (in CVS) and can all be
compiled into one shared library (gdal11.dll or libgdal.1.1.so) 

o GDAL provides raster read/write services - the ogr stuff isn't considered
to be part of GDAL proper.
o GDAL utilizes various auxilary library (libjpeg, libtiff, libgeotiff, 
cfitslib, libpng, etc) for access to selected formats. Many of these can
be compiled into the dll from source in the GDAL tree, or dynamically
linked from pre-installed libraries on the system depending on how things
are configured. 
o Many GDAL formats uses OGRSpatialReference internally to prepare WKT
projection strings, so GDAL depends on having the OGRSpatialReference
class built-in.

o "OGR" is normally thought of as being the simple features portion of the
code under gdal/ogr, though the OGR projection services might be 
considered part of OGR as well. 
o OGR the vector library includes support for a variety of formats, including
Shapefiles, NTF, SDTS, Tiger, S-57, dgn and Mapinfo. 
o The OGR Mapinfo driver is a thin layer on top of MITAB. MITAB actually uses
some many OGR core classes internally, and the version of MITAB distributed
by Daniel include much of gdal/ogr/*.cpp. 
o OGR also depends on the OGRSpatialReference, and related projection classes.
o OGR can be utilized from an static library, but more commonly now is used
directly from an all-inclusive GDAL shared library. 

o OGRSpatialReference is just used for manipulating projection descriptions,
and transforming between different representations (WKT, PROJ.4, ESRI .prj, 
EPSG). The internal data model is that of OGC WKT. 
o OGRCoordinateTransformation supplies reprojection/datum shifting services, 
and internally uses PROJ.4. 
o OGRCoordinateTransformation dynamically loads PROJ.4 at run time, but
applications can link with it success (though reprojection will fail at run
time) even if PROJ.4 is not available. 

o PROJ.4 is PROJ.4, and is normally kept as a separate .dll/.so rather than
being linked into GDAL, or OpenEV. 

In case you didn't notice, I _do_ like point form. 

Best regards,

---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmerdam at p...
light and sound - activate the windows | http://pobox.com/~warmerda
and watch the world go round - Rush | Geospatial Programmer for Rent




More information about the Gdal-dev mailing list