EnPT issueshttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues2024-03-06T18:04:43+01:00https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/138Implement ISOFIT as alternative atmospheric correction approach.2024-03-06T18:04:43+01:00Daniel SchefflerImplement ISOFIT as alternative atmospheric correction approach.ISOFIT provides a couple of advantages and may resolve some shortcomings of SICOR. The implementation of ISOFIT in EnPT is planned for 2024.ISOFIT provides a couple of advantages and may resolve some shortcomings of SICOR. The implementation of ISOFIT in EnPT is planned for 2024.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/137Replace legacy scipy.interpolation.interp1d.2024-03-05T15:38:57+01:00Daniel SchefflerReplace legacy scipy.interpolation.interp1d.`scipy.interpolation.interp1d` is considered as legacy code in the scipy docs and won't receive updates anymore. In https://github.com/EnMAP-Box/enmap-box/issues/804, importing it on a Mac seems to cause a QGIS crash. Thus, it should be ...`scipy.interpolation.interp1d` is considered as legacy code in the scipy docs and won't receive updates anymore. In https://github.com/EnMAP-Box/enmap-box/issues/804, importing it on a Mac seems to cause a QGIS crash. Thus, it should be replaced.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/136Some pixels with large negative values near coastline when running combined A...2024-01-04T18:35:01+01:00Daniel SchefflerSome pixels with large negative values near coastline when running combined AC mode.Here is an example:
![grafik](/uploads/5c2e1d4e146ef9eba9b7922531e015e7/grafik.png)
This might be due to a land pixel which is flagged as water by the land/water mask, which consequently gets the POLYMER AC result.Here is an example:
![grafik](/uploads/5c2e1d4e146ef9eba9b7922531e015e7/grafik.png)
This might be due to a land pixel which is flagged as water by the land/water mask, which consequently gets the POLYMER AC result.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/135POLYMER SWIR output is not 0 but 12024-01-04T19:04:58+01:00Daniel SchefflerPOLYMER SWIR output is not 0 but 1POLYMER should set SWIR pixel values to 0 instead of 1. Probably, 1 was used so far, because EnPT used 0 as no-data value which changed in !98, so 0 is now a valid pixel value.
This is related to https://gitlab.awi.de/phytooptics/acwate...POLYMER should set SWIR pixel values to 0 instead of 1. Probably, 1 was used so far, because EnPT used 0 as no-data value which changed in !98, so 0 is now a valid pixel value.
This is related to https://gitlab.awi.de/phytooptics/acwater/-/issues/23.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/134Missing water-leaving reflectance data at coast line in case EnPT runs in com...2024-01-04T17:30:58+01:00Daniel SchefflerMissing water-leaving reflectance data at coast line in case EnPT runs in combined AC modeLooks like this:
![grafik](/uploads/993ad8fdf6db85f01690e35ef17c5d20/grafik.png)
Pixel values are set to no-data.Looks like this:
![grafik](/uploads/993ad8fdf6db85f01690e35ef17c5d20/grafik.png)
Pixel values are set to no-data.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/133"RuntimeWarning: invalid value encountered in cast" when joining POLYMER AC r...2024-01-03T20:09:27+01:00Daniel Scheffler"RuntimeWarning: invalid value encountered in cast" when joining POLYMER AC results```python
[...]
Starting processing at 2023-12-21 12:06:41.127358
Processing block: size (100, 1000), offset (0, 0)
Processing block: size (100, 1000), offset (100, 0)
Processing block: size (100, 1000), offset (200, 0)
Processing block:...```python
[...]
Starting processing at 2023-12-21 12:06:41.127358
Processing block: size (100, 1000), offset (0, 0)
Processing block: size (100, 1000), offset (100, 0)
Processing block: size (100, 1000), offset (200, 0)
Processing block: size (100, 1000), offset (300, 0)
Processing block: size (100, 1000), offset (400, 0)
Processing block: size (100, 1000), offset (500, 0)
Processing block: size (100, 1000), offset (600, 0)
Processing block: size (100, 1000), offset (700, 0)
Processing block: size (100, 1000), offset (800, 0)
Processing block: size (100, 1000), offset (900, 0)
Processing block: size (24, 1000), offset (1000, 0)
Done in 0:04:10.474827
2023/12/21 12:10:54: Joining results of atmospheric correction.
==> /home/gfz-fe/mambaforge/envs/enpt_full_dev/lib/python3.11/site-packages/enpt/processors/atmospheric_correction/atmospheric_correction.py:319: RuntimeWarning: invalid value encountered in cast
in_detector.data = (out_detector * self.cfg.scale_factor_boa_ref).astype(np.int16)
2023/12/21 12:10:55: Starting orthorectification...
[...]
```
The full log + input and output data was posted [here](https://github.com/GFZ/enpt/issues/7#issuecomment-1866122575).
This should be checked behind the background of some weird-looking water spectra, e.g. here:
![grafik](/uploads/a0d44b8a445af1b0be81ea9c6cbf385b/grafik.png)
The adjacent water pixels have more resonable signatures:
![grafik](/uploads/af7f042b1f1b2539f76c4669cef2de73/grafik.png)Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/132POLYMER compilation fails if Cython 3 is installed.2024-01-04T18:40:06+01:00Daniel SchefflerPOLYMER compilation fails if Cython 3 is installed.Polymer compilation fails when running `make` as documented [here](https://enmap.git-pages.gfz-potsdam.de/GFZ_Tools_EnMAP_BOX/EnPT/doc/installation.html#optional-install-polymer-for-advanced-atmospheric-correction-over-water-surfaces), s...Polymer compilation fails when running `make` as documented [here](https://enmap.git-pages.gfz-potsdam.de/GFZ_Tools_EnMAP_BOX/EnPT/doc/installation.html#optional-install-polymer-for-advanced-atmospheric-correction-over-water-surfaces), see https://forum.hygeos.com/viewtopic.php?f=7&t=221&start=10:
```python
polymer) [sc73004@ln32%bscc-a2 polymer-v4.16.1]$ make
python setup.py build_ext --inplace
Compiling polymer/clut.pyx because it changed.
Compiling polymer/neldermead.pyx because it changed.
Compiling polymer/polymer_main.pyx because it changed.
Compiling polymer/water.pyx because it changed.
[1/4] Cythonizing polymer/clut.pyx
/public3/home/sc73004/.conda/envs/polymer/lib/python3.11/site-packages/Cython/Compiler/Main.py:381: FutureWarning: Cython directive 'language_level' not set, using '3str' for now (Py3). This has changed from earlier releases! File: /public3/home/sc73004/software-sc73004/polymer-v4.16.1.tar/polymer-v4.16.1/polymer-v4.16.1/polymer/clut.pxd
tree = Parsing.p_module(s, pxd, full_module_name)
Error compiling Cython file:
------------------------------------------------------------
...
cdef CLUT A = CLUT(np.array([[1, 2, 3], [4, 5, 6]]), axes=[[1, 2], [10, 11, 12]])
assert A.lookup(0, 1.5) == 0
assert A.lookup(1, 11.5) == 0
print A.interp()
^
------------------------------------------------------------
polymer/clut.pyx:293:10: Syntax error in simple statement list
Traceback (most recent call last):
File "/public3/home/sc73004/software-sc73004/polymer-v4.16.1.tar/polymer-v4.16.1/polymer-v4.16.1/setup.py", line 26, in <module>
EXTENSIONS = cythonize([SRC_DIR + '/*.pyx'],
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/public3/home/sc73004/.conda/envs/polymer/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1134, in cythonize
cythonize_one(*args)
File "/public3/home/sc73004/.conda/envs/polymer/lib/python3.11/site-packages/Cython/Build/Dependencies.py", line 1301, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: polymer/clut.pyx
make: *** [main] Error 1
```Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/131Error in executing EnPT - EnMAP Processing Tool (v0.7.6) for Level-1B to Leve...2023-11-16T13:38:41+01:00unanduwaError in executing EnPT - EnMAP Processing Tool (v0.7.6) for Level-1B to Level-2A conversionError in executing EnPT - EnMAP Processing Tool (v0.7.6) for Level-1B to Level-2A conversion
```
QGIS version: 3.28.12-Firenze
QGIS code revision: dcc633b2de
Qt version: 5.15.3
Python version: 3.9.5
GDAL version: 3.7.2
GEOS version: 3.1...Error in executing EnPT - EnMAP Processing Tool (v0.7.6) for Level-1B to Level-2A conversion
```
QGIS version: 3.28.12-Firenze
QGIS code revision: dcc633b2de
Qt version: 5.15.3
Python version: 3.9.5
GDAL version: 3.7.2
GEOS version: 3.12.0-CAPI-1.18.0
PROJ version: Rel. 9.3.0, September 1st, 2023
PDAL version: 2.5.5 (git-version: 24f78d)
Algorithm started at: 2023-11-12T12:27:40
Algorithm 'EnPT - EnMAP Processing Tool (v0.7.6)' starting…
Input parameters:
{ 'CPUs' : 4, 'auto_download_ecmwf' : False, 'average_elevation' : 0, 'blocksize' : 100, 'conda_root' : 'C:\\ProgramData\\Anaconda3', 'deadpix_P_algorithm' : 1, 'deadpix_P_interp_spatial' : 0, 'deadpix_P_interp_spectral' : 0, 'disable_progress_bars' : True, 'drop_bad_bands' : True, 'enable_ac' : True, 'json_config' : '', 'mode_ac' : 2, 'n_lines_to_append' : None, 'ortho_resampAlg' : 2, 'output_dir' : 'C:\\Users\\D E L L\\Documents\\EnPT\\Output\\20231112__1', 'output_format' : 0, 'output_interleave' : 2, 'path_dem' : None, 'path_earthSunDist' : '', 'path_l1b_enmap_image' : 'D:\\FYP\\EnMap data\\dims_op_oc_oc-en_701023889_1\\ENMAP.HSI.L1B\\ENMAP-HSI-L1BDT0000040015_13-2023-09-05T05_44_01.422_ravindur-cat1distributor_701023887_722615514_2023-11-11T18_00_33.472\\ENMAP01-____L1B-DT0000040015_20230905T054401Z_013_V010400_20231111T151725Z.ZIP', 'path_l1b_enmap_image_gapfill' : '', 'path_reference_image' : None, 'path_solar_irr' : '', 'polymer_additional_results' : True, 'polymer_root' : '', 'run_deadpix_P' : False, 'scale_factor_boa_ref' : 10000, 'scale_factor_toa_ref' : 10000, 'target_epsg' : None, 'target_projection_type' : 0, 'threads' : -1, 'vswir_overlap_algorithm' : 3, 'working_dir' : '' }
Found Conda installation at C:\ProgramData\Anaconda3.
The Conda installation contains the 'enpt' environment as expected.
Calling EnPT with the following command:
enpt --CPUs 4 --auto_download_ecmwf False --average_elevation 0 --blocksize 100 --deadpix_P_algorithm spatial --deadpix_P_interp_spatial linear --deadpix_P_interp_spectral linear --disable_progress_bars True --drop_bad_bands True --enable_ac True --mode_ac combined --ortho_resampAlg gauss --output_dir C:\Users\D E L L\Documents\EnPT\Output\20231112__1 --output_format GTiff --output_interleave pixel --path_l1b_enmap_image D:\FYP\EnMap data\dims_op_oc_oc-en_701023889_1\ENMAP.HSI.L1B\ENMAP-HSI-L1BDT0000040015_13-2023-09-05T05_44_01.422_ravindur-cat1distributor_701023887_722615514_2023-11-11T18_00_33.472\ENMAP01-____L1B-DT0000040015_20230905T054401Z_013_V010400_20231111T151725Z.ZIP --polymer_additional_results True --run_deadpix_P False --scale_factor_boa_ref 10000 --scale_factor_toa_ref 10000 --target_projection_type UTM --threads -1 --vswir_overlap_algorithm swir_only
Traceback (most recent call last):
File "C:\Users\D E L L\AppData\Roaming\Python\Python39\site-packages\enpt_enmapboxapp\enpt_external_algorithm.py", line 110, in _locate_enpt_run_script
return check_output('where enpt_run_cmd.bat', shell=True).decode('UTF-8').strip()
File "C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\subprocess.py", line 424, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
File "C:\PROGRA~1\QGIS32~1.12\apps\Python39\lib\subprocess.py", line 528, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command 'where enpt_run_cmd.bat' returned non-zero exit status 1.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\D E L L\AppData\Roaming\Python\Python39\site-packages\enpt_enmapboxapp\enpt_external_algorithm.py", line 184, in processAlgorithm
path_enpt_runscript = self._locate_enpt_run_script()
File "C:\Users\D E L L\AppData\Roaming\Python\Python39\site-packages\enpt_enmapboxapp\enpt_external_algorithm.py", line 118, in _locate_enpt_run_script
raise EnvironmentError('The EnPT run script could not be found. Please make sure, that enpt_enmapboxapp '
OSError: The EnPT run script could not be found. Please make sure, that enpt_enmapboxapp is correctly installed into your QGIS Python environment.
Execution failed after 0.21 seconds
Loading resulting layers
Algorithm 'EnPT - EnMAP Processing Tool (v0.7.6)' finished
```https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/130How to adjust the orthorectification for PRISMA?2023-12-08T11:25:10+01:00Xin ZhangHow to adjust the orthorectification for PRISMA?Actually, this should be a discussion instead of an issue ... Do you have any idea how to orthorectify PRISMA L1B data? I checked the data and didn't find any georeferencing metadatalike gcps/rpcs.Actually, this should be a discussion instead of an issue ... Do you have any idea how to orthorectify PRISMA L1B data? I checked the data and didn't find any georeferencing metadatalike gcps/rpcs.https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/129Add warning in case input L1B data was processed with old ground segment proc...2023-12-18T21:30:36+01:00Daniel SchefflerAdd warning in case input L1B data was processed with old ground segment processorSince destriping is not implemented (and would only make sense for L1B data processed with an old version of the ground segment processor), we should check the GS processor version and raise a warning suggesting the user to re-download t...Since destriping is not implemented (and would only make sense for L1B data processed with an old version of the ground segment processor), we should check the GS processor version and raise a warning suggesting the user to re-download the dataset from the archive with a newer GS processor version.
@brell Could you provide the earliest ground segment processor version that included destiping?Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/128How to apply DEM orthorectification to scene which is partly over ocean?2023-09-18T12:44:54+02:00Xin ZhangHow to apply DEM orthorectification to scene which is partly over ocean?I see we need to make sure the DEM file covers the whole EnMAP scene. But, if some pixels are over the ocean, we can't provide a valid file. Maybe, it's better to add a function to fill the missing part to 0 and give some warnings?I see we need to make sure the DEM file covers the whole EnMAP scene. But, if some pixels are over the ocean, we can't provide a valid file. Maybe, it's better to add a function to fill the missing part to 0 and give some warnings?https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/127Wrong lon/lat of interpolate_corners for L2 product2023-09-15T16:09:20+02:00Xin ZhangWrong lon/lat of interpolate_corners for L2 productI tested the `interpolate_corners` function for L2_obj and the result is wrong.
## result of the show_map function
```
L2_obj.data.show_map(band=[0], res_factor=1, xlim=(500, 650), ylim=(850, 1000), out_epsg=4326)
```
![image](/upload...I tested the `interpolate_corners` function for L2_obj and the result is wrong.
## result of the show_map function
```
L2_obj.data.show_map(band=[0], res_factor=1, xlim=(500, 650), ylim=(850, 1000), out_epsg=4326)
```
![image](/uploads/1945d3d2ea9fcd151228cbb2737d74a9/image.png)
## test interpolate_corners
```
def interpolate_corners(ul: float, ur: float, ll: float, lr: float, nx: int, ny: int):
"""Compute interpolated field from corner values of a scalar field given at: ul, ur, ll, lr.
:param ul: tbd
:param ur: tbd
:param ll: tbd
:param lr: tbd
:param nx: final shape (x-axis direction)
:param ny: final shape (y-axis direction)
"""
# FIXME this method must later be replaced by the geolayer provided by the ground segment
# => a linear interpolation between the EnMAP corner coordinates is NOT sufficient for modelling the
# geometry of VNIR and SWIR
# - especially at off-nadir acquisitions and with some terrain present, a linear interpolation leads
# to large deviations (> 180 m y-coordinate offset for the EnPT test dataset)
# TODO ensure that lons/lats represent UL coordinates not pixel coordinate centers (as given by Karl / DLR(?))
corner_coords = np.array([[ul, ur],
[ll, lr]])
rowpos, colpos = [0, 1], [0, 1]
from scipy.interpolate import RegularGridInterpolator
rgi = RegularGridInterpolator([rowpos, colpos], corner_coords, method='linear')
out_rows_grid, out_cols_grid = np.meshgrid(np.linspace(0, 1, ny),
np.linspace(0, 1, nx),
indexing='ij')
coords = rgi(np.dstack([out_rows_grid, out_cols_grid]))
return coords
lons_l2 = interpolate_corners(*L2_obj.meta.lon_UL_UR_LL_LR, L2_obj.meta.ncols, L2_obj.meta.nrows)
lats_l2 = interpolate_corners(*L2_obj.meta.lat_UL_UR_LL_LR, L2_obj.meta.ncols, L2_obj.meta.nrows)
fig, ax = plt.subplots(subplot_kw={'projection': ccrs.PlateCarree()},
figsize=(6, 6),
constrained_layout=True)
ax.pcolormesh(lons_l2[850:1000, 500:650], lats_l2[850:1000, 500:650], L2_obj.data[850:1000, 500:650, 0])
gl = ax.gridlines(draw_labels=True, dms=False, color = 'gray', linewidth=1, alpha=0.5, linestyle='--')
gl.top_labels = False
gl.right_labels = False
```
![image](/uploads/a99ec2963d3c438b372d9211717a186c/image.png)
The location of the cloud is wrong using the lon/lat calculated by interpolate_corners.https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/126EPSG of L1_obj2023-09-15T16:40:58+02:00Xin ZhangEPSG of L1_objI checked `scn.L1_obj.vnir.data.epsg` and it returns `4326`. If I understand correctly, the geometry is the sensor geometry. So, it's not 4326, right?I checked `scn.L1_obj.vnir.data.epsg` and it returns `4326`. If I understand correctly, the geometry is the sensor geometry. So, it's not 4326, right?https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/125Offset still exists after orthorectification2023-09-15T16:01:37+02:00Xin ZhangOffset still exists after orthorectificationI see a mismatch between EnMAP and ESRI images after orthorectification. Detailed Notebook is uploaded: [EnMAP_orthorectification.ipynb](/uploads/1fa2e3251f7fe633199028f6c3c9f314/EnMAP_orthorectification.ipynb)
## Single band data
### ...I see a mismatch between EnMAP and ESRI images after orthorectification. Detailed Notebook is uploaded: [EnMAP_orthorectification.ipynb](/uploads/1fa2e3251f7fe633199028f6c3c9f314/EnMAP_orthorectification.ipynb)
## Single band data
### imshow with transform
![image](/uploads/b34d637fe0a75f5793bc8301a6dc2481/image.png)
### pcolormesh using lon and lat
![image](/uploads/23025507403f507dbc8854d77e6bf849/image.png)
### applying orthorectification
![image](/uploads/acaefacc3e05e9ec2be61378867b8699/image.png)
### RGB (imshow transform)
![image](/uploads/873b9d8b3b0fcbf87cb21a7315d7a1a5/image.png)
It seems there are still offsets, e.g. 85.245E, 27.775N, when we zoom in.
![image](/uploads/03b7a39b4d3beb82bb20fac25f39658b/image.png)https://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/112NumbaDeprecationWarning: The keyword argument 'nopython=False' was supplied2023-12-12T13:12:40+01:00Daniel SchefflerNumbaDeprecationWarning: The keyword argument 'nopython=False' was supplied```python
tests/test_controller.py::Test_EnPT_Controller_DLR_testdata::test_run_all_processors
/tmp/sicor/sicor/AC/RtFo.py:24: NumbaDeprecationWarning: The keyword argument 'nopython=False' was supplied. From Numba 0.59.0 the default i...```python
tests/test_controller.py::Test_EnPT_Controller_DLR_testdata::test_run_all_processors
/tmp/sicor/sicor/AC/RtFo.py:24: NumbaDeprecationWarning: The keyword argument 'nopython=False' was supplied. From Numba 0.59.0 the default is being changed to True and use of 'nopython=False' will raise a warning as the argument will have no effect. See https://numba.readthedocs.io/en/stable/reference/deprecation.html#deprecation-of-object-mode-fall-back-behaviour-when-using-jit for details.
@jit(nopython=False)
```Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/111DeprecationWarning: `interp2d` is deprecated!2023-12-11T18:12:18+01:00Daniel SchefflerDeprecationWarning: `interp2d` is deprecated!```python
tests/test_l1b_reader.py: 24 warnings
/builds/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/enpt/model/images/images_sensorgeo.py:252: DeprecationWarning: `interp2d` is deprecated!
`interp2d` is deprecated in SciPy 1.10 and will be remove...```python
tests/test_l1b_reader.py: 24 warnings
/builds/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/enpt/model/images/images_sensorgeo.py:252: DeprecationWarning: `interp2d` is deprecated!
`interp2d` is deprecated in SciPy 1.10 and will be removed in SciPy 1.12.0.
For legacy code, nearly bug-for-bug compatible replacements are
`RectBivariateSpline` on regular grids, and `bisplrep`/`bisplev` for
scattered 2D data.
In new code, for regular grids use `RegularGridInterpolator` instead.
For scattered data, prefer `LinearNDInterpolator` or
`CloughTocher2DInterpolator`.
For more details see
`https://gist.github.com/ev-br/8544371b40f414b7eaf3fe6217209bff`
interp_lats = interp2d(x=[0, 1],
```Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/110Polymer>4.14 incompatible with EnPT2023-05-26T23:16:24+02:00Daniel SchefflerPolymer>4.14 incompatible with EnPTAs reported by Dagmar Müller, the Polymer AC fails with the following error when polymer>4.14 is installed:
```python
The atmospheric correction mode was set to 'water' but Polymer cannot be imported (Error was: cannot import name 'Leve...As reported by Dagmar Müller, the Polymer AC fails with the following error when polymer>4.14 is installed:
```python
The atmospheric correction mode was set to 'water' but Polymer cannot be imported (Error was: cannot import name 'Level2' from 'polymer.main' (/home/dagmar/EnPT/polymer-v4.15/polymer/main.py))
```Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/109calc_solar_irradiance_CWL_FWHM_per_band delivers too smooth irradiances2023-04-04T14:07:55+02:00Maximilian Brellcalc_solar_irradiance_CWL_FWHM_per_band delivers too smooth irradiancesI do not understand what happens here (calc_solar_irradiance_CWL_FWHM_per_band(self)), but it does not look like it is convolved correctly to EnMAP CWL and FWHM...
` def calc_solar_irradiance_CWL_FWHM_per_band(self) -> np.array:
...I do not understand what happens here (calc_solar_irradiance_CWL_FWHM_per_band(self)), but it does not look like it is convolved correctly to EnMAP CWL and FWHM...
` def calc_solar_irradiance_CWL_FWHM_per_band(self) -> np.array:
from ...io.reader import Solar_Irradiance_reader
self.logger.debug('Calculating solar irradiance...')
sol_irr = Solar_Irradiance_reader(path_solar_irr_model=self.cfg.path_solar_irr, wvl_min_nm=350, wvl_max_nm=2500)
irr_bands = []
for band in self.srf.bands:
WVL_band = self.srf.srfs_wvl if self.srf.wvl_unit == 'nanometers' else self.srf.srfs_wvl * 1000
RSP_band = self.srf.srfs_norm01[band]
sol_irr_at_WVL = np.interp(WVL_band, sol_irr[:, 0], sol_irr[:, 1], left=0, right=0)
irr_bands.append(np.round(np.sum(sol_irr_at_WVL * RSP_band) / np.sum(RSP_band), 2))
return np.array(irr_bands)
`Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/108Implement a VNIR/SWIR co-registration module.2023-12-12T13:14:59+01:00Daniel SchefflerImplement a VNIR/SWIR co-registration module.So far, only the absolute co-registration between EnMAP and a user-provided reference is implemented. VNIR/SWIR co-registration should also be added. This might solve #106.So far, only the absolute co-registration between EnMAP and a user-provided reference is implemented. VNIR/SWIR co-registration should also be added. This might solve #106.Daniel SchefflerDaniel Schefflerhttps://git.gfz-potsdam.de/EnMAP/GFZ_Tools_EnMAP_BOX/EnPT/-/issues/106Spectral VNIR/SWIR jump at high contrast edges2023-03-27T17:24:44+02:00Daniel SchefflerSpectral VNIR/SWIR jump at high contrast edgesThis is most likely due to the missing VNIR/SWIR co-registration which is currently not yet implemented.
![grafik](/uploads/c3d891e97dbae53e431302f91c10ddb7/grafik.png)This is most likely due to the missing VNIR/SWIR co-registration which is currently not yet implemented.
![grafik](/uploads/c3d891e97dbae53e431302f91c10ddb7/grafik.png)Daniel SchefflerDaniel Scheffler