eodms-api-client

EODMS API Client for Python

https://github.com/m9brady/eodms-api-client

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

canada eodms eodms-client python python3 sar satellite satellite-data satellite-imagery synthetic-aperture-radar
Last synced: 6 months ago · JSON representation ·

Repository

EODMS API Client for Python

Basic Info
Statistics
  • Stars: 19
  • Watchers: 4
  • Forks: 6
  • Open Issues: 1
  • Releases: 27
Topics
canada eodms eodms-client python python3 sar satellite satellite-data satellite-imagery synthetic-aperture-radar
Created over 5 years ago · Last pushed 9 months ago
Metadata Files
Readme License Citation

README.md

EODMS API Client

Conda (channel only) PyPI Documentation

A Python3 package for querying, ordering and downloading from the REST API provided by Natural Resources Canada's Earth Observation Data Management System (EODMS).

Heavily influenced by the utterly fantastic sentinelsat package: https://github.com/sentinelsat/sentinelsat

Usage:

Full documentation and real-world example on GitHub Pages!

Quickstart:

Create a new environment with conda

console conda create -n eodms-env eodms-api-client -c conda-forge conda activate eodms-env

... or install with pip

Warning Pip is not recommended - may clobber your existing Python environment - may be problematic with Windows+GDAL

console pip install eodms-api-client

Use the CLI

Given a geojson file containing search geometry (Point, Line, Polygon), query - but do not order - the RCM collection for products in the last 24hrs and dump the results to a geojson file for inspection (query_results.geojson)

console eodms -c RCM -g query_aoi.geojson --dump-results

Same query as above, but this time submit an order for all products found by the query instead of saving a result file

console eodms -c RCM -g query_aoi.geojson --submit-order

After submitting an order, this package will return a list of Order IDs that users should take note of as these will be used to download the imagery once the order is complete:

console eodms -c RCM --order-id [integer Order ID]

If your order produced several Order IDs (e.g. more than 50 images ordered at once), you may wish to create a text file of line-separated Order IDs to feed to the package:

console eodms -c RCM --order-ids [path to text file containing integer Order IDs]

Use interactively in a Python REPL

Repeating the same query as the CLI example above in a Python REPL allows you to manually inspect the results and do all sorts of interesting things with the query result geodataframe.

For example, one may wish to inspect the image metadata to check approximate download sizes. One may also want to inspect the image footprints to ensure that they are ordering only the images which have most-optimal coverage of their query_aoi.geojson.

```python

from eodmsapiclient import EodmsAPI x = EodmsAPI(collection='RCM') x.query(geometry='query_aoi.geojson') type(x.results) geopandas.geodataframe.GeoDataFrame ```

List of possible CLI arguments

```console eodms --help Usage: eodms [OPTIONS]

Options: -u, --username TEXT EODMS username (leave blank to use .netrc or be prompted)

-p, --password TEXT EODMS password (leave blank to use .netrc or be prompted)

-c, --collection TEXT EODMS collection to search [required]

-s, --start TEXT Beginning of acquisition time window (default to 1 day prior to now)

-e, --end TEXT End of acquisition time window (default to now)

-g, --geometry PATH File containing vector feature(s) used to constrain the query results to a spatial region

-pt, --product-type TEXT Limit results to a certain image product type

-pf, --product-format [GeoTIFF|NITF21] Limit results to a certain image product format

-sr, --spatial-resolution TEXT Limit results to the desired spatial resolution

-rel, --relative-orbit TEXT Limit results to the desired relative orbit Id

-abs, --absolute-orbit TEXT Limit results to the desired absolute orbit Id

-ia, --incidence-angle TEXT Limit results to the desired incidence angle

-ial, --incidence-angle-low TEXT Limit results to scenes that have incidence angles greater than this value (degrees)

-iah, --incidence-angle-high TEXT Limit results to scenes that have incidence angles less than this value (degrees)

-rb, --radarsat-beam-mode TEXT Limit SAR collection results to the desired beam mode

-rm, --radarsat-beam-mnemonic TEXT Limit SAR collection results to the desired beam mnemonic

-rp, --radarsat-polarization [CH CV|HH|HH HV|HH HV VH VV|HH VV|HV|VH|VH VV|VV] Limit SAR collection results to the desired polarization

-ro, --radarsat-orbit-direction [Ascending|Descending] Limit SAR collection results to the desired orbit type

-rl, --radarsat-look-direction [Left|Right] Limit SAR collection results to the desired antenna look direction

-rd, --radarsat-downlink-segment-id TEXT Limit SAR collection results to the desired downlink segment Id

-rs, --rcm-satellite [RCM1|RCM2|RCM3] Limit RCM collection results to the desired satellite

-cc, --cloud-cover TEXT Limit optical results to have less than this amount of cloud cover [0-100]

-rn, --roll-number TEXT Limit NAPL results to the given roll number

-pn, --photo-number TEXT Limit NAPL results to the given photo number

--priority [Low|Medium|High|Urgent] What priority to use when submitting orders [default: Medium]

-o, --output-dir DIRECTORY Directory where query results and downloaded imagery will be saved [default: .]

-dr, --dump-results Whether or not to create a geojson dump containing the results of the query

-dfn, --dump-filename TEXT Filename for query results geojson [default: query_results]

--submit-order Submit an order to EODMS from the results of the current query parameters

--record-id INTEGER Specific Record Id to order from the desired collection

--record-ids PATH File of line-separated Record Ids to order from the desired collection

--order-id INTEGER Specific Order Id to download from EODMS

--order-ids PATH File of line-separated Order Ids to download from EODMS

--uuid TEXT Specific UUID to order from the desired collection

--uuid-list PATH File of line-separated UUIDs to order from the desired collection

--n-dds-workers INTEGER Number of concurrent threads to use when downloading from DDS api

--verbose Use debug-level logging

--version Show the package version

-h, --help Show this message and exit.

```

