Skip to main content

Earth Observation made easy.

Project description


EOP Logo

An Earth Observation Platform

Earth Observation made easy.

Report Bug | Request Feature

Downloads Forks Stargazers
Issues License Code style: black mypy

About

eoplatform is a Python package that aims to simplify Remote Sensing Earth Observation by providing actionable information on a wide swath of RS platforms and provide a simple API for downloading and visualizing RS imagery. Made for scientists, educators, and hobbiests alike.

  • Easy to access information on RS platforms
    • Band information
    • Orbit regimes
    • Scene statistics
    • etc
  • metadata module for extracting platform metadata
    • supports .txt and .xml files
  • composites modules for creating and learning about popular RS band composites
    • Included so far - NDVI, SR, DVI, EVI, EVI2, NDWI, NBR, NDSI, NDBI

Coming soon:

  • Data downloading
    • Landsat 8
    • Sentinel-2
  • Raster tools
    • Raster IO functions

Installation

eoplatform can be installed by running pip install eoplatform. It requires Python 3.7 or above to run.

Example

Landsat8 Info

Usage

eoplatform is accessible through the command line (CLI) and as a module import.

Querying platform info

CLI

PLATFORM argument is case-insensitive

Usage: eoplatform info [OPTIONS] PLATFORM

Arguments:
  PLATFORM  [required]

Options:
  -d, --description / -nd, --no-description
                                  [default: description]     
  --help                          Show this message and exit.

EX:

eoplatform info landsat8

show all info eoplatform has on Landsat8

eoplatform info landsat8 -b

shows only Landsat8's bands

Module import

You can import your desired platform

from eoplatform import landsat8

landsat8.info()  # OR print(landsat8)

or search from the eoplatform module itself

import eoplatform as eop

eop.info("Landsat8")  # case insensitive

Downloading platform scenes

CLI

in-progress

Usage: eoplatform download [OPTIONS] PLATFORM

Arguments:
  PLATFORM  [required]

Options:
  --help  Show this message and exit.

Module import

in-progress

from eoplatform import landsat8

landsat8.download()
import eoplatform as eop

eop.download("landsat8")

both methods accept the full range of search keword arguments

Band composites

Implemented composites:

  • Normalized Difference Vegetation Index (NDVI)
  • Simple Ratio (SR)
  • Difference Vegetation Index (DVI)
  • Enhanced Vegetation Index (EVI)
  • Enhanced Vegetation Index 2 (EVI2)
  • Normalized Difference Water Index (NDWI)
  • Normalized Burn Ratio (NBR)
  • Normalized Difference Snow Index (NDSI)
  • Normalized DIfference Built-Up Index (NDBI)

Composite information

from eoplatform.composites import NDVI  # DVI, etc

NDVI.info()

Creating composite

from eoplatform.composites import NDVI

red_array: np.ndarray = ...
nir_array: np.ndarray = ...

ndvi: np.ndarray = NDVI.create(nir_array, red_array)

Metadata extraction

Supports .txt and .xml files through extract_XML_metadata and extract_TXT_metadata.

from eoplatform.metadata import extract_XML_metadata

file_path: str = ...
target_attributes: List[str] = ...

values: Dict[str, str] = extract_XML_metadata(file_path, target_attributes)

Roadmap

See the open issues for a list of proposed features (and known issues).

  • download support

Contributing

Contributions are welcome. Currently, eoplatform is undergoing rapid development and contribution opportunities may be scarce.

  • If you have suggestions for adding or removing features, feel free to open an issue to discuss it, or directly create a pull request with the proposed changes.
  • Create individual PR for each suggestion.
  • Use pre-commit hooks - pre-commit install
  • Code style is black, mypy --strict

License

Distributed under the GNU GPL-3.0 License. See LICENSE for more information.

Built With

Authors

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

eoplatform-0.2.1.tar.gz (25.5 kB view hashes)

Uploaded Source

Built Distribution

eoplatform-0.2.1-py3-none-any.whl (29.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page