<!-- Copyright (c) 2026 defconxt. All rights reserved. -->
<!-- Licensed under AGPL-3.0 — see LICENSE file for details. -->
---
name: conducting-open-source-satellite-analysis
description: >-
  Analyze freely available satellite imagery from Sentinel Hub, Google Earth,
  and Planet Labs for change detection, infrastructure monitoring, and conflict
  zone documentation. Bellingcat satellite investigation methodology.
domain: cybersecurity
subdomain: investigation-attribution
tags:
  - satellite-imagery
  - sentinel-hub
  - change-detection
  - remote-sensing
  - osint
version: "1.0"
author: defconxt
license: AGPL-3.0
metadata:
  mitre-attack: []
---

# Conducting Open Source Satellite Analysis

## Overview

Open-source satellite analysis uses freely available imagery to detect changes,
monitor infrastructure, and document events. Sentinel-2 provides global coverage
every 5 days at 10m resolution — sufficient for building-level analysis.

## Prerequisites

| Requirement | Install |
|---|---|
| Python 3.10+ | Agent tooling |
| rasterio | `pip install rasterio` |
| Sentinel Hub account | `apps.sentinel-hub.com` (free tier) |
| GDAL | `pip install gdal` |

## Key Concepts

### Satellite Data Sources

| Source | Resolution | Revisit | Access |
|---|---|---|---|
| Sentinel-2 | 10m | 5 days | Free via Copernicus |
| Landsat 8/9 | 30m | 16 days | Free via USGS |
| Planet Labs | 3m | Daily | Commercial (limited free) |
| Maxar | 30cm | Variable | Commercial |
| Google Earth | Variable | Historical archive | Free (desktop) |

### Spectral Bands for Analysis

| Combination | Use Case |
|---|---|
| True color (B4,B3,B2) | Visual inspection |
| False color (B8,B4,B3) | Vegetation health |
| NDVI | Vegetation change detection |
| SWIR (B12,B8A,B4) | Fire scars, soil moisture |

## Quick Reference

```bash
# Search for satellite imagery
node agent.js search-imagery --bbox "2.0,48.5,2.5,49.0" --date-range 2026-01-01:2026-03-01

# Download Sentinel-2 tile
node agent.js download-tile --tile-id S2A_MSIL2A_20260315 --bands B04,B03,B02

# Run change detection
node agent.js change-detect --before image_jan.tif --after image_mar.tif --threshold 0.3

# Generate NDVI
node agent.js ndvi --red band04.tif --nir band08.tif --output ndvi.tif
```

## Workflow

```
1. DEFINE AOI — Set area of interest with bounding box coordinates
2. SEARCH     — Query satellite archives for available imagery
3. SELECT     — Choose images with low cloud cover and good timing
4. DOWNLOAD   — Retrieve imagery tiles and bands
5. PROCESS    — Apply band combinations and indices (NDVI, SWIR)
6. COMPARE    — Run change detection between temporal pairs
7. ANNOTATE   — Mark features of interest with coordinates
8. DOCUMENT   — Export findings with imagery evidence
```

## Verification

```bash
python3 -c "import rasterio; print('rasterio OK')"
node agent.js --self-test
```

## References

- [Copernicus Open Access Hub](https://scihub.copernicus.eu/)
- [Sentinel Hub EO Browser](https://apps.sentinel-hub.com/eo-browser/)
- [Bellingcat Satellite Imagery Guide](https://www.bellingcat.com/resources/how-tos/2021/12/16/satellite-imagery/)
- [USGS EarthExplorer](https://earthexplorer.usgs.gov/)
