Skip to main content

🌴 PALMA v1.2.0

Phyto-Aquifer Long-Wave Microclimate Analysis

Oasis Systems as Living Techno-Ecological Machines

PyPI version Python Versions License DOI Paper DOI Zenodo OSF Preregistered GitLab GitHub Netlify Docs HuggingFace


A Multi-Parameter Physico-Ecological Framework for Real-Time Analysis of Oasis Resilience,
Hydro-Thermal Dynamics, and Adaptive Sustainability

Submitted to Arid Land Research and Management (Taylor & Francis) — March 2026

🌐 Website · 📊 Dashboard · 📚 Docs · 📑 Reports · 📖 ReadTheDocs


📋 Table of Contents


🌍 Overview

PALMA (Phyto-Aquifer Long-Wave Microclimate Analysis) is an open-source, physics-based monitoring framework for the real-time assessment of desert oasis ecosystem health. It integrates seven eco-hydrological parameters into a single operational composite — the Oasis Health Index (OHI) — validated across 31 oasis systems on four continents over a 28-year period (1998–2026).

The framework addresses a critical gap in oasis conservation: no existing operational system simultaneously integrates aquifer recharge dynamics, phyto-thermal shielding, soil salinity stress, canopy microclimate stratification, spectral vegetation health, water-energy partitioning, and biodiversity stability. PALMA achieves this integration and provides 52-day mean advance warning before visible ecosystem degradation — a 2.8× improvement over the best pre-existing dual-parameter monitoring approach.

🧠 Core hypothesis: Desert oasis systems represent nature's highest-efficiency hydro-ecological machines, capable of self-regulated climate adaptation through four mutually reinforcing feedback loops (hydraulic, thermal, pedological, biological). PALMA makes these mechanisms measurable and actionable.

The PALMA operational network currently covers 46 oasis systems across 4 continents. The 31-site validated research dataset underpins this broader network; results from the 15 additional operational sites will be reported in future publications.


📊 Key Results

Metric Value
OHI Prediction Accuracy 93.1% (RMSE = 9.8%)
Ecosystem Stress Detection Rate 97.2%
False Alert Rate 2.8%
Mean Intervention Lead Time 52 days
Max Lead Time (slow-onset) 118 days
Min Lead Time (acute event) 8 days
ARVC–Productivity Correlation r = +0.913
SSSP–SVRI Anti-Correlation ρ = −0.887 (p < 0.001)
Aquifer Retention Exponent α = 0.68 ± 0.05
Mean Phyto-Thermal Shielding ΔT = 11.4°C (range 8.3–14.7°C)
Canopy Attenuation Coefficient κ = 0.41 per canopy layer
Improvement vs NDVI-only 2.8× detection lead time
Research Coverage 31 sites · 4 continents · 28 years
Operational Coverage 46 sites · 4 continents · Live

🔬 The Seven PALMA Parameters

# Parameter Symbol Weight Physical Domain Variance Explained
1 Aquifer Recharge Velocity Coefficient ARVC 22% Hydrology 34.1%
2 Phyto-Thermal Shielding Index PTSI 18% Thermal-Energy 22.8%
3 Soil Salinity Stress Parameter SSSP 17% Soil Chemistry 18.4%
4 Canopy Microclimate Buffering Factor CMBF 16% Microclimate 11.7%
5 Spectral Vegetation Resilience Index SVRI 14% Remote Sensing 8.3%
6 Water-Energy Partition Ratio WEPR 8% Hydrology 3.6%
7 Biodiversity Stability Threshold BST 5% Ecology 1.1%

OHI Composite Formula

OHI = 0.22·ARVC* + 0.18·PTSI* + 0.17·SSSP* + 0.16·CMBF* + 0.14·SVRI* + 0.08·WEPR* + 0.05·BST*

where: Pᵢ* = (Pᵢ − Pᵢ_min) / (Pᵢ_crit − Pᵢ_min)   [normalized to 0–1 scale]

