GeoSentinel is a Python-based project designed to detect and visualize anomalies in remote sensing data, specifically from the Sentinel-2 satellite. This tool is valuable for environmental monitoring, change detection, disaster response, and land use tracking.
- Download Sentinel-2 time series using the SentinelHub API
- Analyze multi-band data over time for a region of interest (ROI)
- Apply statistical and machine learning methods (e.g., Isolation Forest) for anomaly detection
- Visualize time series and anomaly maps
GeoSentinel/
├── sentinel_fetcher.py # Downloads Sentinel-2 data from SentinelHub
├── anomaly_detection.py # Detects anomalies in the NDVI or reflectance series
├── visualization.py # Visualization of time series and anomaly maps
├── config.yaml # Config file with ROI, time range, bands, credentials
├── main.py # Entry point to run the full pipeline
└── README.md # Documentation
Install dependencies with:
pip install -r requirements.txtDependencies include:
- numpy, pandas, matplotlib, seaborn
- rasterio, geopandas
- scikit-learn
- sentinelhub
- Create an account at Sentinel Hub and obtain your credentials.
- Fill out
config.yamlwith your AOI, bands, time range, and credentials. - Run the pipeline:
python main.pyThis will:
- Download and preprocess the time series
- Run anomaly detection
- Output maps and time series plots in the
output/folder
- NDVI time series with detected outliers
- RGB image overlays with anomaly locations
- Integrate with deep learning (e.g. LSTM) for sequence-based detection
- Add land cover classification support
- Streamline via Web UI or dashboard
MIT License For research or environmental monitoring applications. Not affiliated with ESA or Sentinel Hub.