https://github.com/ibaris/pyrism
:satellite: Python bindings for Remote Sensing Models
https://github.com/ibaris/pyrism
backscatter canopy leaf modelling radiative-transfer reflectance remote-sensing surface-modeling
Last synced: about 2 months ago
JSON representation
:satellite: Python bindings for Remote Sensing Models
- Host: GitHub
- URL: https://github.com/ibaris/pyrism
- Owner: ibaris
- License: other
- Created: 2018-03-20T18:42:13.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2021-03-02T13:03:31.000Z (about 4 years ago)
- Last Synced: 2025-03-20T05:23:44.353Z (2 months ago)
- Topics: backscatter, canopy, leaf, modelling, radiative-transfer, reflectance, remote-sensing, surface-modeling
- Language: Python
- Homepage:
- Size: 2.58 MB
- Stars: 31
- Watchers: 2
- Forks: 14
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
Python bindings for Remote Sensing Models
Description •
Installation •
Example •
Doumentation •
Author •
Acknowledgments# Description
This repository contains the Python bindings to different radar and optical backscattering and reflectance models, respectively. The bindings implement the following models:
### Optical Models:
* **PROSPECT**: Leaf reflectance model (versions 5 and D).
* **SAIL**: Canopy reflectance model.
* **PROSAIL**: Combination of PROSPECT and SAIL.
* **LSM**: Simple Lambertian soil reflectance model.
* **Volume Scattering**: Compute volume scattering functions and interception coefficients for given solar zenith, viewing zenith, azimuth and leaf inclination angle.
### RADAR Models:
* **Rayleigh**: Calculate the extinction coefficients in terms of Rayleigh scattering.
* **Mie**: Calculate the extinction coefficients in terms of Mie scattering.
* **Dielectric Constants**: Calculate the dielectric constant of different objects like water, saline water, soil and vegetation.
* **I2EM**: RADAR soil scattering model to compute the backscattering coefficient VV and HH polarized.
* **Emissivity**: Calculate the emissivity for single-scale random surface for Bi and Mono-static acquisitions.For the optical models the code from José Gómez-Dans was used as a benchmark. The theory of the radar models is from F.T. Ulaby.
# Installation
There are currently different methods to install `pyrism`.
### Using pip
The ` pyrism ` package is provided on pip. You can install it with::pip install pyrism
### Standard Python
You can also download the source code package from this repository or from pip. Unpack the file you obtained into some directory (it can be a temporary directory) and then run::python setup.py install
### Test installation success
Independent how you installed ` pyrism `, you should test that it was sucessfull by the following tests::python -c "from pyrism import I2EM"
If you don't get an error message, the module import was sucessfull.
# Example
At first we will run the PROSPECT model. To do this we import the pyrism package.
```python
import pyrism
```
After that we specify the sensing geometry we want to simulate:
```python
iza = 35 # Incidence zenith angle
vza = 30 # Viewing zenith angle
raa = 50 # Relative azimuth angle
```
Than we call the PROSPECT model:
```python
prospect = pyrism.PROSPECT(N=1.5,
Cab=35,
Cxc=5,
Cbr=0.15,
Cw=0.003,
Cm=0.0055)
```To access the attributes there are to ways. Firstly, we can access the whole spectrum with `prospect.ks` (scattering coefficient), `prospect.ka` (absorption coefficient), `prospect.kt` (transmittance coefficient), `prospect.ke` (extinction coefficient) and `prospect.om` (the division of ks through ke). Moreover, you can select the coefficient values for the specific bands of ASTER (B1 - B9) or LANDSAT8 (B2 - B7). To access these bands type `prospect.L8.Bx` (x = 2, 3, ..., 7) for Landsat 8 or `prospect.ASTER.Bx` (x = 1, 2, ..., 9) for ASTER.
To calculate the PROSAIL model we need some soil reflectance values. To obtain these we can use the LSM model:
```python
lsm = pyrism.LSM(reflectance=3.14 / 4, moisture=0.15)
```Now we must call SAIL and specify the scattering and transmittance coefficients with these from PROSPECT like:
```python
prosail = pyrism.SAIL(iza=iza, vza=vza, raa=raa, ks=prospect.ks, kt=prospect.kt, rho_surface=lsm.ref,
lidf_type='campbell',
lai=3, hotspot=0.25)
```The accessibility of the attributes are the same as the PROSPECT model.
# Documentation
You can find the full documentation here.# Built With
* Python 2.7 (But it works with Python 3.5 as well)
* Requirements: numpy, scipy# Authors
* **Ismail Baris** - *Initial work* - ([email protected])## Acknowledgments
* Thomas Jagdhuber---
> ResearchGate [@Ismail_Baris](https://www.researchgate.net/profile/Ismail_Baris) ·
> GitHub [@ibaris](https://github.com/ibaris) ·
> Instagram [@ism.baris](https://www.instagram.com/ism.baris/)