AlphaThe Surfalize web app is in active development. Features, the user interface and computed results may change at any time, and this documentation may lag behind the app.

ISO 25178 · Surface Metrology · In the browser

Surfalize user guide

Surfalize is a browser-based surface-topography analyser. It loads measurement files from most common profilometers and microscopes, lets you preprocess them with a chain of non-destructive operators, and computes the full ISO 25178 areal and ISO 21920 profile parameter sets, entirely inside your browser. This guide explains how the app is put together and how to use each part. What the parameters themselves mean, with their definitions and formulas, is in the separate parameter reference. For a quick, hands-on introduction, open Help ▸ Guided tour in the app.

Overview

Surfalize is powered by a pure-JavaScript port of the open-source surfalize library. Every computation (loading, levelling, filtering, spectra and parameters) runs client-side. There is no server and nothing to install.

Your data stays local. Files you open are read and processed in your browser only. They are never uploaded, and closing the tab discards them.

The engine uses 64-bit-addressed typed arrays, streaming algorithms and a background Web Worker, so it comfortably handles very large height maps (tens of megapixels) that would exhaust a conventional in-browser tool.

Getting started

Launch the analyser from the landing page, or open index.html directly.
Load a file: drag a topography file onto the viewport, or use File ▸ Load file…. See supported formats.
Preprocess with the ribbon operators (levelling, filtering, …). Each step adds a new node to the work tree.
Analyse: open 2D/3D views, spectra and the parameter table from the Analysis group.
Export a converted file, a parameter table, a PDF of the view, or run a batch across many files.

A new session auto-runs the guided tour once. You can replay it any time from Help ▸ Guided tour, and run the interactive example analysis (a full pipeline on a synthetic surface) from Help ▸ Example analysis.

The interface

The Surfalize window with numbered regions: menu bar, ribbon groups, apply mode, tool rail, viewport toolbar, panels, work tree and metadata The Surfalize window with numbered regions: menu bar, ribbon groups, apply mode, tool rail, viewport toolbar, panels, work tree and metadata
The analyser with one file open. The numbers match the list below.
  1. Menu bar. File, Edit, Operators, Analysis, View and Help. Operators and Analysis repeat the ribbon. The sun/moon switch changes the theme, and the status pill on the right shows what the engine is doing. Edit has Undo (Ctrl+Z), Redo (Ctrl+Shift+Z) and Delete (Del) for the selected node.
  2. Ribbon: operators. The groups Levelling & form, Correction and Geometry hold the operators. Each one transforms the height data and creates a new state in the work tree.
  3. Ribbon: analysis. Adds views and studies of the selected state: 2D / 3D plot, parameters, spectra, autocorrelation, Abbott curve and cavities. They never change the data.
  4. Apply mode. Update current or New result: where an operator's result goes. See apply modes; it is worth understanding before you start.
  5. Tool rail. Tools that annotate a surface without transforming it (Extract, Measure, Construct, Volume), plus the Masking operators.
  6. Viewport toolbar. The Grid | Free layout switch, the column count and Reset layout. See Layout.
  7. Panels. Every plot and study is a panel you can move and resize. Several files and several views can be shown at once.
  8. Work tree. The Workflow panel, the branching history of every state and view.
  9. Metadata. Dimensions, pixel step, height range and the file's own metadata for the focused surface, in a dock you can collapse.

The work tree

The work tree (the Workflow panel on the right) is the heart of Surfalize: it records every state of your data and every view of it, and it is where you change, branch and reuse a processing.

Work tree: a file, four operator states below it, and the plots and studies of the last state Work tree: a file, four operator states below it, and the plots and studies of the last state
A file, four operators and the views of the last state.

Reading the tree

Root and states
The top line is a loaded file. Each operator adds a state, indented under the state it was applied to. Its name is the operator, and the grey line below gives its settings (for example degree 2 or hampel 5×5 n=3). Several files can be open at once, each as its own root.
Views & analyses
2D and 3D plots, parameters, spectra, profiles, geometry and volume studies hang under the state they show.
Selection
Click a node to focus it: its panel is highlighted and scrolled into view, and operators and tools act on it. Other files and panels stay visible. Ctrl/Shift-click selects several nodes.

Apply modes: Update current vs New result

Operators never overwrite data: every operator creates a new state, and the state it started from is kept. The apply mode, the Update current New result switch on the right of the ribbon, decides where the new state goes and what happens to the panels you already have open.

