We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hi,
I admit that the following issue is a bit pathological, and you may decide it is not worth doing anything about, but I thought I would flag it anyway.
I found myself in the position of wanting to apply PCA to the product space of the principal components of two separate fields:
import xarray as xr from eofs.xarray import Eof Z500_pcs=xr.open_dataarray('DJF_Z500_PCs.nc') MSLP_pcs=xr.open_dataarray('DJF_MSLP_PCs.nc') combined_pcs=xr.concat([Z500_pcs,MSLP_pcs],'mode') solver=Eof(combined_pcs) print(solver.eofs().shape) print(solver.eofs()[0].shape) print(solver.eofs()[0][0][0][0][0].shape)
(13, 13) (13, 13) (13, 13)
solver.eofs(neofs=3)
ValueError Traceback (most recent call last) /tmp/ipykernel_9504/46481902.py in <module> ----> 1 solver.eofs(neofs=3) ~/miniconda3/lib/python3.9/site-packages/eofs/xarray.py in eofs(self, eofscaling, neofs) 227 eofs = xr.DataArray(eofs, coords=coords, name='eofs', 228 attrs={'long_name': long_name}) --> 229 eofs.coords.update({coord.name: (coord.dims, coord) 230 for coord in self._space_ndcoords}) 231 return eofs ~/miniconda3/lib/python3.9/site-packages/xarray/core/coordinates.py in update(self, other) 164 [self.variables, other_vars], priority_arg=1, indexes=self.xindexes 165 ) --> 166 self._update_coords(coords, indexes) 167 168 def _merge_raw(self, other, reflexive): ~/miniconda3/lib/python3.9/site-packages/xarray/core/coordinates.py in _update_coords(self, coords, indexes) 340 coords_plus_data = coords.copy() 341 coords_plus_data[_THIS_ARRAY] = self._data.variable --> 342 dims = calculate_dimensions(coords_plus_data) 343 if not set(dims) <= set(self.dims): 344 raise ValueError( ~/miniconda3/lib/python3.9/site-packages/xarray/core/dataset.py in calculate_dimensions(variables) 203 last_used[dim] = k 204 elif dims[dim] != size: --> 205 raise ValueError( 206 f"conflicting sizes for dimension {dim!r}: " 207 f"length {size} on {k!r} and length {dims[dim]} on {last_used!r}" ValueError: conflicting sizes for dimension 'mode': length 3 on <this-array> and length 13 on {'mode': 'mode'}
All these errors vanish when I add the following line:
combined_pcs=combined_pcs.rename({'mode':'original_mode'})
Maybe a warning, or an automatic renaming if an array with a coordinate named 'mode' is passed to Eof would be appropriate?
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Hi,
I admit that the following issue is a bit pathological, and you may decide it is not worth doing anything about, but I thought I would flag it anyway.
I found myself in the position of wanting to apply PCA to the product space of the principal components of two separate fields:
All these errors vanish when I add the following line:
combined_pcs=combined_pcs.rename({'mode':'original_mode'})
Maybe a warning, or an automatic renaming if an array with a coordinate named 'mode' is passed to Eof would be appropriate?
The text was updated successfully, but these errors were encountered: