Geospatial Deep Learning


This course is an applied study of deep learning methods for extracting information from geospatial data, such as aerial imagery, multispectral imagery, digital terrain data, and other digital cartographic representations. We have provided background and conceptual information in the form of lecture modules, video examples using ArcGIS Pro, and coding examples using Python and PyTorch or R and geodl. We primarily focus on convolutional neural networks (CNNs) and semantic segmentation methods; however, we also discuss transformer and mamba architectures.

It is assumed that you have prior knowledge of coding in the Python language. The R language is also used but to a lesser extent. If you do not have experience coding, please take a look at our Methods in Open Science course, which explore coding in Python and/or R.

Geospatial Deep Learning

After completing this course you will be able to:

  • explain how ANNs work including weights, bias, activation, and optimization.
  • describe and explain different loss and assessment metrics and determine appropriate use cases.
  • use the tensor data model to represent data as input for deep learning.
  • explain how CNNs work including convolutional operations/layers, kernel size, stride, padding, max pooling, activation functions, and batch normalization.
  • use PyTorch, Python, and R to prepare data, produce and assess scene classification models, and infer to new data.
  • explain common semantic segmentation architectures and how these methods allow for pixel-level classification and how they are different from traditional CNNs.
  • use PyTorch, Python, and R (or ArcGIS Pro) to prepare data, produce and assess semantic segmentation models, and infer to new data.
  • explain how object and instance segmentation are different from traditional CNNs and semantic segmentation and how they can be used to generate bounding boxes and feature masks for each instance of a class.
  • use PyTorch to build deep learning architectures, read and load data, train models, assess models, and infer back to new data.

If you have any questions or suggestions, feel free to contact us. We hope to continue to update and improve this course.

This course was produced by West Virginia View (www.wvview.org) with support from AmericaView (americaview.org). This material is based upon work supported by the U.S. Geological Survey under Grant/Cooperative Agreement No. G18AP00077 and G23AP00683. The views and conclusions contained in this document are those of the authors and should not be interpreted as representing the opinions or policies of the U.S. Geological Survey. Mention of trade names or commercial products does not constitute their endorsement by the U.S. Geological Survey. This course and associated materials were also supported by the National Science Foundation (NSF) (Federal Award ID No. 2046059: "CAREER: Mapping Anthropocene Geomorphology with Deep Learning, Big Data Spatial Analytics, and LiDAR"). Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.

Course content generated by West Virginia View (WV View) are licensed under CC BY-NC-SA 4.0.

© [2026] West Virginia View (WV View). Unless otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0). You are free to share and adapt these materials for non-commercial purposes, provided you give appropriate credit and distribute any derivative works under the same license. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/4.0/.

Suggested attribution string: "[Title of Material]" by West Virginia View (WV View) is licensed under CC BY-NC-SA 4.0. Available at [URL].


Card Types: Lecture Assignment Resource Video Code

Introduction and Setup

Introduction

HTML PDF

Setup Computational Environment

HTML

Environment YML files

Data

Data Download

Data

Quarto Docs

Data

ArcGIS Pro Deep Learning

HTML

PyTorch

HTML

Python Setup Deep Learning

HTML

Paper Reviews

PDF

Datasets

EuroSat

Data

Landcover.ai

Data

topoDL

Data Mini

vfillDL

Data Mini

terraceDL

Data Mini

mineBenchDL

Data Source Mini

physioDL

Data

Useful Links

PyTorch

Site

Segmentation Models

Site

TorchMetrics

Site

torch (R)

Site

luz (R)

Site

terra (R)

Site

torch R Text

Book

geodl (R)

Site

Artificial Neural Networks

Artificial Neural Networks (ANNs)

HTML PDF

Artificial Neural Networks (ANNs)

HTML

Tensors

HTML PDF

Tensors

HTML

Losses and Metrics

HTML PDF

Linear Regression

HTML

Losses and Metrics

HTML

Datasets/DataLoaders

HTML

Classification Losses

PDF

Regression Losses

PDF

Accuracy Assessment

PDF

Train ANN

HTML

Improving Models

HTML

Custom ANN

PDF

Train ANN

PDF

ANN Experiments

PDF

Convolutional Neural Networks

Convolutional Neural Networks (CNNs)

HTML PDF

CNN Components

HTML

Build CNN

HTML

Train CNN

HTML

CNN Architectures

HTML

CNN Transfer Learning

HTML

Scene Labeling Dataset

PDF

Custom CNN

PDF

Train CNN

PDF

Midterm

PDF

Semantic Segmentation

Semantic Segmentation

HTML PDF

UNet Architecture

HTML

Train UNet

HTML

UNet Encoders

HTML

Segmentation Models Library

HTML

Spatial Predictions

HTML

geodl: Make Chips

HTML

geodl: Create Masks

HTML

geodl: Create Dataset/DataLoader

HTML

geodl: Unified Focal Loss Demo

HTML

geodl: Metrics Demo

HTML

geodl: Model Assessment

HTML

geodl: Terrain Derivatives Demo

HTML

geodl: Semantic Segmentation

HTML

geodl: LCAI Demo

HTML

Training Function

PDF

Object Detection and Instance Segmentation

Object Detection/Instance Segmentation

HTML PDF

Improving Models

HTML PDF

Build UNet-ID

PDF

Transformers and Advanced Architectures

Transformers, ConvNeXt, and Mamba

HTML PDF

SegFormer UNet

HTML

Generative Models

GANs and VAEs

HTML PDF

VAE

HTML

Anomaly Detector

PDF

Foundation Models

Foundation Models

HTML PDF

Final Project

PDF