An Earth Observation Platform
Earth Observation made easy.
Report Bug
|
Request Feature
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 access to information on RS platforms
metadatamodule for extracting platform metadata- supports
.txtand.xmlfiles
- supports
compositesmodules for creating and learning about 91 RS band composites
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.8 or above to run.
eoplatform development is ongoing -
upgrade to the latest version by running:
pip install eoplatform -U
Install the latest dev version with:
pip install git+https://github.com/mtralka/EOPlatform/eoplatform
Usage
eoplatform is accessible through the command line (CLI) and as a module import.
Querying information
...through CLI
NAME is any supported composite or platform (case-insensitive)
Usage: eoplatform info [OPTIONS] NAME
Arguments:
NAME [required]
Options:
-b, --only-bands
/ -nd, --no-description [default: True]
--help Show this message and exit.
EX:
Show all information on landsat8
eoplatform info landsat8
Show only landsat8 bands
eoplatform info landsat8 -b
Show information on composite NDVI
eoplatform info ndvi
...through imports
You can search through the eoplatform module
import eoplatform as eop
eop.info("Landsat8") # case insensitive
eop.info("NDVI)
Or import your exact platform/composite
from eoplatform.platforms import landsat8
from eoplatform.composites import NDVI
landsat8.info() # OR print(landsat8)
landsat8.bands.info()
landsat8.bands.RED.info()
NDVI.info() # or print(NDVI)
Band composites
Importable through eoplatforms.composites or searchable (shown above) from eoplatform.info()
See implemented composite data dir for the exact implemented composites (inspired by awesome spectral indices)
Composite information
from eoplatform.composites import NDVI # DVI, etc
NDVI.info()
Creating composite
Composites bands must be passed in as keyword arguments assigned to NumPy arrays.
from eoplatform.composites import NDVI
red_array: np.ndarray = ...
nir_array: np.ndarray = ...
ndvi: np.ndarray = NDVI.create(NIR=nir_array, RED=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)
Adding platforms / composites
Platforms and composites are auto-generated from /data/(composites,platforms). To add platforms or composites, simply create a new json file in the desired directory.
Platform
Platforms must have:
abbreviation: str
name: str
Example platform JSON
Standard key with value:
"abbreviation": "L8",
//snip
Key with value and metadata:
"altitude": {
"meta": {
"unit": "km"
},
"value": 705
}
//snip
Bands standard for Platform key bands
Platform key for bands must be a list of following the band standard. EX:
"bands": [
{
"abbreviation": "CAER",
"description":"",
"name": "Coastal Aerosol",
"number": 1,
"resolution": "30",
"sensor": "OLI",
"wavelength": "0.433-0.453"
},
//snip
]
Band standard for el in bands
Each element to bands is a band. Each band must have:
number: int
name: str
abbreviation: str
Composites
Composites must have:
abbreviation: str
formula: str
name: str
reference: str
type: str # matching CompositeType
bands: List[str]
Example JSON Composite
{
"abbreviation": "ARI",
"bands": [
"GREEN",
"VRE1"
],
"description": "",
"formula": "(1 / GREEN) - (1 / VRE1)",
"name": "Anthocyanin Reflectance Index",
"reference": "https://doi.org/10.1562/0031-8655(2001)074%3C0038:OPANEO%3E2.0.CO;2",
"type": "vegetation"
}
Composite Types
Possible values for composite type key
- VEGETATION
- BURN
- WATER
- SNOW
- DROUGHT
- URBAN
- KERNEL
- NONE
For both platforms and composites, all other attributes will be dynamically rendered and shown in info
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
Metadata
Release files for eoplatform 0.2.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| eoplatform-0.2.4.tar.gz | 60.2 kB | Without provenance | Details for eoplatform-0.2.4.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| eoplatform-0.2.4-py3-none-any.whl | Python 3 | none | any | Details for eoplatform-0.2.4-py3-none-any.whl |
Total release size: 131.5 kB
Release files / eoplatform-0.2.4.tar.gz
| Download URL | eoplatform-0.2.4.tar.gz |
|---|---|
| Size | 60.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ba2862bcb2732b9725f80dec8a46c87c92020c9fdb931af3626b07fe378adadf
|
|
BLAKE2b-256 checksum How to use checksums |
741e2c7777012b50da3022ae3e94448aa74a90ca4e462dd9e9c03273a1ff21d2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.11 CPython/3.8.0 Windows/10
|
Release files / eoplatform-0.2.4-py3-none-any.whl
| Download URL | eoplatform-0.2.4-py3-none-any.whl |
|---|---|
| Size | 71.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a88945a1050fdff8c8d2cad98de8fbd8c61e55fdc3e85846a21d5c8d2a52ad3c
|
|
BLAKE2b-256 checksum How to use checksums |
c8c3ff3d921e1fa0abb85a0cd5c25034a07520b51b60415d497e6a5d8049122a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.11 CPython/3.8.0 Windows/10
|
Security for eoplatform 0.2.4
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.