Imaging Spectrometer Optimal FITting
You can find documentation for isofit at our readthedocs site.
This repository has two main branches:
current-release: Latest stable, versioned release and
master: The latest non-breaking changes, sometimes pre-version
This codebase contains a set of routines and utilities for fitting surface, atmosphere and instrument models to imaging spectrometer data. It is written primarily in Python, with JSON format configuration files and some dependencies on widely-available numerical and scientific libraries such as scipy, numpy, and scikit-learn. It is designed for maximum flexibility, so that users can swap in and evaluate model components based on different radiative transfer models (RTMs) and various statistical descriptions of surface, instrument, and atmosphere. It can run on individual radiance spectra in text format, or imaging spectrometer data cubes.
The subdirectories contain:
- bin/ - command line scripts for calling isofit and sunposition
- data/ - shared data files
- docs/ - documentation
- examples/ - example runs packaged with input data and configuration files
- isofit/ - the isofit Python module including utilities and tests
- logs/ - Pytest logs
- recipe/ - conda release recipe
If you use ISOFIT in your research or production, we ask that you cite the precursor publication:
Thompson, David R., Vijay Natraj, Robert O. Green, Mark C. Helmlinger, Bo-Cai Gao, and Michael L. Eastwood. “Optimal estimation for imaging spectrometer atmospheric correction.” Remote Sensing of Environment 216 (2018): 355-373.
The code repository, development branches, and user community are found on GitHub. To install:
- Download or clone the git repo located at https://github.com/isofit/isofit, using either the current-release or master (current-release + reviewed development) branch.
- Install the ISOFIT using pip - be sure to use a full path reference.
pip install --editable /path/to/isofit --use-feature=2020-resolver
Also, the latest release is always hosted on PyPI, so if you have pip installed, you can install ISOFIT from the command line with
pip install isofit
This will install the “isofit” package into your environment as well as its dependencies.
Quick Start using MODTRAN 6.0
This quick start presumes that you have an installation of the MODTRAN 6.0 radiative transfer model. This is the preferred radiative transfer option if available, though we have also included an interface to the open source LibRadTran RT code. Other open source options and neural network emulators will be integrated in the future.
- Configure your environment with the variable MODTRAN_DIR pointing to the base MODTRAN 6.0 directory.
- Run the following code
cd examples/20171108_Pasadena ./run_examples_modtran.sh
- This will build a surface model and run the retrieval. The default example uses a lookup table approximation, and the code should recognize that the tables do not currently exist. It will call MODTRAN to rebuild them, which will take a few minutes.
- Look for output data in examples/20171108_Pasadena/output/. Each retrieval writes diagnostic images to examples/20171108_Pasadena/images/ as it runs.
Quick Start with LibRadTran 2.0.x
This quick start presumes that you have an installation of the open source libRadTran radiative transfer model (LibRadTran <http://www.libradtran.org/doku.php>)_ . We have tested with the 2.0.2 release. You will need the “REPTRAN” absorption parameterization - follow the instructions on the libradtran installation page to get that data.
- Configure your environment with the variable LIBRADTRAN_DIR pointing to the base libRadTran directory.
- Run the following code
cd examples/20171108_Pasadena ./run_example_libradtran.sh
- This will build a surface model and run the retrieval. The default example uses a lookup table approximation, and the code should recognize that the tables do not currently exist. It will call libRadTran to rebuild them, which will take a few minutes.
- Look for output data in examples/20171108_Pasadena/output/. Diagnostic images are written to examples/20171108_Pasadena/images/.
Quick Start with sRTMnet
sRTMnet is an emulator for MODTRAN 6, that works by coupling a neural network with a surrogate RTM (6S v2.1). Installation requires two steps:
1. Download 6S v2.1, and compile. If you use a modern system, it is likely you will need to specify a legacy compiling configuration by changing line 3 of the Makefile to:
EXTRA = -O -ffixed-line-length-132 -std=legacy
- Configure your environment by pointing the SIXS_DIR variable to point to your installation directory.
3. Download the pre-trained sRTMnet neural network, and (for the example below) point the environment variable EMULATOR_PATH to the base unzipped path.
- Run the following code
cd examples/image_cube/ sh ./run_example_cube.sh
Additional Installation Info for Mac OSX
- Install the command-line compiler
- Download the python3 installer from https://www.python.org/downloads/mac-osx/
Ray may have compatability issues with older machines with glibc < 2.14.
Release history Release notifications | RSS feed
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size isofit-2.9.1.tar.gz (22.2 MB)||File type Source||Python version None||Upload date||Hashes View|
|Filename, size isofit-2.9.1-py3-none-any.whl (556.3 kB)||File type Wheel||Python version py3||Upload date||Hashes View|