Navigated to Monitoring Environmental Damage in Conflict Zones: OSINT…
    Methodology for researchers and humanitarian analysts

    Monitoring environmental damage in conflict zones

    A reproducible workflow for documenting damage in the environment caused by armed conflict, using open satellite imagery, ACLED events, and humanitarian datasets.

    OSINT + ACLED + HDX
    For researchers and journalists

    TL;DR

    Monitoring damage in the environment in conflict zones combines free Copernicus Sentinel imagery, change indices like dNBR and NDVI, and ACLED conflict-event overlays, cross-checked against NASA FIRMS, Global Forest Watch, and named local reporting so each finding pairs a satellite signal with independent evidence, clear methodology, and Berkeley Protocol protections for displaced people.

    Why this guide exists

    Armed conflict degrades soils, water, forests, and air long after the fighting stops. Direct access to conflict zones is usually restricted, so open satellite imagery and public humanitarian datasets carry most of the documentation load. This guide packages the methodology used across the Sudan, Ukraine, and Yemen environmental briefs on Humanity Centered Data into a workflow small teams can reuse.

    It complements the Environmental OSINT guide (which focuses on the Sentinel Hub tooling) and the ACLED API tutorial (which focuses on pulling conflict events). Here the focus is the evidence standard: how to turn a change raster into a defensible published claim.

    Six-step monitoring workflow

    1. Step 1.Define the environmental harm you are documenting

      Name the specific damage in the environment you are testing for: cratered farmland, oil-facility fires, contaminated aquifers, deforested buffer zones around IDP settlements. A concrete claim keeps the evidence chain auditable.

    2. Step 2.Anchor the claim to a place and a time

      Draw the smallest bounding box that covers the incident and pick a pre-event and post-event window. Same-season pairs (dry-to-dry, wet-to-wet) prevent seasonal shifts from being misread as war damage.

    3. Step 3.Pull free imagery and conflict events for that window

      Copernicus Sentinel-2 (10 m optical) and Sentinel-1 (SAR) cover most conflict zones on a 5–12 day revisit. Pair every pull with the ACLED events that fall inside the bounding box and window so damage and incidents are already co-located.

    4. Step 4.Compute a change index, not a screenshot

      Use dNBR for burn scars, NDVI difference for vegetation loss, and Sentinel-1 VV backscatter change for flooding or built-up damage. Change indices survive haze, shadow, and phenology in a way true-colour composites do not.

    5. Step 5.Cross-check with independent evidence

      Confirm each anomaly against NASA FIRMS active fires, Global Forest Watch loss alerts, ReliefWeb reporting, and named local media. A single-sensor anomaly is a lead, not a finding, until at least one independent source agrees.

    6. Step 6.Publish with methodology, limits, and protections

      Every finding needs the sensor, dates, formula, bounding box, and cloud mask. Redact precise coordinates of IDP camps, informal settlements, or humanitarian convoys before publication, following the Berkeley Protocol.

    Indicators and how to detect them

    IndicatorDetection approach
    Burn scars (dNBR)Sentinel-2 NBR pre minus post; dNBR > 0.27 is moderate/high burn severity. Corroborate with NASA FIRMS active-fire pixels.
    Deforestation (NDVI)Same-season NDVI difference and Global Forest Watch GLAD/RADD alerts. Attribute to conflict only when ACLED events are co-located.
    Cratering and rubbleSentinel-1 coherence loss and PlanetScope tasking (humanitarian releases). Look for coherence drop paired with a nearby ACLED explosion event.
    Oil-facility fires and slicksSentinel-2 SWIR (B12) hotspot detection, VIIRS Nightfire, and Sentinel-1 SAR for offshore slicks.
    Flooding of built areasSentinel-1 VV backscatter thresholding masked to WorldPop settlement footprints and HDX admin boundaries.
    Aquifer and water-body stressMODIS/Sentinel-3 chlorophyll indices, Landsat surface-water extent, and OCHA WASH cluster assessments.

    Sources: Copernicus Programme, NASA FIRMS, Global Forest Watch, ACLED, and the Humanitarian Data Exchange (OCHA).

    Step-by-step OSINT workflow (with code)

    This is the applied version of the six-step workflow, wired to the data infrastructure Humanity Centered Data already runs: country pages for scoping, ACLED for events, HDX for boundaries and populations, Sentinel Hub and rasterio for change detection, and the shared CitationsMethodology block for publication.

    1. Step 1.Scope the incident against site infrastructure

      Humanity Centered Data country + ACLED

      Start on the relevant country page (for example /sudan or /ukraine) to pull the current displacement figures, active thematic briefs, and the list of ACLED-flagged hotspots the site already tracks. Copy the ISO3 code, the admin1 name, and the incident date range into a scoping note. This ties every downstream raster back to a population and a governance unit the platform already covers.

    2. Step 2.Pull ACLED events for the bounding box and window

      ACLED API

      Query ACLED for the same bounding box and dates. Filter to event types that plausibly cause environmental harm: explosions/remote violence, battles, and strategic developments involving infrastructure. Save the response as GeoJSON so it drops straight into QGIS or Leaflet.

      curl -G 'https://api.acleddata.com/acled/read' \
        --data-urlencode 'key=YOUR_KEY' \
        --data-urlencode 'email=you@org' \
        --data-urlencode 'iso=729' \
        --data-urlencode 'event_type=Explosions/Remote violence|Battles' \
        --data-urlencode 'event_date=2025-01-01|2026-06-30' \
        --data-urlencode 'event_date_where=BETWEEN'
    3. Step 3.Grab HDX admin boundaries and settlement layers

      Humanitarian Data Exchange (HDX)

      Download COD-AB admin boundaries (admin1/admin2) and, where available, IOM DTM site coordinates and WorldPop constrained population rasters for the country. Clip everything to the bounding box. These layers turn a raw change pixel into an answer to "which district, which settlement, how many people".

      # HDX CKAN API - list Sudan COD boundaries
      curl 'https://data.humdata.org/api/3/action/package_search?q=cod-ab+sudan&rows=5' | jq '.result.results[].name'
    4. Step 4.Compute a change index in Sentinel Hub or rasterio

      Copernicus Sentinel-2 / Sentinel-1

      Use the Sentinel Hub Custom Script below for dNBR (burn severity). For deforestation swap to NDVI difference; for flooded built-up areas run Sentinel-1 VV backscatter thresholding. Export as a GeoTIFF with the sensor, dates, and formula written into the filename so provenance survives.

      // Sentinel Hub evalscript - dNBR (Normalized Burn Ratio difference)
      //VERSION=3
      function setup() {
        return {
          input: [{ bands: ['B08', 'B12', 'dataMask'] }],
          output: { bands: 1, sampleType: 'FLOAT32' },
          mosaicking: 'ORBIT',
        };
      }
      function evaluatePixel(samples) {
        const pre = samples[samples.length - 1];
        const post = samples[0];
        const nbrPre  = (pre.B08  - pre.B12)  / (pre.B08  + pre.B12);
        const nbrPost = (post.B08 - post.B12) / (post.B08 + post.B12);
        return [nbrPre - nbrPost]; // dNBR > 0.27 = moderate/high severity
      }
    5. Step 5.Join the change raster to ACLED and HDX layers

      QGIS / GeoPandas

      Overlay the dNBR (or NDVI difference) raster with the ACLED GeoJSON and HDX admin/settlement layers. Keep only change pixels that fall within a defined buffer (typically 2 km) of an ACLED event in the same window. This is the step that converts "something changed" into "damage in the environment co-located with a documented incident".

      import geopandas as gpd, rasterio
      from rasterio.features import geometry_mask
      
      acled  = gpd.read_file('acled_sudan_2025_2026.geojson').to_crs(3857)
      buffer = acled.buffer(2000)  # 2 km buffer around each event
      with rasterio.open('dnbr_sudan_2025_2026.tif') as src:
          mask = geometry_mask(buffer, out_shape=src.shape, transform=src.transform, invert=True)
          dnbr = src.read(1)
          attributed = (dnbr > 0.27) & mask   # burn severity co-located with events
    6. Step 6.Corroborate anomalies with independent sources

      NASA FIRMS + GFW + ReliefWeb

      For every attributed cluster, pull FIRMS active fires (VIIRS/MODIS), Global Forest Watch GLAD/RADD alerts, and ReliefWeb situation reports for the same admin unit and window. Log at least one independent match per finding. Single-sensor anomalies stay in the working file, not in the publication.

      # NASA FIRMS - last 10 days of VIIRS active fires for Sudan
      curl 'https://firms.modaps.eosdis.nasa.gov/api/country/csv/YOUR_MAP_KEY/VIIRS_SNPP_NRT/SDN/10'
    7. Step 7.Publish through the site methodology block

      Humanity Centered Data CitationsMethodology

      Wrap every published chart or map with the shared CitationsMethodology component so readers see the sensor, dates, formula, bounding box, ACLED query, and independent sources. Redact coordinates of IDP sites and informal settlements per the Berkeley Protocol before pushing.

    Evidence standards

    Same-season baseline

    Compare against a prior-year scene from the same season, not the most recent clear scene, or seasonal shifts get labelled as damage.

    Two independent sources

    Every published finding pairs one remote-sensing signal with one independent source (FIRMS, GFW, ReliefWeb, named local reporting).

    Detection is not attribution

    Documenting damage in the environment is not the same as naming who caused it. Attribution needs ACLED co-location plus corroborated reporting.

    Protection first

    Blur or generalise coordinates that could endanger displaced people, aid workers, or witnesses. Consult protection colleagues before release.

    Common failure modes

    • Season mistaken for damage. Comparing a wet-season and dry-season scene inflates change signals. Always pair same-season scenes.
    • Cloud and shadow artefacts. Optical indices spike under haze. Apply Sentinel-2 SCL cloud masks and validate with a SAR scene.
    • Over-attribution. A change raster shows what happened, not who caused it. Attribution needs an ACLED event and independent reporting for the same window.
    • Exposing displaced people. Sharing precise coordinates of IDP sites or informal settlements can endanger residents. Generalise or redact before publishing.

    Frequently asked questions

    How do researchers document damage in the environment caused by conflict?

    By combining OSINT satellite imagery (Sentinel-1 SAR and Sentinel-2 optical), conflict-event data from ACLED, and humanitarian layers from HDX. Analysts compute change indices such as dNBR and NDVI difference on pre-event and post-event scenes, then corroborate each anomaly against NASA FIRMS, Global Forest Watch, and ground reporting before publishing.

    Which environmental harms can be tracked remotely in a war zone?

    Burn scars, deforestation, cratering and rubble, oil-facility fires, water contamination signals, and flooding of built areas are all detectable with free Copernicus and Landsat imagery. Air-quality proxies (NO2, aerosol) are available from Sentinel-5P for regional-scale monitoring.

    How is this different from general satellite journalism?

    Environmental conflict monitoring pairs change-detection rasters with humanitarian datasets: ACLED events, IOM DTM sites, and OCHA cluster assessments. The output is not a single before-and-after image but an audited map linking environmental change to specific incidents and affected populations.

    What are the ethical limits when publishing environmental damage evidence?

    Follow the Berkeley Protocol on Digital Open Source Investigations: preserve provenance, disclose methods, avoid revealing coordinates of at-risk populations, and separate detection (what changed) from attribution (who caused it). Coordinate with protection actors before publishing near active displacement sites.

    What free tools cover the full workflow?

    The Copernicus Browser and Sentinel Hub Custom Scripts for imagery and indices; NASA FIRMS for active fires; Global Forest Watch for tree-cover loss; ACLED for conflict events; and the Humanitarian Data Exchange (HDX) for admin boundaries, IOM DTM sites, and cluster assessments. QGIS and rasterio handle the analysis end.