Hachure

Help & reference

Where every control lives, and what each operation does to your data.

Written the way the panels themselves are: what the operation is, what it assumes, and when it is the wrong choice. Nothing here describes a slider - the sliders have their own labels. Use the filter to search the whole page.

Getting started

Opening a raster

Toolbar folder glyph · File ▸ Open

The two do different things, deliberately. The toolbar's folder means “bring this into the image I am looking at”: one raster becomes a layer over the current image, and several ask whether to layer them or combine them into one all-band image. File ▸ Open makes a new window instead. Files can also be dragged onto the window.

A satellite product - Landsat MTL, Sentinel-2 SAFE, Maxar IMD/RPB, Airbus DIMAP, NITF - always opens its own window, because it is a multi-band stack with an import plan rather than something to overlay. A raster that cannot be aligned with the current image also opens its own window rather than reporting a failure with nowhere to go.

What happens on open, and what does not

Automatic

Nothing is corrected on load. The default stretch is Original - the band's full range - and no calibration, mask or resampling is applied. The catalogue reports what conversions the delivery offers; applying one stays an explicit act.

A raster without overview pyramids still opens instantly, streaming from full resolution. A non-modal banner offers to build a compressed sidecar in the background, with a remember-my-choice option. Nothing is written beside your data without consent.

Splitting a stack into separate layers

Right-click a raster in Layers ▸ Split Bands into Layers

Turns a multi-band stack into one layer per chosen band, which is what to use when bands need separate display settings or separate processing. The inverse - several single-band files into one image - is the Combine prompt that appears when opening several rasters at once.

The window

The Layers sidebar

Left sidebar glyph in the toolbar

Every raster, vector overlay, polygon and annotation layer in one drag-reorderable stack, each with a visibility toggle and an opacity slider. The base raster is a member of that stack, not a floor under it, so a layer can sit below it. Clicking a layer's name makes it the active layer - the target for processing, for the Bands panel and for the readout - marked with an amber scope glyph. Right-click for Rename, Remove, Save As GeoTIFF, Copy, Open in New Window, Use as Processing Region and Relief Shading.

The Info inspector

Inspector ▸ Info

