Skip to content

Specialist format guide

LAS and LAZ Point Cloud Header Review: Check Scale, Records, and CRS Evidence

Review LAS and LAZ signatures, versions, point formats, scales, offsets, counts, variable-length records, and CRS evidence before reading coordinates.

A point-cloud file can have a familiar extension while its header still leaves units, point layout, or coordinate interpretation unresolved. Start with the signature and version, then compare header counts, point data record format and length, scale and offset values, bounds, variable-length records, and CRS metadata. LAZ adds compression and chunk behavior to the delivery boundary. This guide is a structural worksheet, not a positional-accuracy report, survey certification, privacy decision, or permission claim.

Updated

On this page

Confirm the file boundary before parsing points

Record a neutral artifact ID, digest, file extension, file size, and whether the first bytes identify the expected LAS family. Then record file source and compression state separately. A .las or .laz suffix is a hint, not a parsed header. The American Society for Photogrammetry and Remote Sensing, (opens in a new tab) header includes a public header block and point data records; the Open Geospatial Consortium, (opens in a new tab) announcement describes LAZ as lossless compression of point-cloud data rather than a different coordinate system.

Confirm the file boundary before parsing points (table)
Boundary fieldRecordStop if
SignatureObserved magic value and byte offsetSuffix is the only evidence
VersionMajor and minor versionReader silently upgrades or downgrades it
Header sizeDeclared size and observed point-data offsetOffsets overlap or leave an unexplained gap
CompressionLAS, LAZ, or unknownCompression is inferred from a filename only
File identityNeutral ID and digestA derivative cannot be matched to its source

Preserve the original header snapshot and the normalized report. If decoding software repairs a truncated or contradictory header, report the repair as reader behavior and do not replace the source evidence with the repaired values.

Match point format, length, and count

The point data record format identifies the fields available per point, while the point record length gives the byte width. For an uncompressed .las file only, after accounting for the public header, VLRs, EVLRs, and point-data offset, compare the declared point count multiplied by record length with the available uncompressed point-data range. That bounded byte-span check is structural evidence, not proof that every point is valid or that the file covers an intended area. Do not apply that multiplication to a compressed .laz payload; use counts reported by decoding software plus documented chunk or seek metadata instead, and retain the software version.

Match point format, length, and count (table)
Header observationWhat it supportsWhat remains open
Point data record formatDeclared field layoutWhether producer populated fields correctly
Point record lengthExpected byte strideWhether extension bytes have meaning
Uncompressed LAS byte spanCount × record length after header, VLR, and EVLR accountingApplying byte arithmetic to compressed LAZ or skipping records
Legacy point countCount in the header fieldWhether extended count is also present
Extended point countLarge-file count where declaredWhether a reader selected the right field
Return and classification fieldsAvailable point attributesWhether values are semantically trustworthy
Extra bytesNamed or unknown extensionsWhether an application can decode them

Synthetic header row

Match point format, length, and count code example, JSON
{
  "artifact": "fixture-point-cloud-01",
  "version": "1.4",
  "point_format": 6,
  "record_length": "fixture-declared",
  "point_count": "fixture-declared",
  "decision": "compare before decode"
}

Do not paste real coordinates or identifiers into a public worksheet. A synthetic header row is enough to exercise the comparison logic. If the header and file length disagree, hold the file before sampling and retain the contradiction as an evidence item.

Keep integer coordinates, scale, offset, and bounds together

LAS coordinates are stored through integer fields plus scale and offset values. Record the raw integer domain, scale, offset, and reported minimum and maximum for each axis. A display coordinate is a derived value, not a replacement for the header fields. A plausible range can still belong to the wrong CRS or a transformed copy.

Keep integer coordinates, scale, offset, and bounds together (table)
Axis evidenceRecordDo not infer
Raw integer rangeMinimum and maximum as storedThat an integer value is a meter
ScaleX, Y, Z typed valuesThat equal scale means equal uncertainty
OffsetX, Y, Z typed valuesThat offset identifies a datum
Header boundsReported min and maxThat bounds prove all points are inside them
CRS recordsVLR or EVLR IDs, length, and payload presenceThat a missing CRS means WGS84
UnitsDeclared or unknownThat decimal places prove precision

The Open Geospatial Consortium, (opens in a new tab) standard is an exchange contract, not a guarantee that a source producer filled every optional field correctly. Record a disagreement between calculated bounds and header bounds, and do not clip points to make the ranges agree. Keep source and transformed coordinates in separate artifacts.

Review VLR, EVLR, and LAZ evidence separately

Variable Length Records and Extended Variable Length Records can carry CRS descriptions, waveform information, extra bytes, or producer-specific metadata. Record user ID, record ID, payload length, location, and a redacted summary. Do not treat a CRS record as a positional-accuracy certificate. For LAZ, record the decoding software, compression mode, point count reported before and after decoding, and whether chunk or seek behavior is documented for the reader.

Review VLR, EVLR, and LAZ evidence separately (table)
FindingDecisionNext action
Known CRS record and matching scaleConditional continueCompare axis, units, and producer context
Multiple CRS records disagreeHoldAsk which record is authoritative
Unknown VLR or EVLRPreserve unknownClassify without copying payload data
LAZ count from decoding software differsHoldCheck software version and chunk boundary
Point count is zeroEmpty artifactRecord empty state, not missing evidence
Header metadata contains sensitive labelsRestricted reportRedact values and retain field names only

The Open Geospatial Consortium, (opens in a new tab) announcement describes LAZ as lossless compression, which is a statement about the compression design. It does not establish that a particular decoding implementation, source, or derivative has preserved every business field. Keep compression verification and data-quality review as different findings.

Use stop conditions before a qualified next step

Stop conditions

  • Stop if the signature, version, header size, or point-data offset is missing or contradictory.
  • Stop if uncompressed LAS point format, record length, counts, or the accounted point-data range disagree, including legacy and extended count fields.
  • Stop if LAZ review relies on point-count × record-length arithmetic instead of counts from decoding software and chunk or seek metadata.
  • Stop if scale, offset, units, bounds, or CRS records cannot be reconciled without a reader assumption.
  • Stop if LAZ decoding changes the reported structural counts or decoding software cannot explain its boundary.
  • Stop before sampling precise coordinates when the handling boundary or owner authority is unknown.

Pair this guide with the data provenance log for source and transformation history and the data card template for collection context. A header report can document structure without claiming survey accuracy, privacy clearance, or sharing permission.

For a supported non-health collection, after the owner has authority to describe the scope and a controlled metadata packet, the qualified appraisal request path may be a preparation step. It does not read LAS or LAZ files, decode points, assess positional accuracy, create a quote, match a buyer, issue a legal opinion, or grant a license.

Sources

  1. American Society for Photogrammetry and Remote Sensing: LAS Specification 1.4 Revision 15 (opens in a new tab)
  2. Open Geospatial Consortium: LAS Community Standard (opens in a new tab)
  3. Open Geospatial Consortium: OGC Announces Publication of the LAZ 1.4 Community Standard (opens in a new tab)

Use the appraisal path after the point-cloud header packet is organized.

It does not decode LAS or LAZ points, assess positional accuracy, create a quote, match a buyer, or grant a license.