Fundamentals of GeoAI:
Deep Learning for Geospatial Analysis
Build real U-Nets from scratch — on real satellite, aerial, and LiDAR data.
Every important decision about a city or a landscape starts with a map that says what is where: which fields are cropland, where vegetation is being lost, where buildings sit, how tall they are. This course teaches you to produce those maps yourself — pixel by pixel — using the deep-learning architecture that actually powers modern segmentation: the U-Net. You build it from a single convolution filter up to a full working model, then apply it across four real study areas.
WHAT YOU'LL BUILD
You don't start from a pre-trained black box. You start from the math and assemble the network yourself, then put it to work.
A U-Net, built from first principles. A single Conv2d filter → multiple filters → an encoder block (Conv + ReLU + MaxPool) → a stacked encoder → a decoder with upsampling → skip connections → a complete, trainable U-Net. By the time you train it, you know what every block does and why it's there.
Crop mapping from satellite imagery. Pull Sentinel-2 data over a Hungarian agricultural region straight from the AWS Earth Search catalog, normalize to reflectance, and map cropland three ways — spectral thresholding, SLIC superpixel segmentation, and a trained U-Net — then compare them honestly.
Change detection over time. Compute NDVI change between April and July, run field-level zonal statistics, then train a Siamese U-Net — two shared-weight encoders comparing two dates — to produce a learned change map.
Building segmentation from aerial imagery. Work with high-resolution Dutch aerial imagery over Amsterdam, generate training labels, train a U-Net with a proper spatial train/test split, and evaluate with IoU.
LiDAR-based urban segmentation. Turn a raw point-cloud-derived surface into an nDSM, engineer height and texture features, and segment buildings vs. trees over a Scottish study area — the kind of two-class height-aware map you can't get from imagery alone.
WHO THIS IS FOR
You work in geospatial / GIS and want to cross into deep learning without hand-waving. You know rasters and CRS; you want to know what a U-Net actually does to them.
You're a data scientist moving into spatial problems and need to understand why fully-connected networks fail on raster data and why convolution is the right tool.
You work in urban planning, agriculture, environment, or real estate and want to produce your own land-cover, crop, change, and building maps rather than commissioning them.
You're a remote-sensing analyst who's been doing index-thresholding and wants a rigorous, trainable alternative you can defend.
You're a researcher or grad student who needs a working, from-scratch segmentation pipeline you fully understand and can adapt.
WHAT YOU'LL LEARN
By the end of this course you can:
Explain why raster data behaves like image data, and convert between GIS (H, W, Bands) and PyTorch (C, H, W) tensor layouts without confusion.
Say precisely why a fully-connected network is the wrong choice for a 128×128×4 raster (65,536 inputs, exploded parameters, lost spatial structure) — and why convolution fixes it.
Build every component of a U-Net in PyTorch yourself: convolution, ReLU, max-pooling, the encoder–decoder structure, upsampling, and skip connections.
Choose correctly between U-Net and alternatives — pixel-level segmentation with U-Net vs. classification (ResNet/EfficientNet) or detection (YOLO/Faster R-CNN).
Acquire and prepare real Sentinel-2 imagery from a cloud catalog, and produce a cropland map three different ways so you can judge which method to trust for a given decision.
Detect and categorize change over time — separating real vegetation loss/gain from noise — so you can advise where intervention is actually needed.
Build a Siamese U-Net for learned change detection, understanding why shared weights are the right design.
Segment buildings from aerial imagery with a defensible spatial train/test split, and evaluate honestly with IoU rather than trusting a pretty overlay.
Fuse LiDAR-derived height (nDSM) with texture features to separate buildings from trees — a decision-relevant distinction (footprint, volume, canopy) that spectral data alone can't make.
COURSE STRUCTURE
Module 1 — Understanding Neural Networks
Foundations: from raster to tensor, what a neural network is, how it learns, why fully-connected nets fail on rasters, and what convolution, pooling, encoder–decoder structure, upsampling, and skip connections each contribute. Then you build a full U-Net in PyTorch, train it, and test how it generalizes.
Module 2 — Crop Mapping with Deep Learning
Define a Hungarian study area, pull and normalize Sentinel-2 data, and map cropland three ways: spectral thresholding, SLIC superpixels, and a trained U-Net — then compare all three.
Module 3 — Detecting Crop Changes Over Time
NDVI change detection as a baseline, field-level zonal statistics, then a Siamese U-Net for learned change detection applied across a full image via sliding-window prediction.
Module 4 — Building Segmentation from Aerial Imagery
High-resolution Amsterdam aerial imagery: generate labels, train a U-Net with a spatial split, run sliding-window inference, and evaluate with left-vs-right IoU.
Module 5 — LiDAR-Based Urban Segmentation
Compute an nDSM from LiDAR, engineer height and texture channels, label and clean building/tree classes, train a U-Net, and evaluate per-class IoU over a Scottish study area.
WHAT'S INCLUDED
🎬 ~3.5 hours of video lectures on the New Science of Maps platform
📓 5 executed, self-contained notebooks (Modules 1–5)
🛰️ Real datasets
♾️ Lifetime access, including future updates
PREREQUISITES / WHO IT'S NOT FOR
You'll want: comfortable Python, basic NumPy/array thinking, and familiarity with rasters (bands, resolution, CRS). Module 1 builds the deep-learning theory from first principles, so you don't need prior neural-network experience — but you do need to be comfortable reading and running code.
This isn't for you if: you've never written Python, or you want a no-code / point-and-click GIS tool. It's also not an image-classification or object-detection course — it's specifically about pixel-level segmentation with U-Nets.
INSTRUCTOR
Taught by Milan Janosov — geospatial data scientist, network scientist (PhD), and practitioner. You build alongside a working scientist, on real data, with honest attention to what each method can and can't tell you.