OSGeo Python Library

Motivation
Several OSGeo software projects support Python. However, a global abstraction layer is lacking which would help to do "OSGeo Python programming". We think of well documented bindings to the various software projects which are handled as plugins (or whatever appropriate).

Functionality
Shared functions may include


 * Import/Export of data
 * Linking to external data sources
 * Reprojection tools
 * GIS analysis
 * Plotting and printing

Programming Language

 * Python
 * SWIG

Existing code to be recycled

 * http://fwtools.maptools.org and http://openev.sourceforge.net
 * GDAL/OGR Python bindings
 * Mapserver Python bindings
 * QGIS Python bindings
 * GRASS SWIG Python bindings and GRASS Python library
 * PCL and PrimaGIS
 * Python GIS Working on a pile of GIS programs in Python. Mostly they make maps, but targetting a total replacement of GRASS, so calling it Python GIS.
 * Currently in development:
 * pygps, a Python GPS
 * mapview, a Python map viewer
 * LatLongUTMconversion, a Python library to convert between Lat/Lon and UTM

Architecture
Draft concept:

++ |                                                                |  |                      OSGeo Python Library                      |   User API |                                                               |  +-++-+---+-+-+  |         |            |             |           |         |     |  | File IO | Streams IO | Projections | Analytics |  Print  | ... |  Abstraction Layer |        |            |             |           |         |     |  +-++-+---+-+-+  |                      |             |           |         |     |  |        GDAL/xxx      |   PROJ4     |   GRASS   |  QGIS   | ... |  OSGeo and related projects |                     |             |           |Mapserver|     |   with Python bindings |                     |             |           |         |     |  +--+-+---+-+-+

License
It is proposed to license the OSGeo Python Library under ... TBD. Certainly OSI compliant.

Interested people

 * Markus Neteler (proposer)
 * Sebastian Holler
 * Dimitris Kotzinos
 * Martin Landa