Comments (4)
I must admit I'm not sure of a package that can automatically apply this kind of weighting for you, but that's not to say it doesn't exist!
However, I'm a bit skeptical that simply providing coordinates in kilometers would enable accurate calculation of weights. What you'd actually need is a more detailed understanding of the projection used to represent the data. Climate data is typically portrayed on a rectangular lon/lat grid, which, while convenient and familiar to us as observers, does distort the area represented by a grid point towards the poles, making it appear larger.
The coslat correction is a handy workaround for this specific distortion, but keep in mind that this effect arises from the classic (PlateCarree) projection that's commonly used.
Given that you're working with a different projection, you should be careful about determining the necessary correction, if any is needed at all. It might be unavoidable to delve deeper into your data set to understand the projection used and how it may distort the data.
That said, you can certainly carry out the analysis without any corrections. However, you should be cognizant that in such a case, your results are likely to reflect EOFs of what could be described as "inflated" areas.
from xmca.
Just to be sure, xMCA only works with xr.DataArray
(in xeofs Dataset will be allowed soon), so be sure to convert your Dataset before the analysis.
Also , please ensure that the dimensions are time
, lon
and lat
and remove any other dimension/coordinate i.e. dimensions bnds
.
Finally, have you applied latitude correction via .apply_coslat
? Unfortunately, this won't work in the current version as it assumes latitudes in degrees to compute the weights. Since your latitudes are in km, the weights will be false and thus the final result.
from xmca.
Just to be sure, xMCA only works with
xr.DataArray
(in xeofs Dataset will be allowed soon), so be sure to convert your Dataset before the analysis.
I converted to data array, so this shouldn't be a problem.
Also , please ensure that the dimensions are
time
,lon
andlat
and remove any other dimension/coordinate i.e. dimensionsbnds
.
Well, I did not drop the extra bands. I will do that and try
Finally, have you applied latitude correction via.apply_coslat
? Unfortunately, this won't work in the current version as it assumes latitudes in degrees to compute the weights. Since your latitudes are in km, the weights will be false and thus the final result.
I'm pretty sure this is the major problem.
As my data array is in meters, do you know any packages/links where in I can apply latitude correction?
Thanks a lot for providing these insights.
Always helpful. :)
from xmca.
you can certainly carry out the analysis without any corrections.
Many Many Thanks for the detailed explanation @nicrie, I'm so glad you're here to provide detailed information on these. I'm working with this projection (https://nsidc.org/data/user-resources/help-center/guide-nsidcs-polar-stereographic-projection), units are in meters.
And also, the data is in anti-meridian zone and hence the classic projections aren't well applied using raster-xarray packages.
I can now get the root cause and will work on it and get back if the re-projection and coslat correction works and I'm able to do EOFs using either xMCA and xeofs. Meanwhile, please get back if by any chance you accidentally come across some information on this.
Thanks a ton again :)
from xmca.
Related Issues (15)
- Feedback HOT 1
- multivariate EOF analysis / MCA
- dask support HOT 1
- improve docs with out-of-box MWE
- error when loading and plotting PCA model
- currently only accepts 'lon' and 'lat' as label arguments
- installation error HOT 3
- save_analysis currently does not save cos lat weighting
- method to get the PC spectrum
- cartopy dependency is too restrictive HOT 3
- MCA errors HOT 23
- SVD did not converge HOT 3
- May cause errors after using mca. normalize() HOT 2
- Why are there different outputs of nicrie / xmca compared with outputs of Yefee's xMCA? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from xmca.