Overview
FOTO for FOurier transform Textural Ordination
Predicting stand structure parameters for tropical forests from remotely sensed data by defining an index of canopy texture from the ordination of the Fourier spectra computed for tropical rain forest images.
References:- Couteron, P., Pelissier, R., Nicolini, E. A., & Paget, D. (2005). Predicting tropical forest stand structure parameters from Fourier transform of very high‐resolution remotely sensed canopy images. Journal of applied ecology, 42(6), 1121-1128.
https://doi.org/10.1111/j.1365-2664.2005.01097.x - Proisy, C., Couteron, P., & Fromard, F. (2007). Predicting and mapping mangrove biomass from canopy grain analysis using Fourier-based textural ordination of IKONOS images. Remote Sensing of Environment, 109(3), 379-392.
https://doi.org/10.1016/j.rse.2007.01.009 - Barbier, N., & Couteron, P. (2015). Attenuating the bidirectional texture variation of satellite images of tropical forest canopies. Remote Sensing of Environment, 171, 245-260.
https://doi.org/10.1016/j.rse.2015.10.007
: README
Fourier Transform Textural Ordination in Python
Freely adapted from https://github.com/CaussesCevennes/FOTO.py
List of authors
- Benjamin Pillot benjamin.pillot@ird.fr
- Dominique Lyszczarz observatoire@causses-et-cevennes.fr
- Claire Teillet teillet.claire@hotmail.com
- Pierre Couteron pierre.couteron@ird.fr
- Nicolas Barbier nicolas.barbier@ird.fr
- Philippe Verley philippe.verley@ird.fr
- Marc Lang marc.lang@irstea.fr
- Thibault Catry thibault.catry@ird.fr
- Laurent Demagistri laurent.demagistri@ird.fr
- Nadine Dessay nadine.dessay@ird.fr
Tutorial
See here
Description
FOTO (Fourier Textural Ordination) is an algorithm allowing texture
characterization and comparison, and is fully
described in Textural ordination based on Fourier spectral
decomposition: a method to analyze and compare landscape patterns
(Pierre Couteron, Nicolas Barbier and Denis Gautier, 2006)
Installation
Use pip
in a terminal to install fototex:
shell script
$ pip install fototex
Note on GDAL
Installing GDAL through pip
might be tricky as it only gets
the bindings, so be sure the library is already installed on
your machine, and that the headers are located in the right
folder. Another solution may to install it through a third-party
distribution such as conda
.
Usage
In memory against HDF5
Regarding computation performances, in case you have a strong machine
with extended memory, or if you have small images to treat, you can
implement the algorithm "in memory":
python
from fototex.foto import Foto
foto = Foto("path/to/your/image", method='block', band=1, in_memory=True)
foto.run(window_size=11)
Otherwise, in case of large images or a limited machine, it is possible
to implement the algorithm with HDF5 data storage. In that case, Foto
runs an incremental PCA, that you may customize, assisted with HDF5
storage:
python
from fototex.foto import Foto
foto = Foto("path/to/your/image", method="moving_window", in_memory=False, data_chunk_size=40000)
foto.run(window_size=11)
The argument data_chunk_size
gives information on the reading/writing
rate to h5 files.
DC component
When computing the R-spectra, you may keep the DC
component of the FFT, such as:
python
from fototex.foto import Foto
foto = Foto("path/to/your/image", method="moving_window", in_memory=False, data_chunk_size=40000)
foto.run(window_size=11, nb_sample=5, keep_dc_component=True)
In that case, it is important to keep in mind that R will
range from 0 to nb_sample - 1 (in the example,
R=0, 1, 2, 3, 4). Otherwise, it will range from 1 to
nb_sample (here, R=1, 2, 3, 4, 5).
Normalize
If you want to normalize the values of the power spectrum
over the image (dividing by the variance of each given window),
you may add the option (False by default):
python
from fototex.foto import Foto
foto = Foto("path/to/your/image", method="moving_window", in_memory=False, data_chunk_size=40000)
foto.run(window_size=11, normalized=True)
Members
Manager: Benjamin Pillot, Laurent Demagistri, Philippe VERLEY
Developer: Benjamin Pillot, Claire Teillet, Dominique Lyszczarz, Laurent Demagistri, Marc Lang, Nadine Dessay, Nicolas Barbier, Philippe VERLEY, Pierre Couteron, Thibault Catry