Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nasa-nccs-hpda/terragpu

Python library to process and classify remote sensing imagery by means of GPUs and ML.
https://github.com/nasa-nccs-hpda/terragpu

ai cudf cupy cuspatial dask earth-science geopandas gpu ml numpy raster vector

Last synced: 18 days ago
JSON representation

Python library to process and classify remote sensing imagery by means of GPUs and ML.

Awesome Lists containing this project

README

        

# terragpu

Python library to process and classify remote sensing imagery by means of GPUs
and CPU parallelization for high performance and commodity base environments.

We are currently working on tutorials and documentations. Feel to follow this repository for
documentation updates and upcoming tutorials.

[![DOI](https://zenodo.org/badge/295528915.svg)](https://zenodo.org/badge/latestdoi/295528915)
![Pipeline Status](https://github.com/nasa-cisto-ai/terragpu/actions/workflows/main.yml/badge.svg)

## Objectives

- Library to process remote sensing imagery using GPU and CPU parallelization.
- Machine Learning and Deep Learning image classification and regression.
- Agnostic array and vector-like data structures.
- User interface environments via Notebooks for easy to use AI/ML projects.
- Example notebooks for quick AI/ML start with your own data.

### Installation

The following library is intended to be used to accelerate the development of data science products for remote sensing satellite imagery. terragpu can be installed by itself, but instructions for installing the full environments are listed under the requirements directory so projects, examples, and notebooks can be run.

Note: PIP installations do not include CUDA libraries for GPU support. Make sure
NVIDIA libraries are installed locally in the system if not using conda.

## Getting Started

``` bash
├── archives <- Legacy code stored to historical reference
├── docs <- Default documentation for working with this project
├── images <- Store project images
├── notebooks <- Jupyter notebooks
├── examples <- Examples for utilizing the library
├── requirements <- Requirements for installing the dependencies
├── scripts <- Utility scripts for analysis
├── terragpu <- Library source code
├── README.md <- The top-level README for developers using this project
├── CHANGELOG.md <- Releases documentation
├── LICENSE <- License documentation
└── setup.py <- Script to install library
```

## Background

Library to process and classify remote sensing imagery. This is work in progress currently supporting
Random Forest classification and merging Convolutional Neural Networks from the deep-rsensing project.
Each particular project includes its own README with information.

Raster processing relies in xarray and rasterio for memory mapping operations, using Dask as the backend.
PyTorch is implemented for GPU accelaration of Sckitlearn models. GPU acceleration is provided
by the NVIDIA RAPIDS environment and we are in the development phase to support AMD GPUs.

## Authors

- Jordan Alexis Caraballo-Vega, [email protected]
- Margaret Wooten, [email protected]

## Contributors

- Andrew Weis, [email protected]
- Brian Lee, [email protected]

## Installation

See the build [guide](requirements/README.md).

## Contributing

Please see our [guide for contributing to terragpu](CONTRIBUTING.md).

## References

Tutorials will be published under [Medium](https://medium.com/@jordan.caraballo/) for additional support
and development, including how to use the library or any upcoming releases.

Please consider citing this when using terragpu in a project. You can use the citation BibTeX:

```bibtex
@software{
A_Caraballo-Vega_TerraGPU_2020,
author = {A Caraballo-Vega, Jordan},
doi = {10.5281/zenodo.5765917},
license = {Apache-2.0},
month = {7},
title = {{TerraGPU}},
url = {https://github.com/nasa-cisto-ai/terragpu},
version = {2021.11},
year = {2020}
}
```

## References

[1] Raschka, S., Patterson, J., & Nolet, C. (2020). Machine learning in python: Main developments and technology trends in data science, machine learning, and artificial intelligence. Information, 11(4), 193.

[2] Paszke, Adam; Gross, Sam; Chintala, Soumith; Chanan, Gregory; et all, PyTorch, (2016), GitHub repository, . Accessed 13 February 2020.

[3] Caraballo-Vega, J., Carroll, M., Li, J., & Duffy, D. (2021, December). Towards Scalable & GPU Accelerated Earth Science Imagery Processing: An AI/ML Case Study. In AGU Fall Meeting 2021. AGU.