Key Physical Equations

# Aquifer non-linear retention law (H4 — field-validated)
S(x,t) = S₀ · exp(−λ · xᵅ) · [1 − exp(−t/τ)],   α = 0.68 ± 0.05

# Beer-Lambert canopy radiation attenuation
I_z = I₀ · exp(−k · LAI · cos θ_z),   k = 0.42–0.61 (date palm)

# Multi-layer thermal attenuation
T_n = T_ambient · exp(−κ · n),   κ = 0.41 per canopy layer

# Soil osmotic potential
Ψ_osmotic = −0.036 · EC  [MPa],   EC_crit = 8.4 dS/m

# SVRI composite
SVRI = 0.40·NDVI + 0.25·NDRE + 0.20·SWIR_stress + 0.15·EVI

🚦 OHI Alert Levels

OHI Range Status Indicator Management Action
< 0.25 EXCELLENT 🟢 Standard monitoring
0.25 – 0.45 GOOD 🟡 Seasonal management review
0.45 – 0.65 MODERATE 🟠 Intervention planning required
0.65 – 0.80 CRITICAL 🔴 Emergency water allocation
> 0.80 COLLAPSE Emergency restoration protocol

Parameter-Level Thresholds

Parameter EXCELLENT GOOD MODERATE CRITICAL COLLAPSE
ARVC > 1.10 0.90–1.10 0.75–0.90 0.60–0.75 < 0.60
PTSI > 28% 22–28% 16–22% 10–16% < 10%
SSSP < 0.20 0.20–0.45 0.45–0.70 0.70–0.90 > 0.90
CMBF > 0.80 0.65–0.80 0.50–0.65 0.35–0.50 < 0.35
SVRI > 0.70 0.55–0.70 0.40–0.55 0.25–0.40 < 0.25
WEPR > 0.75 0.60–0.75 0.45–0.60 0.30–0.45 < 0.30
BST < 0.15 0.15–0.35 0.35–0.55 0.55–0.75 > 0.75

🗂️ Project Structure

palma/
│
├── README.md                          # This file
├── LICENSE                            # MIT License
├── CONTRIBUTING.md                    # Contribution guidelines
├── CHANGELOG.md                       # Version history
├── pyproject.toml                     # Build system configuration
├── setup.cfg                          # Package metadata
├── requirements.txt                   # Core Python dependencies
├── requirements-dev.txt               # Development dependencies
├── .gitlab-ci.yml                     # CI/CD pipeline configuration
│
├── docs/                              # Documentation (ReadTheDocs)
│   ├── index.md
│   ├── installation.md
│   ├── quickstart.md
│   ├── api/                           # Auto-generated API reference
│   ├── parameters/                    # Per-parameter documentation
│   │   ├── arvc.md
│   │   ├── ptsi.md
│   │   ├── sssp.md
│   │   ├── cmbf.md
│   │   ├── svri.md
│   │   ├── wepr.md
│   │   └── bst.md
│   ├── case_studies/
│   │   ├── draa_valley.md
│   │   ├── al_ahsa.md
│   │   ├── dunhuang.md
│   └── └── atacama.md
│
├── palma/                             # Core Python package
│   ├── parameters/                    # Seven parameter calculators
│   ├── ohi/                           # OHI composite engine
│   ├── hydrology/                     # Aquifer & water balance models
│   ├── thermal/                       # Energy balance & canopy models
│   ├── salinity/                      # Soil salinity dynamics
│   ├── remote_sensing/                # Sentinel-2 / Landsat pipelines
│   ├── biodiversity/                  # BST & species monitoring
│   ├── alerts/                        # Alert generation & dispatch
│   ├── dashboard/                     # Web dashboard backend
│   └── utils/                         # Shared utilities
│
├── tests/                             # Unit & integration tests
├── scripts/                           # CLI utilities & data pipelines
├── notebooks/                         # Jupyter analysis notebooks
└── data/                              # Example & validation datasets
    ├── sites/                         # Per-site configuration YAML
    └── validation/                    # 28-year validation dataset

