A simple but effective Google Earth Engine (GEE) Data Extraction Suite with a modern Streamlit interface. Designed for researchers, GIS specialists, and data scientists to streamline the acquisition of historical satellite datasets.
Note: This is a work in progress. Main functionalities are working but there are still some bugs to fix and features to add. I really appreciate testers to find them and suggest improvements.
The GEE Data Extractor provides a robust pipeline for extracting complex environmental and satellite data without the need for manual coding in the GEE JavaScript code platform or with the Python API. Users can visualize their regions of interest (ROI) instantly and submit high-volume extraction jobs to either Google Drive or direct local storage.
- Intuitive GUI: A polished Streamlit dashboard for end-to-end data extraction.
- Flexible ROI Selection:
- Point Coordinates: Select your Lat/Lon coordinates for extraction.
- File Upload: Support for Shapefiles (
.shp), GeoJSON, and KML. - Administrative Boundaries: Seamless integration with GADM via
pygadmfor country and province-level selection.
- Satellites Available (for the moment):
- Vegetation Indices: MODIS NDVI & EVI (MOD13Q1).
- Weather & Climate: ERA5-Land Hourly and Daily reanalysis.
- Precipitation: CHIRPS Daily high-resolution rainfall data and GPM IMERG V07 (30-Min).
- Reproducibility: Automatic state persistence in
settings.tomland full job history tracking in.cache/history.json. - Passive Map Verification: Automated map and geometry rendering to confirm input accuracy before submission.
- Python 3.8 or higher.
- A Google Earth Engine account (Sign up here).
git clone https://github.com/Mastro1/GEE_data_extraction_UI.git
cd GEE_data_extraction_UI- Windows: Simply double-click
run.bat(it will create a virtual environment and install dependencies). - Standard:
pip install -r requirements.txt
Run the following command to authenticate your Google Earth Engine account:
python -c "import ee; ee.Authenticate()"-
Start the Application: For the best experience, use the provided helper scripts which handle environment setup automatically:
- Windows: Simply double-click
run.bat(it will create a virtual environment and install dependencies if they are missing). - Python/Standard: Alternatively, use the cross-platform runner:
python run.py
Note: These scripts are optional convenience tools. You can always run the app manually using:
streamlit run src/interface/app.py
- Windows: Simply double-click
-
Configure Settings: Use the sidebar to set your GEE Project ID and default download folders.
-
Define WHAT: Select your satellite dataset (e.g., ERA5-Land) and the specific bands you require.
-
Define WHERE: Select your points, upload a geometry file or select a GADM administrative unit.
-
Define WHEN: Set your start/end years and optional seasonal filters.
-
Execute: Choose "Save to Drive" for large batch jobs or "Download Locally" for immediate samples.
The system utilizes a Local State Architecture to ensure responsiveness and reliability:
- Frontend: Streamlit (Interface Layer)
- Infrastructure: Python-native GEE API wrapper.
- Persistence:
config/settings.tomlfor user preferences. - History: JSON-based event log storing previous run parameters for instant reloading.
Future enhancements and upcoming features:
- Expand Dataset Catalog: Integrate additional satellite constellations (e.g., Sentinel-2, Landsat-8/9).
- Spatial Masking: Add support for uploading and applying custom masks (e.g., crop masks, land cover classification) during extraction.
- Full Session Restore: Finalize the "Reload Settings" logic to allow seamless recovery of previous work states (WIP, works for the most part).
Satellite Data Extraction | Google Earth Engine UI | Remote Sensing Python | Environmental Data Analysis | ERA5 Land Data | CHIRPS Precipitation Extraction | NDVI Timeseries | GIS Dashboard | Sustainable Agriculture Data
Contributions are welcome! Please feel free to submit a Pull Request or a Issue.
This project is licensed under the MIT License - see the LICENSE file for details.
Developed with ❤️ for the Remote Sensing Community.
