%global _empty_manifest_terminate_build 0 Name: python-eoplatform Version: 0.2.4 Release: 1 Summary: Earth Observation made easy. License: GPL-3.0-only URL: https://github.com/mtralka/EOPlatform Source0: https://mirrors.nju.edu.cn/pypi/web/packages/74/1e/2c7777012b50da3022ae3e94448aa74a90ca4e462dd9e9c03273a1ff21d2/eoplatform-0.2.4.tar.gz BuildArch: noarch Requires: python3-rich Requires: python3-typer[all] Requires: python3-numpy %description

EOP Logo

An Earth Observation Platform

Earth Observation made easy.

Report Bug | Request Feature

![Downloads](https://img.shields.io/github/downloads/mtralka/EOPlatform/total) ![Forks](https://img.shields.io/github/forks/mtralka/EOPlatform?style=social) ![Stargazers](https://img.shields.io/github/stars/mtralka/EOPlatform?style=social)
![Issues](https://img.shields.io/github/issues/mtralka/EOPlatform) ![License](https://img.shields.io/github/license/mtralka/EOPlatform) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![mypy](https://img.shields.io/badge/mypy-checked-brightgreen) ## 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 * `metadata` module for extracting platform metadata * supports `.txt` and `.xml` files * `composites` modules 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) ```sh 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`** ```sh eoplatform info landsat8 ``` ![EOPlatform Landsat8 info example](images/eoplatform-info-landsat8.PNG) **Show only `landsat8` bands** ```sh eoplatform info landsat8 -b ``` **Show information on composite `NDVI`** ```sh eoplatform info ndvi ``` ![EOPlatform NDVI info example](images/eoplatform-composite-info-ndvi.PNG) #### ...through imports You can search through the `eoplatform` module ```python import eoplatform as eop eop.info("Landsat8") # case insensitive eop.info("NDVI) ``` Or import your exact platform/composite ```python 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](/eoplatform/data/composites) for the exact implemented composites (inspired by [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices)) #### Composite information ```python from eoplatform.composites import NDVI # DVI, etc NDVI.info() ``` #### Creating composite Composites bands must be passed in as keyword arguments assigned to NumPy arrays. ```python 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`. ```python 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: ```python abbreviation: str name: str ``` #### Example platform JSON Standard key with value: ```json "abbreviation": "L8", //snip ``` Key with value and metadata: ```json "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: ```json "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: ```python number: int name: str abbreviation: str ``` ### Composites Composites must have: ```python abbreviation: str formula: str name: str reference: str type: str # matching CompositeType bands: List[str] ``` #### Example JSON Composite ```json { "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](https://github.com/mtralka/EOPlatform/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](https://github.com/mtralka/EOPlatform/issues/new) 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](https://github.com/mtralka/EOPlatform/blob/main/LICENSE.md) for more information. ## Built With * [Rich](https://github.com/willmcgugan/rich) * [Typer](https://github.com/tiangolo/typer) * [Numpy](https://numpy.org/) * [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices) ## Authors * [**Matthew Tralka**](https://github.com/mtralka/) %package -n python3-eoplatform Summary: Earth Observation made easy. Provides: python-eoplatform BuildRequires: python3-devel BuildRequires: python3-setuptools BuildRequires: python3-pip %description -n python3-eoplatform

EOP Logo

An Earth Observation Platform

Earth Observation made easy.

Report Bug | Request Feature

![Downloads](https://img.shields.io/github/downloads/mtralka/EOPlatform/total) ![Forks](https://img.shields.io/github/forks/mtralka/EOPlatform?style=social) ![Stargazers](https://img.shields.io/github/stars/mtralka/EOPlatform?style=social)
![Issues](https://img.shields.io/github/issues/mtralka/EOPlatform) ![License](https://img.shields.io/github/license/mtralka/EOPlatform) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![mypy](https://img.shields.io/badge/mypy-checked-brightgreen) ## 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 * `metadata` module for extracting platform metadata * supports `.txt` and `.xml` files * `composites` modules 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) ```sh 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`** ```sh eoplatform info landsat8 ``` ![EOPlatform Landsat8 info example](images/eoplatform-info-landsat8.PNG) **Show only `landsat8` bands** ```sh eoplatform info landsat8 -b ``` **Show information on composite `NDVI`** ```sh eoplatform info ndvi ``` ![EOPlatform NDVI info example](images/eoplatform-composite-info-ndvi.PNG) #### ...through imports You can search through the `eoplatform` module ```python import eoplatform as eop eop.info("Landsat8") # case insensitive eop.info("NDVI) ``` Or import your exact platform/composite ```python 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](/eoplatform/data/composites) for the exact implemented composites (inspired by [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices)) #### Composite information ```python from eoplatform.composites import NDVI # DVI, etc NDVI.info() ``` #### Creating composite Composites bands must be passed in as keyword arguments assigned to NumPy arrays. ```python 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`. ```python 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: ```python abbreviation: str name: str ``` #### Example platform JSON Standard key with value: ```json "abbreviation": "L8", //snip ``` Key with value and metadata: ```json "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: ```json "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: ```python number: int name: str abbreviation: str ``` ### Composites Composites must have: ```python abbreviation: str formula: str name: str reference: str type: str # matching CompositeType bands: List[str] ``` #### Example JSON Composite ```json { "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](https://github.com/mtralka/EOPlatform/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](https://github.com/mtralka/EOPlatform/issues/new) 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](https://github.com/mtralka/EOPlatform/blob/main/LICENSE.md) for more information. ## Built With * [Rich](https://github.com/willmcgugan/rich) * [Typer](https://github.com/tiangolo/typer) * [Numpy](https://numpy.org/) * [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices) ## Authors * [**Matthew Tralka**](https://github.com/mtralka/) %package help Summary: Development documents and examples for eoplatform Provides: python3-eoplatform-doc %description help

EOP Logo

An Earth Observation Platform

Earth Observation made easy.

Report Bug | Request Feature

![Downloads](https://img.shields.io/github/downloads/mtralka/EOPlatform/total) ![Forks](https://img.shields.io/github/forks/mtralka/EOPlatform?style=social) ![Stargazers](https://img.shields.io/github/stars/mtralka/EOPlatform?style=social)
![Issues](https://img.shields.io/github/issues/mtralka/EOPlatform) ![License](https://img.shields.io/github/license/mtralka/EOPlatform) [![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black) ![mypy](https://img.shields.io/badge/mypy-checked-brightgreen) ## 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 * `metadata` module for extracting platform metadata * supports `.txt` and `.xml` files * `composites` modules 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) ```sh 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`** ```sh eoplatform info landsat8 ``` ![EOPlatform Landsat8 info example](images/eoplatform-info-landsat8.PNG) **Show only `landsat8` bands** ```sh eoplatform info landsat8 -b ``` **Show information on composite `NDVI`** ```sh eoplatform info ndvi ``` ![EOPlatform NDVI info example](images/eoplatform-composite-info-ndvi.PNG) #### ...through imports You can search through the `eoplatform` module ```python import eoplatform as eop eop.info("Landsat8") # case insensitive eop.info("NDVI) ``` Or import your exact platform/composite ```python 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](/eoplatform/data/composites) for the exact implemented composites (inspired by [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices)) #### Composite information ```python from eoplatform.composites import NDVI # DVI, etc NDVI.info() ``` #### Creating composite Composites bands must be passed in as keyword arguments assigned to NumPy arrays. ```python 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`. ```python 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: ```python abbreviation: str name: str ``` #### Example platform JSON Standard key with value: ```json "abbreviation": "L8", //snip ``` Key with value and metadata: ```json "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: ```json "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: ```python number: int name: str abbreviation: str ``` ### Composites Composites must have: ```python abbreviation: str formula: str name: str reference: str type: str # matching CompositeType bands: List[str] ``` #### Example JSON Composite ```json { "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](https://github.com/mtralka/EOPlatform/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](https://github.com/mtralka/EOPlatform/issues/new) 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](https://github.com/mtralka/EOPlatform/blob/main/LICENSE.md) for more information. ## Built With * [Rich](https://github.com/willmcgugan/rich) * [Typer](https://github.com/tiangolo/typer) * [Numpy](https://numpy.org/) * [awesome spectral indices](https://github.com/davemlz/awesome-spectral-indices) ## Authors * [**Matthew Tralka**](https://github.com/mtralka/) %prep %autosetup -n eoplatform-0.2.4 %build %py3_build %install %py3_install install -d -m755 %{buildroot}/%{_pkgdocdir} if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi pushd %{buildroot} if [ -d usr/lib ]; then find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/lib64 ]; then find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/bin ]; then find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst fi if [ -d usr/sbin ]; then find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst fi touch doclist.lst if [ -d usr/share/man ]; then find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst fi popd mv %{buildroot}/filelist.lst . mv %{buildroot}/doclist.lst . %files -n python3-eoplatform -f filelist.lst %dir %{python3_sitelib}/* %files help -f doclist.lst %{_docdir}/* %changelog * Tue May 30 2023 Python_Bot - 0.2.4-1 - Package Spec generated