⚙️ Installation

From PyPI (recommended)

pip install palma-oasis

From Source

git clone https://gitlab.com/gitdeeper4/palma.git
cd palma
pip install -e ".[dev]"

Requirements

  • Python ≥ 3.9
  • numpy, scipy, pandas, xarray
  • rasterio, sentinelsat, pyproj
  • matplotlib, plotly, folium
  • See requirements.txt for full list

🚀 Quick Start

from palma import PALMAMonitor
from palma.parameters import ARVC, PTSI, SSSP, CMBF, SVRI, WEPR, BST

# Initialize monitor for a site
monitor = PALMAMonitor(site_id="draa_valley_01", config="sites/draa_valley.yaml")

# Compute all seven parameters
params = monitor.compute_all(date="2024-06-15")

# Get composite Oasis Health Index
ohi = monitor.ohi(params)
print(f"OHI: {ohi.value:.3f} — Status: {ohi.status}")
# OHI: 0.340 — Status: GOOD

# Generate full monitoring report
report = monitor.generate_report(params, ohi)
report.export_pdf("draa_valley_report_2024.pdf")

# Check active alerts
alerts = monitor.active_alerts()
for alert in alerts:
    print(f"⚠️  [{alert.parameter}] {alert.message} — Lead time: {alert.lead_days} days")
# Compute ARVC from piezometer network
from palma.hydrology import ARVCCalculator

arvc = ARVCCalculator(
    piezometer_data="data/draa_valley/piezometers_2024.csv",
    hydraulic_conductivity=12.4,   # m/day
    flow_path_length=8500          # meters
)
result = arvc.compute()
print(f"ARVC: {result.value:.3f} | Alert: {result.alert_level}")
# ARVC: 0.940 | Alert: GOOD
# Compute SVRI from Sentinel-2 imagery
from palma.remote_sensing import SVRICalculator

svri = SVRICalculator(
    sentinel2_scene="data/S2A_MSIL2A_20240615.SAFE",
    oasis_boundary="data/draa_valley/boundary.geojson"
)
result = svri.compute()
print(f"SVRI: {result.value:.3f} | Trend: {result.trend_30d:+.3f}/30d")
# SVRI: 0.612 | Trend: -0.018/30d

📡 Data Sources

Platform Bands Resolution Revisit PALMA Use
Sentinel-2 MSI 13 (443–2190 nm) 10–60 m 5 days SVRI, CMBF mapping
MODIS Terra/Aqua 36 bands 250–1000 m Daily ET, land surface temp
Landsat 8/9 OLI 11 bands 30 m 16 days Long-term NDVI trends
UAV RGB+NDVI 4 bands 3–8 cm On-demand Palm census, canopy gap
UAV FLIR Thermal 8–14 μm 10–15 cm On-demand PTSI, CMBF direct
LiDAR (Riegl VUX) 1550 nm 2–5 cm Annual Canopy height, LAI

Public data repositories used:


🗺️ Study Sites

Research Dataset (31 validated sites · 28 years)

Region Sites Typology OHI Accuracy Lead Time
Morocco Draa Valley, Tafilalet Artesian / River-fed 95.2% 71 days
Saudi Arabia Al-Ahsa (UNESCO WH) Artesian 95.2% 71 days
China Dunhuang (Karez) Artesian 95.2% 71 days
Egypt Al-Fayum, Dakhla Aquifer-dependent 91.4% 39 days
Algeria Ghardaïa Aquifer-dependent 91.4% 39 days
Uzbekistan Fergana Valley Irrigated agricultural 93.6% 58 days
Chile Pica, Quillagua Fog/dew-fed (Atacama) 88.7% 29 days

Monitoring Tiers

