Skip to content
LidarKit

What is a point cloud?

A list of places where something was found — and nothing at all about what lies between them.

A point cloud is a set of measured positions in three dimensions. Each point says: at this X, this Y and this Z, a surface was detected. Most points also carry attributes — how strongly the signal came back, which echo of its pulse it was, what somebody later decided it represents.

The definition is nearly trivial. What makes point clouds worth explaining is the negative space in it: there is no information about what lies between the points, and no stated relationship between one point and the next. A cloud is not a surface. It is evidence from which a surface can be inferred, and almost every difficulty in working with one traces back to that distinction.

What one point actually is

In a LAS file a point is a fixed-size binary record — between 20 and 38 bytes for the formats in everyday use, up to 67 for the waveform formats — laid end to end with every other point. There is no separator, no key, no per-point overhead. Reading point number 4,000,000 is a matter of multiplying by the record length and seeking there, which is why LAS files are fast to read and why the format has survived more than twenty years of data growth.

A typical record in point data record format 1 looks like this:

BytesFieldType
0–3X32-bit signed integer
4–7Y32-bit signed integer
8–11Z32-bit signed integer
12–13Intensity16-bit unsigned
14Return number, number of returns, scan direction, edge of flight linePacked bit fields
15Classification and flagsPacked bit fields
16Scan angle rankSigned byte
17User dataByte
18–19Point source ID16-bit unsigned
20–27GPS time64-bit double

Twenty-eight bytes. Every point in the file has exactly this shape.LAS point formats covers all eleven layouts and what each one adds.

Why the coordinates are integers

The single most surprising thing about a LAS file, for anyone who expects coordinates to be floating point, is that they are not. X, Y and Z are 32-bit integers, and the real-world coordinate is recovered with a scale and an offset stored once in the header:

real_x = (X × x_scale) + x_offset

There are two good reasons, and one important consequence.

Precision. A 32-bit float carries about seven significant decimal digits. A projected easting such as542318.274 already needs nine to hold a millimetre. Storing that as a float silently rounds it — and the error depends on how far the coordinate is from zero, so the same cloud is less precise in one projection than another. An integer with a scale factor gives exactly the same precision everywhere in the file, chosen deliberately by whoever wrote it.

Compression. Neighbouring points in a scan are close together, so their integer coordinates differ by small amounts. That is exactly the structure a compressor can exploit, and it is a large part of why LAZ reaches roughly a tenth of the original size losslessly. Floating-point coordinates, whose bit patterns change erratically for nearby values, compress far worse.

The consequence: the scale factor sets the resolution of the file, and the range of a 32-bit integer sets its extent. With a scale of 0.001 the coordinates span about ±2,147 km around the offset — ample. With a scale of 0.01, ten times that, but the file can then only express centimetres. Choosing a scale finer than the data warrants wastes compression; choosing one coarser than the survey's accuracy quietly throws measurements away. Both are visible in the header, which the LAS inspector reads without touching a single point.

Point cloud, raster, mesh

These three turn up constantly in the same workflows, and the differences between them decide which operations are cheap, which are lossy and which are impossible.

Point cloudRasterMesh
StructureIrregular positions, no connectivityRegular grid of cellsVertices joined into faces
CoverageGaps wherever nothing was measuredComplete over its extentContinuous over the surface
Multiple heights at one X,YYes — canopy, eaves and ground all presentNo — one value per cellOnly if the surface folds over itself
Per-element attributesMany, on every pointOne value, or one per bandUsually position and colour only
Size for a given areaLarge, driven by densitySmall and predictableBetween the two
Good forMeasurement, classification, deriving other thingsAnalysis, display, sharingVisualisation, volumes, physical models

The row that matters most is the third. A point cloud can hold several points directly above one another; a raster cannot.That single property is why a cloud can describe a tree canopy and the ground beneath it at once, and why turning it into an elevation raster forces a choice about which of those heights to keep — the choice that separates a DSM from a DTM.

Note also that converting a cloud to a raster is routine and lossy, and the reverse is not really possible. Rasterising discards the individual measurements and every attribute you did not grid. You can generate points from raster cells afterwards, but they are grid samples, not the original observations.

Density

Point density is points per unit of ground area, conventionally points per square metre. Its inverse, the average spacing, is often the more useful number: 4 points/m² is about one point every 50 cm, and 16 points/m² about one every 25 cm.

Density sets a hard limit on what the data can resolve. A kerb 15 cm wide is not reliably present in a cloud whose points are 50 cm apart — it may be caught by a few points, but it cannot be measured. Deriving a 10 cm raster from such a cloud produces a result that looks detailed and is mostly interpolation. As a rough rule, a derived grid cell should be large enough to contain at least a few points.

Real density is never uniform, for reasons worth recognising:

  • Overlap. Adjacent flight lines or scan positions overlap by design, so those strips have double density or more.
  • Range. A terrestrial scanner sweeps at a constant angular step, so points spread apart with distance. Density near the tripod can be thousands of times what it is at the far wall.
  • Surface angle. A beam striking a slope obliquely spreads its footprint over more ground.
  • Absorption. Water and very dark surfaces return little or nothing, so they appear as holes rather than as flat areas.