ToDo:

  • [x] query RCM
  • [x] query and order RCM
  • [x] order with provided record Ids (no query necessary)
  • [x] download given item Ids (no query or order submission necessary)
  • [ ] blindly order (skip extra metadata fetching, just order whatever is returned by query)
  • [x] add support for other collections:
    • [x] Radarsat2 (WIP)
    • [x] Radarsat1 (WIP)
    • [x] PlanetScope (WIP)
  • [ ] add multi-select functionality for supported collection parameters
  • [x] allow for collection-switching for an existing EodmsAPI instance (must re-evaluate params and rebuild search_url)
  • [x] readthedocs documentation

Owner

  • Name: Mike Brady
  • Login: m9brady
  • Kind: user
  • Location: Toronto, Ontario, Canada
  • Company: Environment and Climate Change Canada

🍁 🧊 🌎

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Brady"
  given-names: "Mike"
  orcid: "https://orcid.org/0000-0001-8263-0951"
title: "eodms-api-client"
version: 1.3.0
date-released: 2025-05-10
url: "https://github.com/m9brady/eodms-api-client"

GitHub Events

Total
  • Release event: 1
  • Watch event: 1
  • Delete event: 1
  • Push event: 22
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2
Last Year
  • Release event: 1
  • Watch event: 1
  • Delete event: 1
  • Push event: 22
  • Pull request event: 2
  • Fork event: 1
  • Create event: 2

Committers

Last synced: about 2 years ago

All Time
  • Total Commits: 126
  • Total Committers: 2
  • Avg Commits per committer: 63.0
  • Development Distribution Score (DDS): 0.127
Past Year
  • Commits: 22
  • Committers: 1
  • Avg Commits per committer: 22.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Mike Brady m****y 110
Mike Brady m****y@g****m 16
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 9
  • Total pull requests: 3
  • Average time to close issues: 2 months
  • Average time to close pull requests: 3 minutes
  • Total issue authors: 6
  • Total pull request authors: 1
  • Average comments per issue: 3.78
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 2
  • Average time to close issues: N/A
  • Average time to close pull requests: 2 minutes
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • ECCCBen (4)
  • jmarkloew (1)
  • m9brady (1)
  • hiredgoon8118 (1)
  • c-mancuso (1)
  • dsjstc (1)
Pull Request Authors
  • m9brady (5)
Top Labels
Issue Labels
server-side issue (1)
Pull Request Labels

Packages

  • Total packages: 3
  • Total downloads:
    • pypi 169 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 73
  • Total maintainers: 1
proxy.golang.org: github.com/m9brady/eodms-api-client
  • Versions: 27
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 6 months ago
pypi.org: eodms-api-client

Tool for querying and submitting image orders to Natural Resources Canada's Earth Observation Data Management System (EODMS)

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 169 Last month
Rankings
Dependent packages count: 10.1%
Downloads: 13.0%
Stargazers count: 14.2%
Average: 14.8%
Forks count: 15.3%
Dependent repos count: 21.6%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: eodms-api-client

A Python3 package for querying, ordering and downloading from the REST API provided by Natural Resources Canada's Earth Observation Data Management System (EODMS).

  • Versions: 17
  • Dependent Packages: 0
  • Dependent Repositories: 1
Rankings
Dependent repos count: 24.4%
Average: 45.5%
Dependent packages count: 51.6%
Stargazers count: 51.9%
Forks count: 54.2%
Last synced: 6 months ago

Dependencies

requirements.txt pypi
  • click *
  • geopandas >=0.8
  • pandas >=1.0.0
  • pyproj *
  • python-dateutil *
  • requests *
  • tqdm *
.github/workflows/codeql-analysis.yml actions
  • actions/checkout v2 composite
  • github/codeql-action/analyze v1 composite
  • github/codeql-action/autobuild v1 composite
  • github/codeql-action/init v1 composite
.github/workflows/python-publish.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
setup.py pypi
.github/workflows/github-pages-docs.yml actions
  • actions/checkout v3 composite
  • mamba-org/setup-micromamba v1 composite
  • peaceiris/actions-gh-pages v3 composite
docs/environment.yml pypi