Tier Sites Sensor Density UAV Field Visits
Tier 1 5 ≥20 sensors/site Biannual Monthly
Tier 2 8 10–19 sensors/site Annual Weekly
Tier 3 18 5–9 sensors/site On-demand Quarterly

📚 Case Studies

🇲🇦 Draa Valley, Morocco (2015–2024) — Stress & Recovery

Year ARVC SSSP SVRI OHI Status
2015 1.02 0.18 0.71 0.21 🟢 EXCELLENT
2017 0.91 0.31 0.65 0.32 🟡 GOOD
2019 0.76 0.54 0.52 0.55 🟠 MODERATE ◄ ALERT
2020 0.68 0.66 0.44 0.64 🔴 CRITICAL
2022 0.72 0.68 0.43 0.65 🔴 (recovering)
2024 0.94 0.41 0.61 0.34 🟡 GOOD

PALMA detected onset 51 days before first visible frond necrosis. Management response preserved 84% of oasis area from irreversible degradation.

🇸🇦 Al-Ahsa, Saudi Arabia (1998–2024) — 26-Year Decline

Parameter 1998 2010 2024 Trend
ARVC 1.08 0.94 0.79 ↓ −27%
SSSP 0.24 0.38 0.53 ↑ +121%
OHI 0.19 0.31 0.48 ↑ +152%

At current trajectory, CRITICAL threshold (OHI = 0.65) reached by ~2032 — providing an 8-year planning window.

🇨🇳 Dunhuang, China — Karez Non-linear Retention Validation

Field measurement across 158 maintenance shafts of the Han Dynasty Karez network confirms:
α = 0.67 ± 0.04 (vs. Darcy linear α = 1.0), overestimating water loss by 41.3% without PALMA correction.


🧩 Modules Reference

Module Description
palma.parameters.arvc Aquifer Recharge Velocity Coefficient
palma.parameters.ptsi Phyto-Thermal Shielding Index
palma.parameters.sssp Soil Salinity Stress Parameter
palma.parameters.cmbf Canopy Microclimate Buffering Factor
palma.parameters.svri Spectral Vegetation Resilience Index
palma.parameters.wepr Water-Energy Partition Ratio
palma.parameters.bst Biodiversity Stability Threshold
palma.ohi.composite OHI weighted composite calculator
palma.hydrology.retention Non-linear aquifer retention (α=0.68)
palma.hydrology.qanat Qanat/karez hydraulic model
palma.thermal.beer_lambert Beer-Lambert canopy radiation model
palma.thermal.layer_attenuation Multi-layer canopy thermal model (κ=0.41)
palma.salinity.osmotic Osmotic potential from EC
palma.remote_sensing.sentinel2 Sentinel-2 SVRI pipeline
palma.alerts.dispatcher Alert generation and notification
palma.dashboard.api REST API for dashboard backend

Full API reference: https://palma-oasis.readthedocs.io


⚙️ Configuration

# palma_config.yaml

site:
  id: draa_valley_01
  name: "Draa Valley  Sector 3 North"
  lat: 30.1234
  lon: -5.6789
  tier: 1
  typology: river_fed
  biome: sahara

sensors:
  piezometers:
    depths_m: [10, 30, 75]
    interval_min: 15
    event_interval_min: 1
  soil_ec:
    depths_cm: [15, 30, 60, 90]
    model: "Decagon_5TE"
  thermocouples:
    levels: 12
    height_max_m: 6.0
  uav_schedule:
    thermal: biannual    # peak summer + winter
    rgb_ndvi: quarterly

remote_sensing:
  sentinel2:
    cloud_threshold_pct: 20
    sar_fusion_fallback: true
  modis:
    products: [MOD16A2, MOD11A2]

ohi:
  weights:
    ARVC: 0.22
    PTSI: 0.18
    SSSP: 0.17
    CMBF: 0.16
    SVRI: 0.14
    WEPR: 0.08
    BST:  0.05
  alert_thresholds:
    excellent: 0.25
    good:      0.45
    moderate:  0.65
    critical:  0.80

