[gdal-dev] GSOC 2015 proposal - Integration of cpp GDAL utilities into GDAL core library

Even Rouault even.rouault at spatialys.com
Sat Mar 28 03:18:40 PDT 2015


Le samedi 28 mars 2015 10:47:32, Peter Halls a écrit :
> Thanks, Even and Daniel.  I see the logic behind the arguments.
> 
> The stand-alone utilities are probably the most heavility used
> GDAL/OGR code.  Once these have been subsumed into internal function
> calls, do we continue to provides the stand-alone utilities?

Yes, of course, this was actually implied by my pseudo code ;-)

> Programming seems to be a cyclic requirement: 5-10 years ago the
> clamour was solely for press and go stand-alone utilities; today there
> are possibly more programmers - or, at least, the programmers have
> become more vocal.  I've seen several such cycles over my career.
> 
> I am not saying that the proposal is a bad idea, rather I am seeking
> to test the proposal such that we continue to commit our scarce
> resources where there is greatest benefit.
> 
> 
> Best wishes,
> 
> Peter
> 
> On 27 March 2015 at 20:08, Even Rouault <even.rouault at spatialys.com> wrote:
> > Peter,
> > 
> >> Maybe I've missed the point (through over familiarity with GDAL/OGR?)
> >> .... but these utilities were originally branded as 'worked examples'
> >> of how to use the substantive libraries to perform well understood
> >> operations from which usage of the libraries might be readily
> >> understood.  Each utility is itself a commented set of function calls
> >> to the relevent GDAL libraries.
> > 
> > There is non trivial logic involved in some of the utilities (e.g.
> > ogr2ogr) and people have the choice between :
> > - doing a system call ("ogr2ogr ...."), but this isn't practical to deal
> > with progress report, cancellation, or operating on in-memory datasets -
> > copy&pasting the source code of the utility in their own code, and
> > "librarify'ing" it to remove exit(), etc...
> > - learning the GDAL/OGR API to do their own custom processing chain. More
> > powerfull but longer learning curve
> > 
> > So the interest of the project would be to make life easier for people
> > using the first 2 bullets (and I can tell you that there are a lot of
> > people hitting those 2 bullets)
> > 
> >> Why is there a need to duplicate this
> >> in turning the utilities into function calls which then, in turn, must
> >> be called by new stand-alone utilities?
> >> There has to be a loss of
> >> efficiency in sunch a process.
> > 
> > I don't think there will be a loss of efficiency
> > 
> > Instead of ogr2ogr.cpp being currently
> > 
> > int main(...)
> > {
> > 
> >         complex_code
> > 
> > }
> > 
> > you would have (very schematically)
> > 
> > ogr2ogr.cpp:
> > 
> > int main(...)
> > {
> > 
> >        ogr2ogr_options = parse aguments()
> >        return ogr2ogr(ogr2ogr_options)
> > 
> > }
> > 
> > and libgdalutils_ogr2ogr.cpp :
> > 
> > int ogr2ogr(ogr2ogr_options)
> > {
> > 
> >      complex_code (moved from currently existing main)
> > 
> > }
> > 
> > Even
> > 
> > --
> > Spatialys - Geospatial professional services
> > http://www.spatialys.com

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com


More information about the gdal-dev mailing list