isofit.surface.surface_lut
- class LUTSurface(full_config)[source]
Bases:
Surface
A model of the surface based on an N-dimensional lookup table indexed by one or more state vector elements. We calculate the reflectance by multilinear interpolation. This is good for surfaces like aquatic ecosystems or snow that can be described with just a few degrees of freedom.
The lookup table must be precalculated based on the wavelengths of the instrument. It is stored with other metadata in a matlab- format file. For an n-dimensional lookup table, it contains the following fields:
grids: an object array containing n lists of gridpoints
- data: an n+1 dimensional array containing the reflectances
for each gridpoint
- bounds: a list of n [min,max] tuples representing the bounds
for all state vector elements
- statevec_names: an array of n strings representing state
vector element names
- mean: an array of n prior mean values, one for each state
vector element
- sigma: an array of n prior standard deviations, one for each
state vector element
- scale: an array of n scale values, one for each state vector
element
- calc_lamb(x_surface, geom)[source]
Lambertian reflectance. Be sure to incorporate BRDF-related LUT dimensions such as solar and view zenith.
- drfl_dsurface(x_surface, geom)[source]
Partial derivative of reflectance with respect to state vector, calculated at x_surface.
- dlamb_dsurface(x_surface, geom)[source]
Partial derivative of Lambertian reflectance with respect to state vector, calculated at x_surface. We calculate the reflectance with multilinear interpolation so the finite difference derivative is exact.