From 1ee531c83f49125c8d8ce1f40a166a4fe4f5e78b Mon Sep 17 00:00:00 2001 From: nicrie Date: Mon, 22 Aug 2022 14:12:47 +0200 Subject: [PATCH 1/5] style: correct an indent that prevented xeofs being published to pypi --- README.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/README.rst b/README.rst index e3858a9..19d9c5a 100644 --- a/README.rst +++ b/README.rst @@ -2,6 +2,7 @@ :align: center :width: 800 :alt: Comparison of standard, Varimax-rotated and Proxmax-rotated EOF analysis for temperature field over North America. + Example_ showing North American surface temperature decomposed via EOF analysis, Varimax rotation and Promax rotation. .. _Example: https://xeofs.readthedocs.io/en/stable/auto_examples/1eof/plot_rotated_eof.html#sphx-glr-auto-examples-1eof-plot-rotated-eof-py From 0a73edbc30578b9598f18018180af567758ac7a9 Mon Sep 17 00:00:00 2001 From: nicrie Date: Mon, 22 Aug 2022 14:24:56 +0200 Subject: [PATCH 2/5] build: docs do not compile properly, try changing version in conf.py --- docs/auto_examples/auto_examples_jupyter.zip | Bin 33112 -> 33112 bytes docs/auto_examples/auto_examples_python.zip | Bin 18204 -> 18204 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/auto_examples/auto_examples_jupyter.zip b/docs/auto_examples/auto_examples_jupyter.zip index b1e3dae9679010d86f4c237f5c7586d899348875..7db18a864a0804a493af362b350dc03cb5cc4199 100644 GIT binary patch delta 147 zcmcc7#B`&Hi6_9DnMH&F1XdPq~pw`Gboch%#_>0m)A;cXb5QyInoNG@Bbl+}8~vJ`qY^ Hb#n&*b7wHc delta 147 zcmbQ!$2g~tkte{LnMH&F1cHM$@~mNF3JKc0i){%X^OjvAn-fJhb22YkAh=mvK86j< zC{wlN0yDPh%d&zQ*G#Nf!HR{gZgVjO2TlIqVh1#2vVp4$NO*F&t0PF= Date: Mon, 22 Aug 2022 14:25:16 +0200 Subject: [PATCH 3/5] build: change conf --- docs/conf.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/conf.py b/docs/conf.py index 5925adb..a857f1c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,10 +15,13 @@ import os import sys -from xeofs import __version__ +# from xeofs import __version__ sys.path.insert(0, os.path.abspath('..')) +from importlib.metadata import version +__version__ = version('xeofs') + # # # prevent circular imports... # import sphinx.builders.html From 19bb84e3c57c4762fb2d61b3a60df143e6c05b72 Mon Sep 17 00:00:00 2001 From: nicrie Date: Mon, 22 Aug 2022 14:58:35 +0200 Subject: [PATCH 4/5] docs: fix docs --- docs/api.rst | 5 +---- docs/conf.py | 7 ++----- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/docs/api.rst b/docs/api.rst index 6a28bdd..bd1301f 100644 --- a/docs/api.rst +++ b/docs/api.rst @@ -6,14 +6,13 @@ API ********************** -Numpy ``np.ndarray`` +Numpy | ``np.ndarray`` ********************** .. autosummary:: :toctree: _autosummary :template: custom-class-template.rst :recursive: - xeofs.models.EOF xeofs.models.Rotator xeofs.models.Bootstrapper @@ -29,7 +28,6 @@ pandas | ``pd.DataFrame`` :template: custom-class-template.rst :recursive: - xeofs.pandas.EOF xeofs.pandas.Rotator xeofs.pandas.Bootstrapper @@ -44,7 +42,6 @@ xarray | ``xr.DataArray`` :template: custom-class-template.rst :recursive: - xeofs.xarray.EOF xeofs.xarray.Rotator xeofs.xarray.Bootstrapper diff --git a/docs/conf.py b/docs/conf.py index a857f1c..cc4a13a 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -15,14 +15,11 @@ import os import sys -# from xeofs import __version__ +from xeofs import __version__ sys.path.insert(0, os.path.abspath('..')) -from importlib.metadata import version -__version__ = version('xeofs') -# # # prevent circular imports... # import sphinx.builders.html # import sphinx.builders.latex @@ -82,7 +79,7 @@ # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. -language = None +language = 'en' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. From 0f9c32e48dd6c9069c11802a13a3f0113e5f07f5 Mon Sep 17 00:00:00 2001 From: nicrie Date: Mon, 22 Aug 2022 15:38:20 +0200 Subject: [PATCH 5/5] docs: more text --- docs/index.rst | 3 ++- docs/why.rst | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 docs/why.rst diff --git a/docs/index.rst b/docs/index.rst index 213111a..10434dc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -40,8 +40,9 @@ Documentation ****************** .. toctree:: - :maxdepth: 2 + :maxdepth: 3 + why installation auto_examples/index api diff --git a/docs/why.rst b/docs/why.rst new file mode 100644 index 0000000..8e2e46a --- /dev/null +++ b/docs/why.rst @@ -0,0 +1,30 @@ +################## +Why ``xeofs``? +################## + +EOF analysis and related variants are typically based on a decomposition of a 2D matrix. +When working with Earth observation data, however, the underlying structure +of the data is often multi-dimensional, e.g. they can be described by spatial (longitude, latitude, height etc.), +temporal (time, steps, lead times in forecasts etc.) and/or other (variable, sensor etc.) +dimensions. ``xarray`` provides a great tool to handle these multi-dimensional +data sets in Python. Performing EOF analysis and similar techniques using ``xarray`` +could therefore speed up analysis by automatically taking care of dimension labels. + +Although there exist already numerous Python packages for EOF analysis in ``xarray``, +none did satify my personal needs which is why I tried to merge existing implementations and extend their funcionalities. + + +************************************ +What can ``xeofs`` do for me? +************************************ +* perform your analysis ``xarray`` (support for ``pandas`` and ``numpy`` is also provided) +* analyze multi-dimensional data sets without having to keep track of all dimensions yourself +* investigate the significance of your results +* *planned, but not implemented yet*: work with large data sets with the help of ``dask`` + +******************* +Supported methods +******************* +* EOF analysis / PCA +* Varimax/Promax rotation for better interpretability +* Maximum Covariance Analysis