Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Title Page
Copyright and Credits
Mastering Geospatial Analysis with Python
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the authors
About the reviewer
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Download the color images
Conventions used
Get in touch
Reviews
Package Installation and Management
Introducing Anaconda
Installing Python using Anaconda
Running a Jupyter Notebook
Running a Notebook
Creating a new Notebook
Adding code
Managing Python packages
Managing packages with Anaconda Navigator
Online searching for packages using Anaconda Cloud
Managing Python packages with conda
Managing Python packages using pip
Upgrading and uninstalling the package with pip
Python virtual environments
Virtual environments using Anaconda
Managing environments with conda
Virtual environments using virtualenv
Summary
Introduction to Geospatial Code Libraries
Geospatial Data Abstraction Library (GDAL) and the OGR Simple Features Library
Installing GDAL
Installing GDAL using Anaconda3
Installing GDAL using conda
Installing GDAL using pip
Installing a second GDAL version using pip
Other recommended GDAL resources
GEOS
Installing GEOS
Shapely
Installing Shapely
Fiona
Installing Fiona
Python shapefile library (pyshp)
Installing pyshp
pyproj
Installing pyproj
Rasterio
Rasterio dependencies
Installation of Rasterio
GeoPandas
GeoPandas installation
GeoPandas dependencies
How it all works together
Summary
Introduction to Geospatial Databases
Installing PostgreSQL and PostGIS on Windows
Installing PostgreSQL and PostGIS on Mac
Working with PostgreSQL and PostGIS using Python
Connecting to PostgreSQL using psycopg2
Installing psycopg2
Connecting to the database and creating a table
Adding data to the table
Shapely
Querying the data
Changing the CRS
Buffer
Distance and near
Lines in the database
Length of a line
Intersecting lines
Polygons in the database
Point in polygon
Summary
Data Types, Storage, and Conversion
Raster and vector data
Shapefiles
GeoJSON
KML
GeoPackage
Raster data formats
Reading and writing vector data with GeoPandas
Reading and writing vector data with OGR
Reading and writing raster data with Rasterio
Reading and writing raster data using GDAL
Summary
Vector Data Analysis
OGR Simple Features Library
OGR batch commands
ogrmerge
The OGR library and Python bindings
OGR's main modules and classes
Creating polygon geometry with OGR
Creating polygon geometry from GeoJSON
Basic geometric operations
Writing polygon data to a newly created shapefile
Using a spatial filter to select features
Shapely and Fiona
Shapely objects and classes
Shapely methods for geospatial analysis
Fiona's data model
Creating geometries with Shapely
Applying geometrical methods with Shapely
Reading JSON geometries with Shapely
Reading data with Fiona
Accessing vector geometry in shapefiles using Shapely and Fiona
GeoPandas
Geospatial analysis with GeoPandas
Selecting and plotting geometry data with GeoPandas and Matplotlib
Mapping wildfire data with GeoPandas
Why data inspection matters
Summary
Raster Data Processing
Raster operations using GDAL
Using the GDAL library to load and query rasters
Using GDAL to create rasters
Raster operations using PostgreSQL
Loading rasters into PostgreSQL
Performing queries on rasters using PostgreSQL
Querying raster metadata
Queries returning geometry
Queries returning values
Summary
Geoprocessing with Geodatabases
A crime dashboard
Building a crime database
Creating the tables
Populating the data
Mapping queries
Incidents by date
Incidents in a polygon
Buffers
Nearest neighbor
Interactive widgets
Charts
Triggers
Summary
Automating QGIS Analysis
Working in the Python console
Loading layers
Processing a layer
Layer properties
Feature properties
Drawing a layer from PostGIS
Drawing points
Drawing polygons from PostGIS
Adding, editing, and deleting features
Adding features to an existing layer
Deleting features from an existing layer
Editing features from an existing layer
Selecting features using expressions
Using toolboxes in Python
Writing custom toolboxes
Summary
ArcGIS API for Python and ArcGIS Online
Introducing the ArcGIS API for Python and ArcGIS Online
A Pythonic web API
Installing the API
Testing the API
Troubleshooting
Authenticating your Esri user accounts
Different Esri user accounts
Different modules of the ArcGIS API for Python
Exercise 1 – importing the API and using the map widget
Creating a personalized ArcGIS Online account
Exercise 2 – searching, displaying, and describing geospatial content
Exercise 3 – working with raster data and the API's geoprocessing functions
Summary
Geoprocessing with a GPU Database
Cloud geodatabase solutions
Big data processing
MapD architecture
Cloud versus local versus combined
Creating a MapD instance in the cloud
Finding the AMI
Opening an AWS account
Creating a key pair
Launching an instance
Picking a version
Searching for an instance
Setting up a security group
Immerse environment
Logging in to Immerse
Default dashboards
NYC taxi dataset
Importing a CSV
Creating a chart
Selections with the SQL EDITOR
Use geospatial data
Connecting to the database using a terminal
PuTTYgen
Connection configuration
Using the private key
Installing pymapd
The conda install command
The pip install command
Creating a connection
User and password
Data cursor
Creating a table
Insert statements
Using Apache Arrow to load data
Contains queries
Other available spatial SQL commands
Summary
Flask and GeoAlchemy2
Flask and its component modules
Setup
Installing modules using pip
Installing Flask using pip
Installing Flask-SQLAlchemy via pip
Installing GeoAlchemy2 using pip
Installing Flask-WTForms and WTForms using pip
Installing psycopg2 using pip
Installing SQLAlchemy-Utils using pip
Installing pyshapefile (or pyshp) using pip
Installing pygeoif using pip
Writing a Flask application
Downloading the data from a data source
County, district, state, and arena shapefiles
Creating the database and data tables
Adding the PostGIS extension tables to the new database
Defining the database tables
The declarative base
Database table model classes
Table properties
Creating the tables
Inserting data into the new data tables
Importing the required modules
Locating and reading the shapefiles
Accessing shapefile data
Using queries
Components of the Flask application
Folder structure and the controller object
Models
Forms
Views
Dissecting the view
Using forms
Evaluating the request method
POST requests
Spatial queries
Relationship query
The web map template
Running the web application locally
Summary
GeoDjango
Installing and configuring Django and GeoDjango
Steps from Django to GeoDjango
Installing Django
Installing PostGIS and psycopg2
Creating the database
GDAL/OGR
Modifying Windows environment variables
Creating a project and application
Command-line argument – startproject
What is created by startproject?
Creating an application using manage.py
What is created by manage.py
Configuring settings.py
Adding a new database connection
Adding new installed apps
Creating the application
manage.py
Generating data models
Multipolygons
Database migrations
makemigrations
sqlmigrate
migrate
LayerMapping
Running the layer mapping
Administrative panel
GeoDjango administrative panel
admin.py
createsuperuser
runserver
URLs
URL patterns
Views
Required folders and files
forms.py
templates folder
Writing views
index view
queryarena function
arena view
Running the application
Summary
Geospatial REST API
Writing a REST API in Python
REST
JSON
Python for REST API
Flask
REST modules
Other frameworks
Variables in Flask URLs
Number converters
Other data converters
Request methods
GET
POST
Other available request methods
PUT
DELETE
The REST API application
Application components
Application folder and file structure
app.py
__init__.py
The database
models.py
Importing required modules
Declaring the session
Declaring the models
forms.py
views.py
Importing modules
Base URL
Arenas
Getting all arenas
Getting arenas by ID
Getting arenas by name
A geospatial query
States
Getting all states
Getting a state by ID
Getting a state by name
Getting arenas by state
Counties
Getting a county by ID
Getting a county by name
Districts
Getting all districts
Getting a district by ID
Getting a district by name
API POST endpoints
New arenas
The view function
The addarena.html head
The addarena.html script
The addarena.html form
Sending a POST request using the requests library
Deleting an arena
Running the REST API locally
Deploying Flask to IIS
Flask and web servers
WSGI
Installing the WFastCGI module and FastCGI
Configuring FastCGI
Root server settings and Environment Variables
Summary
Cloud Geodatabase Analysis and Visualization
How to install CARTOframes
Additional resources
Jupyter Notebooks
The CARTO API key
Package dependencies
The CARTO Data Observatory
Signing up for a CARTO account
A free trial of CARTO
Adding a dataset
The API key
Adding a dataset
Virtual environments
Installing virtualenv
Running virtualenv
Activating the virtual environment
Installing modules in virtualenv
Modules to use
Using Jupyter Notebook
Connecting to an account
Saving credentials
Accessing a dataset
Selecting individual rows
Loading a CSV dataset
Loading a shapefile
Installing GeoPandas
Writing to CARTO
Loading CSV with geometry
Geospatial analysis
Editing and updating datasets
overwrite=True
Creating a map
Summary
Automating Cloud Cartography
All things cartographic
How to integrate Mapbox into your GIS
Mapbox tools
MapboxGL.js
Mapbox Python SDK
Installing the Python SDK
Getting started with Mapbox
Signing up for a Mapbox account
Creating an API token
Adding data to a Mapbox account
Tilesets
Datasets
Example – uploading a GeoJSON dataset
Example – uploading data as a tileset
Mapbox Studio
Customizing a basemap
Adding a tileset
Virtual environment
Installing MapboxGL – Jupyter
Installing Jupyter Notebooks
Installing Pandas and GeoPandas
Using the Jupyter Notebook server
Importing data using GeoPandas
Creating point data from polygons
Data cleanup
Saving the points as GeoJSON
Adding the points to a map
Creating a graduated color visualization
Automatically setting colors, sizes, and breaks
Creating a choropleth map
Saving the map
Creating a heat map
Uploading data using the Mapbox Python SDK
Creating the dataset
Loading the data into the dataset
Reading data from a dataset
Deleting a row
Summary
Python Geoprocessing with Hadoop
What is Hadoop?
Installing the Hadoop framework
Installing Linux
Installing Docker
Install Hortonworks
Hadoop basics
Connecting via Secure Shell
Ambari
Esri GIS tools for Hadoop
HDFS and Hive in Python
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
← Prev
Back
Next →
← Prev
Back
Next →