Your drone point cloud has 50 million points. Most of them are not ground.
The cars in the parking lot are there. The trees. The roof of the office building. The power lines overhead. The client wants a bare-earth DEM for grading calcs, and you need to separate the few million points that actually represent the ground from everything else. That separation is ground classification, and it is the single step that turns a DSM into a DTM.
Skip it and your contours go across rooftops. Do it wrong and your volumes are off by thousands of cubic yards.
Three tools dominate the practical workflow: LAStools (commercial, fast, scriptable), CloudCompare with the CSF plugin (free, GUI-first, forgiving), and ArcGIS Pro’s Classify LAS Ground tool (integrated with the ArcGIS ecosystem). All three can do the job. They work differently, cost differently, and fail differently. This article walks each one, compares them head-to-head, and gives you a decision framework for picking the right one.
What Ground Classification Actually Does
No algorithm can see that a point is ground. It has to infer it from geometry. Three classes of algorithm run the practical tools:
- Progressive TIN Densification (PTD). Grid the point cloud. Take the lowest point in each cell as a ground seed. Build a triangulated network from those seeds. Iteratively add nearby points that fit within distance and angle thresholds relative to the triangles. LAStools uses this.
- Cloth Simulation Filter (CSF). Flip the point cloud upside down. Drop a virtual cloth onto the inverted surface. Points that end up touching the cloth become ground. The cloth conforms to terrain but cannot sag into buildings or tree canopies. CloudCompare uses this.
- Morphological and rule-based hybrid. Progressive morphological opening identifies initial ground candidates. TIN refinement densifies. Optional deep-learning passes handle complex scenes. ArcGIS Pro uses this, with an optional PointCNN model for training-data-driven workflows.
Every tool lets you turn knobs. None of them let you skip thinking about terrain type, point density, and noise — which is where beginner results fall apart.
Why Photogrammetry Is Harder Than LiDAR
Most of the ground-filtering literature was written for airborne LiDAR. LiDAR has two properties that photogrammetry point clouds do not:
First, multi-return data. A LiDAR pulse can hit a leaf, punch through to a branch, and reach the ground — returning three or four points from one shot. Ground-filtering algorithms can bias toward “last return” or “lowest return” to pull the ground out from under vegetation.
Second, canopy penetration. LiDAR sees past leaves. Drone photogrammetry does not. A camera captures what a camera sees, and under dense canopy that is the top of the canopy.
The consequences are practical:
- Under dense tree canopy, photogrammetry has no ground points to classify. No algorithm recovers what was never there.
- Under sparse canopy or open ground, photogrammetry points exist — but noisier than LiDAR, with systematic bias in shadow and low-texture areas.
- Reported ground-filtering RMSE for photogrammetry: 7.5 to 9.1 in (0.19 to 0.23 m). For LiDAR with the same algorithms: 5.1 to 7.5 in (0.13 to 0.19 m). Worse inputs, same algorithms, worse outputs. Source: Serifoglu Yilmaz et al. 2020, International Journal of Digital Earth.
Manage expectations up front. The point cloud type sets the ceiling. Tool choice moves you within that ceiling — it does not raise it.
LAStools — lasground_new
LAStools is the commercial workhorse of the LiDAR processing world. The ground-classification tool is lasground_new, a redesigned successor to the original lasground that handles transitions between flat and steep terrain (urban next to mountains) without breaking.
Algorithm
PTD-based. Grid the cloud at a user-specified -step distance. Take the lowest point in each cell as a ground seed. Build a TIN. Expand the TIN by adding points that fit within a vertical rejection threshold (-spike) and a maximum offset above the reference surface (-offset). Iterate until convergence.
Workflow
lasground_new runs from the command line:
lasground_new -i input.laz -o output_classified.laz -step 5 -spike 1.0 -offset 0.5 -bulge 1.0
Terrain presets do most of the parameter work:
-wilderness— natural, low-urban terrain-nature— moderate terrain variation-townor-city— urban with buildings-metro— dense urban with large buildings
Parameters That Matter
| Parameter | Controls | Typical Range |
|---|---|---|
-step | Coarse grid for seed selection | 16–33 ft (5–10 m) open terrain; 49–66 ft (15–20 m) urban |
-spike | Vertical rejection threshold for outliers | 3.3 ft (1.0 m) default |
-offset | Max height above reference TIN still classified as ground | 1.6–3.3 ft (0.5–1.0 m) |
-bulge | Allows local TIN bulging for gentle hills | 0.3–3.3 ft (0.1–1.0 m) |
-fine / -extra_fine | Preset granularity overrides | Use -fine for drone data |
The step-size trap. If -step is smaller than the largest building or continuous roof on site, lasground_new will classify the roof as ground. The rule: step must exceed the longest roofline dimension. On a site with a 100-ft warehouse, use a step of at least 40 m (131 ft). Get this wrong and your DEM has a false plateau where the warehouse used to be.
Cost
lasground/lasground_newindividual tool license: EUR 1,500 (~$1,650 USD) one-time, or EUR 1,575 with credit card processing fee.- Full LAStools with BLAST: EUR 5,000 (~$5,500 USD).
- Full unlimited license: EUR 15,000 (~$16,500 USD).
- Volume discounts: 2nd license -40%, 3rd -50%, up to 7th -90%.
- Academic: EUR 2,000 (schools) / EUR 3,000 (non-profit research).
Unlicensed free use is permitted but degrades output: LAStools zeroes intensity, GPS time, user data, and point source ID, shuffles point order, and adds white noise to coordinates. Fine for learning. Not usable for deliverables.
Source: rapidlasso.de/pricing, verified April 2026.
Strengths and Weaknesses
Strengths:
- Extremely fast. A 50-million-point file runs through
lasground_newin under a minute on a modern workstation. - Handles massive datasets with the BLAST extension.
- Command-line scriptable. Drops into automated pipelines.
- Terrain presets do 80% of the parameter work.
- Industry-standard. If an engineer receives your LAS, they can re-run your classification and reproduce your results.
Weaknesses:
- Real money for commercial use.
- CLI-only by default. Third-party GUIs exist but are thin.
- Tuned for airborne LiDAR. Needs parameter adjustment for drone photogrammetry.
- Purely geometric — no color/RGB-assisted classification.
CloudCompare — CSF Plugin
CloudCompare is the free, open-source point-cloud swiss army knife. The CSF plugin, bundled with modern builds since version 2.11, does ground classification.
Algorithm
Cloth Simulation Filter (Zhang et al. 2016). Invert the point cloud. Initialize a virtual cloth above the inverted surface. Let the cloth fall under gravity. Cloth nodes interact with the nearest point via a spring-mass system. The cloth stops where it cannot pass further — draping over the ground surface and bridging over obstacles like buildings and dense tree clumps. Points within a threshold of the final cloth position become ground. The rest do not.
Workflow
- File → Open your LAS, LAZ, or PLY point cloud.
- Select the cloud in the DB tree.
- Plugins → CSF Filter.
- Choose the terrain preset: Flat, Relief, or Steep slope.
- Set cloth resolution, max iterations, and classification threshold.
- Run. Output is two new clouds — “offground” and “ground.”
Parameters That Matter
| Parameter | Controls | Typical Value |
|---|---|---|
| Scene / terrain type | Slope sensitivity preset | Relief for most drone jobs |
| Cloth resolution | Cloth node spacing | 1.6–6.6 ft (0.5–2.0 m). Smaller = finer DTM, more vegetation misclassification. Start at 1.6 ft (0.5 m). |
| Max iterations | Simulation stop condition | 500 — rarely needs adjustment |
| Classification threshold | Distance below cloth still ground | 1.6 ft (0.5 m) default. Lower for flat asphalt, higher for gravel/rough grass. |
| Slope processing | Enable for steep terrain | ON if slopes exceed 20% |
Cost
Free. GPL v2 open source. Latest release is 2.14.beta (April 2026); the stable 2.13 branch is production-ready. No subscription, no license file, no point limits, no commercial restrictions.
Source: cloudcompare.org/release.
Strengths and Weaknesses
Strengths:
- Zero licensing friction.
- Three knobs cover 95% of cases.
- CSF handles vegetation transitions well on real drone data.
- Strong GUI for inspection. You can interactively segment misclassified points after running CSF.
- Active development, cross-platform.
- Does alignment, registration, change detection, and volume calculation too — not just classification.
Weaknesses:
- GUI-first. The CLI exists but is under-documented.
- Struggles with sharp vertical discontinuities. A cloth cannot drape vertically — on a cliff edge or retaining wall, the cloth spans the gap and misclassifies the lower ledge.
- Slower than LAStools on massive files. A 50-million-point cloud can take 10+ minutes.
- Memory-hungry. Loading 100M+ points on a 16 GB workstation will swap.
- LAS classification codes are spec-adjacent but not always fully compliant. Check before piping into downstream tools.
ArcGIS Pro — Classify LAS Ground
ArcGIS Pro’s Classify LAS Ground tool ships with the 3D Analyst extension. It is the obvious choice if ArcGIS is already your deliverable environment.
Algorithm
Hybrid. Progressive morphological filtering seeds ground. TIN refinement densifies. Optional reassignment passes clean up. For complex scenes, a separate tool — Classify Point Cloud Using Trained Model — runs a pre-trained PointCNN deep-learning classifier, requiring a supported GPU.
Workflow
- Create a LAS dataset pointing at your LAS/LAZ files.
- Geoprocessing → Classify LAS Ground (3D Analyst required).
- Pick a classification method:
- Standard — default for most drone jobs.
- Conservative — when too many non-ground points are being marked as ground.
- Aggressive — when terrain is rugged with dense vegetation; captures more ground at the cost of more false positives.
- Run.
Requirements
- 3D Analyst extension enabled. Without it, the tool is not exposed.
- Projected CRS. If your LAS is in a geographic CRS (EPSG:4326 or similar), run
Extract LASfirst with an output projection. This is the number-one failure mode beginners hit. - ArcGIS Pro 3.x. The tool has been stable since 2.x; latest official test was on Pro 3.6 per the Esri learn path (updated January 2026).
Parameters That Matter
ArcGIS Pro hides most algorithm parameters behind the Standard/Conservative/Aggressive presets. Power users can adjust:
- DEM resolution. Sets the effective step size. Defaults scale with point density.
- Compute statistics. Run after classification to enable downstream tools.
- Classification codes. Default to LAS spec — Class 2 is ground, Class 1 is unclassified. Non-ground stays as Class 1 until you run subsequent tools like
Classify LAS BuildingorClassify LAS By Height.
Cost
- ArcGIS Pro Basic starts at the organizational user-type level. A Creator user type with ArcGIS Pro access is typically around $500/year, depending on contract.
- ArcGIS for Personal Use: $100/year, noncommercial only. Grants ArcGIS Pro Advanced plus most extensions including 3D Analyst.
- ArcGIS for Student Use: $100/year.
- 3D Analyst extension: included with Advanced user types; add-on otherwise.
Most commercial drone shops already have ArcGIS Pro through a user-type subscription. The cost of using it for ground classification is effectively zero on the margin — you already pay for the seat. The cost question only matters if ArcGIS Pro would be net-new to your stack.
Source: esri.com/en-us/arcgis/products/arcgis-pro/buy.
Strengths and Weaknesses
Strengths:
- Integrated with the rest of the ArcGIS workflow: classify → raster → contour → share web layer, all in one tool.
- Point Cloud Scene Layer Package (SLPK) output for ArcGIS Online sharing.
- Native LAS 1.4 support.
- Optional PointCNN deep-learning classifier for training-data-driven workflows.
- Strong for engineers and planners whose deliverables are ArcGIS-native.
Weaknesses:
- Requires Pro license plus 3D Analyst extension.
- Preset-driven parameters. You cannot directly tune step, offset, or slope threshold. Reproducibility suffers.
- Slower than LAStools on large files.
- No CLI equivalent outside ArcPy scripting.
- Same limitation as the others under dense vegetation — no workaround.
Head-to-Head Comparison
| Dimension | LAStools (lasground_new) | CloudCompare (CSF) | ArcGIS Pro (Classify LAS Ground) |
|---|---|---|---|
| License | Commercial (EUR 1,500+) | GPL v2 — free | Organizational subscription |
| Algorithm | Progressive TIN Densification | Cloth Simulation Filter | Hybrid morphological + TIN |
| Interface | CLI (primary) | GUI (primary) | GUI + ArcPy |
| Speed on 50M points | ~45 seconds | ~10 minutes | ~3–5 minutes |
| Parameter transparency | High | Medium | Low (preset-driven) |
| LAS spec compliance | Full | Mostly; verify | Full |
| Best terrain | All, with tuned presets | Open to moderate vegetation | Open, urban |
| Worst terrain | Dense canopy | Sharp vertical steps | Dense canopy, complex urban |
| Reproducibility | Excellent (logged commands) | Good (parameter preset) | Moderate (preset only) |
| Downstream ecosystem | Any LAS-reading tool | CloudCompare native, generic LAS export | ArcGIS-native, strong web sharing |
Parameter Recipes by Terrain Type
Flat Open Terrain — Parking Lots, Airstrips, Ag Fields
- LAStools:
-step 5 -spike 0.5 -offset 0.3 -wilderness - CloudCompare CSF: Scene = Flat, cloth resolution 0.5 m, threshold 0.3 m
- ArcGIS Pro: Conservative method
Drone photogrammetry over flat asphalt or grass produces noisy ground points. Aggressive settings pick up surface noise as vegetation — tighten thresholds.
Rolling Terrain — Suburban, Light Vegetation, Small Hills
- LAStools:
-step 8 -spike 1.0 -offset 0.5 -natureor-fine - CloudCompare CSF: Scene = Relief, cloth 0.5–1.0 m, threshold 0.5 m (the default)
- ArcGIS Pro: Standard method
Urban with Buildings
- LAStools:
-step 20 -city(step must exceed the largest building footprint) - CloudCompare CSF: Scene = Relief, cloth 1.0–2.0 m. Watch for false ground on continuous rooflines.
- ArcGIS Pro: Standard method
Practical rule for all three: your step or cloth resolution must exceed the largest contiguous roof on site. Otherwise, the algorithm treats the roof as a plateau and classifies it as ground. On a 200-ft warehouse, your resolution must be larger than 200 ft.
Steep or Complex Terrain — Hillsides, Canyons, Cliffs
- LAStools:
-step 3 -spike 1.5 -offset 1.0 -nature. Smaller step, more permissive spike. - CloudCompare CSF: Scene = Steep slope, cloth 0.3–0.5 m, threshold 0.3–0.5 m. CSF’s known failure mode is sharp vertical drops — a cloth cannot drape vertically.
- ArcGIS Pro: Aggressive method
Dense Vegetation
Honest answer: none of these will give you a clean DTM under dense tree canopy from drone photogrammetry. The ground points are not in the cloud to begin with. Any classifier will either pull a sparse set of tree-base points that happened to show through (best case) or classify the canopy as ground (worst case). For serious work under canopy, use LiDAR. The LiDAR-vs-photogrammetry decision is upstream of tool choice.
Common Failure Modes
1. Step or cloth resolution smaller than the largest building. Roofs become ground. Fix: scale up past the longest continuous rooftop on site.
2. Running classification on a geographic-CRS cloud. ArcGIS Pro throws a clean error. LAStools and CloudCompare quietly produce garbage. Project to a planar CRS — UTM zone or State Plane — before classifying.
3. Using PTD or CSF defaults on photogrammetry noise. Drone photogrammetry has more low outliers than airborne LiDAR, and defaults are tuned for LiDAR. Tighten -spike in LAStools to 0.5–1.0 m. Lower CSF threshold to 0.3 m.
4. Skipping noise removal. A single outlier point below the true surface will anchor the ground surface too low in that neighborhood. Run lasnoise (LAStools) or Statistical Outlier Removal (CloudCompare) before classification.
5. Trusting a single pass without checkpoints. Overlay the classified ground over the unclassified cloud in a cross-section tool — CloudCompare sections, ArcGIS Pro profile view, or LASVIEW. Eyeball at least three cross-sections through buildings and vegetation before calling it done.
6. No ground-truth DEM for validation. If you have no surveyed GCPs or benchmarks held out from processing, you have no objective way to measure DTM accuracy. The numbers look good until a surveyor checks your work.
Validation Workflow
After classification, before handing off a DTM:
- Rasterize the ground class to a DEM at roughly 2× your desired GSD. Over-resolve, then smooth downstream.
- Sample at known checkpoints. Survey-grade GCPs held out from photogrammetry processing, or surveyor-provided benchmarks.
- Compute RMSE in the vertical axis across all checkpoints. Report this number on your deliverable.
- Cross-sections through buildings. If any roofline shows up in the DTM, the step or cloth resolution was too small.
- Cross-sections through vegetation. If the DTM is visibly lifted under forest, either vegetation was misclassified as ground or (more likely for photogrammetry) the ground points never existed.
Target vertical RMSE for drone photogrammetry DTMs in open terrain: under 4 in (0.10 m) with surveyed GCPs; 6 to 10 in (0.15 to 0.25 m) without GCPs on a consumer drone.
Decision Framework — Which Tool, When
Pick LAStools if:
- You need reproducibility across a team. Scripted commands live in version control.
- You process at scale — hundreds of files, automated pipeline.
- Speed matters. Overnight batch, client deadlines.
- Your budget allows EUR 1,500+ for a commercial license.
- Your team is comfortable with CLI.
Pick CloudCompare if:
- You are a freelancer or small shop and need a free solution.
- You want interactive inspection and manual correction.
- You already use CloudCompare for registration, alignment, or volume calcs.
- Your jobs are one-off, not batch pipelines.
- Your terrain has moderate relief and no sharp vertical steps.
Pick ArcGIS Pro if:
- You already pay for it — most commercial shops do.
- Your deliverable is ArcGIS-native: AGOL scene, feature service, or web map.
- You deliver to clients who operate in ArcGIS.
- You want the full downstream stack in one tool: classify, raster, contour, share.
- You need optional deep-learning classification (PointCNN) for complex scenes.
The real-world default for most small drone mapping shops: Start with CloudCompare. Upgrade to LAStools when batch scale or automation matters. Use ArcGIS Pro for classification only when you’re already living in the ArcGIS ecosystem for delivery.
The tool does not change the physics. A good classification on drone photogrammetry gets you vertical RMSE in the single-digit inches with GCPs, and roughly twice that without. All three tools get you into that range on appropriate terrain. None of them rescue a bad flight, a noisy cloud, or data from an environment where ground points never existed in the first place.
The real work happens upstream — in the flight design, the GCP deployment, and the photogrammetry processing that produced your point cloud. Ground classification is the last clean step before delivery. Make the decision about which tool fits your shop once, and the workflow afterwards takes care of itself.