!112: Adapted SLIC segmentation to scikit-image 0.20.0 (fixes #103).
!113: Revised CI jobs and runner (now based on Ubuntu). Revised requirements and environment files.
!114: Dropped Python 3.6/3.7 support and add 3.9, 3.10, and 3.11 instead.
!115: Moved linting into separate CI job.
!116: Fixed scipy DeprecationWarnings.
!117: Renamed master branch to main.
!119: Implemented workaround for unset PROJ_DATA/PROJ_LIB environment variable.
Added ‘Lazy Gaussian inversion’ of snow and ice surface properties based on joint OE of atmosphere and surface state.
Switched from nosetests to pytest.
Activated multiprocessing for coverage.
Added pool.close() and pool.join() everywhere where multiprocessing.Pool is called.
Added keyword ‘start_label’ to SLIC segmentation to avoid index error in LUT interpolation.
Added download option from atmosphere data store for migrated ECMWF ‘cams_nrealtime’ datasets.
Automatic publication for new version tags on real Zenodo instead of its sandbox.
Automatic upload to Zenodo sandbox for new version tags.
Added tests directory as export-ignore to .gitattributes to reduce upload file size of Zenodo sandbox archive.
Fixed bug in Zenodo sandbox send-snapshot CI job.
Zenodo sandbox send-snapshot CI job.
Added .zenodo.json metadata dictionary.
Multiprocessing option for water vapor first guess retrieval.
Multiprocessing mode of SICOR available again on macOS.
Option to choose between two solar irradiance models: ‘new_kurucz’ and ‘fontenla’.
Added missing initializer to multiprocessing pool in empirical line calculation and set multiprocessing start method to fork.
Disabled water vapor first guess retrieval over water surfaces in case SICOR is running for land+water pixels.
Updated setup.py by removing check for packages that do not install well with pip. This avoids incompatibilities with the latest gdal versions.
Disabled multiprocessing for both the optimization and the empirical line extrapolation in case SICOR is running on Windows or macOS.
Dimensionality reduction of LUT grid to increase interpolation speed.
Updated final log message of SICOR AC for EnMAP.
First guess water vapor retrieval is only applied to land pixels if land_only is set to true.
Fixed bug in empirical line function which produced unrealistic peaks in water reflectance spectra.
Removed infinite values from water vapor first guess map to ensure convergence of Eigenvalues when calculating information content.
Removed numba jit from hyperspectral LUT interpolation to avoid potential numba related bugs.
Data arrays from the EnMAP L1B object are now safely copied instead of remaining mutable. This prevents issues with later usages.
‘make lint’ now directly prints errors instead of only logging them to logfiles.
Automatic retraining of S2 novelty detector in case pretrained scikit-learn random forest model is out of date.
Pinned gdal to version<=3.1.2 to avoid import error.
Fixed bug in empirical line function, which caused one single remaining unprocessed segmentation label.
Replaced deprecated gdal imports to fix “DeprecationWarning: gdal.py was placed in a namespace, it is now available as osgeo.gdal”.
Updated cerberus schema for SicorValidator to avoid missing path warning in case of LUT file.
Updated download link and file size of S2 novelty detector and unpinned scikit-learn version.
Transformation of VNIR data cube to SWIR sensor geometry to enable accurate segmentation and first guess retrievals.
Well-arranged separation between EnMAP-specific AC and generic AC.
Added incorporation of uncertainties due to model unknowns.
Extended options files with additional parameters: * Prior mean and standard deviation of state vector parameters * Standard deviations of model unknowns * Inversion parameters
Extended optional output of Optimal Estimation: * Jacobian of solution state * Convergence message * Number of iterations * Gain matrix * Averaging kernel matrix * Value of cost function * Degrees of freedom * Information content * Retrieval noise * Smoothing error
Updated first guess retrievals.
Updated keyword for excluding patterns from URL check.
Fixed bug in LUT file assertion.
Removed slow inversion method based on downhill simplex algorithm.
Removed option to turn off ice retrieval.
Two optional processing modes for EnMAP data: ‘land only’ and ‘land + water’ based on water mask.
Fixed bug in LUT file assertion.
Replaced pandas xlrd dependency by openpyxl.
Improved handling of clear and cloudy fraction. Additional logger warnings and infos are now printed.
Fixed Qhull error within water vapor retrieval, which occurred while processing extremely cloudy images.
Improved consistency in the logging of ECMWF errors within ac_gms().
Default values and units for multispectral AC are now printed to the logs.
Deprecated raise of assertion error in case the LUT file only represents an LFS pointer.
Fixed “RuntimeWarning: overflow encountered in reduce” within ac_gms().
Implemented CWV default value for AC of Landsat data in case no ECMWF data are available.
Separated CI Jobs for optionally testing AC of EnMAP and/or Sentinel-2 data.
Fixed Qhull error caused by scipy griddata function in except clause of ac_interpolation.
Fixed error in getting ECMWF data.
Modified input points and values for scipy RegularGridInterpolator to avoid NaN in interpolated variable.
New handling of Sentinel-2 and Landsat-8 options files.
Improved multispectral AC tables download during runtime by implementing an automatic check for table availability.
Re-enabled and updated CI job for testing AC of Sentinel-2 data.
Fixed scipy QHull error in interpolation function within Sentinel-2 AC.
Updated package requirements.
SICOR is now available as conda package on conda-forge.
All needed AC tables both for hyper- and multispectral mode are now downloaded during runtime
‘deploy_pypi’ CI job is finally working after fixing some bugs.
Fixed documentation links.
Fixed pip install error caused by basemap library.
Additional tables for multispectral mode are now downloaded during pip install.
Moved imports of scikit-image from module level to function level to avoid ‘ImportError: dlopen: cannot load any more object with static TLS’.
Fixed DeprecationWarnings h), i), and j) from issue #53.
AC LUT is now downloaded during setup.py.
Fixed issue #62 (ecmwf-api-client ImportError after following the installation instructions for the hyperspectral part of SICOR).
The package is now available on the Python Package Index.
Added ‘deploy_pypi’ CI job.
Segmentation of input radiance data cubes to enhance processing speed.
Empirical line solution for extrapolating reflectance spectra based on segment averages.
Optimal estimation for atmospheric and surface parameters.
Calculation of retrieval uncertainties.
New EnMAP atmospheric correction.
3 phases of water retrieval for hyperspectral data.
Development by Niklas Bohn started.