critwire Learn
A course in working with data: SQL, database design, GIS in SQL, spatial statistics, ETL and Power BI, taught on critwire's own open species data and a sample of open GBIF occurrence records.
Start with Foundations: four short modules of SQL that run in this browser, with nothing to install. The tracks after it build on Foundations and on each other; each module names what it needs first. Every module answers real questions with the lab data, has an exercise (the browser's check your answer, the others show theirs to compare), and says how long it takes, lab and exercise included.
Each module runs on one or two tools, the capstone on three:
- Browser: DuckDB running in this page. Nothing to install.
- PostgreSQL with PostGIS: a database on your own computer, loaded with the lab data. Set up your tools shows how.
- Python: scripts and notebooks that read the same data.
- Power BI Desktop: reports on the star schema's files (Windows only).
A record is one observation of an animal at a place and time. The course counts and maps records; it never presents them as an animal's range.
Ticks show the modules you marked done. They're kept in this browser only, never sent anywhere.
Foundations
4 modules, 6 hours
-
f1 Select and filter ✓ done
- Browser
- 1 hour
-
f2 Group and aggregate ✓ done
- Browser
- 1.5 hours
Prerequisites: Select and filter (f1)
-
f3 Joins ✓ done
- Browser
- 2 hours
Prerequisites: Group and aggregate (f2)
-
f4 Window functions ✓ done
- Browser
- 1.5 hours
Prerequisites: Joins (f3)
Database architecture
6 modules, 12 hours
-
d1 Keys and constraints ✓ done
- Browser
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Window functions (f4)
-
d2 Normalization ✓ done
- Browser
- 2 hours
Prerequisites: Keys and constraints (d1)
-
d3 Indexes and query plans ✓ done
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Keys and constraints (d1)
-
d4 Transactions ✓ done
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Indexes and query plans (d3)
-
d5 Roles and privileges ✓ done
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: Transactions (d4)
-
d6 Star schemas ✓ done
- PostgreSQL with PostGIS
- Browser
- 2.5 hours
Prerequisites: Normalization (d2), Transactions (d4)
GIS in SQL
7 modules, 12.5 hours
-
g1 Coordinate reference systems ✓ done
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: Window functions (f4)
-
g2 Loading and validating shapes ✓ done
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: Coordinate reference systems (g1)
-
g3 Spatial joins ✓ done
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Loading and validating shapes (g2)
-
g4 Distance and overlay ✓ done
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Spatial joins (g3)
-
g5 Spatial indexes ✓ done
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: Spatial joins (g3), Indexes and query plans (d3)
-
g6 Grids ✓ done
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: Distance and overlay (g4)
-
g7 Rasters ✓ done
- PostgreSQL with PostGIS
- 2.5 hours
Prerequisites: Grids (g6)
Spatial statistics
6 modules, 12.5 hours
-
s1 Bias in records ✓ done
- PostgreSQL with PostGIS
- Browser
- 1.5 hours
Prerequisites: Spatial joins (g3)
-
s2 Point patterns ✓ done
- PostgreSQL with PostGIS
- Python
- 2.5 hours
Prerequisites: Bias in records (s1), Grids (g6)
-
s3 Spatial weights ✓ done
- PostgreSQL with PostGIS
- Python
- 2 hours
Prerequisites: Point patterns (s2)
-
s4 Global Moran's I ✓ done
- PostgreSQL with PostGIS
- Python
- 2 hours
Prerequisites: Spatial weights (s3)
-
s5 Hot and cold spots ✓ done
- PostgreSQL with PostGIS
- Python
- 2.5 hours
Prerequisites: Global Moran's I (s4)
-
s6 Zonal statistics ✓ done
- PostgreSQL with PostGIS
- Python
- 2 hours
Prerequisites: Hot and cold spots (s5), Rasters (g7)
ETL
5 modules, 10 hours
-
e1 Extract ✓ done
- Python
- 2 hours
Prerequisites: Group and aggregate (f2)
-
e2 Transform and load ✓ done
- Python
- PostgreSQL with PostGIS
- 2.5 hours
Prerequisites: Extract (e1), Transactions (d4)
-
e3 Pipelines you can re-run ✓ done
- Python
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Transform and load (e2)
-
e4 Quality and provenance ✓ done
- Python
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Pipelines you can re-run (e3)
-
e5 Scheduling ✓ done
- Python
- 1.5 hours
Prerequisites: Quality and provenance (e4)
Power BI
4 modules, 7 hours
-
p1 Power Query ✓ done
- Power BI Desktop
- 1.5 hours
Prerequisites: Star schemas (d6)
-
p2 The data model ✓ done
- Power BI Desktop
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: Power Query (p1)
-
p3 DAX measures ✓ done
- Power BI Desktop
- PostgreSQL with PostGIS
- 2 hours
Prerequisites: The data model (p2)
-
p4 Maps and reports ✓ done
- Power BI Desktop
- PostgreSQL with PostGIS
- 1.5 hours
Prerequisites: DAX measures (p3)
Capstone
1 module, 8 hours
-
c1 A feed for a game ✓ done
- PostgreSQL with PostGIS
- Python
- Power BI Desktop
- 8 hours
Prerequisites: Hot and cold spots (s5), Scheduling (e5), Maps and reports (p4)