This repository contains Jupyter notebooks with Python code about geoscience and remote sensing. Many notebooks come from the book Geoprocessing with Python by Chris Garrard, others are my experiments with open geospatial datasets. The topics of the notebooks follows those in the book plus others common in geostatistics.
- Coordinate reference systems
- Unprojected and projected reference systems (Datums and projections)
- How to transform a geospatial dataset from one CRS to another
- Vector data
- Formats (ESRI shape files, GeoPackage, GeoJson)
- Geometries: points, lines, polygons
- Spatial relationships
- Temporal relationships
- Spatial data integration
- Suitability analysis
- Network analysis (roads)
- Open Street Map
- Raster data
- Remote sensing data
- Satellite and aerial imagery: optical, thermal, SAR, Lidar
- Sub-setting
- Resampling (image registration and co-registration)
- Orthorectification
- Random noise removal (salt and pepper noise)
- Mosaicking
- Geo-referencing and warping
- Spatial interpolation (bilinear, cubic, kriging)
- Image fusion (Pan-sharpening)
- Remote sensing data
- Geospatial data visualization
- Matplotlib
- Leaflet
- Map Servers
- Digital elevation models
- Digital surface and terrain models
- Map algebra
- GDAL Virtual Format
- Applications
- Local analysis
- Focal analysis (smoothing, gradient)
- Zonal analysis
- Global analysis
- Change detection
- Machine learning (unsupervised and supervised)
- Map classification
- Segmentation
- Downscaling, super-resolution
- Spatial data integration
- GIS and Remote Sensing Tools
- QGIS
- Orfeo-Toolbox
- Sentinel Application Platform (SNAP)
- Spatial databases
- PostGIS
- Sqlite
The notebooks are based on the following open source software packages
- GDAL/OGR for raster to vector and vector to raster transformations
- GeoPandas to handle vector data
- Rasterio for raster data
- Shapely for spatial relations
- PROJ for coordinates transformations
- Cartopy for geospatial data visualization
- Folium for map visualization
- Xarray for multidimensional array processing
- SciPy, interpolation, linear algebra, numerical integration, optimization
- PyKRIGE, geostatistics, kriging
- pyGIMLi, inversion for geophysics
- xESMF, regridding
- FiPy, partial differential equations solver
- scikit-image for digital image processing
- RasterVision for ML and DL
- TorchGeo for ML and DL
- PyTorch for ML and DL
- GeoWombat geospatial and time series at scale
- rio-mucho windowed parallel processing wrapper for rasterio
- The Generic Mapping Tools Earth science data manipulation and visualization
- HoloViz high-level tools for visualization
Other tools used for testing and satellite imagery analysis and processing
- QGIS Vector and Raster data analysis
- SNAP SAR and Optical data processing
- Whitebox LiDAR data processing.
- Orfeo Toolbox Remote Sensing image processing
- Rugged Sensor to terrain mapping, orthorectification
- Orekit space flight dynamics, orbit and attitude determination
- Panoply netCDF data viewer
- SAGA System for Automated Geoscientific Analysis
- ImageJ Image Processing and Analysis in Java
- SIFT - Satellite Information Familiarization Tool meteorological satellite imagery visualization tool
- hale>>studio spatial data harmonisation tool
- MicMac photogrammetry
- Atmospheric Toolbox
- xEOFs - Empirical Orthogonal Functions
- COLMAP stereo image processing, 3D reconstruction, photogrammetry
- AliceVision - Photogrammetric Computer Vision Framework
- scikit-eo, a Python package for Remote Sensing tools
Geoscience tools
- The Hydrologic Modeling System
- MODFLOW USGS Modular Hydrologic Model
- NASA GISS G.Projector Map projections
- H3 - Hexagonal hierarchical geospatial indexing system geospatial indexing
- OPeNDAP, client-server software for geospatial data distribution
- NCO, command-line toolkit for netCDF, Zarr, HDF5 files
- Zarr, file format for n-dimensional arrays and tensors
- Spyder, Python integrated development environment, an alternative to Jupyter notebooks
Geospatial Datasets
- OpenTopography, Digital elevation models
- Nevada Geodetic Laboratory - The MAGNET GPS Network, Land positioning and motion data