Volume & Cut-Fill Calculation from DEMs
Calculate stockpile volumes and cut-fill between two epochs in CartaX: volume measurement and the A/B analysis workspace.
2026-08-17 · 5 min read
Two questions dominate every construction site: "How much material is in that pile?" and "How much earth moved since last month?" They are different calculations and they live in different screens in CartaX. Knowing which is which decides whether you can trust the number you get.
Single epoch: volume measurement (stockpiles)
With a single flight you hold exactly one surface. Volume, however, is the difference between two surfaces — a top and a base. If the base was never measured, it has to be assumed, and that assumption is the accuracy ceiling of the result.
The Volume tool in the point cloud viewer does exactly this: it computes the horizontal area of your polygon and multiplies it by a fixed 5 m depth assumption. The tool states this on screen — "Volume approximation: horizontal area × fixed 5 m depth assumption". Treat it as an order-of-magnitude estimate, not a number you invoice against.
For real cubic metres you need one of two things:
- Compare two epochs (next section) — then the base is measured
- Or use the pre-stockpile flight's orthophoto + DTM pair (or CartaX Studio photogrammetry output) as the reference epoch — an epoch consisting of a DEM alone cannot be created; an elevation model is always uploaded attached to an orthophoto
The point cloud comparison in the Analysis workspace also has a "Volume measurement" tool: you place a volume box in the point cloud ("Place the volume box; press ESC to cancel."), drag and resize it, and the box's volume is displayed. This too is a box volume — it does not follow the actual pile surface; use it as a quick upper-bound estimate.
Two epochs: cut-fill in the Analysis workspace
The real calculation happens in the Analysis workspace (the Analysis workspace is part of the Professional plan; it does not open on the Free plan). You open two epochs of the same site side by side and draw a closed polygon. CartaX splits the interior into a grid, samples the surface elevation of both epochs in every cell, and converts the difference into volume.
The sign convention is fixed: dz = new − old. A positive difference is fill, a negative difference is cut.
The result gives you four numbers:
| Field | Meaning |
|---|---|
| Cut (m³) | Sum over cells where the ground dropped |
| Fill (m³) | Sum over cells where the ground rose |
| Net (m³) | Fill − Cut (the balance) |
| Area (m²) | Horizontal footprint of the polygon |
Elevations can come from two sources. If both epochs have a DSM/DTM, they are sampled straight from the elevation model (grid capped at roughly 12,000 cells). If there is no DEM but both epochs carry a 3D mesh, the calculation samples the model surface instead; that path is more expensive, so the grid is capped at 1,600 cells and typically takes a few seconds. If neither is available the tool stays disabled and reports "Cut-fill requires a DSM/DTM in both epochs" — it never silently returns zero.
How DSM/DTM choice affects results
This is the single decision that distorts results the most. A DSM carries everything on the surface; a DTM carries bare ground.
- Measuring earth movement? Use DTM. With a DSM, grass that grew between flights, a parked truck or a newly installed site container all get booked as fill.
- Measuring the pile itself? The top surface should come from the DSM and the base from the pre-stockpile DTM.
- Never mix model types across epochs (one DSM, one DTM). The difference you compute would be a model-type difference, not earth movement.
Interpreting the numbers
Read the coverage ratio. If part of the polygon falls outside the overlap of the two models, or lands on NoData cells, the result represents only a portion of the polygon. CartaX reports this as a ratio; below 1, the number is incomplete. If the polygon sits entirely outside the overlap, no calculation is performed at all.
Remember the cell size. Because the grid is capped, very large polygons produce large cells and fine detail averages away. Measure a big site with several polygons rather than one — it is both more accurate and it tells you where the volume came from.
Put the reference surfaces in the report. "1,240 m³ of cut" on its own is incomplete; without the two dates, the model type and the polygon, the figure cannot be verified by anyone else.
Summary
| Question | Answer |
|---|---|
| Can one flight give real volume? | No — the base is assumed (fixed 5 m approximation) |
| Where are real cubic metres? | Analysis workspace (Professional plan), two-epoch comparison |
| Sign convention? | dz = new − old; + is fill, − is cut |
| No DEM available? | Computed from the mesh surface if both epochs have one |
| Which model type? | Earth movement → DTM; object volume → DSM |
| What if data is missing? | Coverage ratio drops and a warning is printed |