Open Sustainable Technology
A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.
Browse accepted projects | Review proposed projects | Propose new project | Open Issues
pylandtemp
Global land surface temperature and emissivity from NASA's Landsat satellite images.
https://github.com/pylandtemp/pylandtemp
climate earth-observation earth-science geodata geospatial image-processing landsat landsat-8 landsat-data nasa-api nasa-data python raster remote-sensing satellite-data satellite-imagery-analysis satellite-images
Last synced: about 3 hours ago
JSON representation
Repository metadata
Algorithms for computing global land surface temperature and emissivity from NASA's Landsat satellite images with Python.
- Host: GitHub
- URL: https://github.com/pylandtemp/pylandtemp
- Owner: pylandtemp
- License: apache-2.0
- Created: 2019-03-05T12:50:54.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-03-18T21:26:30.000Z (about 1 year ago)
- Last Synced: 2024-03-24T04:38:25.303Z (2 months ago)
- Topics: climate, earth-observation, earth-science, geodata, geospatial, image-processing, landsat, landsat-8, landsat-data, nasa-api, nasa-data, python, raster, remote-sensing, satellite-data, satellite-imagery-analysis, satellite-images
- Language: Python
- Homepage:
- Size: 6.3 MB
- Stars: 150
- Watchers: 5
- Forks: 22
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
README
# pylandtemp
[![GitHub license](https://img.shields.io/github/license/pylandtemp/pylandtemp)](https://github.com/pylandtemp/pylandtemp/blob/master/LICENSE)
[![GitHub stars](https://img.shields.io/github/stars/pylandtemp/pylandtemp)](https://github.com/pylandtemp/pylandtemp/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/pylandtemp/pylandtemp)](https://github.com/pylandtemp/pylandtemp/network)
[![GitHub issues](https://img.shields.io/github/issues/pylandtemp/pylandtemp)](https://github.com/pylandtemp/pylandtemp/issues)## Description
**pylandtemp** is a Python library that provides a simple API for computing **global land surface temperature and emissivity** from NASA's [Landsat](https://www.usgs.gov/landsat-missions) Level 1 satellite images (starting from Landsat 5 to Landsat 8). It contains some implementations of Single-Channel and split window techniques. More methodologies under these groups will be added in the future.
Additionally, it also provides multiple methods for computing land surface emissivity. It is targeted towards supporting research and science workflows in many fields including climate science, earth sciences, remote sensing, space tech, geospatial data science, environmental studies, among others.
## Installation
The pylandtemp Python package is available through [PyPI](https://pypi.org/project/pylandtemp/):
```
pip install pylandtemp
```## Documentation
The pylandtemp Python library is divided into multiple methods which provide access to set of algorithms for different computations.
- **Land surface temperature**
- Single-Channel: through the `single_window()` method
- Split window: through the `split_window()` method- **Land surface emissivity**
- Through the `emmissivity()` method.- **Brightness temperature**
- Through the `brightness_temperature()` method.- **Normalized Difference Vegetation Index (NDVI)**
- Through the `ndvi()` method.## Example
To compute land surface temperature using [Jiminez-Munoz et al. (2014)](https://ieeexplore.ieee.org/abstract/document/6784508/?casa_token=A6cR6LeSSuoAAAAA:eFg3nxZvDTJpEBhvAmOwwJxo9rWy-y3aTdnArzEfbtM1UWUbBLhG9NhmeiQstFLTY8jbsT7x) split window technique and [Ugur Avdan et al. (2014)](https://www.hindawi.com/journals/js/2016/1480307/) emissivity computation method, a simple implementation is shown below:
```python
import numpy as np
from pylandtemp import split_window# lst_method and emissivity_method should point to keys of chosen -
# algorithms for temeprature and emmisivity, respectively# Keys for available algorithms are presented in the next section
# tempImage10 is a numpy array of band 10 brightness temperature
# tempImage11 is a numpy array of band 10 brightness temperature
# redImage is a numpy array of the red band
# nirImage is a numpy array of the near infra-red (NIR) bandlst_image_split_window = split_window(
tempImage10,
tempImage11,
redImage,
nirImage,
lst_method='jiminez-munoz',
emissivity_method='avdan',
unit='celcius'
)# The function returns a numpy array which is the land surface temperature image.
```## Supported algorithms and their reference keys
#### Land surface temperature --- Split window
| Algorithm | key |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------- |
| [Jiminez-Munoz et al. (2014)](https://ieeexplore.ieee.org/abstract/document/6784508/?casa_token=A6cR6LeSSuoAAAAA:eFg3nxZvDTJpEBhvAmOwwJxo9rWy-y3aTdnArzEfbtM1UWUbBLhG9NhmeiQstFLTY8jbsT7x) | 'jiminez-munoz' |
| [Sobrino et al. (1993)](https://link.springer.com/content/pdf/10.1007/BF02524225.pdf) | 'sobrino-1993' |
| [Kerr et al. (1992)](https://www.sciencedirect.com/science/article/abs/pii/003442579290078X) | 'kerr' |
| [McMillin et al. (1975)](https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/JC080i036p05113) | 'mc-millin' |
| [Price (1984)](https://agupubs.onlinelibrary.wiley.com/doi/abs/10.1029/JD089iD05p07231) | 'price' |#### Land surface temperature --- Single-Channel
| Algorithm | key |
| ----------------------------------------------------------------------------- | ------------- |
| [Ugur Avdan et al. (2014)](https://www.hindawi.com/journals/js/2016/1480307/) | 'mono-window' |#### Land surface emissivity
| Algorithm | key |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| [Gopinadh Rongali et al. (2018)](https://www.researchgate.net/publication/327461405_Split-Window_Algorithm_for_Retrieval_of_Land_Surface_Temperature_Using_Landsat_8_Thermal_Infrared_Data) | 'gopinadh' |
| [Ugur Avdan et al. (2014)](https://www.hindawi.com/journals/js/2016/1480307/) | 'avdan' |
| [Xiaolei Yu et al. (2014)](https://www.mdpi.com/2072-4292/6/10/9829) | 'xiaolei' |## Tutorials
The notebooks [here](https://github.com/pylandtemp/pylandtemp/tree/master/tutorials) are tutorials on how to use pylandtemp package.## Contributing
Open source thrives on collaborations and contributions. Let us work on this package in the same spirit.
If you catch any bug, find any typo or have any suggestions that will make this package better,
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
Fork the Project
Create your Feature Branch (git checkout -b feature/AmazingFeature)
Commit your Changes (git commit -m 'Add some AmazingFeature')
Push to the Branch (git push origin feature/AmazingFeature)
Open a Pull Request## What's new
- ***September 2022***: Started to work on intergrating with with google Earth Engine to pull data directly and automate the workflow.
- ***July 2022***: Poster presentation of this project at Scipy 2022. Link [here](https://hub-binder.mybinder.ovh/user/pylandtemp-pylandtemp-45pztpvy/doc/workspaces/auto-w/tree/tutorials)
- ***December 2021***: version 0.0.1-alpha.1 pre-release version is out on PyPI. Find it [here](https://pypi.org/project/pylandtemp/)
- ***December 2021***: Implemented tutorial notebooks based on the different methods. Find them [here](https://github.com/pylandtemp/pylandtemp/tree/master/tutorials)
- ***November 2021***: Implemented a runner for dynamic dispatch.## Code license
The code of this library is available under the [Apache 2.0 license](https://fossa.com/blog/open-source-licenses-101-apache-license-2-0/).
## Sponsor
* [GitHub](https://github.com/sponsors/dimejimudele)
## How to cite
```
Mudele, O., (2021). pylandtemp: A Python package for computing land surface
temperature from Landsat satellite imagery. GitHub: https://github.com/pylandtemp/pylandtemp.
```If preferred, here is the BibTex:
```
@Misc{pylandtemp,
author = {Oladimeji Mudele},
title = {pylandtemp: A Python package for computing land surface temperature from Landsat satellite imagery},
howpublished = {GitHub},
year = {2021},
url = {https://github.com/pylandtemp/pylandtemp}
}
```
GitHub Events
Total
- Create event: 8
- Issues event: 15
- Release event: 19
- Watch event: 169
- Delete event: 3
- Member event: 1
- Issue comment event: 14
- Push event: 109
- Pull request review event: 3
- Pull request event: 3
- Fork event: 23
Last Year
- Fork event: 8
- Watch event: 35
Committers metadata
Last synced: 3 days ago
Total Commits: 181
Total Committers: 4
Avg Commits per committer: 45.25
Development Distribution Score (DDS): 0.105
Commits in past year: 0
Committers in past year: 0
Avg Commits per committer in past year: 0.0
Development Distribution Score (DDS) in past year: 0.0
Name | Commits | |
---|---|---|
Oladimeji Mudele | m****i@g****m | 162 |
Oladimeji Mudele | d****i@O****b | 13 |
Oladimeji Mudele | d****i@O****l | 5 |
Ayodeji Babalola | a****a@M****l | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: 1 day ago
Total issues: 10
Total pull requests: 3
Average time to close issues: 9 months
Average time to close pull requests: 2 minutes
Total issue authors: 8
Total pull request authors: 2
Average comments per issue: 1.4
Average comments per pull request: 0.0
Merged pull request: 2
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 0
Past year average time to close issues: N/A
Past year average time to close pull requests: N/A
Past year issue authors: 0
Past year pull request authors: 0
Past year average comments per issue: 0
Past year average comments per pull request: 0
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- dimejimudele (3)
- asg-me18 (1)
- AyodejiBaba (1)
- ibademola (1)
- jeafreezy (1)
- JiangThea (1)
- npr99 (1)
- ShenliangXue92 (1)
Top Pull Request Authors
- AyodejiBaba (2)
- dimejimudele (1)
Top Issue Labels
Top Pull Request Labels
Package metadata
- Total packages: 1
-
Total downloads:
- pypi: 484 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 2
- Total maintainers: 1
pypi.org: pylandtemp
Compute land surface temperature(LST) from Landsat-8 data
- Homepage: https://github.com/pylandtemp/pylandtemp
- Documentation: https://pylandtemp.readthedocs.io/
- Licenses: Apache
- Latest release: 0.0.1a1 (published over 2 years ago)
- Last Synced: 2024-06-02T17:00:45.145Z (1 day ago)
- Versions: 2
- Dependent Packages: 0
- Dependent Repositories: 1
- Downloads: 484 Last month
-
Rankings:
- Stargazers count: 6.029%
- Dependent packages count: 7.31%
- Forks count: 8.272%
- Average: 13.917%
- Dependent repos count: 22.088%
- Downloads: 25.887%
- Maintainers (1)
Dependencies
- numpy *
- actions/checkout v2 composite
- actions/setup-python v2 composite
- pypa/gh-action-pypi-publish 27b31702a0e7fc50959f5ad993c78deac1bdfc29 composite
Score: 12.602940906412819