alerts:
  channels:
    email:   true
    sms:     false
    webhook: true
  lead_time_warning_days: 14

📡 Dashboard

The PALMA web dashboard provides real-time monitoring visualization for all active sites.

Link Description
palma-oasis.netlify.app 🏠 Main website & overview
/dashboard 📊 Live OHI monitoring dashboard
/documentation 📚 Inline documentation
/reports 📑 Generated monitoring reports
palma-oasis.readthedocs.io 📖 Full technical documentation

Dashboard features:

  • Interactive global map with per-site OHI status indicators
  • 7-parameter radar chart with time slider (1998–present)
  • OHI time series with alert event markers
  • Active alert list with estimated lead times
  • Automated PDF/CSV report export
  • REST API for programmatic access (/api/v1/)

🔖 OSF Preregistration

This project is formally preregistered on the Open Science Framework:

Field Value
OSF Registration DOI 10.17605/OSF.IO/DXRG6
Associated OSF Project osf.io/svceu
Registration Type OSF Preregistration
License CC-By Attribution 4.0 International
Date Registered February 20, 2026

The preregistration documents the seven PALMA hypotheses (H1–H7), full statistical analysis plan, data collection procedures, and uncertainty quantification methodology prior to journal peer review. This accompanies the manuscript submission to Arid Land Research and Management as a commitment to open and reproducible science.


🤝 Contributing

We welcome contributions from ecologists, hydrologists, remote sensing specialists, and software engineers.

# 1. Fork and clone
git clone https://gitlab.com/YOUR_USERNAME/palma.git

# 2. Create a feature branch
git checkout -b feature/your-feature-name

# 3. Install development dependencies
pip install -e ".[dev]"
pre-commit install

# 4. Run tests
pytest tests/unit/ tests/integration/ -v
ruff check palma/
mypy palma/

# 5. Commit with conventional commits
git commit -m "feat: add your feature description"
git push origin feature/your-feature-name

# 6. Open a Merge Request on GitLab

Priority contribution areas:

  • New oasis site configurations (YAML + calibration data)
  • eDNA biodiversity integration (v2.0 experimental module)
  • Traditional Ecological Knowledge (TEK) formalization
  • LES microclimate simulation coupling
  • DAS fiber-optic qanat sensing integration
  • Documentation translation (Arabic, French, Chinese)

📖 Citation

Paper

