You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.4 KiB
59 lines
2.4 KiB
""" |
|
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
|
|
|