Releases: ESA-PhiLab/phidown
Releases · ESA-PhiLab/phidown
PyPi
v0.0.2 feat: add example usage for CopernicusDataSearcher with parameters fo…
First Release!
Φ-Down (phidown)
Φ-Down is a Python package designed to simplify the search and download of Earth Observation (EO) data from the Copernicus Data Space Ecosystem.
Core Functionality
Authentication
- Manages authentication with Copernicus identity services.
- Handles temporary S3 credentials for downloads (
phidown/downloader.py). - Credentials can be:
- Stored in a
secret.ymlfile. - Provided via command-line arguments.
- Stored in a
Data Search
- The
CopernicusDataSearcherclass queries the Copernicus OData API (phidown/search.py). - Search filters include:
- Collection name (e.g.,
SENTINEL-1,SENTINEL-2). - Product type.
- Date range.
- Area of interest (WKT geometry).
- Cloud cover percentage.
- Orbit direction.
- Additional attributes defined in
phidown/config.json.
- Collection name (e.g.,
- Returns results as a pandas DataFrame.
Data Download
- The
pull_downfunction orchestrates the download process (phidown/downloader.py):- Retrieves product metadata.
- Acquires temporary S3 credentials.
- Downloads product files using boto3.
- Displays download progress with tqdm.
- Cleans up temporary credentials post-download.
Visualization
- Provides
plot_kml_coordinates(phidown/viz.py) to plot KML footprint coordinates on a Folium map.
Project Structure & Development
Package Management
- Uses pdm for dependency management (defined in
pyproject.toml).
Testing
- Unit tests included using pytest and pytest-mock.
- Test files located in the
tests/directory:test_search.pytest_downloader.pytest_viz.py
CI/CD
- Utilizes GitHub Actions for:
- Continuous Integration:
- Linting with flake8.
- Testing with pytest across multiple Python versions (
ci.yml).
- Publishing:
- Automatic deployment to PyPI upon GitHub release (
publish.yml).
- Automatic deployment to PyPI upon GitHub release (
- Continuous Integration:
Documentation
- Includes
readme.mdwith:- Installation instructions.
- Usage guidelines.
- Supported missions.
- Contribution guidelines.
- Provides an example Jupyter Notebook (
how_to_start.ipynb) demonstrating the search and download workflow.
License
- Licensed under the Creative Commons Attribution 2.0 Generic (CC BY 2.0) license (
LICENSE).