Skip to content

DEM-based terrain-adjusted footprints #9

@NewGraphEnvironment

Description

@NewGraphEnvironment

Context

fly_footprint() assumes flat terrain beneath the aircraft. On slopes the true ground coverage differs — downhill slopes produce a larger actual footprint, uphill slopes a smaller one. In steep BC terrain this can be meaningful. This limitation is documented in fly_footprint(), fly_overlap(), and the vignette.

Enhancement

Allow users to provide a DEM to improve footprint accuracy.

Approach options (simplest first)

  1. Terrain-adjusted area — drape the flat footprint polygon onto the DEM and report actual ground surface area (larger than planimetric area on slopes). Doesn't change the footprint shape, just gives a better area estimate.

  2. Slope-adjusted footprint — compute average terrain slope under each footprint and stretch the rectangle accordingly. Assumes nadir (straight-down) camera, which is already our assumption.

  3. Ray-cast footprint — derive flying height from scale + focal length (altitude = focal_length * scale_num), project corner rays from the camera onto the DEM surface. Produces an irregular quadrilateral matching actual ground coverage. Most accurate but requires nadir assumption since camera tilt/orientation aren't in the BC catalogue.

Interface sketch

fly_footprint(centroids, dem = raster_or_path)
  • dem defaults to NULL (current flat-terrain behavior)
  • When provided, applies terrain correction
  • Would likely add terra to Suggests

Limitations

  • BC air photo catalogue doesn't include camera tilt, roll, or exact altitude — must assume nadir
  • DEM resolution matters: coarse DEMs (e.g. 30m CDEM) won't capture fine terrain detail
  • Flying height derived from reported scale assumes the scale was calculated at a reference elevation

Acceptance criteria

  • fly_footprint() accepts optional DEM
  • Flat-terrain behavior unchanged when no DEM provided
  • At minimum, terrain-adjusted area reported
  • Document which DEM sources work well (CDEM, BC TRIM, LiDAR)
  • Tests comparing flat vs terrain-adjusted footprints on sloped terrain

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions