Hi @RS-UCL, we have a new issue in the Albedo procedure from S2GM, that seems related to the main_edmember computation (in cal_endmember_mosaic_v2.py, after running main_albedo_multiprocessing.py in s2gm_mosaic_v2 branch).
Here is the full error message from python:
-----------> Start calculating end-members based on Sentinel-2 multispectral data.
Traceback (most recent call last):
File "main_albedo_multiprocessing.py", line 79, in
cal_endmember(sentinel2_directory)
File "/mount/internal/work-st/projects/jrc-066/1953-s2gm/src/hr-albedo/cal_endmember_mosaic_v2.py", line 331, in cal_endmember
main_endmember = cal_EEA.extract(M=s2_20m_matrix_interp, q=4, maxit=5, normalize=False, ATGP_init=True)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/inval.py", line 55, in checker
return method(self, M, q, transform=transform, maxit=maxit, normalize=normalize, ATGP_init=ATGP_init, mask=mask)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/eea_int.py", line 346, in extract
self.E, self.Et, self.idx, self.it = nfindr.NFINDR(cM, q, transform, maxit, ATGP_init)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/nfindr.py", line 76, in NFINDR
transform = eea._PCA_transform(data, q-1)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/eea.py", line 36, in _PCA_transform
return pca.fit_transform(M)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/utils/_set_output.py", line 142, in wrapped
data_to_wrap = f(self, X, *args, **kwargs)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 462, in fit_transform
U, S, Vt = self._fit(X)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 512, in _fit
return self._fit_full(X, n_components)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 526, in _fit_full
raise ValueError(
ValueError: n_components=3 must be between 0 and min(n_samples, n_features)=2 with svd_solver='full'
Hi @RS-UCL, we have a new issue in the Albedo procedure from S2GM, that seems related to the main_edmember computation (in cal_endmember_mosaic_v2.py, after running main_albedo_multiprocessing.py in s2gm_mosaic_v2 branch).
Here is the full error message from python: -----------> Start calculating end-members based on Sentinel-2 multispectral data. Traceback (most recent call last): File "main_albedo_multiprocessing.py", line 79, in
cal_endmember(sentinel2_directory)
File "/mount/internal/work-st/projects/jrc-066/1953-s2gm/src/hr-albedo/cal_endmember_mosaic_v2.py", line 331, in cal_endmember
main_endmember = cal_EEA.extract(M=s2_20m_matrix_interp, q=4, maxit=5, normalize=False, ATGP_init=True)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/inval.py", line 55, in checker
return method(self, M, q, transform=transform, maxit=maxit, normalize=normalize, ATGP_init=ATGP_init, mask=mask)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/eea_int.py", line 346, in extract
self.E, self.Et, self.idx, self.it = nfindr.NFINDR(cM, q, transform, maxit, ATGP_init)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/nfindr.py", line 76, in NFINDR
transform = eea._PCA_transform(data, q-1)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/pysptools/eea/eea.py", line 36, in _PCA_transform
return pca.fit_transform(M)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/utils/_set_output.py", line 142, in wrapped
data_to_wrap = f(self, X, *args, **kwargs)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 462, in fit_transform
U, S, Vt = self._fit(X)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 512, in _fit
return self._fit_full(X, n_components)
File "/home/jscarriere/miniconda3/envs/HR-Albedo/lib/python3.8/site-packages/sklearn/decomposition/_pca.py", line 526, in _fit_full
raise ValueError(
ValueError: n_components=3 must be between 0 and min(n_samples, n_features)=2 with svd_solver='full'
Could you please investigate ?