Categories covering georeferencing (CRS, pixel and ground size in the CRS's own units), sensor identity and the resolved calibration profile, acquisition date and sun geometry, the composite's source file and band for each slot, applied display geometry such as crop and rotation, raw metadata, and a System category showing the GPU, memory gauges and streaming state.

Rulers, scale and readout

Ruler glyph in the toolbar · the footer bar

The footer is the instrument panel: cursor coordinate, pixel values, display scale as a percentage where 100 % is 1:1, the scale bar, and an SDR/HDR badge with the display's EDR headroom. Right-clicking the map copies the clicked coordinate as signed decimal degrees. Rulers draw along the top and left edges and switch off while the image is rotated, because a ruler labels one axis along a screen edge and that is only true while the two are parallel.

Crop

Crop glyph in the toolbar

Drag a rectangle over the active layer to keep; Shift squares it. The marquee snaps outward to whole pixels of the layer being cut, so a marquee dragged around something keeps everything it enclosed. Cropping again intersects with the existing window rather than replacing it. It is display geometry - no sample is discarded, ⌘Z undoes it - and it carries through to a GeoTIFF export as a source window, so the written pixels are the file's own.

Rotate

Rotate glyph in the toolbar

Drag the dial to turn the active layer to any angle, 0 to 359 degrees clockwise. No pixel is resampled. Rotating the base raster turns document-pixel space itself, so polygons, imported vectors and annotations follow the imagery they were placed on, and Info states the offset from the source in the file's own pixels.

Comparing two rasters

Split-rectangle glyph in the toolbar

The base document is A and any added or derived raster is B. Four modes: fixed side by side, a draggable swipe, a linear A/B blend, and timed flicker. All are display-only and isolate A and B from the rest of the stack. Pressing the glyph again stops comparing.

Separately, up to four named view groups link camera, zoom and crosshair across windows, using geographic coordinates where both datasets have a CRS and normalised image coordinates where they do not.

Notes and callouts

Speech-bubble glyph in the toolbar

Clicking the image drops a callout: a dot pinned to that pixel and a text box standing off from it, joined by a leader line. The dot is held in image pixels so it stays on its feature through pan and zoom, while the box keeps one readable size at every zoom - so the distance between them is not a ground measurement. Selecting a callout shows a style bar with five colours: box outline, box fill, line and dot, text, and a highlight behind it.

Callouts burn into a rendered PNG or HEIC export and are deliberately absent from a GeoTIFF, which writes measurements. They live in memory and are not saved with the file.

Bands & display

Choosing which bands are Red, Green and Blue

Inspector ▸ Bands ▸ Composite

One row per band. Each row's three dots put that band in the red, green or blue channel, and clicking what the row says the band is lets you correct or supply it. Above the list, presets - True colour, Colour infrared, SWIR, Agriculture, Geology - each drawn as a small spectrum showing where its three bands sit; a preset whose bands the image lacks draws them hollow rather than being greyed out with no reason. Where bands state their wavelengths there is a spectrum strip whose R, G and B markers drag along it, or step band by band with the arrow keys.

All of it acts on the active layer - the one marked with the amber scope glyph in the Layers sidebar.

Display stretch and contrast

Inspector ▸ Bands ▸ Stretch

Original (full range), percentile clip, manual low/high, and empirical-CDF histogram equalisation, each with gamma. The default when an image opens is Original.

Stretch is a display exposure only. It never changes stored values, and processing jobs, band maths and the GeoTIFF export all read source samples regardless of what the screen is showing. The one way to get the curve into a raster is to ask for it by name: Processing ▸ Radiometry ▸ Apply Display Tone Curves, which writes a new file and labels it as display intensities rather than radiometry.

Histogram

Inspector ▸ Bands ▸ Histogram

Bins the shown bands over one shared domain so the channels can be compared. Scope switches between the viewport and the whole image. For integer data a bin is a whole number of values wide, so a gap means no pixel holds that value rather than no value could land there, and the bars are drawn as steps because a histogram is a count over a range, not a sample at a point.

Relief shading a DEM

Right-click an elevation layer ▸ Relief Shading…

Offered when the layer is recognised as an elevation model. An illumination dial - the handle is the sun's position on the sky dome seen from above, centre overhead, rim at the horizon - with vertical exaggeration, multi-directional light, cast shadows, skylight, and a hypsometric, slope or aspect tint over any colormap. A live thumbnail follows every control; the full-resolution pass runs only on Apply.

The shading is display-only and is deliberately not exportable as a raster. The measurement is Processing ▸ Analysis ▸ Slope.

Raster expression, drawn live

Inspector ▸ Bands ▸ Raster expression

Compiles the same expression language as Band Math to a Metal shader at runtime and draws the raster you are on as it, false-coloured through a colormap with a legend. Display only, no file. Use it when what you want is a look rather than a layer.

Polygons & processing regions

Drawing and using a region

Pentagon glyph in the toolbar

Click to add vertices and click near the start, or double-click, to close. Each polygon becomes its own layer, carries its ground area, and can be renamed, edited vertex by vertex, or saved as GeoJSON. Marking one Use as Processing Region limits jobs to it; region polygons draw in graticule cyan.

An imported shapefile or GeoJSON polygon layer can be used as a region directly, with no conversion. A pixel belongs to the region when its centre falls inside, under the even-odd rule.

Clip to a polygon

Right-click a polygon ▸ Clip

Keeps the image inside or outside a polygon and makes the rest nodata. The inside case crops to the polygon's bounding box rather than leaving a shape in a black expanse.

A rectangular window with no polygon is Subset.

Radiometry

Radiometric Calibration

Processing ▸ Radiometry ▸ Radiometric Calibration…

Materialises the provider's own calibration equations - the ones the delivery publishes - turning digital numbers into radiance, reflectance or brightness temperature. Scale and offset in both conventions, solar-elevation reflectance, Planck brightness temperature, Sentinel quantification, Maxar gain and bandwidth, DIMAP divisor gain, and lookup tables. Per-band quantity, units, equation and coefficient provenance are written into the result and shown in Info.

Only the operations you tick are applied, and nothing is clipped, stretched or masked afterwards. A fill value or an out-of-range input becomes NaN rather than a plausible number.

Atmospheric Correction · Dark Object

Processing ▸ Radiometry ▸ Atmospheric Correction…

Estimates the atmospheric path radiance from the darkest pixels in each band and subtracts it. The scene percentile, the bounded estimation sample and whether negatives are clamped are all yours to set. The output identifies the estimated dark value and states explicitly that no mask was applied.

This is DOS, not 6S. It assumes somewhere in the scene is genuinely black in every band, which over a bright arid scene or a small subset is often false. Full radiative-transfer correction is not implemented and is not claimed.

Apply Display Tone Curves

Processing ▸ Radiometry ▸ Apply Display Tone Curves…

Writes the tone curves you are looking through into a new raster. Every display channel is put through its own curve - stretch, levels, curve, histogram equalisation, decibel, whatever is in force - and the result is written as a georeferenced GeoTIFF at full bit depth, either in the source's own data type over that type's whole range or as Float32 from 0 to 1. The curve is evaluated per sample rather than read from the 4096-entry table the shader samples, so the file is finer than the screen was.

The result is not radiometry and cannot be treated as any. A tone curve clips at both ends and is not invertible, so calibration, band maths, spectral indices and any physical quantity computed from these numbers are meaningless - the measurements stay in the source, which the output names. The file says so in its own metadata as well, and in a per-band description ending “(not radiometry)”. Where a contributing band declares nodata and the output is an integer type, zero is reserved for it and the tone occupies one level less, because an integer band cannot hold NaN and absent ground reading as legitimate black is the one confusion worth a level. Export as GeoTIFF writes the source's own samples and merely records the curve beside them; the rendered exports - PNG, HEIC, OpenEXR - apply it but produce a picture with no georeferencing. This is the middle case: the curve applied, the raster kept.

Topographic Correction

Processing ▸ Radiometry ▸ Topographic Correction…

Removes the brightness difference between slopes facing the sun and slopes facing away, so reflectance can be compared across terrain. SCS+C, C-correction, Minnaert with the constant fitted per band, and the statistical-empirical rotation. Sun zenith and azimuth are auto-filled from acquisition metadata where the product states them, and are editable otherwise. Slope and aspect come from a Horn 3 × 3 operator.

Needs a DEM covering the scene on its own grid. A correction fitted where the DEM does not reach is not applied there, and the report says how much of the scene was covered. It refuses to correct a DEM against itself, and reports rather than silently doing nothing when the DEM is flat or does not overlap.

Geometry

Reproject

Processing ▸ Reproject…

Resamples the raster onto a different coordinate reference system, writing a new file on the target grid. Every pixel is interpolated, so the output is a new set of measurements rather than the same ones relabelled. The result opens as a new document.

Choose the resampling kernel by what the pixels mean: nearest for a classification or any thematic raster, because averaging class numbers produces classes that are not in the legend. A layer in another CRS is already drawn in place - reproject when you need a file on the target grid, not to see it.

Resample to Match Layer

Processing ▸ Geometry ▸ Resample to Match Layer…

Warps this raster onto another loaded raster's exact grid - same CRS, same extent, same pixel size - so the two can be compared or differenced cell for cell. Nearest, bilinear, cubic, cubic-spline, Lanczos, average or mode, chosen explicitly.

Nearest for thematic data. Resampling a 30 m DEM to 10 m adds no detail: it makes the grids match and nothing else.

Subset Bands / Extent

Processing ▸ Geometry ▸ Subset Bands / Extent…

Takes a spectral selection, a rectangular window, or both, and writes them out without interpolating anything. Bands keep their source order and their values are the file's own.

An irregular area is the polygon Clip command.

Ground Control Points

Processing ▸ Geometry ▸ Ground Control Points…

Fits a transform from points whose position you know in both images - affine, second- or third-order polynomial, or thin-plate spline - and warps the raster through it. Two images, one map: the subject is the active layer and the reference is whatever is already correctly placed beneath it, so each point is one feature clicked twice.

Read the leave-one-out RMSE, not the in-sample one. A third-order polynomial through ten points has an in-sample residual near zero and can be wildly wrong between them; only the held-out figure shows it. Three commands align imagery and they are not interchangeable. Co-registration measures a whole-image shift automatically and corrects nothing else - reach for it first, because it costs no clicks and it is what most misalignment is. Ground control handles what a shift cannot: rotation, scale and local distortion, at the cost of placing points by hand. Orthorectification is a different problem again.

Image-to-Image Co-registration

Processing ▸ Geometry ▸ Image-to-Image Co-registration…

Aligns this raster to a reference by measuring the shift between them with GPU phase correlation, then warping once onto the reference's grid. Reports RMSE and peak ratio before and after.

Translation only. A residual rotation or scale is not corrected and will show as a shift that varies across the scene.

Orthorectification

Processing ▸ Geometry ▸ Orthorectification…

Removes the terrain displacement in an image taken at an angle, using the sensor model the delivery carries - RPC or ground control points - together with a DEM. Target CRS, pixel size, interpolation and maximum transformer error are all explicit.

Displacement is height times the tangent of the view angle: at 27° off nadir a 1000 m hill moves its ground point about 510 m. Over flat ground this changes very little; over the Southern Alps it changes everything. RPCs arrive with the delivery and cannot be made here. Ground control can - and note that ground control plus a DEM is a genuine orthorectification, while ground control alone only warps the image flat.

Pan-sharpen / Fuse

Processing ▸ Geometry ▸ Pan-sharpen / Fuse…

Injects the detail of a higher-resolution guide band into coarser bands, so a multispectral scene takes the sharpness of its panchromatic one while keeping its colour relationships. Methods are SFIM, Brovey, GSA and MTF-GLP-HPM. A standard step before segmentation, object-based classification and any work where the boundary matters more than the pixel.

Spectral fidelity is a property of the method, not of the idea. MTF-matched and GSA degrade the guide through the sensor's own response before injecting it, which is what keeps the fused values consistent with the source - aggregate the result back to the coarse grid and it should reproduce the input. A plain component substitution does not hold that nearly as well. Where a figure has to be defensible per pixel, compute it on the source bands and use the fused product for the geometry. Only layers finer on the ground than this one are offered as a guide. Detail cannot be injected from a grid that does not have it.

Filters

Destripe

Processing ▸ Destripe…

Removes the periodic banding a pushbroom sensor's detector array leaves, by notching that frequency out of the Fourier transform or by subtracting a row or column profile. Stripe direction, centre frequency and bandwidth are all stated rather than inferred.

It cannot tell a levelling error from a real feature running the same way. Over ground with genuine linear structure - field boundaries, ridges - check what it removed.

Low-pass

Processing ▸ Low-pass…

Smooths the image by suppressing high spatial frequencies, either through a GPU FFT or by an Accelerate Gaussian convolution.

High-pass

Processing ▸ High-pass…

Keeps the fine detail and removes the broad brightness variation, either as the bare residual or added back as sharpening with an amount you enter.

A bare residual is a signed difference centred on zero, not a reflectance. It declares its own value space so it displays correctly, but it is not comparable with the source's units.

Sharpen

Processing ▸ Sharpen…

Enhances local contrast, by unsharp masking, by guided filtering - which preserves edges rather than haloing them - or by Richardson–Lucy deconvolution against a Gaussian point spread function.

Display-scale enhancement. Values move by amounts that have no physical meaning, so nothing downstream should treat the output as radiance or reflectance.

Mosaic

Mosaicking

Processing ▸ Mosaicking… · Layers ▸ Combine Rasters into One Image

Joins several rasters into one, choosing the output grid, where the seam runs between overlapping scenes, and how they are blended across it. Two seam solvers: least-cost path routed through pinned waypoints, and graph cut, which can isolate an island. Four join modes: hard, feathered with a linear or cosine ramp, distance-weighted, and seamless multi-band Laplacian. A live preview composites on a decimated grid and the seam can be edited by hand.

Hard blending leaves values untouched; feathered, weighted and multi-band blending all rewrite pixels near the seam, and radiometric balancing rewrites whole scenes. The default does neither.

Normalise to Reference

Processing ▸ Mosaic ▸ Normalise to Reference…

Brings one raster onto another's radiometric scale - by histogram specification, linear optimal transport matching mean and full covariance, global regression, LIRRN, or IR-MAD - so two dates or two sensors can be compared.

This is a value transformation, and it is the step that makes change detection meaningful or meaningless. Regression and IR-MAD compare co-located pixels and need the same grid; the others do not.

Analysis

Band Math

Processing ▸ Analysis ▸ Band Math…

Combines this raster's bands into one new layer - a named index resolved from its spectral roles, or an expression you write. Presets cover NDVI, NDWI, NDMI, NBR, NDSI, NDRE and tasseled-cap brightness, greenness and wetness, resolved against whatever bands the image actually carries. A custom expression takes an arbitrary formula in b1…bN with arithmetic, comparison, logical and bitwise operators, conditionals, clamp, min and max, logarithms and QA bit extraction. Evaluated over the raw samples, so the result is a measurement rather than a picture of one.

An index is only as good as the roles behind it. NDVI is computed from whichever bands are named NIR and Red in Bands ▸ Composite, and on a stack whose roles are wrong it produces a smooth, plausible surface of the wrong two bands.

Band Statistics

Processing ▸ Analysis ▸ Band Statistics…

Mean, standard deviation, minimum, maximum and optional percentiles per band, over the whole image or a chosen region.

Percentiles state their own resolution: exact for integer data in a modest range, and an honest bin width for float data.

Zonal Statistics

Processing ▸ Analysis ▸ Zonal Statistics…

The same statistics, per polygon, in a single pass over the raster however many zones there are. A pixel belongs to a zone when its centre falls inside.

An empty zone keeps its row with a count of zero rather than disappearing - a table quietly shorter than the layer it came from is the thing nobody notices.

Principal Components / MNF

Processing ▸ Analysis ▸ Principal Components / MNF…

Principal components, or the minimum noise fraction, which is PCA after whitening against an estimate of the noise. Both write one band per component.

MNF's eigenvalues are noise-adjusted, so they report signal-to-noise rather than variance explained. The two are different numbers and only one of them means “how much of the scene is in this component”.

Change Detection

Processing ▸ Analysis ▸ Change Detection…

Compares two dates and reports both the classes and the continuous surface behind them: differencing, log-ratio for radar, index difference including dNBR burn severity, or IR-MAD's no-change probability as the threshold.

Change detection between scenes that were not radiometrically normalised measures the atmosphere as much as the ground. The panel requires you to state what was done, because a product that does not say gets believed. Every method compares co-located pixels, so the two dates have to be on the same grid - same size, CRS and pixel size. Resample to Match Layer, or Co-register, first.

DEM of Difference

Processing ▸ Analysis ▸ DEM of Difference…

Differences two epochs of terrain and reports the volume of soil lost and gained, with the uncertainty that makes the figure defensible: a level of detection measured from ground you mark as stable, a probability of real change per cell, and a spatial-coherence pass that keeps a coherent patch of marginal cells and drops isolated spikes.

The co-registration is a check, not a correction, and it stays off. A rigid correction removes a constant vertical offset - and real uniform soil loss is a constant vertical offset - so on epochs tied to shared ground control it deletes exactly the change being measured and reports near zero. A susceptibility model says where erosion can happen; this says where it did, over one interval. Two dry years read as no erosion and a single storm between flights reads as catastrophic, so the product carries both dates and is per year only if somebody asked for it to be.

InSAR Displacement

Processing ▸ Analysis ▸ InSAR Displacement…

Turns a geocoded unwrapped interferogram into displacement, in metres, with the coherence that says which of it is a measurement. Millimetre precision at 30–80 m posting, so it resolves slow motion - creep, subsidence, a slope moving before it fails.

It is blind exactly where the surface was disturbed: erosion rearranges the scatterers the phase is measured from, coherence falls to zero and the cell is withheld - the hole is the evidence, not a gap in coverage. It also measures range change along one line of sight, not elevation change, and projecting that onto the vertical assumes the ground moved straight up or down. The complement to a DEM of Difference rather than a finer version of one. Used together, this says where to look and the DoD says what it cost.

Slope

Processing ▸ Analysis ▸ Slope…

Writes the steepness of an elevation model as a raster, in degrees, percent or rise over run, optionally with the downslope bearing beside it. Horn's 3 × 3 kernel - the same one the relief shading and the topographic correction use, so a slope class and a hillshade cannot disagree about the same cell. Flat ground gets no aspect rather than a bearing of north.

A slope is a height over a ground distance, and most DEMs state only the second. Where nothing declares a vertical unit the heights are taken as metres and the panel says so - a DEM in feet read as metres comes out 3.28 times too steep, which is rolling country reported as steep, and it fails in no way at all.

Reclassify

Processing ▸ Analysis ▸ Reclassify…

Turns one band of continuous measurements into named classes by a table of breaks, writing a class raster with an attribute table. The band's own distribution is drawn behind the breaks, because where they fall is the whole of what the output says and a threshold typed with nothing behind it is chosen blind.

A value outside every class is left unclassified, never pushed into the nearest one. Clamping would let a top break typed as 3.6 instead of 36 report a whole property as the steepest class, complete and confident, with no gap anywhere to notice. Each class runs up to but not including the next, so a value on a break belongs to exactly one.

Land Resource Inventory

Processing ▸ Analysis ▸ Land Resource Inventory…

The New Zealand Land Use Capability system. Intersects up to five factor layers - rock type, soil, slope, erosion, vegetation - into inventory units, sieves them to a minimum mappable area, and looks each combination up in an editable rule table. The output is a unit map with a full attribute table: every unit's factor codes, its area, its LUC class 1 to 8 with its e/w/s/c subclass, and where each of its five statements came from.

The class comes from the most limiting factor, not an average - good drainage cannot compensate for a 30 degree slope. Soil, slope and vegetation are required; without one the units are mapped and left unclassified rather than classified optimistically. A severity of 0, meaning somebody looked and found nothing, is kept quite separate from nobody having looked. It is labelled a draft. The rule table automates the bookkeeping, not the judgement, and error compounds across an intersection rather than averaging - no unit is more reliable than its worst factor, which is why the provenance is on every row.

Classification

Classify - unsupervised

Processing ▸ Classify…

Finds groupings in the data without any training: K-Means with k-means++/maximin seeding, ISODATA with adaptive split and merge, or a Gaussian/Mahalanobis mixture. All deterministic and multicore, with an optional Metal backend for the assignment step. Images too large for memory are fitted on a decimated sample and assigned block by block. The output is a class raster with editable per-class colours and per-class ground areas in the Classes inspector.

The result is a class raster whose numbers mean nothing until you interpret them. The preview fits on the visible extent, so it fits the classes that happen to be in view: it is for choosing k by looking, not the model the full scene gets.

Supervised Classification

Processing ▸ Analysis ▸ Supervised Classification…

Assigns a class to every pixel from training polygons you have labelled, using random forest, maximum likelihood, minimum distance or spectral angle.

Check separability first. Two classes that overlap in feature space cannot be told apart by any classifier, and out-of-bag accuracy is not an accuracy assessment - it shares the training polygons' spatial autocorrelation.

Proximal survey

Importing a proximal soil survey

File ▸ Import Proximal Survey…

Reads a towed electromagnetic-induction logger file and produces three georeferenced products in one window: a point raster of what was measured, an interpolated surface per channel, and optionally an inverted conductivity-against-depth stack. The panel is a stack of stages rather than a wizard - every filter is a row that switches off, the pipeline re-runs on any change, and excluded records stay visible in grey so you can see where a filter bites. Stages run in order: parse and project, acquisition geometry, motion filter, range filter, ferrous interference, along-track despike, rolling mean, GNSS latency, sensor offset, instrument drift, temperature standardisation, and calibration against reference profiles.

Nothing is guessed. An unrecognised instrument gets no operating frequency and no height, and the stages that need them say so rather than substituting a plausible figure.

Plan Soil Pits

Processing ▸ Plan Soil Pits…

Takes a logger export and produces a ranked soil-pit plan: it grids the survey, inverts it, groups the ground into management zones and sites the pits, as one act. The three purposes are kept apart and a site never carries two - calibration wants ordinary ground, training wants unbiased coverage, and a diagnostic pit wants the anomalies.

The plan is a ranked list rather than a set, because the budget shrinks in the field. Cutting it from the bottom leaves a usable set of each role, and the panel says what stopping at any depth would leave - below five calibration references the survey will not calibrate at all. The zones survive calibration exactly, which is what lets the pits be sited today and the laboratory results arrive weeks later.

Substrate Units

Processing ▸ Substrate Units…

Groups the inverted survey into substrate units and draws them as polygons. It clusters the whole column - log conductivity per layer, plus where the profile steps and by how much - rather than a depth slice, because two places can have identical shallow readings and completely different profiles, and it is the profile that decides rooting depth and drainage.

It segments first, then clusters the segments. Clustering the raster and polygonising afterwards produces isolated pixels and incoherent units, because nothing in a clustering knows about space. The supercell count and the compactness are your conceptual model of the landscape, not quantities the data optimises - which is why they have a live preview. Unlike the field pass's management zones, these are not invariant to calibration: they come from the inversion, so their boundaries move when the laboratory results land. Re-run once the survey is calibrated.

Sounding Posterior

Processing ▸ Sounding Posterior…

Samples the posterior distribution of the layered model under one sounding, so the width of each layer's interval says how well these coils actually constrain it. Click a cell on the map to choose the sounding and set how many layers to ask the readings to support. Past a factor of ten, the data do not resolve that layer at all, however confident a single-model inversion looks.

One sounding at a time, deliberately - a survey-wide sampler is tens of thousands of correlated parameters and mixes in no useful time. Invert the survey first, then sample the few soundings a decision rests on.

Rank Substrate Units

Processing ▸ Rank Substrate Units…

Turns substrate units into a Land Resource Inventory factor layer. Each unit is listed with the evidence it was built from - the depth of its strongest conductivity step, its layer conductivities, its area and how confidently it was assigned - and you give each one a class from the handbook's own coding.

Nothing here proposes a severity. The same contrast depth is a severe limitation on one property and a moderate one on the next, which is a judgement about the country rather than about the numbers. A unit left unranked comes out unclassified rather than benign.

Downloading data

Searching public archives

File ▸ Import from Earth Search… (⇧⌘I)

Searches by area, date window and cloud cover, then downloads the chosen bands as a tracked job. Four sources: Earth Search on AWS, Microsoft Planetary Computer, CNES GEODES and LINZ. Landsat is free on Planetary Computer and requester-pays on Earth Search; GEODES needs a free API key for downloads but not for searching. MODIS is on Planetary Computer only, grouped under Reflectance, Vegetation, Temperature and fire, and Snow and ice - it arrives on the sinusoidal grid, so Reproject is usually needed before combining it with a UTM or NZTM scene.

The area is picked on a built-in world map or seeded from the current raster's extent. Bands on different native grids are assembled as separate stacks and never resampled together, and a file already on disk is not fetched again.

New Zealand imagery and elevation from LINZ

Import panel ▸ Source ▸ LINZ (Aotearoa / New Zealand)

LINZ publishes a static catalogue rather than a search service, so this source is selected by map sheet instead of by a dragged box. The world map becomes the Topo50 1:50,000 sheet grid; click the sheets you want, then Find Surveys asks the bucket which aerial surveys hold tiles for them. The results are surveys, newest first - over one sheet that list is a time series of the same ground across decades. Hovering names the sheet the way LINZ printed it, and the tile by its filename. The map and the list are one selection.

Everything is anonymous and licensed CC BY 4.0. Attribution to LINZ is required. Drafts are hidden by default, because LINZ can replace them.

A download failed part-way

The Downloads list at the bottom of the import panel

A stalled or dropped transfer is retried a few times on its own and resumed where the archive allows it. If it still fails, the row states what went wrong in one sentence and offers Retry where trying again can help - a timeout or a lost connection, but not a refusal such as HTTP 403, which would answer the same way twice.

Files that finished are kept, so Retry fetches only what is still missing. The file that was mid-transfer is discarded, because a partial raster that looks openable is worse than an absent one. Cancelling keeps the finished files too, and the retry appears as a new row so the failure is still on record.

Files & saving

Exporting

Share glyph in the toolbar · File ▸ Export (⌘E)

Writes a GeoTIFF of source measurements through GDAL, carrying any crop through as a source window and persisting attribute-table edits. The rendered picture exports separately as PNG, HEIC or OpenEXR through Image I/O.

Annotations are deliberately not burned into the GeoTIFF - that file is measurements. They do burn into the rendered picture. Rendered exports are SDR unless HDR is picked explicitly.

Saving derived layers when a window closes

Automatic when closing a window, and on Quit

A processing job writes its result into a temporary file and opens it as a layer, which is what makes the Processing menu feel immediate - and what means closing the window would throw the result away. Closing a window holding such layers lists them first, with a tick and a format for each, and Save, Don't Save or Cancel. The formats are all scientific containers - GeoTIFF, Cloud-Optimised GeoTIFF, KEA and ERDAS Imagine.

One layer gets a save panel, several get a folder chooser, and two layers sharing a name are numbered rather than overwritten. A layer already saved somewhere you chose is not offered again.

Apple Photos

File ▸ Export ▸ Add to Photos · File ▸ Import from Photos

Add to Photos renders what is on screen and files it in a Hachure album, created the first time. It is the same picture the rendered export writes - display bands through their tone curves - so the file says the curve is baked into its pixels, and the scene's centre goes in as GPS. Only PNG and HEIC are offered: a photo library has nowhere to put a float HDR image, and a GeoTIFF of measurements does not belong in one.

An imported photograph carries no coordinate system, so the coordinate readout, the scale bar and the geometry commands stay unavailable for it, while the pixel readout, band maths and the drawing tools work as usual.

Settings

The Workspace, and why a folder is sometimes asked for

Settings ▸ General ▸ Workspace

macOS gives an app exactly the files chosen in an open panel and nothing beside them. Several formats are not one file: a shapefile keeps its projection in a sibling .prj and its attributes in a .dbf, and a satellite delivery is a manifest beside its band files. When a companion cannot be read, Hachure asks for the enclosing folder - there is no way to widen the permission without you choosing the wider thing.

Naming a Workspace folder answers that once: everything inside it opens without a prompt, and the grant is remembered across launches. Nothing outside it is affected, and Clear gives the access back.

Processing memory budget

Settings ▸ General ▸ Processing Memory

A 10–80 % ceiling on unified memory, 50 % by default, that every whole-image job checks before reading a pixel - so an over-large job fails in a second rather than paging for twenty minutes. When a job exceeds it, the window reports both the required and available figures and offers Run Anyway, with Cancel as the default. The ceiling is a question, not a verdict.

The sensor catalogue

Settings ▸ Satellites

Twenty sensors with per-band name, common name, centre wavelength, FWHM, native ground sample distance, spectral role, polarisation and thermal constants, plus versioned calibration profiles keyed on processing level, collection, baseline and acquisition date. It is user-editable: sensors can be added or overridden, and edits are validated before they are saved.

The catalogue is what lets an index written once resolve across sensors that number their bands differently.

Keyboard

KeyDoes
⌘ZUndo - polygon drawing and editing, crop and rotation. Undoing an edit that moved the view puts the camera back as well.
⇧⌘ZRedo.
⌘EExport.
⇧⌘IImport from Earth Search.
⌘] ⌘[Move the active layer up or down the stack.
Step a composite marker band by band along the spectrum strip.
Held while dragging the crop marquee, squares it.

Processing jobs are not on the undo stack: they write new files and appear as new layers, so the way to undo one is to remove the layer.

If something is wrong

Two rasters will not overlay

Processing ▸ Reproject…

An added raster must share the base's CRS. Reproject one onto the other's CRS, then add it again. If they share a CRS but sit slightly apart, that is a registration problem, not a projection one - try Co-registration first.

A job refuses with “needs the same grid”

Processing ▸ Geometry ▸ Resample to Match Layer…

Regression and IR-MAD normalisation, every change-detection method, and DEM of Difference all compare co-located pixels, so the two rasters must have the same size, CRS and pixel size. Resample to Match Layer puts one on the other's exact grid - nearest for anything thematic.

The image looks flat, dark or washed out

Inspector ▸ Bands ▸ Stretch

Raw 12- and 16-bit radiometric data is near-flat without a stretch, and Hachure applies none on open. Percentile clip with a modest gamma is the usual first move. This changes nothing stored - it is exposure, not correction.

An index came out smooth and plausible and wrong

Inspector ▸ Bands ▸ Composite

Check the spectral roles. A named index resolves against the bands the stack says are NIR and Red; if those are wrong the arithmetic still succeeds and produces a convincing surface of the wrong two bands. Correct the role on the band's row, then re-run.

A shapefile opens without its projection

Settings ▸ General ▸ Workspace

The .prj and .dbf are separate files and the sandbox grants only what you selected. Name a Workspace folder that contains them, or answer the folder prompt when it appears.

A file will not open at all

File ▸ Open

Hachure reads what its curated GDAL driver set reads. A HEIC that arrived through File ▸ Import from Photos is converted losslessly to TIFF on the way in and opens fine; the same file selected from the Finder does not, because that path hands it straight to GDAL and the HEIF driver is not built in.