Geospatial analysis in Python
Project description
Karta is a package for spatial analysis in Python. It streamlines data processing by providing efficient generic geographical types for vector and raster sources as well as a selection of analysis functions.
For example, read or create vector geometries:
point = Point((-130.0, 52.0), crs=LonLatWGS84)
line = read_geojson("linedata.json")
polygon = Polygon([(-515005.78, -1301130.53),
(-579174.89, -1282271.94),
(-542977.83, -1221147.82),
(-437864.05, -1251641.55),
(-438160.72, -1252421.48),
(-437961.28, -1285314.00)],
crs=NSIDCNorth)
Perform simple queries:
point2 = Point((-25.0, 48.0), crs=LonLatWGS84)
point.distance(point2) # Distance in geographical units
line.intersects(polygon) # True or False
ch = polygon.convex_hull() # Returns a new polygon
ch.to_shapefile("poly.shp")
Load and manipulate raster data:
grid = read_gtiff("landsat_scene.tif") # Leverages GDAL
grid.profile(line) # Collect data along a line
grid.resample(500.0, 500.0) # Return a grid resampled at a new resolution
Documentation
See the online manual, the tutorial, or read the API documentation.
The manual can be built offline using Sphinx. Building the documentation requires numpydoc.
Package Overview
karta.crs: framework for coordinate reference systems and geodetic calculations
karta.vector.geometry: geometry classes Point, Multipoint, Line, and Polygon with associated methods such as length, area, intersections, membership testing, convex hulls, and affine transformations
karta.raster.grid: Grid classes including RegularGrid class (supporting CRS-aware clipping, sampling, profiling along vector tracks), and experimental WarpedGrid
tests: unit tests, to be run with python tests/runtests.py
Formats
Karta provides a basic working interface to several of common file formats. Currently implemented are:
vector
GeoJSON (r,w)
ESRI Shapefiles (via GDAL) (r,w)
GPS eXchange (GPX) (r,w)
raster
GeoTiff (via GDAL) (r,w)
ESRI ASCII Grid (r,w)
Karta implements 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, fastkml).
Installation
The easiest way to install in production is via pip. Installation requires a recent version of setuptools:
pip install -U setuptools
Then, to install the latest release from PyPI:
pip install karta
Building from source
Building from source requires Cython:
pip install Cython
Then, clone the repository and install:
git clone https://github.com/fortyninemaps/karta.git karta pip install -r karta/requirements.txt pip install karta/
Dependencies
numpy >= >1.7
gdal >= 1.10
pyproj >= 1.9
blosc >= 1.2
C99-compliant compiler
Karta supports Python 2.7 and Python 3.4+.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file karta-0.7.3.tar.gz
.
File metadata
- Download URL: karta-0.7.3.tar.gz
- Upload date:
- Size: 1.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 726815a58fe97468c7be064dae497a9de37bb5220e4b9de806cd35e49cf55f18 |
|
MD5 | f78c6524edab4eac2b5529ad88af775b |
|
BLAKE2b-256 | 87061da2f11fe475ff31dfae2eee9874ba2827a8cb02875f65afd87cb9f8ecf5 |