Regulatory / ESG

    Environmental Compliance Monitoring

    Verify environmental commitments with satellite evidence, not self-reporting.

    Up to 5 years historical
    Baseline window
    Configurable (low/medium/high)
    Detection sensitivity
    JSON with timestamped evidence
    Reporting format
    Yes
    Global coverage

    The Problem

    Regulators, ESG analysts, and lenders need verifiable evidence that environmental commitments are being honored, conservation covenants, mining rehabilitation plans, no-clearance buffer zones, but self-reported compliance has proven unreliable. Physical site inspections are expensive, slow, and cover only a small sample of regulated sites. Existing monitoring contracts are complex and don't integrate with modern data pipelines.

    How Satalyse Solves It

    Satalyse's Anomaly Detection endpoint compares current satellite-derived vegetation metrics against a historical baseline for the same location and season, flagging statistically significant departures. This catches unauthorized clearing, new impervious surfaces, and drainage disruption without requiring GIS expertise. Pair with Temporal Analysis to generate a time-stamped evidence trail suitable for regulatory reporting.

    Anomaly Detection
    POST /api/v1/satellite/detect-anomalies
    Flags departures from expected vegetation cover, moisture, or surface reflectance
    Temporal Analysis
    POST /api/v1/satellite/analyze-temporal-trends
    Generates time-stamped compliance evidence and trend analysis for reporting

    Code Example

    environmental-compliance-monitoring.py
    REQUEST
    1"color:#c084fc">import requests
    2
    3"color:#4b5563"># Monitor conservation covenant compliance on a protected parcel
    4response = requests.post(
    5 "https://api.satalyse.dev/api/v1/satellite/detect-anomalies",
    6 headers={"Authorization": "Bearer sat_sk_live_..."},
    7 json={
    8 "geometry": {
    9 "type": "Polygon",
    10 "coord">inates": [[
    11 [25.841, -24.653], [25.867, -24.653],
    12 [25.867, -24.631], [25.841, -24.631],
    13 [25.841, -24.653]
    14 ]]
    15 },
    16 "basel">ine_period_start": "2019-11-01",
    17 "basel">ine_period_end": "2023-11-01",
    18 "current_period_start": "2024-06-01",
    19 "current_period_end": "2024-11-01",
    20 "anomaly_types": ["vegetation_stress", "development"],
    21 "anomaly_sensitivity": "high"
    22 }
    23)
    24
    25data = response.json()
    26detected = data["anomalies_detected"]
    27"color:#c084fc">print(f"Anomalies found: {detected['count']}")
    28"color:#c084fc">for a "color:#c084fc">in detected["anomalies"]:
    29 "color:#c084fc">print(f" - {a['type']}: severity {a['severity']}, area {a['affected_area_km2']} km²")
    200 OKRESPONSE
    {
      "request_id": "req_env001",
      "status": "success",
      "timestamp": "2025-01-15T12:00:00Z",
      "baseline_summary": {
        "period": "2019-11-01 to 2023-11-01",
        "avg_NDVI": 0.68,
        "avg_temperature": 24.5,
        "avg_water_presence": 0.15,
        "typical_range": "normal"
      },
      "current_summary": {
        "period": "2024-06-01 to 2024-11-01",
        "avg_NDVI": 0.31,
        "avg_temperature": 27.8,
        "avg_water_presence": 0.04,
        "status": "anomalous"
      },
      "anomalies_detected": {
        "count": 1,
        "high_severity": 1,
        "anomalies": [
          {
            "id": "anomaly_1",
            "type": "vegetation_stress",
            "severity": "high",
            "confidence": 0.87,
            "affected_area_km2": 0.41,
            "deviation_from_baseline": -0.37,
            "likely_causes": ["land clearing"],
            "recommended_action": "Immediate field inspection"
          }
        ]
      },
      "api_metadata": { "version": "2.0", "execution_time_ms": 2900, "cost_credits": 32, "cache_hit": false }
    }

    Ready to try it?

    Test this use case in the interactive playground. Free tier, no credit card needed.

    Related Use Cases

    Relevant locations