A collection of Python packages for geospatial analysis with binder-ready notebook examples. Launch the interactive notebook tutorials with mybinder.org or binder.pangeo.io test all the pre-installed Python pakcages for geospatial analysis.
Author: Qiusheng Wu (https://wetlands.io)
It is highly recommended that you use the conda package manager to install all the requirements. You can either install Miniconda or the (larger) Anaconda distribution. It is also recommended that you install git so that you can clone this GitHub reposiotry to your computer.
Once conda and git are installed, the following commands will create a virtual Python environment named pygeo and install all the required packages:
git clone https://github.com/giswqs/python-geospatial.git
cd python-geospatial/binder/
conda env create -f environment.yml
source activate pygeo
ipython kernel install --user --name="pygeo"
Launch the interactive notebook tutorials with mybinder.org or binder.pangeo.io now:
This list of Python packages is adapted from the Python list of Awesome Geospatial. All the listed Python packages have been pre-installed in the binder environment.
- whitebox ⚡ - A Python package for advanced geospatial data analysis based on WhiteboxTools.
- lidar - lidar is a toolset for terrain and hydrological analysis using digital elevation models (DEMs).
- pygis - pygis is a collection of Python snippets for geospatial analysis.
- ArcGIS Python API - Esri's Python library for working with maps and geospatial data, powered by web GIS.
- dask-rasterio - Read and write rasters in parallel using Rasterio and Dask.
- earthengine-api ⚡ - The Earth Engine Python API allows developers to interact with Google Earth Engine.
- EarthPy - EarthPy is a python package that makes it easier to plot and work with spatial raster and vector data.
- Fiona ⚡ - For making it easy to read/write geospatial data formats.
- GDAL - The Geospatial Data Abstraction Library for reading and writing raster and vector geospatial data formats.
- geeup - Simple CLI for Earth Engine Uploads.
- geojson-area - Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox's geojson-area for Python.
- geojsonio - Open GeoJSON data on geojson.io from Python.
- GeoPandas - Python tools for geographic data.
- GIPPY - Geospatial Image Processing for Python.
- gpdvega - gpdvega is a bridge between GeoPandas and Altair that allows to seamlessly chart geospatial data.
- mapboxgl-jupyter - Use Mapbox GL JS to visualize data in a Python Jupyter notebook.
- networkx - To work with networks.
- OSMnet - Tools for the extraction of OpenStreetMap street network data.
- pandana - Pandas Network Analysis - dataframes of network queries, quickly.
- Peartree - Peartree: A library for converting transit data into a directed graph for network analysis.
- pygdal - Virtualenv and setuptools friendly version of standard GDAL python bindings.
- pymap3d - Python 3D coordinate conversions for geospace ecef enu eci.
- Pyncf - Pure Python NetCDF file reading and writing.
- PyProj - For conversions between projections.
- PySAL - For all your spatial econometrics needs.
- PyShp - For reading and writing shapefiles.
- rasterio ⚡ - rasterio employs GDAL under the hood for file I/O and raster formatting.
- rasterstats - Python module for summarizing geospatial raster datasets based on vector geometries.
- rio-cogeo - CloudOptimized GeoTIFF creation plugin for rasterio.
- rio-color - Color correction plugin for rasterio.
- rio-hist - Histogram matching plugin for rasterio.
- rio-tiler - Get mercator tile from landsat, sentinel or other AWS hosted raster.
- Rtree - For efficiently querying spatial data.
- sentinelhub - Download and process satellite imagery in Python scripts using Sentinel Hub services.
- sentinelsat - Search and download Copernicus Sentinel satellite images.
- Shapely - Manipulation and analysis of geometric objects in the Cartesian plane.
- ts-raster - ts-raster is a python package for analyzing time-series characteristics from raster data.
- urbansim - New version of UrbanSim, a platform for modeling metropolitan real estate markets.
- USGS API - USGS is a python module for interfacing with the US Geological Survey's API.
- Verde - Verde is a Python library for processing spatial data and interpolating it on regular grids.
- xarray - An open source project that aims to bring the labeled data power of pandas to the physical sciences.
- basemap - Plot on map projections (with coastlines and political boundaries) using matplotlib.
- bokeh - Interactive Web Plotting for Python.
- Cartopy - A library providing cartographic tools for python for plotting spatial data.
- Descartes - Plot geometries in matplotlib.
- geoplot - geoplot is a high-level Python geospatial plotting library.
- geopy - geopy is a Python 2 and 3 client for several popular geocoding web services.
- folium - Python Data, Leaflet.js Maps.
- matplotlib - Python 2D plotting library.
- mplleaflet - mplleaflet converts a matplotlib plot into a webpage containing a pannable, zoomable Leaflet map.
- pyWPS - An implementation of the Web Processing Service standard from the Open Geospatial Consortium.
- pyCSW - Fully implements the OpenGIS Catalogue Service Implementation Specification.
- ipyleaflet - A Jupyter / Leaflet bridge enabling interactive maps in the Jupyter notebook.
- here-map-widget-for-jupyter - Use HERE Maps API for JavaScript in your Jupyter Notebook.
- label-maker - Data Preparation for Satellite Machine Learning.
- label-maker-binder - Using label-maker in an interactive notebook on the cloud.
- Keras - Keras is a high-level neural networks API capable of running on top of TensorFlow, CNTK, or Theano.
- TensorFlow - TensorFlow is an open source software library for numerical computation using data flow graphs.
- dask - Dask is a flexible parallel computing library for analytics.
- imageio - imageio provides an easy interface to read and write a wide range of image data.
- Mahotas - Mahotas is a library of fast computer vision algorithms operating over numpy arrays.
- NumPy - NumPy is the fundamental package for scientific computing with Python.
- Pandas - Open source library providing high-performance, easy-to-use data structures and data analysis tools.
- scikit-image - Scikit-image is a collection of algorithms for image processing.
- scikit-learn - scikit-learn is a Python module for machine learning built on top of SciPy.
- SciPy - SciPy is open-source software for mathematics, science, and engineering.
- Statsmodels - Python module that allows users to explore data, estimate statistical models, and perform statistical tests.
- geojson-shave - A Python command-line tool for reducing the size of GeoJSON files.
- Google Earth Engine ⚡ - Planetary-scale geospatial analysis for everyone.
- Pangeo - A community platform for Big Data geoscience.
- Geospatial Big Data Platform (GBDX) - Cloud computing platform from Digital Globe.
- Radiant Earth - Open-source cloud computing infrastructure for geospatial analysis.
- Radiant MLHub - Open Repository for Geospatial Training Data.
- Sentinel Playground - Cloud platform for analysis of Sentinel-2A and B and so on.
- Vane: Query Language - Creating Basemaps from different satellite images with online processing and computing.