Skip to content

Releases: ESA-PhiLab/phidown

PyPi

29 Apr 15:39

Choose a tag to compare

PyPi Pre-release
Pre-release
v0.0.2

feat: add example usage for CopernicusDataSearcher with parameters fo…

First Release!

29 Apr 15:20

Choose a tag to compare

First Release! Pre-release
Pre-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.yml file.
    • Provided via command-line arguments.

Data Search

  • The CopernicusDataSearcher class 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.
  • Returns results as a pandas DataFrame.

Data Download

  • The pull_down function 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.py
    • test_downloader.py
    • test_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).

Documentation

  • Includes readme.md with:
    • 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).