Update current (default)
The operator is inserted after the selected state. Everything that hung below it (plots, analyses and further operators) moves onto the new result and is recomputed. Use it to build up one processing: the same 2D plot, parameters and spectra update with every step.
New result
The operator branches off. The new state gets its own fresh 2D plot, and the panels you already have keep showing the earlier state. Use it to compare before and after, or two alternative processings, side by side.

The figures show both modes on the same starting point. A levelled, despiked and filled surface has a 2D plot and a parameter table, and a high-pass filter (λc = 25 µm) is applied to the Fill non-measured state.

Update current
Work tree after Update current: Filter inserted below Fill non-measured; the 2D plot and Parameters moved under Filter Work tree after Update current: Filter inserted below Fill non-measured; the 2D plot and Parameters moved under Filter
Filter is inserted into the chain, and the 2D plot and Parameters move under it.
Panels after Update current: one 2D plot and one parameter table, both showing the filtered surface Panels after Update current: one 2D plot and one parameter table, both showing the filtered surface
The same two panels now show the filtered surface.
New result
Work tree after New result: Filter is a new branch with its own 2D plot; the original 2D plot and Parameters stay on Fill non-measured Work tree after New result: Filter is a new branch with its own 2D plot; the original 2D plot and Parameters stay on Fill non-measured
Filter branches off with its own 2D plot. The original views stay where they were.
Panels after New result: the original 2D plot and parameter table plus a second 2D plot of the filtered surface Panels after New result: the original 2D plot and parameter table plus a second 2D plot of the filtered surface
Before and after side by side: the earlier plot and table, plus a new plot of the filtered state.

You can switch modes at any time; the choice is remembered. A branch created with New result can later be dragged onto another state, and a chain built with Update current can still be branched with ⧉ Duplicate (below).

Editing, branching and rearranging

Hover a node to show its buttons:

✎Edit
Reopens the operator's dialog (or redraws its shape, profile line or parameter selection). Everything below the node is recomputed with the new settings.
⧉Duplicate
Copies a state (without what hangs below it) next to the original. Edit the copy's settings to compare two variants of the same step.
✕Delete
Removes a node. If it has children you can delete them too, or keep them: they are re-attached to the parent and re-applied there.
Drag & drop
Drag a node onto another state to move it there. The moved operators are re-applied to their new parent.

The Edit menu steps through this history: Undo (Ctrl+Z) and Redo (Ctrl+Shift+Z) reverse or replay operators, deletions and other work-tree changes, and Delete (Del) removes the selected node or panel.

Swapping the measurement

A root has one more button, ⇄Exchange file. It loads a different file into that root and re-runs the whole tree on it: the same operators, analyses and panels, now on the new data. Profile lines you drew are carried over, scaled to the new field. This is the quickest way to apply a finished processing to the next sample. To keep a processing for later, save it as a workflow; to run it on many files at once, use batch processing.

Operators

Operators preprocess the height map. They can be chained in any order, and each one produces a new work-tree state (where it goes depends on the apply mode). Operators with settings open a dialog with a live preview; the others apply at once.

The ribbon: Levelling and form, Correction and Geometry operator groups, the Analysis group and the apply mode switch The ribbon: Levelling and form, Correction and Geometry operator groups, the Analysis group and the apply mode switch
The ribbon. Every button is described below; hovering one in the app shows its name.

Levelling & form

Level
Remove a least-squares tilt (plane) from the surface.
Detrend
Remove the form of the part: a least-squares polynomial (degree 1–6), a cylinder (shafts, rollers, bores) or a sphere (balls, lenses, domes). Cylinder and sphere are fitted in 3D on the radial deviations, optionally with a known radius held fixed, and removed vertically, so the result keeps the measurement grid. The dialog previews the fitted form, the residual and a cross-section, and reports the fitted radius, axis direction and residual RMS. Output is the residual, or the fitted form itself.
Level to points
Define the reference plane through three points you click on the 2D plot.

Correction

