Tutorials

Geospatial Data Science

Code, cloud, and automation — the future of working with spatial data.

Geospatial Data Science

Integrating programming, cloud analytics, and statistical tools to automate spatial queries.

Python

The language that powers modern geospatial work.

Python lets you automate tasks, handle huge datasets, and build repeatable workflows that clicking through software never could. Learn it well and you unlock a skill the whole industry is hiring for.

Learning Track

01
Basics of Python programming for GIS/RS
Understanding core scripting syntax, files, and lists tailored for spatial variables.
02
Geospatial libraries (e.g., GeoPandas, Rasterio, PySAL)
Working with vector shapefiles, spatial databases, and reading multiband raster grids.
03
Data manipulation, analysis, and visualization
Calculating indices, editing properties, and outputting high-quality maps programmatically.

Python Script Example

buffer_analysis.py
import geopandas as gpd

# Read a vector shapefile of rivers
rivers = gpd.read_file("data/rivers.shp")

# Calculate a 500-meter buffer zone around rivers
river_buffers = rivers.geometry.buffer(500)

# Save the output buffer layer to GPKG format
river_buffers.to_file("outputs/buffers.gpkg", driver="GPKG")

R

Where spatial analysis meets statistical power.

R is the go-to for rigorous statistical and spatial modeling, with elegant tools for analysis and publication-quality maps. A perfect companion to Python for the research-minded.

Learning Track

01
Introduction to R for spatial analysis
Mastering R environment, syntax, and package installations for geometric analysis.
02
Geospatial packages (e.g., sf, raster, tmap)
Working with Simple Features (sf) and loading topographic elevation grids.
03
Statistical modeling and spatial data visualization
Using kriging interpolation formulas and constructing thematic data layouts.

R Code Example

thematic_map.R
library(sf)
library(tmap)

# Load urban zones shapefile
zones <- st_read("data/urban_zones.shp")

# Create interactive thematic map layout
tm_shape(zones) +
  tm_polygons("population_density", palette = "Viridis")

Google Earth Engine (GEE)

Planet-scale analysis, straight from your browser.

GEE puts decades of satellite imagery and massive computing power at your fingertips — no downloads, no heavy hardware. It is the cloud skill reshaping how remote sensing is done.

Learning Track

01
Basics of cloud-based geospatial processing
Understanding client-server architectures, map-reducing, and loading cloud assets.
02
Working with satellite imagery and raster datasets
Selecting Sentinel and Landsat catalogs, cloud masking, and generating spectral index arrays.
03
Temporal and spatial analysis using GEE scripts
Building multi-year time-series charts, and implementing random forest classification models.

GEE JavaScript Code Example

gee_image_reducer.js
// Query Sentinel-2 Surface Reflectance Collection
var sentinel = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterDate('2026-01-01', '2026-06-01')
  .filterBounds(study_area)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10));

// Calculate median values across bands
var cloudFreeMedian = sentinel.median();

// Display True Color composite map
Map.addLayer(cloudFreeMedian, {bands: ['B4', 'B3', 'B2'], max: 3000}, 'Sentinel-2 Composite');

Additional Tools & Techniques New

Tie it all together into smooth, reproducible workflows.

Connecting your code to GIS software and automating the repetitive steps is what separates a casual user from a true geospatial data scientist. Build workflows you can trust and reuse.

Learning Track

01
QGIS / ArcGIS Integration with Python or R
Running scripts directly inside native python consoles (PyQGIS / ArcPy) to control desktop frames.
02
Remote sensing data preprocessing and classification
Batch conversion of imagery bands, orthorectification, and building training polygon grids.
03
Automation and reproducible workflows for geospatial analysis
Writing command-line tasks (GDAL / OGR utilities) to run complex operations on schedule.

CLI Automation Example

batch_reproject.sh
#!/bin/bash

# Loop through and reproject all GeoTIFF files to EPSG:4326
for file in *.tif; do
  gdalwarp -t_srs "EPSG:4326" "$file" "reprojected_$file"
done