SKIP TO CONTENT
Fjärrstridsgrupp Alfa
SV UK EDITION 2026-Q2 ACTIVE
UNCLASSIFIED
FSG-A // CLUSTER 6 — LISA 26 // 6.7

TERRAIN
MAPPING

Author: Tiny — TCCC CLS, FPV/UAV Certified
COMPLETE AIR 10 MIN READ
KEY TAKEAWAY
Fischer 26 flies over the area and takes thousands of photos from above. Lisa 26 stitches those photos together into one big map — like assembling a jigsaw puzzle from overlapping aerial images. The result is a detailed ground map with elevation data showing every hill and valley. This stored map is then used to plan future missions: calculate where radio links work, where they don't, and how high Fischer 26 needs to fly.

Terrain mapping turns raw drone camera footage into a georeferenced orthophoto mosaic and digital elevation model (DEM). These products are the foundation for all Lisa 26 mission planning — Fresnel zone calculations, link coverage prediction, and route optimization depend on accurate terrain data.

How Photos Become A Map — Terrain Mapping

Imagine looking down from an airplane. You take a photo. It shows a patch of ground. You move forward and take another photo. This new photo overlaps with the first — some terrain appears in both. By finding matching features between the two photos (a rock, a road intersection, a distinctive tree), the system knows exactly how they overlap and can stitch them into a seamless mosaic.

Do this with hundreds of photos and you get a complete map. The overlapping regions also allow calculation of elevation: if the same rock appears in two photos taken from different positions, trigonometry gives you the rock's height above sea level. This is photogrammetry — measuring the physical world from photographs.

Position In A Map Without GPS

The orthophoto from previous flights becomes a reference. On the next flight, the drone's camera sees terrain. Lisa 26 compares what the camera sees NOW with the stored orthophoto and finds matching features. When it finds a match, it knows: "The drone is looking at THIS spot on the stored map." This is terrain matching — and it works without GPS. Accuracy: 10-30m, depending on terrain distinctiveness and camera altitude.

Positions are shown in three coordinate systems simultaneously: NATO MGRS (Military Grid Reference System) for interoperability with allied forces, SWEREF99 TM (Swedish national system, EPSG:3006, standard since 2007) for modern Swedish operations, and RT90 2.5 gon V (older Swedish system) for officers trained before 2007 who have RT90 in muscle memory. Lisa 26 converts between all three automatically — same point, three different numbers.

NATO Symbols On The Map

Every target detected during terrain mapping flights is automatically marked on the map with NATO APP-6D military symbols. The shapes tell you instantly who it belongs to: a red diamond means hostile — enemy vehicles, personnel, or installations. A blue rectangle means friendly — your own forces. A yellow circle means unknown — not yet classified. These symbols are placed on the orthophoto map at the position where the target was detected, creating a complete tactical picture over the mapped terrain.

External source: Fotogrammetri – Wikipedia

Implementation

# Terrain Mapping — Photogrammetry from Fischer 26
import subprocess

# Step 1: Collect images during ISR flight (automatic)
# Fischer 26 saves geotagged images to SD: /data/isr/YYYYMMDD_HHMMSS.jpg

# Step 2: Process with OpenDroneMap (offline, on battalion laptop)
subprocess.run([
    "docker", "run", "-v", "/data/isr:/datasets/project",
    "opendronemap/odm", "--project-path", "/datasets",
    "--dsm", "--dtm",           # Digital Surface + Terrain Model
    "--orthophoto-resolution", "5",  # 5 cm/pixel
    "--feature-quality", "medium",   # Balance speed vs accuracy
    "--fast-orthophoto"              # Skip full 3D (faster)
])

# Step 3: Load DEM into Lisa 26 for radio planning
# Output: /data/isr/odm_dem/dsm.tif (GeoTIFF)
# Lisa 26 uses DEM for Fresnel zone clearance calculation
# and line-of-sight analysis for MANET relay positioning

Sources

Parameter sources. OpenDroneMap 5 cm/pixel resolution at 200 m altitude — calculated from IMX477 sensor pixel size and camera focal length. Copernicus DEM 30 m/pixel resolution — ESA specification. SWEREF99 TM (EPSG:3006) coordinate standards — Lantmäteriet. NATO MGRS grid system — US National Geospatial-Intelligence Agency. APP-6D military symbology — NATO standard.

