Logo Lanfrica

Shehata-git/EgyptTempo

Domaine:

climateenvironment and energy

Type de record:

softwareproject
Créateur:
She
Hôte:
This project implements a complete end-to-end Big Data pipeline for spatio-temporal climate prediction over Egypt using NASA MODIS MOD11C1 land surface temperature observations from 2014–2024. processed through a MongoDB-backed ingestion pipeline and a 4-stage ETL workflow, and a custom SpatioTemporalConvLSTM neural network. # Spatio-Temporal Climate Prediction on NASA MODIS LST > Big Data Practical Task — Faculty of Computer Science & Information Systems, May 2026 A complete end-to-end Big Data pipeline that ingests 10 years of NASA MODIS Land Surface Temperature (MOD11C1) satellite data over Egypt, processes it through a MongoDB-backed ETL workflow, and trains a custom **ConvLSTM** model to forecast Egypt's spatial temperature grid one day ahead. --- ## Environment Setup This project uses `uv` for dependency management. ### Prerequisites - Python 3.13+ (declared in `.python-version`) - `uv` installed ### Install & sync dependencies ```bash # Install uv if not already present curl -Ls astral.sh | sh # Create virtual environment and install all dependencies from uv.lock uv sync ``` ### Run any script ```bash uv run python data-etl/scripts/0_earthaccess_to_mongo.py --year 2023 ``` ### Required environment variables | Variable | Purpose | |------------------|----------------------------------------------| | `EARTHDATA_TOKEN`| NASA EarthData bearer token (earthaccess auth)| | `MONGO_URI` | MongoDB connection string (default: `mongodb://localhost:27017`) | --- ## Project Structure ``` . ├── data-etl/ │ └── scripts/ │ ├── 0_earthaccess_to_mongo.py # Download HDF4 → crop Egypt → insert MongoDB │ ├── 1_fetch_and_scale.py # MongoDB → MinMax scale → raw_scaled_{year}.npy │ ├── 2_build_tensors.py # Sliding window (T=14) → X_{year}.npy, y_{year}.npy │ ├── 3_pack_and_move.py # tar.gz compress → move to Google Drive │ ├── 4_cleanup_mongo.py # Delete year's documents from MongoDB │ ├── run_pipeline.sh # Orchestrator: runs stages 0–4 for each year │ ├── consumer_dataloader.py # PyTorch Dataset w/ memory-mapped lazy loading │ └── consumer_ingestion.md # DL team guide: extract tarballs from Drive │ ├── notebo …