# Path: ez_setup.py
# def use_setuptools(
#         version=DEFAULT_VERSION, download_base=DEFAULT_URL,
#         to_dir=DEFAULT_SAVE_DIR, download_delay=15):
#     """
#     Ensure that a setuptools version is installed.
# 
#     Return None. Raise SystemExit if the requested version
#     or later cannot be installed.
#     """
#     version = _resolve_version(version)
#     to_dir = os.path.abspath(to_dir)
# 
#     # prior to importing, capture the module state for
#     # representative modules.
#     rep_modules = 'pkg_resources', 'setuptools'
#     imported = set(sys.modules).intersection(rep_modules)
# 
#     try:
#         import pkg_resources
#         pkg_resources.require("setuptools>=" + version)
#         # a suitable version is already installed
#         return
#     except ImportError:
#         # pkg_resources not available; setuptools is not installed; download
#         pass
#     except pkg_resources.DistributionNotFound:
#         # no version of setuptools was found; allow download
#         pass
#     except pkg_resources.VersionConflict as VC_err:
#         if imported:
#             _conflict_bail(VC_err, version)
# 
#         # otherwise, unload pkg_resources to allow the downloaded version to
#         #  take precedence.
#         del pkg_resources
#         _unload_pkg_resources()
# 
#     return _do_download(version, download_base, to_dir, download_delay)


import sys
        import numpy
from ez_setup import use_setuptools
from os.path import exists
from setuptools import setup, Extension
from setuptools.command.build_ext import build_ext as _build_ext
            from Cython.Build import cythonize
Vector data types
-----------------

Data are represented as ``Point``, ``Line``, ``Polygon``,
``Multipoint``, ``Multiline``, and ``Multipolygon`` instances.

All data contain a ``.crs`` member encoding coordinate reference
information. All vector geometries possess a ``.properties`` dict
containing free-form metadata. *Multipart* geometries additionally
possess a ``.data`` member which is a simple typed table-like data
structure.

Geometries implement methods for computing distances, directions, and
spatial characteristics. *Multipart* geometries support fast spatial
indexing through quadtrees and r-trees.

GeoJSON and ESRI shapefile formats are supported for reading and
writing. Experimental support for GPX XML files is in the
``karta.vector.gpx`` submodule.

Vector geometries implement the Python ```__geo_interface__``
attribute <https://gist.github.com/sgillies/2217756>`__ for vector
geometries. This permits data to be exchanged between *Karta* and
external modules that also implement ``__geo_interface__`` (e.g.
`shapely <https://github.com/Toblerity/Shapely>`__,
`fastkml <https://fastkml.readthedocs.org/en/latest/>`__).

Raster data types
-----------------


# Path: ez_setup.py
# def use_setuptools(
#         version=DEFAULT_VERSION, download_base=DEFAULT_URL,
#         to_dir=DEFAULT_SAVE_DIR, download_delay=15):
#     """
#     Ensure that a setuptools version is installed.
# 
#     Return None. Raise SystemExit if the requested version
#     or later cannot be installed.
#     """
#     version = _resolve_version(version)
#     to_dir = os.path.abspath(to_dir)
# 
#     # prior to importing, capture the module state for
#     # representative modules.
#     rep_modules = 'pkg_resources', 'setuptools'
#     imported = set(sys.modules).intersection(rep_modules)
# 
#     try:
#         import pkg_resources
#         pkg_resources.require("setuptools>=" + version)
#         # a suitable version is already installed
#         return
#     except ImportError:
#         # pkg_resources not available; setuptools is not installed; download
#         pass
#     except pkg_resources.DistributionNotFound:
#         # no version of setuptools was found; allow download
#         pass
#     except pkg_resources.VersionConflict as VC_err:
#         if imported:
#             _conflict_bail(VC_err, version)
# 
#         # otherwise, unload pkg_resources to allow the downloaded version to
#         #  take precedence.
#         del pkg_resources
#         _unload_pkg_resources()
# 
#     return _do_download(version, download_base, to_dir, download_delay)


# Path: setup.py
import sys
        import numpy
from ez_setup import use_setuptools
from os.path import exists
from setuptools import setup, Extension
from setuptools.command.build_ext import build_ext as _build_ext
            from Cython.Build import cythonize

Vector data types
-----------------

Data are represented as ``Point``, ``Line``, ``Polygon``,
``Multipoint``, ``Multiline``, and ``Multipolygon`` instances.

All data contain a ``.crs`` member encoding coordinate reference
information. All vector geometries possess a ``.properties`` dict
containing free-form metadata. *Multipart* geometries additionally
possess a ``.data`` member which is a simple typed table-like data
structure.

Geometries implement methods for computing distances, directions, and
spatial characteristics. *Multipart* geometries support fast spatial
indexing through quadtrees and r-trees.

GeoJSON and ESRI shapefile formats are supported for reading and
writing. Experimental support for GPX XML files is in the
``karta.vector.gpx`` submodule.

Vector geometries implement the Python ```__geo_interface__``
attribute <https://gist.github.com/sgillies/2217756>`__ for vector
geometries. This permits data to be exchanged between *Karta* and
external modules that also implement ``__geo_interface__`` (e.g.
`shapely <https://github.com/Toblerity/Shapely>`__,
`fastkml <https://fastkml.readthedocs.org/en/latest/>`__).

Raster data types
-----------------


The primary raster data type is the ``RegularGrid``, which represents