Week 3, Tuesday. Part A is the concepts and the first raster model: what a raster is, map algebra, and NDVI end to end. Part B on Thursday takes the same model, makes its threshold a parameter, and spends most of the hour in ArcGIS Pro. Everything today points at Lab 2, which is NDVI, which is map algebra on two bands of a satellite image. By the end of class every student should be able to say what the NDVI model does cell by cell, and why the Lab 2 model has a Float step.
stamp:begin
stamp:end
Set expectations. Part 1 is a short refresher, Week 1 did the data model. Part 2 is map algebra, with the Excel activity in the middle of it. Part 3 is NDVI, built up from the physics to the Lab 2 model and the threshold table. Thursday's Part B picks up from there: the local, focal, zonal, global families, the threshold as a parameter, and four exercises in ArcGIS Pro.
One slide to place the week. Nothing new in ModelBuilder this week; the new thing is what the tools do to a grid. Say out loud that the Lab 2 model is six tools long and that four of them are arithmetic.
Source: Data Carpentry, Introduction to Raster Data. Ask: what is the smallest thing this dataset can tell you about? Answer: one cell. That is why cell size is the first question about any raster. Week 1 covered the data model; this is one slide of reminder.
Open by saying it out loud: same area, two very different rasters. That line used to be the first bullet and was cut on 2026-09-09 when the text was overrunning the footer; the figure makes the point without it.
This is the one distinction from the old discrete-versus-continuous slides that matters for analysis. It comes back on the resampling slide and again in Lab 2 Step 3, where Reclassify turns a measurement into a label.
The elevation range was cut from the text on 2026-09-09 when the slide was shortened: it read "high 532 to low 299", but the legend in ra-landuse-and-elevation.jpg reads "High : 53.2 / Low : 299", which cannot both be right. VERIFY against the source raster before quoting a number here again.
Top: the real world resolved into a coarse grid of class letters. Bottom: the same idea with a value attribute table, plus the gray NoData cells. Point at it now; it comes back in the next four slides and in every analysis they will run. The Lab 2 sanity check (6,040,284 cells with data) is a NoData count in disguise.
Figures redrawn as SVG on 2026-09-09, replacing ra-real-world-to-raster.jpg and ra-discrete-raster-value-table.jpg, which came across in the migration with no recorded source and so could not be cited. These are ours. The counts in the value attribute table are the real counts of the grid drawn beside it (6, 5, 8, 9 of the 28 cells that carry a value; the other two are NoData), and the areas follow from the 30 m cell size stated on the figure.
"Correcter" is how the saying is actually passed around in the GIS community, and it is what the banner in the photo says, so the slide matches it. If someone objects to the word, that is a fine way into the argument.
Let them argue for two or three minutes. Push toward: raster wins on continuous surfaces, per-cell math, and whole-area coverage; vector wins on discrete objects, exact boundaries, network problems, and attribute richness. The honest answer is that the data model should follow the phenomenon. A raster operation is an array operation: no topology to traverse, no geometry to intersect, just walk the array. That is why continental-scale analysis is done on grids.
(a) is unary: multiply every cell of one layer by 2. (b) is binary: add LayerA to LayerB cell by cell to get Sumlayer. Note the circled cells, 1 + 2 = 3, and say out loud that the two layers had to be the same size, aligned, and in the same coordinate system for that sentence to even mean anything. That is the slide after next.
Walk one cell: row 3, column 2 of A is 2, of B is 3, so the answer is 5, and nothing else on either grid was consulted. Then the hole: B has a NoData cell, so the answer has a NoData cell in the same place. This is the whole of local map algebra; everything else is which operation you put between the grids.
The spreadsheet formula =B3+H3 is map algebra. Drag it across the block and you have run a binary local function. The blank-cell variation is NoData: Excel treats a blank as zero in addition, which is exactly the mistake a raster GIS is built to avoid. Ten minutes. Collect the workbooks through Learning Suite; the point is that they have typed a cell-by-cell expression before they see the Raster Calculator.
Figure rebuilt on 2026-09-09 in current Excel, replacing Bolstad's Excel 2003 screenshot and its credit line. The cells are placed so the first output formula really is =B3+H3, the string this slide asks students to type: Layer A starts at B3, Layer B at H3. Regenerate the workbook with tools/week03_map_algebra_xlsx.py and recapture if the layout ever changes, because the slide text quotes the formula.
Two minutes, no paper and no computer: they work the nine cells out in their heads and then say their answer to the person next to them. Con(A > 5, B, 0) reads: where A is greater than 5, take B, otherwise 0. Make sure the pairs get to the cell where A is NoData - that is the one worth arguing about. Then the next slide.
The NoData cell is the one most people get wrong: it is not 0, it is NoData, because the condition cannot be evaluated. Then point at the Lab 2 expression: it is this exercise with a real raster in place of A and constants in place of B.
The figure is the failure mode: Layer1 and Layer2 do not share an origin or a cell size, so "cell A plus cell B" has no well-defined answer until you decide what to resample. In ArcGIS Pro these are the Environments: Output Coordinate System, Cell Size, Snap Raster, Extent, Mask. Lab 2 Step 0 opens that dialog on purpose.
The Lab 2 extract stores reflectance as integers, times ten thousand, to keep the files small. Divide two integer rasters and the Divide tool keeps only the whole part: every NDVI between minus one and one becomes zero, and the map is a single flat color. Thursday's first exercise is to do exactly this on purpose and look at the result. The fix is the Float tool, which is Lab 2 Step 1. Raster Calculator division behaves differently (it returns floating point), which is one reason the lab uses the Spatial Analyst tools explicitly.
A 0/1 grid is a switch. Ask why adding is meaningless: because you would be adding a unitless class code to meters, and every land cell would silently gain one meter of elevation. The Lab 2 classified map is a 0/1 grid; multiply it by anything and you have masked that thing to irrigated land.
The single most common misconception: near-infrared here is reflected sunlight, not heat. Thermal infrared is a different, much longer band. Say it out loud; students carry "NIR = heat" into Lab 2. The curves are schematic, after Jensen and after Lillesand, Kiefer and Chipman; the band windows are the Landsat 8 and 9 OLI table on the Lab 2 page. Week 4's remote sensing lecture goes further into the spectrum and sensors; today only needs the red edge.
Borrowed from the Week 4 remote sensing deck so that the physics arrives before the lab instead of after it. Set the pattern: a band is a raster. The red band and the near-infrared band of one scene are two rasters that line up perfectly, which is why NDVI is the ideal first map-algebra problem.
Read the arithmetic: 0.47 minus 0.09 over 0.47 plus 0.09 is 0.38 over 0.56, which is 0.68. That is a well-watered pivot in July. The point of drawing it as three cells is to connect the equation to Part 2: this is A and B and an expression, nothing more. The normalization is why an index from a drone and an index from Landsat can be compared at all.
Measured, not asserted: red and NIR reflectance at five places in the July 12, 2025 scene students download for Lab 2. Two things to point at. The forest above Provo scores higher than the irrigated field near Elberta, so NDVI is a greenness index, not an irrigation detector; and a downtown block and a dry bench are almost indistinguishable at 0.27 and 0.24. The lake at minus 0.99 is an artifact of the extract, explained on the lab page.
Left: the United States. The hundredth meridian shows up as a color break without anyone drawing it; ask why the Wasatch Front reads greener than the West Desert forty miles away. Right: a single field from a drone, used to target fungicide. Same two lines of arithmetic.
This is the finished Lab 2 model, exported from ModelBuilder. Read it left to right with Part 2's vocabulary: four local operations and two classifications. The two classification branches exist because a number typed into a Reclassify table cannot be a model parameter, and a number in a Con() expression can; that is Lab 2 Step 5, and it is why Thursday's threshold sweep takes a minute per run instead of an afternoon.
The numbers were computed from the course extract with the same Con() expression the lab uses; they match the lab page's check values at 0.4 and 0.6. The teaching point is not the numbers, it is that a raster model with a parameter turns "is 0.4 right?" from an opinion into a table. The forest never drops out before the fields do, which is the honest answer to whether one threshold can map irrigation.
Five minutes, in pairs, then a show of hands on the two that start an argument. Slope is continuous as calculated, and categorical the moment you reclassify it into gentle/moderate/steep for a suitability analysis - which is Lab 2 Step 3 in a different costume. FEMA flood zones are a regulatory class, unlike a water-surface-elevation or depth raster, which is continuous. If the room has no signal, put the URL on the board; the items work read aloud just as well.
Revision notes (2026-09-09): Part A of the Week 3 pair. This was one 32-slide deck, "Raster Analysis and Map Algebra", itself a merge of the Sept 3 raster deck with the retired "ModelBuilder, Part C" NDVI deck. Split into Part A and Part B on 2026-09-09 at the instructor's request, immediately after the NDVI material: Part A keeps Parts 1 to 3 (the raster refresher, map algebra with the Excel activity, and NDVI through the threshold table); Part 4 and the whole of the former raster-hands-on.md became Part B for Thursday, plus new material on the threshold as a parameter. - Figures generated by tools/week03_grid_figures.py, tools/week03_spectral_signature.py and tools/week03_nodata_svgs.py; ArcGIS Pro 3.7.1 captures from Sept 9 at 175 % scaling. - The threshold table was computed with tools/week03_prep.py from the course extract; 0.4 and 0.6 match the lab page's check values. - The Excel map-algebra activity stays on Tuesday per the instructor (Sept 9).
Point them at the lab and connect it back: NDVI is the same cell-by-cell arithmetic, run on two bands of the same image rather than two separate grids, so extent and cell size are guaranteed to match. The reading is the local, focal, zonal, global chapter, which Part B opens with; NDVI itself is not in it, which is why today carried it. Say plainly that Thursday needs a working project, because the first exercise starts a few minutes in.