Today, I take a look
at the Python Libraries useful when dealing with Geospatial Data. The
most popular GIS; QGIS and ArcGIS are developed on Python thus giving
us the power to extend their tools to suit our needs in the
For Instance, QGIS
offers the “Plugin Builder” tool that is focused on personal tool
creation by individuals or organization to do specific tasks as
required. To do this, there are some Python Libraries that are
required. Anyone who has worked with scripts in either QGIS, ArcGIS
,Jupyter or GeoDjango for geospatial data analysis must have
interacted with some, if not all, of these libraries.
My experience with
most applications more so QGIS, Jupyter and GeoDjango, has enabled me
draft this post as most of these libraries seem confusing to many and
can be a ‘nightmare’ when developing a GIS system or Portal.
One great resources
that these libraries have are their documentation and the wider
online community supporting the development and maintenance of these
include but not limited to the following.
GEOJSON - This is a
Python Library and also a data format. Its one of the most popular
data format being used in the Geospatial industry today.
GEODJANGO - This is
a module found in Django for handling Geospatial data in Django
projects.Its commonly used with PostgreSQL and PostGIS
PYPROJ - This is a
wrapper around the PROJ.4 library that works with projections and
performs transformations in Python.
NUMPY - is used to
power some geospatial libraries such as GDAL and has the capability
to handle large arrays, matrices and math functions needed in spatial
MATPLOTLIB - is used
in plotting graphs from data for display on screens or displays in
formats such as images and SVG. This Library is so wide with
extensive functionality. Matplotlib is widely used in Jupyter and
MATLAB for its powerful functionality.
SHAPELY - is a
Python library used for spatial analysis of geometries and uses the
Cartesian coordinate system. It works hand-in-hand with the GEOS
library. Mostly evident in CAD systems.
DESCARTES - This
library provides a nicer integration of Shapely geometry objects with
PANDAS - is a data
analysis library that structures your data in a spreadsheet-like
manner for further computations. Pandas simplifies working with data
from different sources during analysis.
PYSHP - This is pure
Python and is used to import and export shapefiles. Its works almost
similar to GDAL but makes it easier for operations.
IPython - is a
Python interpreter for a console that replaces the normal Python
console when running and testing Python code from your terminal. This
is an advanced interpreter with some cool features, such as Tab
completion for commands instead of typing them manually.
PySAL - is a
geospatial computing library that's used for spatial analysis.
Creating models and running simulations directly from Python code are
some of the many library functions that PySAL offers. PySAL enhances
visualization of spatial data and works very well when combined with
tools such as Matplotlib.
(Geospatial Data Abstraction Library) - This is a translator Python
library that deals with a number of out-of-the-box tasks such as
format transformations, identifying projections in data and
operations such as the generation of contours from elevation data.
Its a key library used for Raster and Vector data analysis.Used in
most GIS platforms such as ArcGIS, QGIS, GeoDjango, GRASS GIS, gvSIG,
MangoMap, MapServer and Envi.
|Executing some programs in office|
The installation and
use of these libraries can be found on respective websites on the
Some of the
libraries discussed above work on the background when performing
spatial analysis on data.They work hand-in-hand with each other.
For more details on
these libraries don’t hesitate to leave your comment below.
Training on the use
of these libraries for your geospatial data is also available. Leave
a comment for more info.