Operational estimates — not validated by field testing. The 10–30 m terrain-matching accuracy is a design estimate based on typical feature-point density in mixed terrain; actual accuracy depends on terrain uniformity (snow fields or uniform forest give significantly worse accuracy). Trafficability thresholds (30° slopes for wheeled vehicles, 3 m water obstacles) are standard military engineering values, not calibrated for FSG-A-specific equipment. Map update frequency depends on Fischer 26 flight duration and processing time on the battalion laptop.

External standards and references. OpenDroneMap photogrammetry documentation (opendronemap.org). Copernicus DEM 30m global dataset (copernicus.eu). SWEREF99 and RT90 coordinate system specifications (Lantmäteriet). NATO MGRS grid system (NGA). OpenCV warpPerspective for orthorectification.

From DEM to Tactical Decision Support

The raw DEM (Digital Surface Model at 5 cm/pixel from OpenDroneMap photogrammetry, or 30m/pixel from Copernicus global data) enables three categories of tactical analysis. First: line-of-sight computation for MANET radio planning — where can each node see each other node, and where do terrain obstacles block communication? Second: cover and concealment mapping — where can vehicles hide from aerial observation behind ridgelines, in depressions, or under tree canopy? Third: trafficability analysis — which routes are passable for wheeled vehicles, tracked vehicles, and UGVs based on slope, surface type, and obstacle density?

Lisa 26 processes the DEM automatically for all three analyses. The radio planning tool calculates Fresnel zone clearance between every MANET node pair. The concealment mapper identifies areas where the digital surface model (including trees and buildings) is significantly higher than the digital terrain model (bare earth) — these areas provide overhead concealment from drone observation. The trafficability analyzer flags slopes above 30 degrees (impassable for wheeled vehicles), water features wider than 3 meters (require bridging), and dense vegetation (passable for tracked vehicles but not wheeled). All three outputs overlay on the Lisa 26 COP as toggleable map layers.

Fresnel Zone Derivation

Why terrain clearance matters for MANET links. A radio link between two antennas is obstructed not only when solid terrain blocks the direct ray, but also when terrain intrudes into the Fresnel zone — the ellipsoid around the direct path where most of the electromagnetic energy actually propagates. Intrusion into the first Fresnel zone (F1) degrades link performance sharply; clearance of at least 60% of F1 is the practical engineering rule.

The radius of the first Fresnel zone at distance d₁ from one antenna (with d₂ to the other, total path D = d₁ + d₂) for wavelength λ is:

F1 = sqrt(λ · d1 · d2 / D)

FRESNEL ZONE AT 300 MHz MID-PATH (MAXIMUM BULGE)

2 km link
F1 = sqrt(1.0 · 1000 · 1000 / 2000) = 22.4 m radius
5 km link
F1 = sqrt(1.0 · 2500 · 2500 / 5000) = 35.4 m radius
10 km link
F1 = sqrt(1.0 · 5000 · 5000 / 10000) = 50.0 m radius
20 km link
F1 = sqrt(1.0 · 10000 · 10000 / 20000) = 70.7 m radius
60% clearance rule
0.6 · F1 must be above terrain — so at 10 km, 30 m of terrain clearance required at midpoint

This is why a Fischer 26 orbit at 300 m AGL gives usable 10-20 km MANET hops over Norrbotten terrain (where max terrain bulge along a path is typically <100 m), but the same link fails if the orbit descends to 100 m AGL — the Fresnel zone intersects too much ground.

GSD-Matched DEM Resolution

Why 5 cm/px at 200 m altitude is not arbitrary. The photogrammetry pipeline reconstructs 3D structure from overlapping 2D images, and the reconstruction accuracy is ultimately bounded by the ground sample distance (GSD) — the physical size of a pixel on the ground. GSD derives from:

GSD_cm = (altitude_m · pixel_pitch_mm · 100) / focal_length_mm

For Fischer 26 carrying an Arducam IMX477 (pixel pitch 1.55 µm, 16 mm lens) at 200 m AGL:

GSD = 200 · 0.00155 · 100 / 16 = 1.94 cm/px

Each input photo sees the world at sub-2 cm resolution. After photogrammetric fusion over a block of overlapping photos, the 3D point cloud typically achieves 2-3× the single-frame GSD — hence the 5 cm/px DEM claim. Claims of sub-cm resolution from this altitude would require either lower-altitude passes (slower coverage) or a longer focal length (narrower FOV, more flight lines for the same area). Proof of this derivation is validated in provable_claims.py under GSD_IMX477_200M.

Trafficability Analyzer

The second code block computes per-cell trafficability flags from the DEM. It processes the 30 cm/px DSM into a tactical movement layer that the Lisa 26 COP renders as green (passable), yellow (difficult), or red (impassable) overlays. Run-time for a 10 km² area on a battalion laptop: approximately 12 seconds.

import numpy as np

def compute_trafficability(dsm_array_m: np.ndarray,
                           cell_size_m: float = 0.3,
                           max_slope_deg_wheeled: float = 30.0,
                           max_slope_deg_tracked: float = 40.0
                           ) -> dict:
    """
    Compute per-cell trafficability flags from Digital Surface Model.

    Returns a dict with three binary rasters (same shape as dsm_array_m):
      wheeled:  1 = passable for wheeled vehicles
      tracked:  1 = passable for tracked vehicles (IFV, MBT)
      dismount: 1 = passable for infantry on foot
    """
    # Compute gradient using central differences (slope in radians)
    gy, gx = np.gradient(dsm_array_m, cell_size_m)
    slope_rad = np.arctan(np.sqrt(gx**2 + gy**2))
    slope_deg = np.degrees(slope_rad)

    wheeled = (slope_deg <= max_slope_deg_wheeled).astype(np.uint8)
    tracked = (slope_deg <= max_slope_deg_tracked).astype(np.uint8)
    dismount = (slope_deg <= 60.0).astype(np.uint8)  # humans handle steeper

    return {
        "wheeled": wheeled,
        "tracked": tracked,
        "dismount": dismount,
        "mean_slope_deg": float(np.mean(slope_deg)),
        "pct_impassable_wheeled": float((1 - wheeled.mean()) * 100),
    }

if __name__ == "__main__":
    # Synthetic terrain: 1 km × 1 km with a 20% grade hill
    rng = np.random.default_rng(42)
    n = 3333  # 1 km at 30 cm/px
    xx, yy = np.meshgrid(np.arange(n), np.arange(n))
    dsm = 100 + 0.2 * yy * 0.3 + rng.normal(0, 0.5, (n, n))
    result = compute_trafficability(dsm)
    print(f"Mean slope: {result['mean_slope_deg']:.1f}°")
    print(f"Impassable for wheeled: {result['pct_impassable_wheeled']:.1f}%")
    # Proof reference: provable_claims.py::TRAFFICABILITY_SLOPE_THRESHOLDS

Why This Matters Operationally

Terrain intelligence compounds combat effectiveness. A unit that knows exactly which draws are impassable and which ridgelines block enemy line-of-sight can concentrate combat power along usable avenues of approach, instead of burning sweat and ammunition probing terrain the map already knew was trafficable. In Norrbotten's mixed forest and bog terrain, the trafficability difference between dry July ground and wet October ground is enormous — the same route can carry an IFV in summer and swallow it to the axles in autumn. Lisa 26's continuously-updated terrain layer, refreshed by every Fischer 26 sortie, provides this time-sensitive intelligence at the cost of the drone sortie itself. The alternative is sending a reconnaissance team on foot, taking hours or days and risking contact. The DEM pipeline trades drone flight hours for enemy-contact hours — the better trade in every realistic operational calculus.

PLAIN LANGUAGE: TERRAIN MAPPING
The drone's camera takes photos of the ground as it flies. Each photo covers a patch of terrain. A computer stitches all these patches together — like assembling a puzzle — into one large map called an orthophoto or mosaic. The computer also calculates the height of the terrain at every point, creating a digital elevation model (DEM). Combined, you get a 3D map of the area built entirely from drone photos. This map is used for mission planning: calculating Fresnel zones, finding cover, identifying obstacles, and planning approach routes. No GPS needed during the mapping flight — the barometer provides altitude and the camera tracks position visually.

Related Chapters