diff options
Diffstat (limited to 'webapp/django/contrib/gis/gdal/__init__.py')
-rw-r--r-- | webapp/django/contrib/gis/gdal/__init__.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/webapp/django/contrib/gis/gdal/__init__.py b/webapp/django/contrib/gis/gdal/__init__.py new file mode 100644 index 0000000000..b318850b28 --- /dev/null +++ b/webapp/django/contrib/gis/gdal/__init__.py @@ -0,0 +1,59 @@ +""" + This module houses ctypes interfaces for GDAL objects. The following GDAL + objects are supported: + + CoordTransform: Used for coordinate transformations from one spatial + reference system to another. + + Driver: Wraps an OGR data source driver. + + DataSource: Wrapper for the OGR data source object, supports + OGR-supported data sources. + + Envelope: A ctypes structure for bounding boxes (GDAL library + not required). + + OGRGeometry: Layer for accessing OGR Geometry objects. + + OGRGeomType: A class for representing the different OGR Geometry + types (GDAL library not required). + + SpatialReference: Represents OSR Spatial Reference objects. + + The GDAL library will be imported from the system path using the default + library name for the current OS. The default library path may be overridden + by setting `GDAL_LIBRARY_PATH` in your settings with the path to the GDAL C + library on your system. + + GDAL links to a large number of external libraries that consume RAM when + loaded. Thus, it may desirable to disable GDAL on systems with limited + RAM resources -- this may be accomplished by setting `GDAL_LIBRARY_PATH` + to a non-existant file location (e.g., `GDAL_LIBRARY_PATH='/null/path'`; + setting to None/False/'' will not work as a string must be given). +""" +import sys + +# Attempting to import objects that depend on the GDAL library. The +# HAS_GDAL flag will be set to True if the library is present on +# the system. +try: + from django.contrib.gis.gdal.driver import Driver + from django.contrib.gis.gdal.datasource import DataSource + from django.contrib.gis.gdal.libgdal import gdal_version, gdal_full_version, gdal_release_date + from django.contrib.gis.gdal.srs import SpatialReference, CoordTransform + from django.contrib.gis.gdal.geometries import OGRGeometry, GEOJSON + HAS_GDAL = True +except: + HAS_GDAL, GEOJSON = False, False + +# The envelope, error, and geomtype modules do not actually require the +# GDAL library, but still nead at least Python 2.4 and ctypes. +PYTHON23 = sys.version_info[0] == 2 and sys.version_info[1] == 3 +if not PYTHON23: + try: + from django.contrib.gis.gdal.envelope import Envelope + from django.contrib.gis.gdal.error import check_err, OGRException, OGRIndexError, SRSException + from django.contrib.gis.gdal.geomtype import OGRGeomType + except ImportError: + # No ctypes, but don't raise an exception. + pass |