- R, caret - general ML library, similar to scikit-learn. Supports also Keras as back-end for deep learning. Supports parallel computing.
- PyTorch, deep learning framework
- Dask-ML, scalable machine learning with Scikit-Learn, XGBoost, and others.
- CAST - improve spatial-temporal modelling tasks using 'caret'.
- Options:
- ArcGIS Pro, very easy to use with default settings / existing models
- ArcGIS Python API, ArcGIS Notebooks, model traiing, more advanced options.
- ArcGIS Image server, Trained models at scale in production
- Shallow learning: K-means, SVM, random forest, maximum likelihood classifications and ISO clustering
- Deep learning:
- object detection: find bbox of the objects
- pixel classification
- object classification: classify features or tiles
- Based on PyTorch and Keras
- Export Training Data For Deep Learning, 5 different formats, “Classified tiles” similar to our exercise. Very easy to use, but clearly slower than GDAL
- Training serious models requires GPU, either power-PC or GPU server, not suitable for CSC GPU resources:
- ArcGIS Pro only as Windows software
- ArcGIS Python API could be installed, but no access to local data
Tip: See ESRI virtual campus machine learning materials
Plugins:
- Semi-Automatic Classification Plugin, allows for the supervised classification of remote sensing images, providing tools for the download, the preprocessing and postprocessing of images. https://fromgistors.blogspot.com/
- A few new / little used ones, also for data preparation: machine-learning, deep-learning
- pointnet (++) → Deep Learning for pointclouds directly:https://github.com/charlesq34/pointnet
- RAPIDS - GPU accelerated data science, including cuspatial (point-in-polygon, spatial join, coordinate systems, shape primitives, distances, and trajectory analysis) -> check out their example notebook
- ERDAS imagine
- Google Earth Engine
- GRASS, r.learn.ml, supervised classification and regression of GRASS rasters using the python scikit-learn package
- McFly, build and compare different DL models for timeseries classification task
- PyspatialML, for applying scikit-learn machine learning models to 'stacks' of raster datasets.
- Orfeo Toolbox. Looks good from documentation, but in practice had several problems...
- OTBTF: Orfeo ToolBox meets TensorFlow
- Torchgeo
- Geotorch
- More links: https://github.com/sacridini/Awesome-Geospatial#deep-learning
- Point cloud voxelizer example: https://github.com/Eayrey/3D-Convolutional-Neural-Networks-with-LiDAR/blob/master/point_cloud_voxelizer.py
- geoconda module: scikit-learn + a lot of Python GIS packages
- tensorflow module: keras, tensorflow, geopandas, rasterio
- pytorch module: pytorch, geopandas, rasterio
- r-env module: caret, CAST + a lot of Python GIS packages
- GRASS (in QGIS module)
- QGIS module
- OrfeoToolBox module
Puhti documentation: