Drone Photogrammetry GSD & Mission Planner · Schema

Raw schema.

Same JSON the GET /v1/drones-uav/photogrammetry-gsd-calculator/schema endpoint returns — formatted for reading. Use it to codegen typed clients or document the contract.

photogrammetry-gsd-calculator.schema.json
{
  "tool": "photogrammetry-gsd-calculator",
  "domain": "drones-uav",
  "version": "1.0.0",
  "name": "Drone Photogrammetry GSD & Mission Planner",
  "description": "Compute ground sample distance, ground footprint, flight-line spacing, trigger interval and motion-blur speed limit for drone mapping missions. Add an area and battery flight time to get total image count, flight lines, mission duration, battery swaps and SD card size.",
  "standard": null,
  "inputs": [
    {
      "key": "sensor_width_mm",
      "label": "Sensor Width",
      "required": true,
      "unit": "mm",
      "help": "Physical sensor width. Common: Mavic 3 / M3E Hasselblad 17.3, P4 RTK 13.2, M3 Pro tele 11.4, Mini 3 9.6, Mavic 2 Pro Hasselblad 13.2, full-frame 36.",
      "type": "number",
      "min": 3,
      "max": 60,
      "step": 0.1,
      "default": 17.3
    },
    {
      "key": "sensor_height_mm",
      "label": "Sensor Height",
      "required": true,
      "unit": "mm",
      "help": "Physical sensor height. 4:3 sensors: width × 0.75. 3:2 sensors: width × 0.667.",
      "type": "number",
      "min": 2,
      "max": 45,
      "step": 0.1,
      "default": 13
    },
    {
      "key": "focal_length_mm",
      "label": "Focal Length",
      "required": true,
      "unit": "mm",
      "help": "Actual lens focal length, NOT the 35-mm equivalent. M3E 12.29, P4 RTK 8.8, Mini 3 6.7, Mavic 2 Pro 10.26.",
      "type": "number",
      "min": 1,
      "max": 200,
      "step": 0.1,
      "default": 12.29
    },
    {
      "key": "image_width_px",
      "label": "Image Width",
      "required": true,
      "unit": "px",
      "type": "integer",
      "min": 640,
      "max": 20000,
      "step": 1,
      "default": 5280
    },
    {
      "key": "image_height_px",
      "label": "Image Height",
      "required": true,
      "unit": "px",
      "type": "integer",
      "min": 480,
      "max": 20000,
      "step": 1,
      "default": 3956
    },
    {
      "key": "flight_altitude_m",
      "label": "Flight Altitude (AGL)",
      "required": true,
      "unit": "m",
      "help": "Above ground level. Lower altitude = finer GSD but more flight lines.",
      "type": "number",
      "min": 5,
      "max": 500,
      "step": 1,
      "default": 100
    },
    {
      "key": "forward_overlap_pct",
      "label": "Forward Overlap",
      "required": true,
      "unit": "%",
      "help": "Overlap between successive images along the flight line. 80% is standard for orthomosaics; 85–90% for vegetation or 3D models.",
      "type": "number",
      "min": 50,
      "max": 95,
      "step": 5,
      "default": 80
    },
    {
      "key": "side_overlap_pct",
      "label": "Side Overlap",
      "required": true,
      "unit": "%",
      "help": "Overlap between adjacent flight lines. 70% is standard; 80%+ for tall structures and vegetation.",
      "type": "number",
      "min": 50,
      "max": 95,
      "step": 5,
      "default": 70
    },
    {
      "key": "ground_speed_ms",
      "label": "Ground Speed",
      "required": true,
      "unit": "m/s",
      "help": "Cruise speed during image capture. 5 m/s is typical for mapping; faster speeds risk motion blur and triggering misses.",
      "type": "number",
      "min": 1,
      "max": 30,
      "step": 0.5,
      "default": 5
    },
    {
      "key": "shutter_speed_s",
      "label": "Shutter Speed",
      "required": true,
      "unit": "s",
      "help": "Camera shutter speed. 1/1000 s = 0.001. Faster shutter allows higher ground speed without motion blur.",
      "type": "number",
      "min": 0.0001,
      "max": 0.1,
      "step": 0.0001,
      "default": 0.001
    },
    {
      "key": "area_hectares",
      "label": "Survey Area",
      "unit": "ha",
      "help": "Optional. Add to get total image count, flight lines, mission time and SD card size. 1 ha = 10,000 m². 1 acre ≈ 0.405 ha.",
      "type": "number",
      "min": 0,
      "max": 100000,
      "step": 0.1,
      "default": 10
    },
    {
      "key": "battery_flight_time_min",
      "label": "Battery Flight Time",
      "unit": "min",
      "help": "Per-battery usable mapping time. Mavic 3 Enterprise ~35, P4 RTK ~27, Mini 3 ~30. Used to compute battery swaps.",
      "type": "number",
      "min": 1,
      "max": 120,
      "step": 1,
      "default": 35
    },
    {
      "key": "image_size_mb",
      "label": "Image Size",
      "unit": "MB",
      "help": "Approximate per-image file size. RAW DNG ~30–40, large JPEG ~10–15.",
      "type": "number",
      "min": 0.5,
      "max": 200,
      "step": 0.5,
      "default": 12
    }
  ],
  "outputs": [
    {
      "key": "gsd_cm_per_pixel",
      "label": "Ground Sample Distance",
      "type": "number",
      "unit": "cm/px",
      "precision": 2
    },
    {
      "key": "footprint_width_m",
      "label": "Footprint Width",
      "type": "number",
      "unit": "m",
      "precision": 1
    },
    {
      "key": "footprint_height_m",
      "label": "Footprint Height",
      "type": "number",
      "unit": "m",
      "precision": 1
    },
    {
      "key": "flight_line_spacing_m",
      "label": "Flight Line Spacing",
      "type": "number",
      "unit": "m",
      "precision": 1
    },
    {
      "key": "forward_photo_spacing_m",
      "label": "Photo Spacing (along line)",
      "type": "number",
      "unit": "m",
      "precision": 1
    },
    {
      "key": "trigger_interval_s",
      "label": "Trigger Interval",
      "type": "number",
      "unit": "s",
      "precision": 2
    },
    {
      "key": "max_speed_for_blur_ms",
      "label": "Max Speed (≤0.5 px blur)",
      "type": "number",
      "unit": "m/s",
      "precision": 2
    },
    {
      "key": "motion_blur_px",
      "label": "Motion Blur at Current Speed",
      "type": "number",
      "unit": "px",
      "precision": 2
    },
    {
      "key": "images_required",
      "label": "Total Images",
      "type": "integer",
      "unit": ""
    },
    {
      "key": "flight_lines",
      "label": "Flight Lines",
      "type": "integer",
      "unit": ""
    },
    {
      "key": "mission_time_min",
      "label": "Mission Time",
      "type": "number",
      "unit": "min",
      "precision": 1
    },
    {
      "key": "battery_swaps_needed",
      "label": "Battery Swaps",
      "type": "integer",
      "unit": ""
    },
    {
      "key": "sd_card_size_gb",
      "label": "SD Card Needed",
      "type": "number",
      "unit": "GB",
      "precision": 1
    },
    {
      "key": "blur_warning",
      "label": "Quality Warning",
      "type": "string"
    }
  ],
  "endpoint": "/v1/drones-uav/photogrammetry-gsd-calculator"
}