Geospatial bioclimatic stress modeling and Climate Stress Index (CSI) analysis for Bernieria madagascariensis in Madagascar using raster and species occurrence data.
# Bioclimatic Stress Analysis of Bernieria madagascariensis
A geospatial climate stress modeling project combining raster-based bioclimatic variables and species occurrence data to assess environmental vulnerability patterns in Madagascar.
---
## Overview
This project computes a **Climate Stress Index (CSI)** using selected bioclimatic variables and evaluates its spatial relationship with occurrences of *Bernieria madagascariensis* across two districts:
- Moramanga
- Maroantsetra
The workflow integrates raster processing, threshold modeling, spatial clipping, and geospatial visualization.
---
## Objectives
- Clip bioclimatic rasters to district boundaries
- Compute climate thresholds dynamically
- Generate a composite Climate Stress Index
- Overlay species occurrences
- Produce comparative stress maps
---
## Project structure
```
project/
├── outputs/ # Generated rasters
├── notebooks/ # Jupyter notebooks
├── src/ # Python scripts
├── requirements.txt
└── README.md
```
## Installation
```bash
pip install -r requirements.txt
```
---
## Data Sources
The datasets used in this project are not included in this repository due to size and licensing constraints.
### Bioclimatic Variables
Source: WorldClim Version 2.1
worldclim.org
Variables used: BIO12 (Annual Precipitation), BIO15 (Precipitation Seasonality), BIO19 (Precipitation of Coldest Quarter)
### Administrative Boundaries
Source: GADM (Global Administrative Areas)
gadm.org
### Species Occurrence Data
Source: GBIF (Global Biodiversity Information Facility)
Invasive and Introduced Pla…
Species searched: *Bernieria madagascariensis*
---
## Methodology
### Data Loading
- Administrative boundaries
- Species occurrence records
- Bioclimatic raster variables (BIO12, BIO15, BIO19)
### Spatial Processing
- District-level clipping using `geopandas` and `rioxarray`
- Raster masking outside district boundaries
### Threshold Computation
Dynamic th …