Fill non-measured
Interpolate invalid (non-measured) points: nearest copies the closest measured height, linear interpolates across each gap.
Despike
Detect spikes and outliers with a choice of algorithms, each judged against a threshold n: Hampel (the default — a point deviates from the median of its k×k window by more than n·1.4826·MAD of that window; robust, adapts to local roughness), local mean ± n·σ (k×k window, the point itself excluded from its own statistics; fast for any window size), neighbour-median residual (deviation from the median of the 8 neighbours, judged on one robust scale for the whole surface; best for small single-pixel spikes on curved or textured parts), and the global median ± n·MAD and mean ± n·σ clips, which only catch spikes taller than the whole height range. The local algorithms take an optional minimum spike height so flat or quantised data are not over-cleaned; windows are truncated at the surface edge, and non-measured or masked points are ignored. Detected spikes become non-measured (follow with Fill non-measured) or are replaced by the median of the surrounding valid points.
Threshold
Remove material by height, graphically, on the Abbott–Firestone curve: drag the upper and lower cutoff lines (or pick a preset percentage). Points outside the kept band are set to non-measured, or masked instead (the data is kept but excluded from parameters). The cutoffs are stored as material-ratio percentages, so a saved workflow or batch re-derives the heights for each surface.
Filter
Separate roughness, waviness and form: keep the roughness (high-pass, removes wavelengths longer than λc), the waviness (low-pass) or a band between λs and λc. Three methods: the standard Gaussian (ISO 16610-61; with Reflect edges identical to surfalize, or Normalized, the linear Gaussian regression filter, which corrects the edges and skips non-measured points instead of spreading them), the robust Gaussian regression filter (ISO 16610-71 for surfaces, FARGRP; ISO 16610-31 for profiles, FPRG), which re-weights points iteratively with Tukey's biweight (c = 4.4478 × median deviation) so deep valleys, high peaks and outliers don't pull the mean line towards them. Both regression filters fit a local polynomial of regression degree p around every point: p = 2 (the standard's default for the robust filter) follows curved form, p = 1 tilted form, p = 0 is a plain weighted mean (use it only after form removal); every degree transmits 50 % at λc. The robust iteration stops when the biweight limit c changes by at most ftol·c or after nmax evaluations (defaults 10⁻⁵ and 12, ISO 16610-31 §8). On a surface the filter fits a complete two-dimensional polynomial of degree p under the rotationally symmetric Gaussian, as ISO 16610-71 specifies for nominally planar surfaces; the cylindrical variant (FARGRC) for full-circumference data is not offered. The spline filter (ISO 16610-62 for surfaces, FALS; ISO 16610-22 for profiles, FPLS) is a linear alternative that needs no run-in: it fits a smoothing spline to every row and then every column, so the mean line follows the form right up to the border instead of bending away there. Its tension β sets the shape of the characteristic: β = 0 (the default) is the cubic spline with the steepest transition and the best form preservation, β = 0.625242 behaves like the Gaussian, β = 1 is the piecewise-linear spline; every β transmits 50 % at λc. On a map that covers the full circumference of a cylinder exactly once (unrolled), choose Cylindrical with the direction of the circumference and the filter wraps around there. Non-measured points are skipped (the standards assume complete data; the spline runs through the gaps, which stay empty). The spline needs every cutoff to be at least twice the sampling step. Cutoffs come with the standard nesting-index series (… 0.8, 2.5, 8, 25, 80 µm …) and a suggestion from the field size. With a profile selected, the same dialog filters that profile (all methods); the settings are stored with the profile and its parameters are computed on the filtered result.
Center / Zero / Invert
Center shifts the mean height to zero, Zero shifts the lowest point to zero, Invert flips the surface upside down (peaks become valleys).
Filter dialog: method and keep choices, cutoff with presets, input, output and removed maps, a cross-section with the mean line and the transmission curve Filter dialog: method and keep choices, cutoff with presets, input, output and removed maps, a cross-section with the mean line and the transmission curve
The Filter dialog. Left: method, what to keep, cutoff (★ = suggested) and edge handling. Right: a preview of the input, the result and the removed part, a cross-section with the mean line (click a map to move it) and the filter's transmission curve. The other operator dialogs follow the same layout.

Geometry

Crop
Drag a rectangle on the 2D plot to keep only that region.
Rotate
Rotate the surface by any angle (presets ±90°, 45°, 180°).
Zoom
Magnify the centre of the surface by a factor.

Masking on the tool rail

Masks exclude regions from the parameters without deleting the data. They are operators too, so each mask creates a new state.

Mask rectangle / circle
Drag the shape on the 2D plot, then Apply.
Mask by height
Mask everything below and/or above a height.
Invert / clear mask
Swap masked and unmasked points, or remove the mask.
Mask → non-measured
Turn the masked points into non-measured points and clear the mask.
Heavy operators (levelling, detrending, despiking, filtering, filling) run on a background Web Worker with a progress bar, so the interface never freezes, even on large surfaces.

Analysis panels

The Analysis group opens views and computations of the selected state as panels in the viewport. They never change the data, and with Update current they follow the state as you add operators. Every panel header has the same buttons: a colormap where it applies, ⚙ settings, remove, ↓ PNG (or CSV) to export, copy to the clipboard, and full screen.

2D height map
False-colour topography with selectable colormaps and a pinnable colour range. The canvas tools draw on it.
2D height-map panel with a colour bar 2D height-map panel with a colour bar
2D plot.
3D surface
Interactive rendering: drag to rotate, scroll to zoom. The ⚙ settings set the Z-scale, lighting, camera, optional solid sides and the axes.
3D surface panel 3D surface panel
3D plot.
Parameters
Pick ISO 25178-2:2021 areal parameters in the Parameters dialog and compute them into a table; ↓ CSV exports it. What each parameter means is in the parameter reference.
Parameter panel with eight parameter cards Parameter panel with eight parameter cards
Parameters.

The Parameters dialog lists the parameter families of the standard on the left: height, spatial, hybrid, material ratio, plateau (Sk family), material probability, volume and feature. Each entry shows how many of its parameters are ticked; a click jumps to the family. On the right, every family is a section of its own with its parameters (symbol, name, unit), All / None for that family, and the settings its parameters depend on:

  • Material ratio: the depth c for Smr (measured down from the highest point), the ratio p for Smc, and p, q for Sdc.
  • Volume: the material ratios p and q (10 % and 80 % by default).
  • Feature: the Wolf pruning threshold in % of Sz. Below the seven named feature parameters, Further feature parameters offers the motif statistics of ISO 25178-2 Table 6 (local height or depth, area and volume of the hills and dales, each as mean, maximum or standard deviation, plus their number) and the motif shapes of Table 7 (roundness, form factor, equivalent diameter, aspect ratio) as two hill / dale matrices, with the choice which motifs count: all, or those open or closed at a height given as a material ratio.

The settings are stored with the parameter table, shown under every value that depends on them (and in the CSV), and reused when the table is recomputed, in batch runs and by saved workflows. The pen on a table reopens the dialog with its selection and settings. On a selected profile the dialog shows the profile (R) families of ISO 21920-2 instead.

Parameters dialog: the families with their selected counts on the left; height, spatial, hybrid and material ratio sections with their parameters and the material-ratio settings on the right Parameters dialog: the families with their selected counts on the left; height, spatial, hybrid and material ratio sections with their parameters and the material-ratio settings on the right
The Parameters dialog.
Feature section of the Parameters dialog: the named feature parameters, the Wolf pruning threshold, the motif significance and the hill / dale matrices of motif statistics and shapes Feature section of the Parameters dialog: the named feature parameters, the Wolf pruning threshold, the motif significance and the hill / dale matrices of motif statistics and shapes
The feature family with the motif statistics (Table 6) and shapes (Table 7).
Fourier / PSD
2D Fourier magnitude or power spectral density (log scale), with an optional Hanning window. Periodic structures show up as bright spots; a line profile can be drawn across the map.
Fourier transform panel Fourier transform panel
Fourier transform.
Radial PSD
Radially averaged PSD (µm⁴) against spatial frequency or wavelength on log–log axes. + Compare overlays other files or states, so scans at different magnifications or pixel sizes can be compared across scales; ↓ CSV exports the curves. By default every frequency ring of the FFT grid is one point (about N/2 points for an N-pixel scan, full spectral detail); the ⚙ options offer logarithmic bins per decade instead for a smoother, sparser curve.
Radial PSD panel, log-log curve Radial PSD panel, log-log curve
Radial PSD.
Autocorrelation
2D autocorrelation map (µm² against lag), from which the spatial parameters Sal and Str are derived. Profiles can be drawn across it too.
Autocorrelation panel Autocorrelation panel
Autocorrelation.
Abbott–Firestone
Material-ratio curve over the height histogram, the basis of the functional parameters (Sk, Spk, Svk, Smrk1, Smrk2 …).
Abbott-Firestone panel: material-ratio curve and height histogram Abbott-Firestone panel: material-ratio curve and height histogram
Abbott–Firestone curve.
Cavity analysis
For arrays of pockets or dimples: detects every cavity (click Detect), measures step height against one global top plane, volume and bottom parameters, labels them by row and column, and shows any metric as a rows × columns map. Cavities can be added, adjusted or deleted by hand in the panel.

Tools

Tools live on the left rail and annotate the focused surface without changing its height data. Pick a tool, then click or drag on the 2D plot; one tool is active at a time. The results get their own panels and work-tree nodes under the surface.

2D plot with an oblique profile line, a distance, a fitted circle and a volume region overlaid 2D plot with an oblique profile line, a distance, a fitted circle and a volume region overlaid
The annotations on a 2D plot: an oblique profile line (amber), a distance and a three-point circle (teal), and a volume region with the evaluated area shaded.

Extract: profiles

Horizontal / vertical / oblique profile
Click (horizontal, vertical) or drag (oblique) to extract a cross-section into its own panel, optionally averaged over parallel lines. Drag the line to move it; the profile updates live. Profiles carry the full ISO 21920 R-parameter set and can be filtered. FFT and autocorrelation maps can host profiles too.
Profile panel with the extracted cross-section Profile panel with the extracted cross-section
The profile panel.

Construct, Fit, Find & Measure: geometry metrology

A Geometry panel keeps construction geometry (points, lines, circles and what is built from them) apart from measurements. You first construct or detect the geometry, then dimension it with the Measure tool, as with a smart dimension in CAD. Construction geometry is drawn in white; measurements are drawn as dimensions in light blue.

Point
Click to place a point.
Line
Click both ends, or drag from one to the other.
Circle (3 points)
Click three points on a circular feature.
Perpendicular / parallel
Click a line or edge, then a point: builds a perpendicular or parallel through it. A perpendicular shows a right-angle mark where it meets the line, a parallel a pair of » marks on both lines. Drag the through-point to move it; drag either end to lengthen or shorten it along its direction.
Bisector
Click two lines or edges, each on the side of the angle you want to halve: builds the line that splits that angle from their intersection. For two parallel lines it is the centre line between them. Drag either end to lengthen or shorten it; it keeps its direction.
Intersection
Click two lines or edges: places a point where they meet.
Fit circle to edge
Drag from the centre to the rim (or click both), then move the mouse to set the width of the search ring and click. The edge is detected inside the ring on the full-resolution surface and a circle is fitted with outlier rejection; the detected edge points are shown. Afterwards, drag the ring’s inner or outer rim, or move it, and the circle is refitted.
Fit line to edge
Drag along an edge (or click both ends), then move the mouse to set the width of the search box and click: a line is fitted to the edge detected inside the box. Afterwards, adjust the box like a rectangle (corners, sides, ends) or move it, and the line is refitted.
Minimum / maximum point
Drag a box (or click two corners): marks the lowest or highest measured point inside it. Adjust or move the box to search again.
Measure
Pick two items of the panel: two points give their distance (and height difference), a point and a line the perpendicular distance to the line (extended past its ends if needed), and two lines their angle on the sides you clicked. Lines less than 10° apart are dimensioned by their gap instead, where you click the second one; drag its handle to slide it along the lines. A circle counts as its centre. Pick one item twice, or press Enter after the first pick, to dimension it alone: a line’s length and inclination, a circle’s diameter or a point’s height. A point is picked before the line or circle it lies on.
Profile along line
Click a line, fitted edge, perpendicular, parallel or bisector: opens a profile panel along it. The profile is extracted again whenever the line is moved or refitted. Dragging the profile line itself (an end, or the whole line) moves the geometry line, so the two always match. Only removing the geometry line turns it into an ordinary profile line.

Construction items can be dragged by their handles or moved as a whole; whatever is built on them and every measurement of them follows. New points snap to the points already on the map (points, line ends, circle centres, feet, intersections, minimum and maximum points), and a ring shows the point a click will land on. A snapped point stays on that point: a line started on a minimum point follows it when you move the minimum’s search box. Drag the point away to release it. The panel lists the construction geometry, then the measurements; removing an item also removes what is built on it and its measurements.

Geometry panel listing two points and a circle, then a distance and a diameter Geometry panel listing two points and a circle, then a distance and a diameter
The Geometry panel.

Volume

Volume region
Draw a rectangle, circle or polygon (close it on the first vertex or with Enter). The panel computes the material volume above (convex) and the void volume below (concave) a reference plane, by default the region mean. The 2D plot shades the evaluated area (amber above the plane, blue below); small disconnected regions can be excluded by area.
Volume panel: reference plane, exclusion area and the convex and concave volumes Volume panel: reference plane, exclusion area and the convex and concave volumes
The Volume panel.

Batch processing

Open File ▸ Batch… to work over many files at once. There are two modes:

  • Analyze & export: replay the current workflow (its operators and selected parameters) across a set of files and export the combined parameter tables as CSV/TSV or an Excel workbook, plus per-panel images. A pinned colour range keeps the images comparable across files.
  • Convert format: re-save each input file as a different output format, downloading a single file directly or several as one zip.

Stitching tiles

An area larger than one field of view is often measured as a grid of overlapping tiles. File ▸ Stitch tiles… puts such tiles back together into one surface. It lines them up on the texture they share in each overlap, matches their heights and blends the seams. Tiles are placed to the whole pixel and never resampled, so every measured value outside the overlaps is kept as it is.

Stitch tiles dialog: nine tiles listed on the left with the layout and alignment settings and the result read-out, and on the right the blended mosaic preview with numbered tile outlines and green links between overlapping tiles Stitch tiles dialog: nine tiles listed on the left with the layout and alignment settings and the result read-out, and on the right the blended mosaic preview with numbered tile outlines and green links between overlapping tiles
Nine tiles of a 3 × 3 scan with 20 % overlap. Every overlap is aligned (green links), and the read-out shows the match quality and the largest position correction.

Adding tiles

Click Add files… or drop the tile files on the box. Any supported format works, but all tiles must have the same pixel size. The list is sorted by name the way people read numbers, so tile_2 comes before tile_10. Its order is the scan order: the first entry is tile 1. Use ↑ and ↓ to move a tile, and × to remove it. The tiles stay in the dialog and are not added to the work tree.

Layout

The layout describes how the instrument scanned the area, and it gives every tile its nominal place:

  • Rows and Columns: the size of the grid. They are filled in from the number of tiles until you change them, and the grid needs at least one cell per tile.
  • Nominal overlap: how much neighbouring tiles overlap, as a share of the tile size. Use the value set on the instrument (the chips offer common ones).
  • Scan order: whether the instrument filled the grid row by row or column by column.
  • First tile: the corner where the scan started.
  • Meander: tick it when every other row (or column) was scanned in the opposite direction.

If the preview shows a jumbled picture, the layout does not match the scan: check the order, the first tile and the meander option first.

Alignment

  • Refine positions by correlation: compares the texture in each overlap and moves the tiles to where it fits best, which corrects stage errors. Untick it to place the tiles exactly on the nominal grid.
  • Max. correction: how far a tile may move from its nominal place, as a share of the tile size. Raise it when the stage is known to be imprecise; keep it small on repetitive textures, where a match one period away can look just as good.
  • Min. match: the similarity (0 to 1) an overlap must reach to be used. Overlaps below it are rejected and do not move the tiles.
  • Height matching: corrects each tile against the others so the heights agree in the overlaps, either by an offset and a tilt, by an offset alone, or not at all.
  • Overlap blending: how the overlaps are filled. Linear feathering fades smoothly from one tile to the next and hides the seams best. Average takes the mean of the tiles, and Later tile on top keeps the tile that comes later in the list.

Reading the preview

The preview shows the blended mosaic at reduced resolution. It updates as soon as you change a setting: first with the nominal layout, then with the aligned positions once the alignment has run (the state next to Result says which). With Tiles ticked, each tile is outlined and numbered in list order, and a line joins the centres of every pair of tiles that overlap:

  • Green: the overlap was matched and used to place the tiles.
  • Red: the overlap was rejected, because its match stayed below the minimum or because it disagreed with the other overlaps.
  • Dashed: the overlap was not matched, for example because correlation is switched off or no usable match was found.

Hover over the preview to see which tile files lie under the pointer.

The Result read-out sums up the alignment:

  • Mosaic and Size: the size of the stitched surface, in pixels and in millimetres.
  • Overlaps aligned: how many of the overlaps were used.
  • Match (mean / worst): how similar the overlapping tiles are once aligned, on the same 0 to 1 scale as Min. match. Values close to 1 mean the texture fits well.
  • Largest correction: the largest distance a tile was moved from its nominal place, in pixels. A value close to the maximum correction is a sign to check that overlap.
  • Loop closure (worst): how far, in pixels, the matched overlaps disagree with each other once every tile is placed. A fraction of a pixel means they agree.
  • Height correction (max): the largest offset applied by height matching.
  • Rejected and Not aligned (highlighted): the rejected overlaps, and the tiles left at their nominal place because none of their overlaps was used.

The stitched surface

Stitch becomes available once the alignment has finished. It blends the tiles at full resolution and adds the mosaic as a new file in the work tree, named Mosaic (n tiles), with its own 2D plot. From there it works like any loaded file. A saved workflow cannot reload the mosaic, because it was never a file on disk. To reuse it, export it first (File ▸ Export file…) and load that file with the workflow.

Export & PDF

Export a file

File ▸ Export file… saves any work-tree state (the raw file or any transformed result) to another format, with per-format options: compression, embedded image layers, binary/ASCII and comments. Writers are available for .sur, .sflz, .sdf, .tmd, .al3d and .x3p.

Export the view as PDF

File ▸ Export view as PDF… renders the on-screen panel grid to a multi-page A4 landscape PDF that preserves the layout. Plots are embedded as high-resolution images; parameter tables, headers and cards stay as selectable vector text. Pages follow the app theme.

Workflows

A workflow captures your whole session structure (the node tree, every operator and its parameters, view settings, profiles, geometry items, volume settings and parameter selections) as a small .surfflow.json file. The topography itself is not included, so the file stays tiny and shareable.

Save with File ▸ Save workflow…. To restore, use File ▸ Load workflow… and select the .surfflow.json together with the topography file(s) it references; Surfalize reloads them and replays every step.

Layout & themes

Panels are arranged in one of two layouts, chosen with the Grid Free switch at the left of the toolbar above the panels (or View ▸ Layout). Both show the same panels; only the arrangement differs, and each layout keeps its own arrangement, so you can switch back and forth without losing either.

Grid
Grid layout: four panels in two equal columns Grid layout: four panels in two equal columns
Panels snap to columns and never overlap.
Free
Free canvas: the same four panels placed and sized freely, partly overlapping Free canvas: the same four panels placed and sized freely, partly overlapping
Panels are placed and sized anywhere, and may overlap.

Grid

The default. Panels snap to a grid of columns. Drag a panel by its header to move it and by its bottom-right corner to resize it; panels never overlap. The − / + buttons set the number of columns (1–4): fewer columns give each panel more room, more columns show more panels at once. Show grid (View menu) keeps the empty cells visible. Use it when you want a tidy, regular page, for example for a PDF export.

Free canvas

An unbounded whiteboard. Drag panels anywhere by their header and resize them freely from the corner; the panel you click comes to the front. Pan by dragging the empty canvas, with the middle mouse button anywhere, or with the wheel (shift-wheel scrolls sideways). Dragging a panel against the edge of the view scrolls the canvas and extends it. Show grid draws a dot grid. Use it to group panels by meaning (one sample's views together, a comparison next to it) or to make one plot much larger than the rest. The first switch keeps the arrangement you had in the grid.

In both layouts Reset layout returns every panel to its default size and place, and sizes and positions persist between sessions. Export view as PDF keeps the arrangement, splitting pages only between panels.

Themes

Switch between the Dark and Light themes in the View menu or with the sun/moon switch, which is also on this page and the validation and legal pages. The choice applies everywhere, including the plots and any other open Surfalize tab, and is remembered for next time. The figures on this page follow it too.

Supported formats

Read:

.sur.vk3.vk4.vk6.vk7 .opd.plu.plux.al3d.lext .nms.oir.os3d.sdf.sflz .tmd.x3p.zmg.zon.dat .fits.gwy.xyz.hdat

Write:

.sur.sflz.sdf.tmd.al3d .x3p

Tips & FAQ

Nothing shows after I load a file

Make sure the file is a supported format and not corrupted. Errors appear in a dialog; the file's metadata (if read) is shown in the Metadata dock.

How do I compare several measurements?

Just load them one after another. Each file gets its own panels in the shared grid; increase the column count in View to see more at once, or use Batch for a table across files.

Are the parameters standard-compliant?

Every areal and profile parameter is validated against reference software to within numerical tolerance (see the validation results). This tool is provided without warranty; verify independently before use in safety-critical work.

Where can I learn more about the maths?

The parameter reference defines every parameter with its formula. The surfalize library documentation covers the underlying algorithms and parameter definitions in detail.

← Back to the analyser  ·  GitHub  ·  Impressum & Datenschutz