Recent Releases of isofit
isofit - v3.5.0
What's Changed
- Cleaning out of date comments by @evan-greenbrg in https://github.com/isofit/isofit/pull/693
- Fix issue #684 UnicodeDecodeError by @danschef in https://github.com/isofit/isofit/pull/694
- MODTRAN polynomials for upper possible bounds of water vapor and lower possible bounds of AOT by @brentwilder in https://github.com/isofit/isofit/pull/689
- Fix PermissionError due to unreleased file handles on Windows (issue #687). by @danschef in https://github.com/isofit/isofit/pull/695
- Fix scipy DeprecationWarning. by @danschef in https://github.com/isofit/isofit/pull/698
- remove deprecated rte coszen call by @pgbrodrick in https://github.com/isofit/isofit/pull/699
- heuristic patch by @pgbrodrick in https://github.com/isofit/isofit/pull/706
- update lower bound by @pgbrodrick in https://github.com/isofit/isofit/pull/707
- Removed negative rfl block in analytical_line by @evan-greenbrg in https://github.com/isofit/isofit/pull/696
- Added edge handling in LUT interp with pre-built LUT by @evan-greenbrg in https://github.com/isofit/isofit/pull/701
- Units and conversions by @pgbrodrick in https://github.com/isofit/isofit/pull/713
- Added 'av5' to list of apply_oe supported sensors by @adamchlus in https://github.com/isofit/isofit/pull/719
- rteconfigureand_exit Skip LUT Creation by @jammont in https://github.com/isofit/isofit/pull/683
- Configs to Dict Recursively by @jammont in https://github.com/isofit/isofit/pull/712
- Initial guess refactor by @pgbrodrick in https://github.com/isofit/isofit/pull/720
- LUT Version Tags by @jammont in https://github.com/isofit/isofit/pull/722
- Edited sky glint prior, added indexing in glint model, edited bands in fit_params by @evan-greenbrg in https://github.com/isofit/isofit/pull/718
- coefficient patch by @pgbrodrick in https://github.com/isofit/isofit/pull/725
- Srtm/6c by @pgbrodrick in https://github.com/isofit/isofit/pull/717
New Contributors
- @danschef made their first contribution in https://github.com/isofit/isofit/pull/694
Full Changelog: https://github.com/isofit/isofit/compare/v3.4.2...v3.5.0
- Python
Published by pgbrodrick 8 months ago
isofit - v3.4.3
What's Changed
- Cleaning out of date comments by @evan-greenbrg in https://github.com/isofit/isofit/pull/693
- Fix issue #684 UnicodeDecodeError by @danschef in https://github.com/isofit/isofit/pull/694
- MODTRAN polynomials for upper possible bounds of water vapor and lower possible bounds of AOT by @brentwilder in https://github.com/isofit/isofit/pull/689
- Fix PermissionError due to unreleased file handles on Windows (issue #687). by @danschef in https://github.com/isofit/isofit/pull/695
- Fix scipy DeprecationWarning. by @danschef in https://github.com/isofit/isofit/pull/698
- remove deprecated rte coszen call by @pgbrodrick in https://github.com/isofit/isofit/pull/699
- heuristic patch by @pgbrodrick in https://github.com/isofit/isofit/pull/706
- update lower bound by @pgbrodrick in https://github.com/isofit/isofit/pull/707
- 3.4.3 release by @unbohn in https://github.com/isofit/isofit/pull/708
New Contributors
- @danschef made their first contribution in https://github.com/isofit/isofit/pull/694
Full Changelog: https://github.com/isofit/isofit/compare/v3.4.2...v3.4.3
- Python
Published by unbohn 9 months ago
isofit - v3.4.2
What's Changed
- Use pyproject.toml by @jammont in https://github.com/isofit/isofit/pull/631
- Merge for v3.4.1 by @pgbrodrick in https://github.com/isofit/isofit/pull/654
- Fix incorrect calls to ForwardModel.calc_rdn() by @barentsen in https://github.com/isofit/isofit/pull/656
- Remove deprecated atm interpolation by @pgbrodrick in https://github.com/isofit/isofit/pull/657
- Added spectra interpolation function for input RDN files. by @evan-greenbrg in https://github.com/isofit/isofit/pull/655
- Patch to fix interpolate spectra for ApplyOE by @evan-greenbrg in https://github.com/isofit/isofit/pull/659
- Updated glint derivatives and glint solution for the analytical line by @evan-greenbrg in https://github.com/isofit/isofit/pull/637
- Warn if LUT keys are close to known geometry keys by @jammont in https://github.com/isofit/isofit/pull/664
- Removed Ldir(dif)/Ltot ratio in glint model by @evan-greenbrg in https://github.com/isofit/isofit/pull/671
- swap path for csv by @brentwilder in https://github.com/isofit/isofit/pull/670
- Patch to run calibration cases with new surface structure by @evan-greenbrg in https://github.com/isofit/isofit/pull/668
- Added AVIRIS-5 support by @adamchlus in https://github.com/isofit/isofit/pull/679
- Surface_model auto-build patch by @pgbrodrick in https://github.com/isofit/isofit/pull/678
- Directory Initialization by @pgbrodrick in https://github.com/isofit/isofit/pull/676
- Added handling for LinalgError and fill_value for failed pixels by @evan-greenbrg in https://github.com/isofit/isofit/pull/674
- CLI Docs Update by @jammont in https://github.com/isofit/isofit/pull/682
- Added coupled transm to heurstic atmosphere by @evan-greenbrg in https://github.com/isofit/isofit/pull/686
- Config Templating by @jammont in https://github.com/isofit/isofit/pull/650
- Fix IndexError due to missing key 'observer_zenith' in prebuilt LUT. by @unbohn in https://github.com/isofit/isofit/pull/688
- 3.4.2 release by @pgbrodrick in https://github.com/isofit/isofit/pull/690
New Contributors
- @brentwilder made their first contribution in https://github.com/isofit/isofit/pull/670
Full Changelog: https://github.com/isofit/isofit/compare/v3.4.1...v3.4.2
- Python
Published by pgbrodrick 10 months ago
isofit - v3.4.1
New updates that have a variety of quality of life improvements and bug fixes.
What's Changed
- Clean up and simplification of radiative transfer module by @unbohn in https://github.com/isofit/isofit/pull/524
- basic tanager syntax by @pgbrodrick in https://github.com/isofit/isofit/pull/634
- tanager patches by @pgbrodrick in https://github.com/isofit/isofit/pull/643
- Relax Dependencies by @jammont in https://github.com/isofit/isofit/pull/640
- Merge dev for release by @pgbrodrick in https://github.com/isofit/isofit/pull/644
- Isoplots Integration by @jammont in https://github.com/isofit/isofit/pull/615
- Generate config and exit: apply_oe by @jammont in https://github.com/isofit/isofit/pull/647
- Added check in calcrdn for salb = 0 by @evan-greenbrg in https://github.com/isofit/isofit/pull/645
- Downloaders Bugfixes by @jammont in https://github.com/isofit/isofit/pull/648
- LUT Compression, rebased by @pgbrodrick in https://github.com/isofit/isofit/pull/651
Full Changelog: https://github.com/isofit/isofit/compare/v3.3.6...v3.4.1
- Python
Published by pgbrodrick 12 months ago
isofit - v3.4.0
This version includes a major overhaul of the radiative transfer model, along with some additional value-adds outlined below.
What's Changed
- Clean up and simplification of radiative transfer module by @unbohn in https://github.com/isofit/isofit/pull/524
- basic tanager syntax by @pgbrodrick in https://github.com/isofit/isofit/pull/634 / https://github.com/isofit/isofit/pull/643
- Relax Dependencies by @jammont in https://github.com/isofit/isofit/pull/640
Full Changelog: https://github.com/isofit/isofit/compare/v3.3.6...v3.4.0
- Python
Published by pgbrodrick about 1 year ago
isofit - v3.3.0
Updates include
Main features and fixes
- Handling multipart transmittances from 6s.
Technical updates, improvements, and small bug fixes
- NaN Detection on load of LUT file.
- Key fixes to 6s and sRTMnet to facilitate new multicomponent RTM.
- Fix workflows cache rate limiting.
- Pathlib fix to examples bug.
- Extra Downloads Updating Feature.
- Functions to do radiance <-> transmittance conversion.
- Small 6s and MODTRAN changes for wavelengths and angles.
- Fixed check for MODTRAN convention of OBSZEN to include angle of 0°.
- Changes to get configureandexit flag to work.
- Added Logger definition to radiative_transfer.py.
- Update of data documentation.
- Sensor altitude check.
- LUT Spacing conditionals.
- Environment Split.
- Python
Published by unbohn about 1 year ago
isofit - v3.2.2
Updates include
Technical updates, improvements, and small bug fixes
- New capabilities to auto generate the API docs so less time needed to manage it.
- Fixed incorrect display of docs related to the data module.
- Pre-check for gfortran installation before downloading 6s and new prompting to the user to fix.
- New flexibility to only check for the correct zenith angle convention if the lut key is provided.
- Fix of IndexError in the test_rfls attribute when building Modtran LUT.
- Support of ability to pass specific inversion windows in and bypass the sensor or global defaults.
- Function to download and store external NEON data.
- Correction of NotImplementedError syntax for EWT command line utility.
- Python
Published by unbohn over 1 year ago
isofit - v3.2.1
Updates include
Main features and fixes
- Added support for Python 3.12.
- Implemented the ability to build ISOFIT Docker images for multiple architectures using only one Dockerfile.
- Developed a new github workflow to auto build and push the Docker images on each ISOFIT release.
- ISOFIT's Docker images are hosted at https://hub.docker.com/r/jammont/isofit.
Technical updates, improvements, and small bug fixes
- Implemented more helpful debugging/error messages when ISOFIT is missing extra dependencies.
- Python
Published by unbohn over 1 year ago
isofit - v3.2.0
Updates include
Main features and fixes
- Removed data/ and examples/ directories from the repo as they are now available in their own repos. This allows us to update these packages independently of ISOFIT releases. Additionally, as ISOFIT now has the capability to download these via the downloads CLI, the workflows have been updated to reflect these changes.
- Integrated downloads of examples and data.
- Updated glint retrieval code:
- Removed additional g_dd term in reflectance, radiance calculation to match desired model.
- Included tuptotal in radiance calculation to match desired model.
- Updated drdndsurface derivative with regard to glint parameters gdd and g_dsf.
- Updated g_dd initialization to be based off of signal at 1020 nm (assumes this is in the instrument wavelength range, and that the signal here is glint only).
- Changed the prior covariance structure for gdd and gdsf to be fully independent variables (diagonal) instead of fully correlated, as in previous implementation.
Technical updates, improvements, and small bug fixes
- Added an option to apply_oe which forces all LUT dimensions in the obs/loc files with measurable variation to include at least 2 grid points.
- Examples build update.
- Cancel-in-progress workflows.
- Debug fixes.
- Import cleanup.
- Python
Published by unbohn over 1 year ago
isofit - v3.1.1
Updates include
Technical updates, improvements, and small bug fixes
- Improve the support for creating custom radiative transfer engines by expanding the documentation.
- Removed behind-the-scenes assignment of AVIRIS-3 channelized uncertainty.
- Tweaked the cache of
common:VectorInterpolatorto support N many points instead of just 1. - Moved the RT engines to a submodule. This fixes some missed import statements.
- Collection of improvements to the
luts.pymodule to increase the loading speed. - Fixed 180 degree offset in MODTRAN OBSZEN usage.
- Fixed log entry where
mean_to_sun_azimuthis incorrectly reported. - Analytical line speed improvements.
- Moved the loading of the ESD file to the
core/fileio.py:IOclass to maintain consistency with other data loading. - Swapped out
np.allwithnp.allcloseto handle cases where an input data source has values very close to the bad data flag but not exact. - Enforced bounds on output reflectances to be zero and not negative except in the cases of the fill values
-9999and-0.01. - Fixed a longstanding bug where
MKL_NUM_THREADSandOMP_NUM_THREADSwas not being set properly by ISOFIT. - Added a new ISOFIT env var
ISOFIT_NO_SET_THREADSto disable automatically setting these for advanced users. - Re-implemented support for
rte_configure_and_exitwhich causes engines to write configuration/template files and not execute. - Deprecated support for
rte_auto_rebuild. ISOFIT will just check if files exist and assume they are correct; it is the user's responsibility to correct them otherwise. - Removed custom
FileExistsException. - Handled wrong sized reference reflectance inputs.
- Detection of duplicates in
lut_grid. - Removed
nds-kfromVectorInterpolator. - Fixed click implementation for
surface_model.py. - Statevector consistency check.
- Python
Published by unbohn over 1 year ago
isofit - v3.1.0
Updates include
Main features and fixes
- Fixed LUT resampling and angular interpolation issues.
- Patches to the handling of the scene geometry, in particular, to the handling of the relative azimuth and the sensor zenith angles.
- Added the handling of flux quantities. This allows users to provide LUTs with RT quantities in physical units instead of transmittance and reflectance.
- More formal implementation of kernel flows using the radiativetransferengine.py.
Technical updates, improvements, and small bug fixes
- Interpolation improvements in
luts.py. - Improved the debugging verbosity of
luts.py:load(). - Resampling of the LUT in
radiative_transfer_engine.pyto be more generalized. - Improvements to the
VectorInterpolator._multilinear_grid. - Removed
pygribdependency. - Small patch to surface model built on runtime.
- Removed custom version of ray shutdown from ISOFIT's init.
- Updated bibliography.rst with latest papers using ISOFIT.
- Added compression to netcdf files.
- Added INVERSION_WINDOWS to presolve and main configs.
- Updated image cube examples to ISOFIT version 3.
- Included names of supported sensors in the "invalid sensor" error message.
- Max buffer timing fix & NetCDF chunking.
- Wavelength check updates.
- Python
Published by unbohn over 1 year ago
isofit - v3.0.1
Small patches to the v3.0.0 release.
Technical updates:
- improvements to LUT netCDF creation performance: now using a writer queue, simulations return values to the original ray call to be saved
Bugfixes:
- added sphinxrtdtheme to environment file to fix broken readthedocs build
- fixed bug in assigning mean elevation to LUT grid
- Python
Published by unbohn almost 2 years ago
isofit - v3.0.0
This is the new major ISOFIT 3x release that adds multiple new features, updates, and bug fixes.
Main features
- new handling of look-up-tables (LUTs), including the option to provide custom prebuilt LUTs
- centralized radiative transfer physics for more flexible development and experimentation
- test coverage for major functionality
- click command line utilities, including download of external data and example files
- a more flexible isofit.ini file used to discover various paths such as tests, data, and examples
- instructions for dev environment setup and a collection of setup scripts
- numpy implementation of the sRTMnet emulator (removes
tensorflowdependency)
Technical updates and bug fixes
- cleaned up ray initialization to not rely on external calls
- updated authorship files
- wavelength checks to ensure that spectral grids obtained from the surface model or an externally provided wavelength file match the instrument specifics given in the input radiance cube
- support for the GAO instrument
- removal of package dependencies, including
matplotlibandgdal - removal of outdated docker image
- new test labeling for CLI workflows
- deprecation of
LibRadTransupport
- Python
Published by unbohn almost 2 years ago
isofit - 2.10.5
Updates include:
- New physics-based sun+sky glint model for water surfaces
- New feathering of surface model block diagonal prior covariances
- EnMAP support in apply_oe.py
- Instructions for dev environment setup and a collection of setup scripts
- Fix to broken readthedocs build
- Update to release workflow
- Python
Published by unbohn almost 2 years ago
isofit - 2.10.5
Updates include:
- New physics-based sun+sky glint model for water surfaces
- New feathering of surface model block diagonal prior covariances
- EnMAP support in apply_oe.py
- Instructions for dev environment setup and a collection of setup scripts
- Fix to broken readthedocs build
- Python
Published by unbohn about 2 years ago
isofit - 2.10.4
Updates include:
- Removal of GDAL dependency.
- Fix of
rayimports in order to safely get the local-only wrapper. - Patch to the interpolation function making sure that mlg respects degree/radians based interpolation.
- Patch fix to read loc data.
- Python
Published by unbohn about 2 years ago
isofit - 2.10.3
Updates include:
- Deprecated
ndsplinesinterpolation due to missing package availability on conda-forge. - Removal of
protobuffrom package dependencies. - Installation of
ray,xxhash, andtensorflowfrom conda-forge. - Upload of package data and examples to the conda-forge release.
- Added
pygribrequirement insetup.cfg. - Simple check for length of surface elevation grid.
- Python
Published by unbohn about 2 years ago
isofit - 2.9.5
Additions to support:
- New multi-surface script that centralizes configuration options for easier and more flexible runs.
- Additional unit testing.
- Profiling and debugging additions.
- Various bug fixes
- Additional supporting files for EMIT.
More details can be found at: https://github.com/isofit/isofit/projects/4.
- Python
Published by pgbrodrick over 3 years ago
isofit - 2.9.3
- Topography option for forward model integrated
- new interpolation scheme in LUT
- sRTMnet related speedups
- update to surface model utility to facilitate seeding
- example updates
And more! See the project board for more info.
- Python
Published by pgbrodrick over 3 years ago
isofit - 2.9.0
- IO code refactor (no end-use change)
- apply_oe updates for new segment sizes - now smaller, but adaptive w/ input parameter
- increased memory management and parallel efficiency
- new image cube examples
- support for in-orbit emulator runs
- support for wavelength calibration retrievals
- bibliography / bug fix / dependency updates
- Python
Published by pgbrodrick over 4 years ago
isofit - 2.7.0
- Adds additional MODTRAN multipart transmittance capacity
- Parallel extraction / segmentation of images
- Refined apply_oe procedure, using physical LUT spacing.
- sRTMnet integration into hypertrace
- GP interpolation of atmospheric fields
- Bug fixes and procedural refinements
See project board for full detail (https://github.com/isofit/isofit/projects/4)
- Python
Published by pgbrodrick about 5 years ago
isofit - 2.6.0
Updates on the path to isofit v3.0. See the project board (https://github.com/isofit/isofit/projects/4) for more details.
- Thermal framework added
- Hypertrace workflow integrated for coupled simulations and inversions
- apply_oe.py generalizations
- Integration of sRTMnet emulation
- Simplified installation and increased documentation (more still needed)
- Bug fixes and general speedups
- Python
Published by pgbrodrick over 5 years ago
isofit - 2.5.0
Intermediate release on the path to isofit v3.0. See the project board (https://github.com/isofit/isofit/projects/4) for more details.
- New object-oriented configuration classes, with basic checks implemented.
- Automated documentation building, with corresponding read-the-docs site.
- Upgraded parallelism with ray, includes multi-node capacity.
- Updated apply_oe script for basic user runs using the MODTRAN rte.
- Updated optimization convergence parameters, and multistart capacity.
- General bugfixes and speedups.
- Increased documentation.
- Python
Published by pgbrodrick over 5 years ago
isofit - 2.0.5
Cleans up code and adds a new TIR example. Fully backwards compatible. Details:
- No major changes to functionality
- Standardized the fit_params() interface
- Removed vestigial surf_emissive.py
- New thermal infrared example for unit testing
- PEP8 line width compliance
- Python
Published by pgbrodrick almost 6 years ago
isofit - 2.0.2
This release includes small bug fixes, re-organized LUT naming for more stable reuse of radiative transfer runs, and enhanced apply_oe capabilities.
This release is backwards compatible, though may cause LUT recalculations in some circumstances.
- Python
Published by pgbrodrick almost 6 years ago
isofit - 2.0.0
-Enables coupled VSWIR TIR inversions -Brings in substantial multicore speedups -Removes numba -General code improvements and stability -Configuration radiative transfer file format has been modified slightly, and are no longer strictly backwards compatible with v1.*
- Python
Published by pgbrodrick almost 6 years ago
isofit - v1.4.0
Closes PR #55:
- Predicts high-resolution reflectance uncertainty based on the RSS of per-spectrum instrument noise and radiometric calibration uncertainty
Closes PR #49:
- Adds global jit_enabled flag (defaults to False) to conditionally enable jit compilation.
- Adds global warnings_enabled flag
- Corrects the ISOFIT cli command so that it imports isofit.core.isofit and runs within a try-except, rather than defining it separately
- Adds global jit_enabled flag (defaults to False) to conditionally enable jit compilation.
Tweaks to example code to remove calls to "run()".
- Python
Published by winstonolson about 6 years ago
isofit - v1.2.0
- Includes the following updates from PR #43:
- House cleaning of the import order so that local files are imported after
- Internalizing of package utilities into utils.py file/submodule.
- Merging of all tests to internal test submodule. All tests must pass for CI to pass.
- Addition of Isofit and Sunposition classes for non-CLI use, useful for example in creating cross-platform example scripts; the former has a run() method for separating out initialization. The nice thing is that these objects store the model inputs and outputs for subsequent analysis.
- Addition of cross-platform Python example scripts
- Removal of unused imports - more likely remain
- Removal of the utils and tests folder in the base directory
- Adds scikit-image requirement
- Updates docs with new install and release steps
- Removes autodeploy to Pypi from .travis.yml
- Python
Published by winstonolson over 6 years ago
isofit - v1.1.6
Included with this release:
- PR #43 fixes import issues in the CLI scripts by moving programs to the bin directory. Utilities are still available separately in their respective directory for infrequent use.
Note for developers:
Update your PYTHONPATH to include the "isofit" base directory if you are running the code locally without installing the package.
- Python
Published by winstonolson over 6 years ago