Updated glint derivatives and glint solution for the analytical line#637
Conversation
1bf041d to
d1e160b
Compare
|
I messed up the order on rebasing #641 in relation to #637. The commit order here reflects the commit order: I've spent some time trying to work through options to get the |
|
@evan-greenbrg Thanks for the update! This kind of problem sounds familiar to me. Every rebasing is a new experience ;) |
Remove depreciation question
Some cleaning for consistency Use fresnel function in surface model Moved drfl_dsurface into the surface model cleaning Move fresnel function out of radiative_transfer set background rfl and initialize analytical line with background rfl Analytical Line uses superpixel as background rfl and init values Move Seps and Sa into the loop Update to reflect new linear factorization Glint analytical line now uses atm_interp for sky glint Merge with dev Abstract analytical model to the surface modules reverting removing lower bounds on rfl inversion added missing idx_surface attributes Inverse_simple now backwards compatible STARTED astracting surface model calls in RT with updated derivatives Abstracted the interp check in analytical line Formatting
Debug on analytical line
…d RT quantities in fm Passing tests typos
Updated drfl_dglint Updated drfl_dsurface and perturbation Annotations Reverting derivative changes Added note on fixed apparent rfl in dRT, and testing slow example
311f083 to
9e1a2cc
Compare
|
Based on #656, should change arguments for |
Some cleaning for consistency Use fresnel function in surface model Moved drfl_dsurface into the surface model cleaning Move fresnel function out of radiative_transfer set background rfl and initialize analytical line with background rfl Analytical Line uses superpixel as background rfl and init values Move Seps and Sa into the loop Update to reflect new linear factorization Glint analytical line now uses atm_interp for sky glint Merge with dev Abstract analytical model to the surface modules reverting removing lower bounds on rfl inversion added missing idx_surface attributes Inverse_simple now cackwards compatible Rebased with isofit#637
|
This looks good to me. It's an elegant solution to a thorny problem of compartmentalizing functions while maintaining full functionality and forward-compatibility. Have we tested it with a higher-resolution LUT to make sure that the wavelength fitting works as expected? No objections to merging. |
Some cleaning for consistency Use fresnel function in surface model Moved drfl_dsurface into the surface model cleaning Move fresnel function out of radiative_transfer set background rfl and initialize analytical line with background rfl Analytical Line uses superpixel as background rfl and init values Move Seps and Sa into the loop Update to reflect new linear factorization Glint analytical line now uses atm_interp for sky glint Merge with dev Abstract analytical model to the surface modules reverting removing lower bounds on rfl inversion added missing idx_surface attributes Inverse_simple now cackwards compatible Rebased with isofit#637


Updates in this PRT:
Further abstracted the surface model out of the radiative transfer class. This involves moving the derivatives of radiance with respect to the surface state elements into the surface class (e.g. for the multicomponent surface, for the glint_model_surface). The dRT functions solely deal with the RT statevector elements.
RT functions now take explicit arguments. Calls of
get_L_coupledandget_L_down_transmittedare performed in a helper function, which should handle switch off between the 1c and 4c model. Throughoutforward.py, we now similarly call the RT and surface quantities before passing them into the respective derivative andcalc_rdnfunction calls. See calc_meas, K, and Kb functions.The analytical line algorithm is simplified. We allow the user to initialize the AOE routine with 3 possible values (invert_simple, invert_algebraic, and the super pixel value). We also use the same subroutine across all surface models. This relies on the similar construction of the matrix,
H, that is a property of the surface class. For example, the glint model, which inherits the linearization of therflterms from themulticomponent_surface.This updates the linearization of the 4c model used in the AOE solution. The multicomponent surface, and the glint surface.
Edited glint derivatives to reflect the new 4c model. This results in a much improved optimization compared to dev that reflects both the prior and the measurement.
Other edits:
prm20221026t182807_rflprm20221026t182807_uncertprm20221026t182807_surf_non_rflprm20221026t182807_surf_non_rfl_uncert