Book Image

Mastering Geospatial Analysis with Python

By : Silas Toms, Paul Crickard, Eric van Rees
Book Image

Mastering Geospatial Analysis with Python

By: Silas Toms, Paul Crickard, Eric van Rees

Overview of this book

Python comes with a host of open source libraries and tools that help you work on professional geoprocessing tasks without investing in expensive tools. This book will introduce Python developers, both new and experienced, to a variety of new code libraries that have been developed to perform geospatial analysis, statistical analysis, and data management. This book will use examples and code snippets that will help explain how Python 3 differs from Python 2, and how these new code libraries can be used to solve age-old problems in geospatial analysis. You will begin by understanding what geoprocessing is and explore the tools and libraries that Python 3 offers. You will then learn to use Python code libraries to read and write geospatial data. You will then learn to perform geospatial queries within databases and learn PyQGIS to automate analysis within the QGIS mapping suite. Moving forward, you will explore the newly released ArcGIS API for Python and ArcGIS Online to perform geospatial analysis and create ArcGIS Online web maps. Further, you will deep dive into Python Geospatial web frameworks and learn to create a geospatial REST API.
Table of Contents (23 chapters)
Title Page
Copyright and Credits
Packt Upsell
Geoprocessing with Geodatabases

Writing a REST API in Python

To understand the components of a REST API with JSON response, we will utilize the Flask web framework, a PostgreSQL/PostGIS database, and SQLAlchemy and GeoAlchemy2 for ORM queries. Flask will be used to create the URL endpoints for the API. PostGIS will store the data in tables defined by SQLAlchemy models, which define the column types for all columns except the geometry columns, which are defined by GeoAlchemy2 column types.


REST is a standard for web services, designed to accept requests and parameters and return a representation of that data, usually in a JSON format but sometimes in XML or HTML format. APIs that use REST architecture must meet these architectural constraints:

  • Client-server interactions
  • Statelessness
  • Cacheablitity
  • Uniform interface 
  • Layered system

The client (a web browser or a remote computer) will send a request to a server at a designated URL endpoint. The request can include parameters that limit the data objects returned, much like conditionals...