90. Query: Get SatelliteImagery Data by Geometry

Fetch vegetation-index statistics for any ad-hoc geometry - no registered field boundary required. This endpoint computes summary stats for pixels inside your geometry while ignoring cloudy pixels. Currently supported on Sentinel2 (S2) and Landsat (L4/L5/L7/L8/L9) providers.

What you can do

  • Query vegetation indices for Point, MultiPoint, Polygon, and MultiPolygon geometries.

  • Choose imagery providers: S2, L4, L5, L7, L8, L9.

  • Get date-stamped results per acquisition with:

    • cloudfree - fraction of your geometry that’s cloud-free, range of values from 0 to 1, where 1 means fully cloud-free.

    • value - statistics for the selected index computed only on cloud-free pixels, includes min, max, avg, mdn, var, std.

Supported indices

EVI2, NDVI, RVI, LAI, OSAVI, SAVI, GNDVI, IPVI, GCI, WDRVI, RCI, SBI, MCARI1. Index definitions follow GeoPard’s vegetation index catalog used throughout the API.

Input parameters

Field
Type
Required
Notes

index

Enum (see above)

Vegetation index to compute.

providers

[Provider!]!

Any of S2, L4, L5, L7, L8, L9.

startDate

String (ISO8601)

Inclusive start, e.g. "2025-05-10T00:00:00.000Z".

endDate

String (ISO8601)

Exclusive end or inclusive end depending on schema; match your other GeoPard queries.

geojson

String

A stringified GeoJSON of type Point / MultiPoint / Polygon / MultiPolygon (WGS84 [lon, lat]). Remember to escape the quotes inside the string.

Performance guidance

  • For Polygon/MultiPolygon geometries, keep date ranges tight (~10–15 days) due to processing time.

  • Timeout: 30 s. Use fewer days and/or fewer providers if you hit the limit.

  • For Point/MultiPoint, larger ranges are usually fine (points are lightweight).

Response shape

graphqlCopyEdit{
  geojson              # echo of your input geometry (stringified)
  data: [
    {
      uuid             # raster scene id
      provider         # S2, L8, L9, ...
      acquisitionDate  # ISO8601
      cloudfree        # 0..1 fraction of cloud-free area
      value: {
        index          # e.g., NDVI
        min
        max
        avg
        mdn
        var
        std
      }
    }
  ]
}

Example 1: MultiPolygon with MCARI1 on S2/L8/L9 within a 5-day window

query GetSatelliteImageryDataByMultiPolygon {
  getSatelliteImageryDataByGeometry(
    input: {
      index: MCARI1                # set index here
      providers: [S2, L8, L9]      # satellite providers
      startDate: "2025-05-10T00:00:00.000Z"  # polygons: prefer 10–15 days; 30s timeout
      endDate:   "2025-05-15T00:00:00.000Z"
      geojson: "{\"type\": \"MultiPolygon\", \"coordinates\":[ [ [ [ 8.09058546, 50.21774961 ], [ 8.09291004, 50.21836077 ], [ 8.09328559, 50.21844893 ], [ 8.09341412, 50.21777585 ], [ 8.09342329, 50.21768228 ], [ 8.09342736, 50.21748691 ], [ 8.09342239, 50.21741988 ], [ 8.09331503, 50.2169872 ], [ 8.09327725, 50.21680672 ], [ 8.0932114, 50.21679383 ], [ 8.09307662, 50.216784 ], [ 8.09268795, 50.21672443 ], [ 8.09256905, 50.21670175 ], [ 8.09160986, 50.21647789 ], [ 8.09153097, 50.21647138 ], [ 8.09144745, 50.216479 ], [ 8.09128792, 50.21653615 ], [ 8.09124139, 50.21654808 ], [ 8.09119362, 50.21655407 ], [ 8.09085379, 50.21653536 ], [ 8.09039423, 50.21649463 ], [ 8.09006609, 50.21646137 ], [ 8.08994025, 50.21644261 ], [ 8.08956206, 50.21636986 ], [ 8.08937343, 50.21632184 ], [ 8.08881276, 50.21616093 ], [ 8.08860924, 50.21608589 ], [ 8.08848952, 50.21605007 ], [ 8.08841856, 50.21616403 ], [ 8.08836721, 50.2162167 ], [ 8.08830625, 50.21626762 ], [ 8.08801583, 50.21648103 ], [ 8.08783363, 50.21660479 ], [ 8.08757577, 50.21677569 ], [ 8.08741435, 50.21686857 ], [ 8.08769592, 50.21696741 ], [ 8.08853411, 50.21720846 ], [ 8.08965086, 50.2174967 ], [ 8.09058546, 50.21774961 ] ] ] ]}"
    }
  ) {
    geojson
    data {
      uuid
      provider
      acquisitionDate
      cloudfree     # 0..1
      value {       # stats computed on cloud-free pixels only
        index
        min
        max
        avg
        mdn
        var
        std
      }
    }
  }
}

Example 2: MultiPoint with NDVI on S2/L8/L9 over a 5-day window

query GetSatelliteImageryDataByMultiPoint {
  getSatelliteImageryDataByGeometry(
    input: {
      providers: [S2, L8, L9]
      index: NDVI
      startDate: "2025-05-10T00:00:00.000Z"   # points are lightweight; larger windows OK; 30s timeout
      endDate:   "2025-05-15T00:00:00.000Z"
      geojson: "{\"type\": \"MultiPoint\", \"coordinates\": [[8.088754, 50.216859],[8.092651, 50.216905],[ 8.090799, 50.217442]]}"
    }
  ) {
    geojson
    data {
      uuid
      provider
      acquisitionDate
      cloudfree
      value {
        index
        min
        max
        avg
        mdn
        var
        std
      }
    }
  }
}

Last updated

Was this helpful?