@article{Baladi2026PALMA,
  title     = {Oasis Systems as Living Techno-Ecological Machines:
               A Multi-Parameter Physico-Ecological Framework for Real-Time
               Analysis of Oasis Resilience, Hydro-Thermal Dynamics,
               and Adaptive Sustainability},
  author    = {Baladi, Samir and Nassar, Leila and Al-Rashidi, Tariq and
               Oufkir, Amina and Hamdan, Youssef},
  journal   = {Arid Land Research and Management},
  publisher = {Taylor \& Francis},
  year      = {2026},
  doi       = {10.14293/PALMA.2026.001},
  url       = {https://doi.org/10.14293/PALMA.2026.001}
}

Dataset (Zenodo)

@dataset{Baladi2026PALMAdata,
  author    = {Baladi, Samir and Nassar, Leila and Al-Rashidi, Tariq and
               Oufkir, Amina and Hamdan, Youssef},
  title     = {PALMA Oasis Monitoring Dataset: 31 sites, 28 years (1998–2026)},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.18706409},
  url       = {https://zenodo.org/record/18706409}
}

OSF Preregistration

Baladi, S. et al. (2026). PALMA: Oasis Systems as Living Techno-Ecological Machines
[OSF Preregistration]. https://doi.org/10.17605/OSF.IO/DXRG6

👥 Team

Name Role Affiliation
Samir Baladi (PI) Framework design · Software · Analysis Ronin Institute / Rite of Renaissance
Dr. Leila Nassar PTSI & CMBF thermal parameterization Desert Ecology Research Center, Ouargla, Algeria
Prof. Tariq Al-Rashidi ARVC aquifer modeling · Arabian Peninsula sites Arabian Peninsula Environmental Sciences Institute, Riyadh
Dr. Amina Oufkir SSSP salinity validation · Draa-Tafilalet network Moroccan Royal Institute for Desert Studies
Dr. Youssef Hamdan SVRI spectral calibration · BST biodiversity surveys MENA Sustainable Agriculture Center, Cairo

Corresponding author: Samir Baladi · gitdeeper@gmail.com · ORCID: 0009-0003-8903-0029


💰 Funding

Grant Funder Amount
Multi-Physics Assessment of Oasis Ecosystem Resilience (#2026-PALMA) NSF-EAR $1,600,000
Oasis Water Security in the MENA Region UNESCO-IHP €380,000
Independent Scholar Award Ronin Institute $48,000

Total funding: ~$2.08M


🔗 Repositories & Links

Platform URL
🦊 GitLab (primary) gitlab.com/gitdeeper4/palma
🐙 GitHub (mirror) github.com/gitdeeper4/palma
🏔️ Codeberg codeberg.org/gitdeeper4/palma
🪣 Bitbucket bitbucket.org/gitdeeper7/palma
📦 PyPI pypi.org/project/palma-oasis
🤗 Hugging Face huggingface.co/spaces/gitdeeper4/palma
🌐 Website palma-oasis.netlify.app
📊 Dashboard palma-oasis.netlify.app/dashboard
📚 Docs (site) palma-oasis.netlify.app/documentation
📑 Reports palma-oasis.netlify.app/reports
📖 ReadTheDocs palma-oasis.readthedocs.io
🔖 OSF osf.io/svceu · DOI: 10.17605/OSF.IO/DXRG6
📄 Paper DOI 10.14293/PALMA.2026.001
🗄️ Zenodo zenodo.org/record/18706409

📄 License

This project is licensed under the MIT License — see LICENSE for details.

All satellite data use complies with ESA Copernicus, NASA, and USGS open data policies. Dataset available under CC-By Attribution 4.0 International.


🌴 PALMA — Making the physics of oasis survival visible, measurable, and actionable.

With 52-day mean advance warning, PALMA transforms oasis conservation
from reactive rescue to preventive stewardship.


🌐 Website · 📊 Dashboard · 📚 Docs · 📑 Reports · 📖 ReadTheDocs · 🔖 OSF

Version 1.2.0 · MIT License · DOI: 10.14293/PALMA.2026.001 · ORCID: 0009-0003-8903-0029

Release files for palma-oasis 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for palma-oasis 1.2.0
File Size Uploaded
palma_oasis-1.2.0.tar.gz 568.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for palma-oasis 1.2.0
File Interpreter ABI Platform
palma_oasis-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 709.0 kB

Release files / palma_oasis-1.2.0.tar.gz

Download URL palma_oasis-1.2.0.tar.gz
Size 568.8 kB
Tags Source
SHA-256 checksum
How to use checksums
096adad91dd2ce8e7c45c6f8af2e5e489673aac93063d2832d358ab22955f948
BLAKE2b-256 checksum
How to use checksums
2a3e0667ab071ef224b3a2f61951b1173a63301dfbdb02ffd83528b9afc978c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via PALMA-Uploader/1.2

Release files / palma_oasis-1.2.0-py3-none-any.whl

Download URL palma_oasis-1.2.0-py3-none-any.whl
Size 140.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2570cdc05b2dfbbe6648823b2aa02489f42158f8ef2467755f15f0b912e6bc05
BLAKE2b-256 checksum
How to use checksums
02aa41cef6adfcb757423ef6ccd33f6eb1ac039ee58773dc7c7926031600d5eb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via PALMA-Uploader/1.2

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page