Skip to content
Nat Wilson edited this page Mar 9, 2015 · 4 revisions

What problems does Karta solve?

First, there following are things that Karta is not for:

Karta is not for creating maps

Karta can certainly be used to manage and process the data used in a map, but for actually drawing a map, software like Cartopy or GMT handles more (such as graticules and basemaps).

Karta is not for high performance computational geometry

In two dimensions, shapely is a better bet. In more dimensions, OpenCV may work. One caveat is that these solutions do not handle coordinate systems. A solution that could work in some cases is to manage my data in Karta, take advantage of __geo_interface__ to seamlessly transfer it to shapely, perform an operation, and then return it to Karta under the original coordinate system. An alternative is to use Karta to export data as GeoJSON or shapefiles, and then use the QGis plugin fTools.

With those out of the way, what remains?

Karta's primary purpose is to provide types for managing and manipulating data. It is relatively lightweight (mostly requiring numpy, although some parts use pyproj and GDAL if available) and straightforward to use compared to other options - installing it on a webserver is just as reasonable as using it on a laptop or workstation. It contains some analysis functions for exploratory research, and makes it easy to access data for visualization with plotting libraries.

Furthermore, Karta's Pythonic interface behaves the way that just makes sense to me. Iterating through a Line return Point vertices. Testing geometries for intersections returns a Multipoint, and a profile can be extracted by rasters along a Line.

Karta types are suitable for use in other packages (e.g. narwhal, which uses Karta for geographical analysis).

Clone this wiki locally