Skip to content

Specialist format guide

GeoTIFF CRS and NoData Review: Check Spatial Metadata Before Reading Pixels

Review GeoTIFF keys, raster transforms, units, axis assumptions, and NoData handling before interpreting an image. Keep metadata facts separate from positional accuracy, privacy, and rights questions.

A GeoTIFF can open in a viewer while its coordinate reference system, raster-to-model transform, or NoData convention remains ambiguous. Treat the TIFF raster, GeoTIFF keys, transform tags, and missing-pixel declaration as separate evidence. Record the exact source, tag values, and unresolved assumptions before reading pixels. Sources without a verified publication date are shown with documentation retrieval dates checked 22 October 2026; their original publication dates are not established. This guide is a bounded file-format review, not a map, coordinate transformer, accuracy assessment, privacy decision, or permission claim.

Updated

On this page

Identify the raster, tags, and GeoKeys first

Start with a file identity and a metadata snapshot. Record the path or neutral artifact identifier, digest, image width and height, band count, sample type, bit depth, compression, tiling, and overview state. Then record the TIFF tags and GeoKeys that describe georeferencing. The Open Geospatial Consortium, (opens in a new tab) standard treats GeoTIFF metadata as an association with TIFF raster data, so a valid image is not by itself evidence that the georeferencing is complete.

Identify the raster, tags, and GeoKeys first (table)
Field groupRecord exactlyDo not infer
Image identityNeutral ID, digest, dimensions, bands, sample typeThat a filename names the CRS
GeoKey directoryVersion, key IDs, declared values, citationsThat an unrecognized key is harmless
Model tie pointPixel and model coordinates, count, unitsThat one point proves the whole transform
Pixel scaleX, Y, Z values and signThat scale alone handles rotation
Model transformMatrix values and presenceThat a reader used the intended matrix
CRS identityProjected, geographic, vertical, or unknownThat an EPSG-like number is valid without context

Keep the raw tag representation beside a normalized worksheet value. A parser may expose a friendly CRS name while hiding whether it came from a key directory, a citation, or a reader fallback. The review should make that provenance visible and preserve unknown or user-defined keys instead of deleting them.

Compare CRS identity, transform, and units

A CRS label and a raster-to-model transform answer different questions. The CRS identifies the coordinate system context. The transform maps pixel locations into model coordinates. Units describe the numeric coordinate values. Compare all three, including axis order and pixel-is-area versus pixel-is-point conventions when the producer documents them. Do not repair a disagreement by silently swapping axes or shifting half a pixel.

Compare CRS identity, transform, and units (table)
ObservationConditional stateNext action
CRS keys and transform agreeMetadata internally consistentRetain values and verify coverage boundary
CRS exists but transform is absentSpatial placement incompleteHold until transform rule is documented
Tie points exist without scalePartial transform evidenceCheck for matrix or producer convention
Scale and matrix both appearPotential duplicate representationsCompare numerically and record reader choice
Units are absent or conflictCoordinate values ambiguousAsk source owner; do not invent units
User-defined CRS appearsNon-standard identityPreserve citation and request definition

Synthetic metadata worksheet row

Compare CRS identity, transform, and units code example, JSON
{
  "artifact": "fixture-geotiff-01",
  "crs": "EPSG:0000 (fixture label, unresolved)",
  "transform_evidence": "ModelTiepoint + ModelPixelScale",
  "units": "unknown",
  "axis_order": "not asserted",
  "decision": "hold"
}

The fixture is intentionally unresolved. It demonstrates a useful report row without pretending that a plausible code or transform establishes a real location. Keep the source values and the reviewer decision separate.

Define NoData without changing valid pixels

NoData is a representation rule, not a universal number. Record whether it is explicit, band-specific, stored in a TIFF tag, carried in driver auxiliary metadata, or not available. The GDAL, (opens in a new tab) documents driver behavior in which a NoData value may be stored in a PAM .aux.xml file for some profiles. Treat the sidecar as part of the input boundary, not as an incidental file that can be ignored.

Define NoData without changing valid pixels (table)
QuestionWorksheet valueStop if
NoData sourceTag, sidecar, per-band rule, or unknownReader fallback is the only evidence
NoData valueExact typed value or unavailableInteger was coerced to floating point
Band scopeAll bands or named bandsOne band disagrees without explanation
Valid rangeProducer rule and observed metadataNoData sits inside valid observations with no rule
Mask behaviorMask, alpha, or no maskDisplay transparency is treated as data absence
Scale and offsetPacked or unpacked domainSentinel is compared after the wrong transform

Do not replace NoData with zero, a blank, or a mean value during review. Preserve the typed sentinel and the domain in which it is defined. A pixel that is not observed may be different from a pixel whose value is legitimately zero. If a derivative normalizes the representation, record the transformation and retain the source convention in the worksheet.

Use bounded pixel checks, not visual confidence

After metadata is recorded, a controlled fixture can test whether a reader preserves dimensions, band types, transform values, and NoData. Use synthetic values that include zero, a plausible measurement, the exact sentinel, and an out-of-range value. Report which reader and version produced the observation. A rendered map is a useful display artifact, but it is not a proof that every pixel is correctly positioned or that the full collection is covered.

Use bounded pixel checks, not visual confidence (table)
CheckEvidence to retainInterpretation boundary
DimensionsWidth, height, band countShape only, not coverage
Type preservationDeclared and observed sample typesStorage type, not measurement accuracy
Transform round tripSynthetic pixel and reported model coordinateReader behavior for that fixture
NoData round tripSentinel before and after readNoData semantics for that reader
Sidecar inclusionManifest entry and digestInput boundary, not permission

Stop conditions

  • Stop if CRS identity is absent, ambiguous, or contradicted by the transform.
  • Stop if transform tags conflict and the producer rule is unknown.
  • Stop if NoData is undocumented, band scope is unclear, or the sentinel lies inside a valid range without an explanation.
  • Stop if units, axis order, or vertical context cannot be separated from reader assumptions.
  • Stop before inspecting precise locations when a privacy boundary or owner authority is not documented.

Keep the spatial next step qualified

Record source, transform, units, NoData, and unresolved questions in a neutral metadata packet. Pair this guide with the data provenance log for source and transformation history and data card template for collection context. Neither worksheet decides whether imagery may be shared or whether a coordinate is accurate.

For a supported non-health collection, after the owner has authority to describe the scope and a controlled review packet, the qualified appraisal request path may be a preparation step. It does not read GeoTIFF files, validate CRS, transform coordinates, assess positional accuracy, create a quote, match a buyer, issue a legal opinion, or grant a license. Do not upload precise imagery merely to test whether the metadata is understandable.

Takeaways

  • Retain the raster identity, GeoKeys, transform evidence, units, and reader assumptions as separate fields.
  • Treat NoData as a typed, scoped representation rule and include documented sidecars in the manifest.
  • Use synthetic pixel fixtures before exposing precise imagery or private locations.
  • Hold any interpretation when CRS, transform, units, or NoData boundaries disagree.

Sources

  1. Open Geospatial Consortium: OGC GeoTIFF Standard 1.1 (opens in a new tab)
  2. GDAL: GTiff / GeoTIFF driver documentation (opens in a new tab)

Use the appraisal path after the raster metadata packet is organized.

It does not read GeoTIFF files, validate CRS, assess positional accuracy, create a quote, match a buyer, or grant a license.