Because of this, a single average density for a whole file can be misleading — it is a useful headline number and a poor description of any particular spot. Thestatistics panel in the viewerreports density over the bounding box alongside the distributions that explain it;point cloud statistics goes through how each is defined.

Where point clouds come from

LiDAR is the most common source in geospatial work, but not the only one, and the differences show up in the data:

  • LiDAR. Direct range measurement. Produces return numbers and intensity, and can see through gaps in vegetation to the ground beneath.
  • Photogrammetry. Points reconstructed from overlapping photographs. Carries good RGB colour and no return information at all — every point is whatever the camera could see, so there is nothing under a canopy. This is why photogrammetric clouds need adifferent classification approachfrom airborne LiDAR.
  • Depth and structured-light sensors. Short range, high density, typically indoors.
  • Sonar. The same idea underwater, with sound.

A cloud from any of these can live in a LAS file, and the format cannot tell you which it was. The give-away is in the data: if every point is return 1 of 1, or the return fields are all zero, it is almost certainly not from a ranging LiDAR sensor.

What you can do with one

Directly: measure between points, take sections and profiles, compare two epochs to find change, and classify points into ground, vegetation and buildings. All of these work on the cloud as it stands.

Indirectly, by deriving something else: an elevation raster, a contour set, a mesh, a building footprint, a canopy height model. These are conversions, and each one discards information the cloud held. That is usually the right trade — a 3 GB cloud becomes a 20 MB raster that every GIS can open — but it is worth knowing it is a one-way door, and worth keeping the cloud.

Open a point cloud in your browserto look at one directly, orinspect the header to see the scale, offset, extent and point count before committing to a workflow.

Size, and why compression is not optional

Point cloud file sizes are unusually predictable: record size times point count, plus a header of a few hundred bytes. No content-dependent variation, no surprises.

PointsFormat 1 (28 bytes)Format 3 (34 bytes)Roughly, as LAZ
1 million28 MB34 MB3–4 MB
10 million280 MB340 MB30–40 MB
100 million2.8 GB3.4 GB300–400 MB
1 billion28 GB34 GB3–4 GB

The LAZ column is approximate — the real ratio depends on point ordering and how much of each attribute varies — but a tenth is the usual neighbourhood, and it is lossless: converting back produces the original bytes. LAS vs LAZ covers the trade-off, and you can compress a file here to see the real ratio for your own data.

Common mistakes

  • Deriving a grid finer than the density supports. The output looks more detailed and contains no more information.
  • Quoting one density figure for a whole survey. True on average, wrong nearly everywhere.
  • Treating classification as measurement. Coordinates were measured. Classes were decided, usually by an algorithm.
  • Discarding the cloud after making a raster. The raster cannot be turned back into it.
  • Assuming empty means flat. A hole in a cloud usually means water, a dark surface, or an occlusion — not level ground.

Frequently asked questions

What is a point cloud?
A set of measured positions in three dimensions, each usually carrying extra attributes such as intensity, classification or colour. It is a record of where surfaces were found, with no information about what lies between the points and no explicit connection between them — which is precisely what distinguishes it from a mesh or a raster.
How is a single point stored in a LAS file?
As a fixed-size binary record, most commonly 20 to 36 bytes depending on the point format. The X, Y and Z coordinates are 32-bit signed integers, not floating-point numbers; the real coordinate is recovered by multiplying by a scale factor and adding an offset, both of which live once in the file header rather than on every point.
Why does LAS store coordinates as integers?
For precision and size. A 32-bit float has about seven significant digits, which is not enough to express a projected coordinate such as 542318.274 to the millimetre. An integer with a scale factor gives uniform precision everywhere in the file at four bytes per axis, and it also compresses far better, since neighbouring points differ by small amounts.
What is point density?
The number of points per unit of ground area, usually quoted as points per square metre. It is often more intuitive as its inverse, the average spacing between points: 4 points per square metre is roughly one point every 50 cm. Density determines the smallest feature the data can resolve, so it sets a hard ceiling on the resolution of anything derived from it.
How is a point cloud different from a raster?
A raster stores one value per cell on a regular grid, covering its extent completely. A point cloud stores irregularly positioned measurements with gaps between them, can hold several points at the same X and Y at different heights, and carries per-point attributes. Converting a cloud to a raster is normal and lossy; the reverse recovers only the grid, never the original measurements.
How is a point cloud different from a mesh?
A mesh has explicit connectivity — vertices joined into triangles that define a continuous surface. A point cloud has no connectivity at all, only positions. Meshing a cloud means inferring which points belong to the same surface, which requires assumptions and is where most of the difficulty lies.
How big does a point cloud get?
Uncompressed LAS is simply the point count times the record size, so 100 million points in a 28-byte format is about 2.8 GB regardless of content. LAZ compression typically brings that to roughly a tenth. This arithmetic is exact and worth doing before a project rather than after, because point clouds are one of the few data types where the file size is entirely predictable in advance.