On Friday 26 August 2016 12:01:15 Robin Wilson wrote: > Hi, > > I've was very happy to see the RFC 59.1 code merged in GDAL 2.1, allowing > the use of some of the GDAL command-line utilities from within Python > without having to 'shell out' using something like the subprocess module. > > I notice that gdal_merge isn't in the list of command-line utilities that > have been wrapped to be accessed programmatically - and that, in fact, as > far as I can see none of the Python-based command-line utilities have been > wrapped. > > Are there any plans to provide programmatic access to gdal_merge.py and the > other Python-based utilities?
> > If not, what is the best suggested way to use this from a Python script? > Using subprocess can be quite brittle (I've had lots of issues with paths > etc, particularly on Windows machines - and being able to `import gdal` in > Python is in no way related to being able to run gdal_merge.py from the > shell), but the only other way seems to be to manipulate the path somehow > to try and import gdal_merge.py, and then manipulate sys.argv to 'fake' the > command-line arguments to gdal_merge.py - which also seems quite brittle. Robin, Yes, most Python based utilities are already usable as functions. You should be able to "import gdal_merge" (either by tweaking the path or just copying it next to your code) and call gdal_merge.main( argv = argv ) where argv is an array of the splitted arguments. That's more or less the approach that has been taken for exposing the C++ utilities. Perhaps not the most elegant one, but very easily extensible. Even -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/gdal-dev
