From bc04612c945646ebd95dc206bd4832eee81e3f7c Mon Sep 17 00:00:00 2001 From: Wolfgang Preimesberger Date: Thu, 10 Oct 2024 15:17:59 +0200 Subject: [PATCH] Required update to handle new QA4SM netCDF structure according to Jira-744 (#77) (#83) * intial * started adapting * adapted existing code to properly handle temporal sub-windows, including renaming the output files and figure titles accordingly * before testing * fig titles and filenames now always contain the default or temporal sub-window case's name. also, maps are only created fo r the default case * intermediate saving * added all code required to generate comparison boxplots * fully integrated compariosn plots and all plots now have the logo instead of the watermark * all statistics .csv files are now stroed in a dedicated zip archive * intermediate commit * Fix bugs with metadata plots * automatic extraction of temporal sub-window names from provided netcdf file and enhanced type hints * testing of tcol metrics plotting * removed debugging statements, implemented bug fix for metadata plot generationwit tcol metrics * comparison boxplots of tcol metrics are not created * implemented saving of created figures in one go for multiple filetypes * code for netcdf file transcription to new qa4sm nc structure * removed accidentally staged restructured files * implemented means for transcription for all test files * added automatic netCDF file transcription prior to tests and corrected for temp. sub-win. dimension as additional item in `QA4SMImage.varnames` in `test_image.py::test_load_vars` * pt2: added automatic netCDF file transcription prior to tests and corrected for temp. sub-win. dimension as additional item in `QA4SMImage.varnames` in `test_image.py::test_load_vars` * netcdf_transcription.py and intra_annual_temp_windows.py now are part of the `qa4sm_reader` package, isntead of `qa4sm`. Further, the globals file was adapted accordingly and now contains all vars required. `qa4sm` imports these specific vars then from the `qa4sm_reader.globals` file. Lastly, `qa4sm_reader.img.QA4SMImg` was adapted to check if a dimension corresponding to temporal sub-windows exists in the specified netCDF file and if not automatically transcribes the loaded dataset. Tests were adapted accordingly. * code cleaning. * code cleaning * introduced function `qa4sm_reader.utils.filter_out_self_combination_tcmetric_vars()` to exclude TC metric vars of same reference and metric dataset from being plotted * added pytesmo dependency * added MANIFEST.in to correctly install the static dir requried for inclusion of logo as watermark * deleted superflous files * adapted packaging of reader to incorporat the static dir containing the logo * tests for intra_annual_temp_windows * added tests to test_utils and made sure they run first * started test_netcdf_transcription.py * fixed test_logo_exists * fixing test_keep_pytesmo_ncfile * tests for netcdf_transcription * finished test development for intra annual metrics and adapation of existing tests * Update environment.yml (#81) * Update environment.yml checking if defining pyscaffold in the env helps fixing the problem with failing tests * Update CI and dependency list * Update env * Update CI * Update env * Update CI --------- * added test to check intra-annual metric related plots and proper file transcription * fixed tests/test_netcdf_transcription.py::test_correct_file_transcription * fixed tests/test_netcdf_transcription.py::test_correct_file_transcription * fixed windows test failing * fixed mamba workflow issue * bug fix for obtaining amount of chars from Path object --------- Co-authored-by: Nicolas F. Bader <93122788+nfb2021@users.noreply.github.com> Co-authored-by: Monika Tercjak <57092960+sheenaze@users.noreply.github.com> --- .github/workflows/test.yml | 134 +-- .gitignore | 2 + MANIFEST.in | 1 + environment.yml | 1 + setup.cfg | 3 +- src/qa4sm_reader/comparing.py | 4 +- .../custom_intra_annual_windows_example.json | 92 ++ src/qa4sm_reader/globals.py | 230 ++++- src/qa4sm_reader/handlers.py | 37 +- src/qa4sm_reader/img.py | 57 +- src/qa4sm_reader/intra_annual_temp_windows.py | 457 +++++++++ src/qa4sm_reader/netcdf_transcription.py | 762 +++++++++++++++ src/qa4sm_reader/plot_all.py | 78 +- src/qa4sm_reader/plotter.py | 888 ++++++++++++++++-- src/qa4sm_reader/plotting_methods.py | 429 +++++++-- .../static/images/logo/QA4SM_logo_long.png | Bin 0 -> 30848 bytes src/qa4sm_reader/utils.py | 99 ++ tests/conftest.py | 18 + .../custom_intra_annual_windows.json | 218 +++++ ...isture_with_1-C3S.sm_tsw_months_pytesmo.nc | Bin 0 -> 342376 bytes ...moisture_with_1-C3S.sm_tsw_months_qa4sm.nc | Bin 0 -> 163384 bytes ...I_SM_combined.sm.CI_tsw_seasons_pytesmo.nc | Bin 0 -> 8157293 bytes ...CCI_SM_combined.sm.CI_tsw_seasons_qa4sm.nc | Bin 0 -> 1068476 bytes tests/test_image.py | 7 +- tests/test_intra_annual_temp_windows.py | 513 ++++++++++ tests/test_netcdf_transcription.py | 857 +++++++++++++++++ tests/test_plot_all.py | 22 +- tests/test_plotter.py | 4 + tests/test_utils.py | 21 + 29 files changed, 4632 insertions(+), 302 deletions(-) create mode 100644 MANIFEST.in create mode 100644 src/qa4sm_reader/custom_intra_annual_windows_example.json create mode 100644 src/qa4sm_reader/intra_annual_temp_windows.py create mode 100644 src/qa4sm_reader/netcdf_transcription.py create mode 100755 src/qa4sm_reader/static/images/logo/QA4SM_logo_long.png create mode 100644 src/qa4sm_reader/utils.py create mode 100644 tests/test_data/intra_annual/custom_intra_annual_windows.json create mode 100644 tests/test_data/intra_annual/monthly/0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_pytesmo.nc create mode 100644 tests/test_data/intra_annual/monthly/0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_qa4sm.nc create mode 100644 tests/test_data/intra_annual/seasonal/0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_pytesmo.nc create mode 100644 tests/test_data/intra_annual/seasonal/0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_qa4sm.nc create mode 100644 tests/test_intra_annual_temp_windows.py create mode 100644 tests/test_netcdf_transcription.py diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index af639c1..f7683ad 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,70 +14,70 @@ on: - cron: '0 0 * * *' # daily jobs: - build: - name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍 - runs-on: ${{ matrix.os }} - strategy: - matrix: - python-version: ['3.8', '3.9', '3.10'] - os: ['ubuntu-latest'] - ymlfile: ['environment.yml'] - include: - - os: 'windows-latest' - python-version: '3.10' - ymlfile: 'environment.yml' - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - uses: conda-incubator/setup-miniconda@v3 - with: - miniconda-version: 'latest' - auto-update-conda: true - python-version: ${{ matrix.python-version }} - environment-file: ${{ matrix.ymlfile }} - activate-environment: qa4sm_reader # todo: must match with name in environment.yml - auto-activate-base: false - - name: Print environment infos - shell: bash -l {0} - run: | - conda info -a - conda list - pip list - which pip - which python - - name: Export Environment - shell: bash -l {0} - run: | - mkdir -p artifacts - filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml - conda env export --no-builds | grep -v "prefix" > artifacts/$filename - - name: Upload Artifacts - uses: actions/upload-artifact@v4 - with: - name: Artifacts-py${{ matrix.python-version }}-${{ matrix.os }} - path: artifacts/* - - name: Install package and test - shell: bash -l {0} - run: | - pip install -e . - pytest - - name: Upload Coverage - shell: bash -l {0} - run: | - pip install coveralls && coveralls --service=github - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - COVERALLS_FLAG_NAME: ${{ matrix.python-version }} - COVERALLS_PARALLEL: true - coveralls: - name: Submit Coveralls 👚 - needs: build - runs-on: ubuntu-latest - container: python:3-slim - steps: - - name: Finished - run: | - pip3 install --upgrade coveralls && coveralls --service=github --finish - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + build: + name: Build py${{ matrix.python-version }} @ ${{ matrix.os }} 🐍 + runs-on: ${{ matrix.os }} + strategy: + matrix: + python-version: [ '3.8', '3.9', '3.10' ] + os: ["ubuntu-latest"] + ymlfile: ["environment.yml"] + include: + - os: "windows-latest" + python-version: "3.10" + ymlfile: "environment.yml" + steps: + - uses: actions/checkout@v2 + with: + submodules: true + - uses: conda-incubator/setup-miniconda@v3 + with: + miniconda-version: "latest" + auto-update-conda: true + python-version: ${{ matrix.python-version }} + environment-file: ${{ matrix.ymlfile }} + activate-environment: qa4sm_reader # todo: must match with name in environment.yml + auto-activate-base: false + - name: Print environment infos + shell: bash -l {0} + run: | + conda info -a + conda list + pip list + which pip + which python + - name: Export Environment + shell: bash -l {0} + run: | + mkdir -p artifacts + filename=env_py${{ matrix.python-version }}_${{ matrix.os }}.yml + conda env export --no-builds | grep -v "prefix" > artifacts/$filename + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: Artifacts-py${{ matrix.python-version }}-${{ matrix.os }} + path: artifacts/* + - name: Install package and test + shell: bash -l {0} + run: | + pip install -e . + pytest + - name: Upload Coverage + shell: bash -l {0} + run: | + pip install coveralls && coveralls --service=github + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + COVERALLS_FLAG_NAME: ${{ matrix.python-version }} + COVERALLS_PARALLEL: true + coveralls: + name: Submit Coveralls 👚 + needs: build + runs-on: ubuntu-latest + container: python:3-slim + steps: + - name: Finished + run: | + pip3 install --upgrade coveralls && coveralls --service=github --finish + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 3f3f6f3..377d659 100644 --- a/.gitignore +++ b/.gitignore @@ -58,6 +58,7 @@ MANIFEST # tests/test_data tests/test_data/old tests/test_results +tests/test_qa4sm_data # personal testing stuff test.py @@ -72,3 +73,4 @@ tests/test_data/out/* .coverage* .artifacts/* .vscode +.logs diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..c1547af --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +graft src/qa4sm_reader/static diff --git a/environment.yml b/environment.yml index 2f1e630..fe8d979 100644 --- a/environment.yml +++ b/environment.yml @@ -20,3 +20,4 @@ dependencies: - pygeogrids - pytest - pytest-cov + - pytesmo diff --git a/setup.cfg b/setup.cfg index b00c85a..01a73c7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -36,7 +36,8 @@ install_requires = parse scipy pygeogrids - + pytesmo + # The usage of test_requires is discouraged, see `Dependency Management` docs # tests_require = pytest; pytest-cov # Require a specific Python version, e.g. Python 2.7 or >= 3.4 diff --git a/src/qa4sm_reader/comparing.py b/src/qa4sm_reader/comparing.py index a7d72eb..28c82c8 100644 --- a/src/qa4sm_reader/comparing.py +++ b/src/qa4sm_reader/comparing.py @@ -21,9 +21,9 @@ class QA4SMComparison: take some time, the class can be updated keeping memory of what has already been initialized """ def __init__(self, - paths: list or str, + paths: Union[list, str], extent: tuple = None, - get_intersection: bool = True): + get_intersection: bool = True) -> None: """ Initialise the QA4SMImages from the paths to netCDF files specified diff --git a/src/qa4sm_reader/custom_intra_annual_windows_example.json b/src/qa4sm_reader/custom_intra_annual_windows_example.json new file mode 100644 index 0000000..3ad9212 --- /dev/null +++ b/src/qa4sm_reader/custom_intra_annual_windows_example.json @@ -0,0 +1,92 @@ +{ + "seasons": { + "S1": [ + [12, 1], + [2, 28] + ], + "S2": [ + [3, 1], + [5, 31] + ], + "S3": [ + [6, 1], + [8, 31] + ], + "S4": [ + [9, 1], + [11, 30] + ] + }, + "months": { + "Jan": [ + [1, 1], + [1, 31] + ], + "Feb": [ + [2, 1], + [2, 28] + ], + "Mar": [ + [3, 1], + [3, 31] + ], + "Apr": [ + [4, 1], + [4, 30] + ], + "May": [ + [5, 1], + [5, 31] + ], + "Jun": [ + [6, 1], + [6, 30] + ], + "Jul": [ + [7, 1], + [7, 31] + ], + "Aug": [ + [8, 1], + [8, 31] + ], + "Sep": [ + [9, 1], + [9, 30] + ], + "Oct": [ + [10, 1], + [10, 31] + ], + "Nov": [ + [11, 1], + [11, 30] + ], + "Dec": [ + [12, 1], + [12, 31] + ] + }, + "custom": { + "star wars month": [ + [5, 1], + [5, 31] + ], + "halloween season": [ + [10, 1], + [10, 31] + ], + "advent": [ + [12, 1], + [12, 24] + ], + "movember": [ + [11, 1], + [11, 30] + ], + "christmas": [ + [12, 24], + [12, 26] + ] + } +} diff --git a/src/qa4sm_reader/globals.py b/src/qa4sm_reader/globals.py index 5588314..7f132ea 100644 --- a/src/qa4sm_reader/globals.py +++ b/src/qa4sm_reader/globals.py @@ -6,8 +6,10 @@ import warnings import cartopy.crs as ccrs +import matplotlib import matplotlib.colors as cl -import matplotlib.pyplot as plt +import numpy as np +import os # PLOT DEFAULT SETTINGS # ===================================================== @@ -40,16 +42,31 @@ # === boxplot_basic defaults === boxplot_printnumbers = True # Print 'median', 'nObs', 'stdDev' to the boxplot_basic. -boxplot_height = 6 +boxplot_height = 7 #$ increased by 1 to house logo boxplot_width = 2.1 # times (n+1), where n is the number of boxes. boxplot_title_len = 8 * boxplot_width # times the number of boxes. maximum length of plot title in chars. tick_size = 8.5 +#TODO: remove eventually, as watermarlk string no longer needed # === watermark defaults === watermark = u'made with QA4SM (qa4sm.eu)' # Watermark string watermark_pos = 'bottom' # Default position ('top' or 'bottom' or None) watermark_fontsize = 8 # fontsize in points (matplotlib uses 72ppi) -watermark_pad = 5 # padding above/below watermark in points (matplotlib uses 72ppi) +watermark_pad = 50 # padding above/below watermark in points (matplotlib uses 72ppi) + +#$$ +# === watermark logo defaults === +watermark_logo_position = 'lower_center' +watermark_logo_scale = 0.1 # height of the logo relative to the height of the figure +watermark_logo_offset_comp_plots = (0, -0.1) +watermark_logo_offset_metadata_plots = (0, -0.08) +watermark_logo_offset_map_plots = (0, -0.15) +watermark_logo_offset_bar_plots = (0, -0.1) +watermark_logo_offset_box_plots = (0, -0.15) +watermark_logo_pth = os.path.join( + os.path.dirname( + os.path.abspath(__file__)), 'static', 'images', 'logo', + 'QA4SM_logo_long.png') # === filename template === ds_fn_templ = "{i}-{ds}.{var}" @@ -93,28 +110,27 @@ def get_status_colors(): # function to get custom cmap for calculation errors # limited to 14 different error entries to produce distinct colors - cmap = plt.cm.get_cmap('Set3', len(status) - 2) + cmap = cl.ListedColormap(matplotlib.colormaps['Set3'].colors[:len(status) - 2]) colors = [cmap(i) for i in range(cmap.N)] colors.insert(0, (0, 0.66666667, 0.89019608, 1.0)) colors.insert(0, (0.45882353, 0.08235294, 0.11764706, 1.0)) cmap = cl.ListedColormap(colors=colors) return cmap - _cclasses = { - 'div_better': plt.cm.get_cmap( + 'div_better': matplotlib.colormaps[ 'RdYlBu' - ), # diverging: 1 good, 0 special, -1 bad (pearson's R, spearman's rho') - 'div_worse': plt.cm.get_cmap( + ], # diverging: 1 good, 0 special, -1 bad (pearson's R, spearman's rho') + 'div_worse': matplotlib.colormaps[ 'RdYlBu_r' - ), # diverging: 1 bad, 0 special, -1 good (difference of bias) + ], # diverging: 1 bad, 0 special, -1 good (difference of bias) 'div_neutr': - plt.cm.get_cmap('RdYlGn'), # diverging: zero good, +/- neutral: (bias) - 'seq_worse': plt.cm.get_cmap( + matplotlib.colormaps['RdYlGn'], # diverging: zero good, +/- neutral: (bias) + 'seq_worse': matplotlib.colormaps[ 'YlGn_r' - ), # sequential: increasing value bad (p_R, p_rho, rmsd, ubRMSD, RSS) - 'seq_better': plt.cm.get_cmap( - 'YlGn'), # sequential: increasing value good (n_obs, STDerr) + ], # sequential: increasing value bad (p_R, p_rho, rmsd, ubRMSD, RSS) + 'seq_better': matplotlib.colormaps[ + 'YlGn'], # sequential: increasing value good (n_obs, STDerr) 'qua_neutr': get_status_colors(), # qualitative category with 2 forced colors } @@ -311,30 +327,105 @@ def get_metric_units(dataset, raise_error=False): return "n.a." - -# label name for all metrics -_metric_name = { # from /qa4sm/validator/validation/globals.py +COMMON_METRICS = { 'R': 'Pearson\'s r', 'p_R': 'Pearson\'s r p-value', - 'rho': 'Spearman\'s ρ', - 'p_rho': 'Spearman\'s ρ p-value', 'RMSD': 'Root-mean-square deviation', 'BIAS': 'Bias (difference of means)', 'n_obs': '# observations', 'urmsd': 'Unbiased root-mean-square deviation', 'RSS': 'Residual sum of squares', - 'tau': 'Kendall rank correlation', - 'p_tau': 'Kendall tau p-value', 'mse': 'Mean square error', 'mse_corr': 'Mean square error correlation', 'mse_bias': 'Mean square error bias', 'mse_var': 'Mean square error variance', +} + +TC_METRICS = { 'snr': 'Signal-to-noise ratio', 'err_std': 'Error standard deviation', 'beta': 'TC scaling coefficient', +} + +READER_EXCLUSIVE_METRICS = { + 'rho': 'Spearman\'s ρ', + 'p_rho': 'Spearman\'s ρ p-value', + 'tau': 'Kendall rank correlation', + 'p_tau': 'Kendall tau p-value', 'status': 'Validation errors' } +QA4SM_EXCLUSIVE_METRICS = { + 'rho': 'Spearman\'s rho', + 'p_rho': 'Spearman\'s rho p-value', + # 'tau': 'Kendall rank correlation', # currently QA4SM is hardcoded not to calculate kendall tau + # 'p_tau': 'Kendall tau p-value', # needs to be changed once tau is calculated again + 'status': '# status', +} + +_metric_name = {**COMMON_METRICS, **READER_EXCLUSIVE_METRICS, **TC_METRICS} + +METRICS = {**COMMON_METRICS, **QA4SM_EXCLUSIVE_METRICS} + +NON_METRICS = [ + 'gpi', + 'lon', + 'lat', + 'clay_fraction', + 'climate_KG', + 'climate_insitu', + 'elevation', + 'instrument', + 'latitude', + 'lc_2000', + 'lc_2005', + 'lc_2010', + 'lc_insitu', + 'longitude', + 'network', + 'organic_carbon', + 'sand_fraction', + 'saturation', + 'silt_fraction', + 'station', + 'timerange_from', + 'timerange_to', + 'variable', + 'instrument_depthfrom', + 'instrument_depthto', + 'frm_class', +] + +METADATA_TEMPLATE = { + 'other_ref': None, + 'ismn_ref': { + 'clay_fraction': np.float32([np.nan]), + 'climate_KG': np.array([' ' * 256]), + 'climate_insitu': np.array([' ' * 256]), + 'elevation': np.float32([np.nan]), + 'instrument': np.array([' ' * 256]), + 'latitude': np.float32([np.nan]), + 'lc_2000': np.float32([np.nan]), + 'lc_2005': np.float32([np.nan]), + 'lc_2010': np.float32([np.nan]), + 'lc_insitu': np.array([' ' * 256]), + 'longitude': np.float32([np.nan]), + 'network': np.array([' ' * 256]), + 'organic_carbon': np.float32([np.nan]), + 'sand_fraction': np.float32([np.nan]), + 'saturation': np.float32([np.nan]), + 'silt_fraction': np.float32([np.nan]), + 'station': np.array([' ' * 256]), + 'timerange_from': np.array([' ' * 256]), + 'timerange_to': np.array([' ' * 256]), + 'variable': np.array([' ' * 256]), + 'instrument_depthfrom': np.float32([np.nan]), + 'instrument_depthto': np.float32([np.nan]), + # only available for FRM4SM ISMN version(s) + 'frm_class': np.array([' ' * 256]), + } +} + # BACKUPS # ===================================================== # to fallback to in case the dataset attributes in the .nc file are @@ -618,7 +709,7 @@ def get_resolution_info(dataset, raise_error=False): "climate_insitu": ("climate in-situ", climate_classes, "classes", None), "elevation": ("elevation", None, "continuous", "[m]"), "instrument": ("instrument type", None, "discrete", - None), # todo: improve labels (too packed) + None), #todo: improve labels (too packed) "lc_2000": ("land cover class (2000)", lc_classes, "classes", None), "lc_2005": ("land cover class (2005)", lc_classes, "classes", None), "lc_2010": ("land cover class (2010)", lc_classes, "classes", None), @@ -651,3 +742,98 @@ def get_resolution_info(dataset, raise_error=False): 'p_tau', 'status', ] + +METRIC_TEMPLATE = '_between_{ds1}_and_{ds2}' +METRIC_CI_TEMPLATE = '{metric}_ci_{bound}_between_{ds1}_and_{ds2}_{ending}' + + +# intra-annual valdiation metric related settings +# ===================================================== + +DEFAULT_TSW = 'bulk' # default temporal sub-window (in the case of no temporal sub-windowing) +TEMPORAL_SUB_WINDOW_NC_COORD_NAME = 'tsw' # name of the period coordinate in the netcdf file (Temporal Sub-Window) + +TEMPORAL_SUB_WINDOW_SEPARATOR = '|' + +INTRA_ANNUAL_METRIC_TEMPLATE = ["{tsw}", TEMPORAL_SUB_WINDOW_SEPARATOR, + "{metric}"] #$$ + +INTRA_ANNUAL_TCOL_METRIC_TEMPLATE = ["{tsw}", TEMPORAL_SUB_WINDOW_SEPARATOR, + "{metric}", "_", "{number}-{dataset}", + "_between_"] + +# default temporal sub windows +TEMPORAL_SUB_WINDOWS = { + "seasons": { + "S1": [[12, 1], [2, 28]], + "S2": [[3, 1], [5, 31]], + "S3": [[6, 1], [8, 31]], + "S4": [[9, 1], [11, 30]], + }, + "months": { + "Jan": [[1, 1], [1, 31]], + "Feb": [[2, 1], [2, 28]], + "Mar": [[3, 1], [3, 31]], + "Apr": [[4, 1], [4, 30]], + 'May': [[5, 1], [5, 31]], + "Jun": [[6, 1], [6, 30]], + "Jul": [[7, 1], [7, 31]], + "Aug": [[8, 1], [8, 31]], + "Sep": [[9, 1], [9, 30]], + "Oct": [[10, 1], [10, 31]], + "Nov": [[11, 1], [11, 30]], + "Dec": [[12, 1], [12, 31]], + } +} + +CLUSTERED_BOX_PLOT_STYLE = { + 'fig_params': { + 'title_fontsize': 20, + 'y_labelsize': 18, + 'tick_labelsize': 16, + 'legend_fontsize': 12, + }, + 'colors': { + 'Teal Blue': '#00778F', + 'Mustard Yellow': '#FFD166', + 'Sage Green': '#8FB339', + 'Coral Pink': '#EF476F', + 'Steel Gray': '#6A0572', + } +} + +CLUSTERED_BOX_PLOT_SAVENAME = 'comparison_boxplot_{metric}.{filetype}' + + + +# netCDF transcription related settings +# ===================================================== +OLD_NCFILE_SUFFIX = '.old' + +IMPLEMENTED_COMPRESSIONS = ['zlib'] + +ALLOWED_COMPRESSION_LEVELS = [None, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] + +BAD_METRICS = ['time'] + +DATASETS = [ + 'C3S_combined', + 'ISMN', + 'GLDAS', + 'SMAP_L3', + 'ASCAT', + 'ESA_CCI_SM_combined', + 'ESA_CCI_SM_active', + 'ESA_CCI_SM_passive', + 'SMOS_IC', + 'ERA5', + 'ERA5_LAND', + 'CGLS_CSAR_SSM1km', + 'CGLS_SCATSAR_SWI1km', + 'SMOS_L3', + 'SMOS_L2', + 'SMAP_L2', + 'SMOS_SBPCA', +] + +MAX_NUM_DS_PER_VAL_RUN = 6 diff --git a/src/qa4sm_reader/handlers.py b/src/qa4sm_reader/handlers.py index 8e0562d..314b3d7 100644 --- a/src/qa4sm_reader/handlers.py +++ b/src/qa4sm_reader/handlers.py @@ -1,10 +1,16 @@ # -*- coding: utf-8 -*- +from dataclasses import dataclass import warnings from qa4sm_reader import globals from parse import * import warnings as warn import re +from typing import List, Optional, Tuple, Dict, Any, Union + +import matplotlib +import matplotlib.axes +from matplotlib.figure import Figure class MixinVarmeta: @@ -43,7 +49,7 @@ def id(self): else: return self.ref_ds[0] - def get_varmeta(self) -> (tuple, tuple, tuple, tuple): + def get_varmeta(self) -> Tuple[Tuple, Tuple, Tuple, Tuple]: """ Get the datasets from the current variable. Each dataset is provided with shape (id, dict{names}) @@ -128,6 +134,11 @@ def _ref_dc(self) -> int: ref_dc = 0 try: + # print(f'globals._ref_ds_attr: {globals._ref_ds_attr}') + # print(f'self.meta: {self.meta}') + # print( + # f'parse(globals._ds_short_name_attr, val_ref): {parse(globals._ds_short_name_attr, self.meta[globals._ref_ds_attr])}' + # ) val_ref = self.meta[globals._ref_ds_attr] ref_dc = parse(globals._ds_short_name_attr, val_ref)[0] except KeyError as e: @@ -298,7 +309,7 @@ def others(self) -> list: return others_meta - def dataset_metadata(self, id: int, element: str or list = None) -> tuple: + def dataset_metadata(self, id: int, element: Union[str, list] = None) -> tuple: """ Get the metadata for the dataset specified by the id. This function is used by the QA4SMMetricVariable class @@ -415,7 +426,7 @@ def _parse_wrap(self, pattern, g): self.varname) return parse(pattern, self.varname) - def _parse_varname(self) -> (str, int, dict): + def _parse_varname(self) -> Tuple[str, int, dict]: """ Parse the name to get the metric, group and variable data @@ -542,3 +553,23 @@ def has_CIs(self): break return it_does + +#$$ +@dataclass() +class ClusteredBoxPlotContainer: + '''Container for the figure and axes of a clustered boxplot. + See `qa4sm_reader.plotting_methods.figure_template` for usage. + ''' + fig: matplotlib.figure.Figure + ax_box: matplotlib.axes.Axes + ax_median: Optional[matplotlib.axes.Axes] = None + ax_iqr: Optional[matplotlib.axes.Axes] = None + ax_n: Optional[matplotlib.axes.Axes] = None + +#$$ +@dataclass(frozen=True) +class CWContainer: + '''Container for the centers and widths of the boxplots. Used for the plotting of the clustered boxplots.''' + centers: List[float] + widths: List[float] + name: Optional[str] = 'Generic Dataset' diff --git a/src/qa4sm_reader/img.py b/src/qa4sm_reader/img.py index e46bb5d..dbe8e91 100644 --- a/src/qa4sm_reader/img.py +++ b/src/qa4sm_reader/img.py @@ -2,25 +2,13 @@ from qa4sm_reader import globals import qa4sm_reader.handlers as hdl from qa4sm_reader.plotting_methods import _format_floats, combine_soils, combine_depths, average_non_additive - +from qa4sm_reader.utils import transcribe from pathlib import Path import warnings -import numpy as np import xarray as xr import pandas as pd -from typing import Union - - -def extract_periods(filepath) -> np.array: - """Get periods from .nc""" - dataset = xr.open_dataset(filepath) - if globals.period_name in dataset.dims: - return dataset[globals.period_name].values - - else: - return np.array([None]) - +from typing import Union, Tuple, Optional class SpatialExtentError(Exception): """Class to handle errors derived from the spatial extent of validations""" @@ -31,7 +19,7 @@ class QA4SMImg(object): """A tool to analyze the results of a validation, which are stored in a netCDF file.""" def __init__(self, filepath, - period=None, + period=globals.DEFAULT_TSW, extent=None, ignore_empty=True, metrics=None, @@ -46,8 +34,8 @@ def __init__(self, ---------- filepath : str Path to the results netcdf file (as created by QA4SM) - period : Any, optional (default: None) - If results for multiple validation periods are stored in file, + period : str, optional (default: `globals.DEFAULT_TSW`) + if results for multiple validation periods, i.e. multiple temporal sub-windows, are stored in file, load this period. extent : tuple, optional (default: None) Area to subset the values for -> (min_lon, max_lon, min_lat, max_lat) @@ -84,17 +72,36 @@ def __init__(self, except AttributeError: self.ref_dataset_grid_stepsize = 'nan' - def _open_ds(self, extent=None, period=None, engine='h5netcdf'): - """Open .nc as xarray datset, with selected extent""" + def _open_ds(self, extent: Optional[Tuple]=None, period:Optional[str]=globals.DEFAULT_TSW, engine:Optional[str]='h5netcdf') -> xr.Dataset: + """Open .nc as `xarray.Datset`, with selected extent and period. + + Parameters + ---------- + extent : tuple, optional (default: None) + Area to subset the values for -> (min_lon, max_lon, min_lat, max_lat) + period : str, optional (default: `globals.DEFAULT_TSW`) + if results for multiple validation periods, i.e. multiple temporal sub-windows, are stored in file, + load this period. + engine: str, optional (default: h5netcdf) + Engine used by xarray to read data from file. + + Returns + ------- + ds : xarray.Dataset + Dataset with the validation results + """ dataset = xr.load_dataset( self.filepath, drop_variables="time", engine=engine, ) - if period is not None: - ds = dataset.sel(dict(period=period)) - else: - ds = dataset + + if not globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME in dataset.dims: + dataset = transcribe(self.filepath) + + + selection = {globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME: period} # allows for flexible loading of both the dimension and temproal sub-window + ds = dataset.sel(selection) # drop non-spatial variables (e.g.'time') if globals.time_name in ds.variables: ds = ds.drop_vars(globals.time_name) @@ -326,7 +333,7 @@ def group_vars(self, filter_parms: dict): return vars - def group_metrics(self, metrics: list = None) -> (dict, dict, dict): + def group_metrics(self, metrics: list = None) -> Union[None, Tuple[dict, dict, dict]]: """ Load and group all metrics from file @@ -394,7 +401,7 @@ def _ds2df(self, varnames: list = None) -> pd.DataFrame: return df - def metric_df(self, metrics: str or list): + def metric_df(self, metrics: Union[str, list]) -> pd.DataFrame: """ Group all variables for the metric in a common data frame diff --git a/src/qa4sm_reader/intra_annual_temp_windows.py b/src/qa4sm_reader/intra_annual_temp_windows.py new file mode 100644 index 0000000..b8d27ce --- /dev/null +++ b/src/qa4sm_reader/intra_annual_temp_windows.py @@ -0,0 +1,457 @@ +from qa4sm_reader.globals import TEMPORAL_SUB_WINDOWS, DEFAULT_TSW + +from pytesmo.validation_framework.metric_calculators_adapters import TsDistributor +from pytesmo.time_series.grouping import YearlessDatetime + +from typing import Optional, List, Tuple, Dict, Union +from pathlib import Path +from datetime import datetime +import json +from abc import ABC, abstractmethod +import numpy as np + + +class InvalidTemporalSubWindowError(Exception): + '''Exception raised when an invalid temporal sub-window is provided.''' + + def __init__(self, tsw, valid_tsw): + super().__init__( + f'The provided temporal sub-window ({tsw}) is invalid. Please provide one of these valid temporal sub-windows: {valid_tsw}.' + ) + + +class TemporalSubWindowsDefault(ABC): + ''' + Class to load default temporal sub-window definitions from the `validator.validation.globals` file. + Alternatively, the user can provide a custom JSON file containing the definitions. + temporal sub-window definitions are stored in dictionaries with the following structure: + + {"seasons": + {"S1": [[12, 1], [2, 28]] # December 1st to February 28th + "S2": [[3, 1], [5, 31]] # March 1st to May 31st + "S3": [[6, 1], [8, 31]] # June 1st to August 31st + "S4": [[9, 1], [11, 30]] }} # September 1st to November 30th + + These dictionaries will be loaded as properties of the class, so that they can be accessed later on and be treated as the default. + + Parameters + ---------- + + custom_file : str, optional + JSON File containing the temporal sub-window definitions in the same format as in `validator.validation.globals`, by default None. If None, the default as defined in `validator.validation.globals` will be used. + + ''' + + def __init__(self, custom_file: Optional[str] = None) -> None: + self.custom_file = custom_file + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(custom_file={self.custom_file})' + + def __str__(self) -> str: + return f'{self.__class__.__name__}({Path(self.custom_file).name})' + + def _load_json_data(self, json_path: str) -> dict: + '''Reads and loads the JSON file into a dictionary. + + Parameters + ---------- + json_path : str + Path to the JSON file containing the temporal sub-window definitions. + + Returns + ------- + dict + Dictionary containing the default temporal sub-window definitions. + ''' + + with open(json_path, 'r') as f: + return json.load(f) + + @abstractmethod + def _get_available_temp_sub_wndws(self): + pass + + +class NewSubWindow: + """ + Class to store the name and the begin and end date of a new temporal sub-window. + + Parameters + ---------- + name : str + Name of the new temporal sub-window. + begin_date : datetime or YearlessDatetime + Begin date of the new temporal sub-window. + end_date : datetime or YearlessDatetime + End date of the new temporal sub-window. + + """ + + def __init__(self, name: str, begin_date: Union[datetime, + YearlessDatetime], + end_date: Union[datetime, YearlessDatetime]) -> None: + self.name = str(name) + + if type(begin_date) != type(end_date): + raise TypeError( + f"`begin_date` and `end_date` must be of the same type, not '{type(begin_date).__name__}' and '{type(end_date).__name__}'" + ) + + if not isinstance(begin_date, (datetime, YearlessDatetime)): + raise TypeError( + f"`begin_date` must be of type 'datetime' or 'YearlessDatetime', not '{type(begin_date).__name__}'" + ) + else: + self.begin_date = begin_date + if not isinstance(end_date, (datetime, YearlessDatetime)): + raise TypeError( + f"`end_date` must be of type 'datetime' or 'YearlessDatetime', not '{type(end_date).__name__}'" + ) + else: + self.end_date = end_date + + if isinstance(begin_date, datetime) and isinstance( + end_date, datetime) and self.begin_date > self.end_date: + raise ValueError( + f"begin_date ({self.begin_date}) must be before end_date ({self.end_date})" + ) + + def __str__(self) -> str: + return f'{self.__class__.__name__}({self.name}, {self.begin_date}, {self.end_date})' + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(name={self.name}, begin_date={self.begin_date}, end_date={self.end_date})' + + @property + def begin_date_pretty(self) -> str: + """ + Returns the begin date in a pretty format. + + Returns + ------- + str + Pretty formatted begin date. + """ + return self.begin_date.strftime('%Y-%m-%d') + + @property + def end_date_pretty(self) -> str: + """ + Returns the end date in a pretty format. + + Returns + ------- + str + Pretty formatted end date. + """ + return self.end_date.strftime('%Y-%m-%d') + + +class TemporalSubWindowsCreator(TemporalSubWindowsDefault): + '''Class to create custom temporal sub-windows, based on the default definitions. + + Parameters + ---------- + temporal_sub_window_type : str + Type of temporal sub-window to be created. Must be one of the available default types. Officially, "months" and "seasons" are implemented. The user can implement their own defaults, though (see `TemporalSubWindowsDefault`). Default is "months". + overlap : int, optional + Number of days to be added/subtracted to the beginning/end of the temporal sub-window. Default is 0. + custom_file : str, optional + Path to the JSON file containing the temporal sub-window definitions, by default None (meaning the defaults as defined in `validator.validation.globals` will be used) + ''' + + def __init__(self, + temporal_sub_window_type: Optional[str] = 'months', + overlap: Optional[int] = 0, + custom_file: Optional[str] = None): + self.overlap = int(np.round(overlap)) + self.temporal_sub_window_type = temporal_sub_window_type + super().__init__(custom_file=custom_file) + + self.available_temp_sub_wndws = self._get_available_temp_sub_wndws() + if not self.available_temp_sub_wndws: + raise FileNotFoundError( + f'Invalid custom file path. Please provide a valid JSON file containing the temporal sub-window definitions.' + ) + elif self.temporal_sub_window_type not in self.available_temp_sub_wndws: + raise InvalidTemporalSubWindowError(self.temporal_sub_window_type, + self.available_temp_sub_wndws) + raise KeyError( + f'Invalid temporal sub-window type. Available types are: {self.available_temp_sub_wndws}' + ) + + self.custom_temporal_sub_windows = self._custom_temporal_sub_windows() + self.additional_temp_sub_wndws_container = {} + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(temporal_sub_window_type={self.temporal_sub_window_type}, overlap={self.overlap})' + + def __str__(self) -> str: + return f'{self.__class__.__name__}({self.temporal_sub_window_type}, {self.overlap})' + + def __date_to_doy(self, date_tuple: Tuple[int, int]) -> int: + '''Converts a date list [month, day] to a day of the year (doy). Leap years are neglected. + + Parameters + ---------- + date_tuple : List[int] + List containing the month and day of the date to be converted. The year is not required, as it is not used in the conversion. + + Returns + ------- + int + Day of the year (doy) corresponding to the date provided. + ''' + + _doy = YearlessDatetime(date_tuple[0], date_tuple[1]).doy + if _doy > 60: # assume NO leap year + _doy -= 1 + + return _doy + + def __doy_to_date(self, doy: int) -> Tuple[int, int]: + '''Converts a day of the year (doy) to a date tuple (month, day). Leap years are neglected. + + Parameters + ---------- + doy : int + Day of the year (doy) to be converted. + + Returns + ------- + Tuple[int] + Tuple containing the month and day corresponding to the doy provided. + ''' + + date = datetime.strptime(str(doy), '%j') + month = date.strftime('%m') + day = date.strftime('%d') + + return int(month), int(day) + + def __update_date(self, date: Tuple[int, int], + overlap_direction: float) -> Tuple[int, int]: + '''Updates a date tuple (month, day) by adding/subtracting the overlap value to/from it. + + Parameters + ---------- + date : Tuple[int] + Date to be updated. + overlap_direction : float + Direction of the overlap. Must be either -1 or +1. -1: subtract overlap value from date; +1: add overlap value to date. + + Returns + ------- + Tuple[int] + Updated date tuple. + ''' + + overlap_direction = overlap_direction / abs( + overlap_direction) # making sure it's either -1 or +1 + _doy = self.__date_to_doy(date) + _doy += int(overlap_direction * self.overlap) + + if _doy < 1: + _doy = 365 - abs(_doy) + elif _doy > 365: + _doy = _doy - 365 + + return self.__doy_to_date(_doy) + + def _custom_temporal_sub_window(self): + return { + key: (self.__update_date(val[0], overlap_direction=-1), + self.__update_date(val[1], overlap_direction=+1)) + for key, val in self.temporal_sub_windows_dict[ + self.temporal_sub_window_type].items() + } + + def _get_available_temp_sub_wndws(self) -> Union[List[str], None]: + if not self.custom_file: + self.temporal_sub_windows_dict = TEMPORAL_SUB_WINDOWS + return list(self.temporal_sub_windows_dict.keys()) + elif Path(self.custom_file).is_file(): + self.temporal_sub_windows_dict = self._load_json_data( + self.custom_file) + return list(self.temporal_sub_windows_dict.keys()) + else: + return None + + def _custom_temporal_sub_windows(self) -> Dict[str, TsDistributor]: + '''Custom temporal sub-window based, on the default definitions and the overlap value. + + Parameters + ---------- + None + + Returns + ------- + dict[str, TsDistributor] + Dictionary containing the custom temporal sub-window definitions. + ''' + + def tsdistributor(_begin_date: Tuple[int], + _end_date: Tuple[int]) -> TsDistributor: + return TsDistributor(yearless_date_ranges=[(YearlessDatetime( + *_begin_date), YearlessDatetime(*_end_date))]) + + return { + key: tsdistributor(val[0], val[1]) + for key, val in self._custom_temporal_sub_window().items() + } + + def add_temp_sub_wndw( + self, + new_temp_sub_wndw: NewSubWindow, + insert_as_first_wndw: Optional[bool] = False + ) -> Union[None, Dict[str, TsDistributor]]: + '''Adds a new custom temporal sub-window to the existing ones. + + Parameters + ---------- + new_temp_sub_wndw : NewSubWindow + Dataclass containing the name, begin date, and end date of the new temporal sub-window. + insert_as_first_wndw : bool, optional + If True, the new temporal sub-window will be inserted as new first element in `TemporalSubWindowsCreator.custom_temporal_sub_windows`. Default is False. + + Returns + ------- + Union[None, Dict[str, TsDistributor]] + None if the new temp_sub_wndw already exists. Otherwise, the dictionary containing the custom temporal sub-window definitions. + + ''' + + self.additional_temp_sub_wndws_container[ + new_temp_sub_wndw.name] = new_temp_sub_wndw + try: + if new_temp_sub_wndw.name in self.custom_temporal_sub_windows: + print( + f'temporal sub-window "{new_temp_sub_wndw.name}" already exists. Overwriting not possible.\ + Please choose a different name. If you want to overwrite the existing temporal sub-window, \ + use the `overwrite_temp_sub_wndw` method instead.' + ) + return None + elif insert_as_first_wndw: + _new_first_element = { + new_temp_sub_wndw.name: + TsDistributor(date_ranges=[(new_temp_sub_wndw.begin_date, + new_temp_sub_wndw.end_date)]) + } + self.custom_temporal_sub_windows = { + **_new_first_element, + **self.custom_temporal_sub_windows + } + return self.custom_temporal_sub_windows + else: + self.custom_temporal_sub_windows[ + new_temp_sub_wndw.name] = TsDistributor( + date_ranges=[(new_temp_sub_wndw.begin_date, + new_temp_sub_wndw.end_date)]) + return self.custom_temporal_sub_windows + except Exception as e: + print(f'Error: {e}') + return None + + def overwrite_temp_sub_wndw( + self, new_temp_sub_wndw: NewSubWindow + ) -> Union[None, Dict[str, TsDistributor]]: + '''Overwrites an existing temporal sub-window with a new definition. + + Parameters + ---------- + new_temp_sub_wndw : NewSubWindow + Dataclass containing the name, begin date, and end date of the new temporal sub-window. + + Returns + ------- + Union[None, Dict[str, TsDistributor]] + None if the new temp_sub_wndw does not exist. Otherwise, the dictionary containing the custom temporal sub-window definitions. + + ''' + + self.additional_temp_sub_wndws_container[ + new_temp_sub_wndw.name] = new_temp_sub_wndw + try: + if new_temp_sub_wndw.name not in self.custom_temporal_sub_windows: + print( + f'temporal sub-window "{new_temp_sub_wndw.name}" does not exist. Overwriting not possible.\ + Please choose a different name. If you want to add a new temporal sub-window, \ + use the `add_temp_sub_wndw` method instead.') + return None + elif isinstance( + new_temp_sub_wndw.begin_date, datetime + ) and isinstance( + new_temp_sub_wndw.end_date, datetime + ) and new_temp_sub_wndw.begin_date < new_temp_sub_wndw.end_date: + self.custom_temporal_sub_windows[ + new_temp_sub_wndw.name] = TsDistributor( + date_ranges=[(new_temp_sub_wndw.begin_date, + new_temp_sub_wndw.end_date)]) + return self.custom_temporal_sub_windows + elif isinstance(new_temp_sub_wndw.begin_date, + YearlessDatetime) and isinstance( + new_temp_sub_wndw.end_date, YearlessDatetime): + self.custom_temporal_sub_windows[ + new_temp_sub_wndw.name] = TsDistributor( + yearless_date_ranges=[(new_temp_sub_wndw.begin_date, + new_temp_sub_wndw.end_date)]) + return self.custom_temporal_sub_windows + + except Exception as e: + print(f'Error: {e}') + return None + + @property + def names(self) -> List[str]: + '''Returns the names of the temporal sub-windows. + + Parameters + ---------- + None + + Returns + ------- + List[str] + List containing the names of the temporal sub-windows. + ''' + + return list(self.custom_temporal_sub_windows.keys()) + + @property + def metadata(self) -> Dict: + '''Returns the metadata of the temporal sub-windows. + + Parameters + ---------- + None + + Returns + ------- + Dict[str, Union[str, List[str]]] + Dictionary containing the metadata of the temporal sub-windows. + ''' + + def _date_formatter(_date: Tuple[int, int]) -> str: + return f'{_date[0]:02d}-{_date[1]:02d}' + + metadata_dict = { + 'Temporal sub-window type': + self.temporal_sub_window_type, + 'Overlap': + f'{self.overlap} days', + 'Pretty Names [MM-DD]': (', ').join([ + f'{key}: {_date_formatter(val[0])} to {_date_formatter(val[1])}' + for key, val in self._custom_temporal_sub_window().items() + ]) + } + + if self._custom_temporal_sub_window().items() != self.names: + unique_tsws = list( + set(self.names) - + set(self._custom_temporal_sub_window().keys())) + if DEFAULT_TSW in unique_tsws: + metadata_dict[ + DEFAULT_TSW] = f'This is the default case "{DEFAULT_TSW}". The user specified it to range from {self.additional_temp_sub_wndws_container[DEFAULT_TSW].begin_date_pretty} to {self.additional_temp_sub_wndws_container[DEFAULT_TSW].end_date_pretty}. Note: This specified time interval might differ from the actual time interval in which all datasets are available. Refer to the datasets section (https://qa4sm.eu/ui/datasets) for more information.' + + return metadata_dict diff --git a/src/qa4sm_reader/netcdf_transcription.py b/src/qa4sm_reader/netcdf_transcription.py new file mode 100644 index 0000000..e4f501d --- /dev/null +++ b/src/qa4sm_reader/netcdf_transcription.py @@ -0,0 +1,762 @@ +import xarray as xr +import numpy as np +from typing import List, Dict, Optional, Union, Tuple +import os +import calendar +import time +import shutil +import tempfile +import sys +from pathlib import Path + +from qa4sm_reader.intra_annual_temp_windows import TemporalSubWindowsCreator, InvalidTemporalSubWindowError +from qa4sm_reader.globals import METRICS, TC_METRICS, NON_METRICS, METADATA_TEMPLATE, \ + IMPLEMENTED_COMPRESSIONS, ALLOWED_COMPRESSION_LEVELS, \ + INTRA_ANNUAL_METRIC_TEMPLATE, INTRA_ANNUAL_TCOL_METRIC_TEMPLATE, \ + TEMPORAL_SUB_WINDOW_SEPARATOR, DEFAULT_TSW, TEMPORAL_SUB_WINDOW_NC_COORD_NAME, \ + MAX_NUM_DS_PER_VAL_RUN, DATASETS, OLD_NCFILE_SUFFIX + + +class TemporalSubWindowMismatchError(Exception): + '''Exception raised when the temporal sub-windows provided do not match the ones present in the provided netCDF file.''' + + def __init__(self, provided, expected): + super().__init__( + f'The temporal sub-windows provided ({provided}) do not match the ones present in the provided netCDF file ({expected}).' + ) + + + +class Pytesmo2Qa4smResultsTranscriber: + """ + Transcribes (=converts) the pytesmo results netCDF4 file format to a more user friendly format, that + is used by QA4SM. + + Parameters + ---------- + pytesmo_results : str + Path to results netCDF4 written by `qa4sm.validation.validation.check_and_store_results`, which is in the old `pytesmo` format. + intra_annual_slices : Union[None, TemporalSubWindowsCreator] + The temporal sub-windows for the results. Default is None, which means that no temporal sub-windows are + used, but only the 'bulk'. If an instance of `valdiator.validation.TemporalSubWindowsCreator` is provided, + the temporal sub-windows are used as provided by the TemporalSubWindowsCreator instance. + keep_pytesmo_ncfile : Optional[bool] + Whether to keep the original pytesmo results netCDF file. Default is False. \ + If True, the original file is kept and indicated by the suffix `qa4sm_reader.globals.OLD_NCFILE_SUFFIX`. + """ + + def __init__(self, + pytesmo_results: str, + intra_annual_slices: Union[None, + TemporalSubWindowsCreator] = None, + keep_pytesmo_ncfile: Optional[bool] = False): + + self.original_pytesmo_ncfile = str(pytesmo_results) + + # windows workaround + # windows keeps a file lock on the original file, which prevents it from being renamed or deleted + # to circumvent this, the file is copied to a temporary directory and the copy is used instead + + if sys.platform.startswith("win"): + if not isinstance(pytesmo_results, Path): + pytesmo_results = Path(pytesmo_results) + + _tmp_dir = Path(tempfile.mkdtemp()) + tmp_dir = _tmp_dir / pytesmo_results.parent.name + + if not tmp_dir.exists(): + tmp_dir.mkdir() + + new_pytesmo_results = tmp_dir / pytesmo_results.name + shutil.copy(pytesmo_results, new_pytesmo_results) + pytesmo_results = str(new_pytesmo_results) + + self.pytesmo_ncfile = f'{pytesmo_results}' + if not Path(pytesmo_results).is_file(): + self.exists = False + raise FileNotFoundError( + f'\n\nFile {pytesmo_results} not found. Please provide a valid path to a pytesmo results netCDF file.' + ) + return None + else: + self.exists = True + + # make sure the intra-annual slices from the argument are the same as the ones present in the pytesmo results + pytesmo_results_tsws = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile( + pytesmo_results) + if isinstance(intra_annual_slices, TemporalSubWindowsCreator): + self.provided_tsws = intra_annual_slices.names + elif intra_annual_slices is None: + self.provided_tsws = intra_annual_slices + else: + raise InvalidTemporalSubWindowError(intra_annual_slices, + ['months', 'seasons']) + + if self.provided_tsws != pytesmo_results_tsws: + print( + f'The temporal sub-windows provided ({self.provided_tsws}) do not match the ones present in the provided netCDF file ({pytesmo_results_tsws}).' + ) + raise TemporalSubWindowMismatchError(self.provided_tsws, + pytesmo_results_tsws) + + self.intra_annual_slices: Union[ + None, TemporalSubWindowsCreator] = intra_annual_slices + self._temporal_sub_windows: Union[ + None, TemporalSubWindowsCreator] = intra_annual_slices + + self._default_non_metrics: List[str] = NON_METRICS + + self.METADATA_TEMPLATE: Dict[str, Union[None, Dict[str, Union[ + np.ndarray, np.float32, np.array]]]] = METADATA_TEMPLATE + + self.temporal_sub_windows_checker_called: bool = False + self.only_default_case: bool = True + + with xr.open_dataset(pytesmo_results) as pr: + self.pytesmo_results: xr.Dataset = pr + + self.keep_pytesmo_ncfile = keep_pytesmo_ncfile + + def __repr__(self) -> str: + return f'{self.__class__.__name__}(pytesmo_results="{self.pytesmo_ncfile}", intra_annual_slices={self.intra_annual_slices.__repr__()})' + + def __str__(self) -> str: + return f'{self.__class__.__name__}("{Path(self.pytesmo_ncfile).name}", {self.intra_annual_slices})' + + def temporal_sub_windows_checker( + self) -> Tuple[bool, Union[List[str], None]]: + """ + Checks the temporal sub-windows and returns which case of temporal sub-window is used, as well as a list of the + temporal sub-windows. Keeps track of whether the method has been called before. + + Returns + ------- + Tuple[bool, Union[List[str], None]] + A tuple indicating the temporal sub-window type and the list of temporal sub-windows. + bulk case: (True, [`globals.DEFAULT_TSW`]), + intra-annual windows case: (False, list of temporal sub-windows) + """ + + self.temporal_sub_windows_checker_called = True + if self.intra_annual_slices is None: + return True, [DEFAULT_TSW] + elif isinstance(self.intra_annual_slices, TemporalSubWindowsCreator): + return False, self.provided_tsws + else: + raise InvalidTemporalSubWindowError(self.intra_annual_slices) + + @property + def non_metrics_list(self) -> List[str]: + """ + Get the non-metrics from the pytesmo results. + + Returns + ------- + List[str] + A list of non-metric names. + + Raises + ------ + None + """ + + non_metrics_lst = [] + for non_metric in self._default_non_metrics: + if non_metric in self.pytesmo_results: + non_metrics_lst.append(non_metric) + # else: + # print( + # f'Non-metric \'{non_metric}\' not contained in pytesmo results. Skipping...' + # ) + # continue + return non_metrics_lst + + def is_valid_metric_name(self, metric_name): + """ + Checks if a given metric name is valid, based on the defined `globals.INTRA_ANNUAL_METRIC_TEMPLATE`. + + Parameters: + metric_name (str): The metric name to be checked. + + Returns: + bool: True if the metric name is valid, False otherwise. + """ + valid_prefixes = [ + "".join( + template.format(tsw=tsw, metric=metric) + for template in INTRA_ANNUAL_METRIC_TEMPLATE) + for tsw in self.provided_tsws for metric in METRICS + ] + return any(metric_name.startswith(prefix) for prefix in valid_prefixes) + + def is_valid_tcol_metric_name(self, tcol_metric_name): + """ + Checks if a given metric name is a valid TCOL metric name, based on the defined `globals.INTRA_ANNUAL_TCOL_METRIC_TEMPLATE`. + + Parameters: + tcol_metric_name (str): The metric name to be checked. + + Returns: + bool: True if the metric name is valid, False otherwise. + """ + valid_prefixes = [ + "".join( + template.format( + tsw=tsw, metric=metric, number=number, dataset=dataset) + for template in INTRA_ANNUAL_TCOL_METRIC_TEMPLATE) + for tsw in self.provided_tsws for metric in TC_METRICS + for number in range(MAX_NUM_DS_PER_VAL_RUN) for dataset in DATASETS + ] + return any( + tcol_metric_name.startswith(prefix) for prefix in valid_prefixes) + + @property + def metrics_list(self) -> List[str]: + """Get the metrics dictionary. Whole procedure based on the premise, that metric names of valdiations of intra-annual + temporal sub-windows are of the form: `metric_long_name = 'intra_annual_window{validator.validation.globals.TEMPORAL_SUB_WINDOW_SEPARATOR}metric_short_name'`. If this is not the + case, it is assumed the 'bulk' case is present and the metric names are assumed to be the same as the metric + short names. + + Returns + ------- + Dict[str, str] + The metrics dictionary. + """ + + # check if the metric names are of the form: `metric_long_name = 'intra_annual_window{TEMPORAL_SUB_WINDOW_SEPARATOR}metric_short_name'` and if not, assume the 'bulk' case + + _metrics = [ + metric for metric in self.pytesmo_results + if self.is_valid_metric_name(metric) + or self.is_valid_tcol_metric_name(metric) + ] + + if len(_metrics) != 0: # intra-annual case + return list(set(_metrics)) + else: # bulk case + return [ + long for long in self.pytesmo_results + if long not in self.non_metrics_list + ] + + def get_pytesmo_attrs(self) -> None: + """ + Get the attributes of the pytesmo results and add them to the transcribed dataset. + """ + for attr in self.pytesmo_results.attrs: + self.transcribed_dataset.attrs[attr] = self.pytesmo_results.attrs[ + attr] + + def handle_n_obs(self) -> None: + """ + Each data variable of the flavor 'n_obs_between_*' contains the same data. Thus, only one is kept and renamned\ + to plain 'n_obs'. + """ + + _n_obs_vars = sorted( + [var for var in self.transcribed_dataset if 'n_obs' in var]) + + if _n_obs_vars[0] != 'n_obs': + self.transcribed_dataset = self.transcribed_dataset.drop_vars( + _n_obs_vars[1:]) + self.transcribed_dataset = self.transcribed_dataset.rename( + {_n_obs_vars[0]: 'n_obs'}) + + def drop_obs_dim(self) -> None: + """ + Drops the 'obs' dimension from the transcribed dataset, if it exists. + """ + if 'obs' in self.transcribed_dataset.dims: + self.transcribed_dataset = self.transcribed_dataset.drop_dims( + 'obs') + + @staticmethod + def update_dataset_var(ds: xr.Dataset, var: str, coord_key: str, + coord_val: str, data_vals: List) -> xr.Dataset: + """ + Update a variable of given coordinate in the dataset. + + Parameters + ---------- + ds : xr.Dataset + The dataset to be updated. + var : str + The variable to be updated. + coord_key : str + The name of the coordinate of the variable to be updated. + coord_val : str + The value of the coordinate of the variable to be updated. + data_vals : List + The data to be updated. + + Returns + ------- + xr.Dataset + The updated dataset. + """ + + ds[var] = ds[var].copy( + ) # ugly, but necessary, as xr.Dataset objects are immutable + ds[var].loc[{coord_key: coord_val}] = data_vals + + return ds + + def get_transcribed_dataset(self) -> xr.Dataset: + """ + Get the transcribed dataset, containing all metric and non-metric data provided by the pytesmo results. Metadata + is not yet included. + + + Returns + ------- + xr.Dataset + The transcribed, metadata-less dataset. + """ + self.only_default_case, self.provided_tsws = self.temporal_sub_windows_checker( + ) + + self.pytesmo_results[ + TEMPORAL_SUB_WINDOW_NC_COORD_NAME] = self.provided_tsws + + metric_vars = self.metrics_list + self.transcribed_dataset = xr.Dataset() + + for var_name in metric_vars: + new_name = var_name + if not self.only_default_case: + _tsw, new_name = new_name.split(TEMPORAL_SUB_WINDOW_SEPARATOR) + + if new_name not in self.transcribed_dataset: + # takes the data associated with the metric new_name and adds it as a new variabel + # more precisely, it assigns copies of this data to each temporal sub-window, which is the new dimension + self.transcribed_dataset[new_name] = self.pytesmo_results[ + var_name].expand_dims( + { + TEMPORAL_SUB_WINDOW_NC_COORD_NAME: + self.provided_tsws + }, + axis=-1) + else: + # the variable already exists, but we need to update it with the real data (as opposed to the data of the first temporal sub-window, which is the default behaviour of expand_dims()) + self.transcribed_dataset = Pytesmo2Qa4smResultsTranscriber.update_dataset_var( + ds=self.transcribed_dataset, + var=new_name, + coord_key=TEMPORAL_SUB_WINDOW_NC_COORD_NAME, + coord_val=_tsw, + data_vals=self.pytesmo_results[var_name].data) + + # Copy attributes from the original variable to the new variable + self.transcribed_dataset[new_name].attrs = self.pytesmo_results[ + var_name].attrs + + # Add non-metric variables directly + self.transcribed_dataset = self.transcribed_dataset.merge( + self.pytesmo_results[self.non_metrics_list]) + + self.get_pytesmo_attrs() + self.handle_n_obs() + self.drop_obs_dim() + + self.transcribed_dataset[ + TEMPORAL_SUB_WINDOW_NC_COORD_NAME].attrs = dict( + long_name="temporal sub-window", + standard_name="temporal sub-window", + units="1", + valid_range=[0, len(self.provided_tsws)], + axis="T", + description="temporal sub-window name for the dataset", + temporal_sub_window_type="No temporal sub-windows used" + if self.only_default_case is True else self. + _temporal_sub_windows.metadata['Temporal sub-window type'], + overlap="No temporal sub-windows used" + if self.only_default_case is True else + self._temporal_sub_windows.metadata['Overlap'], + intra_annual_window_definition="No temporal sub-windows used" + if self.only_default_case is True else + self._temporal_sub_windows.metadata['Pretty Names [MM-DD]'], + ) + + try: + _dict = { + 'attr_name': DEFAULT_TSW, + 'attr_value': self._temporal_sub_windows.metadata[DEFAULT_TSW] + } + self.transcribed_dataset[ + TEMPORAL_SUB_WINDOW_NC_COORD_NAME].attrs.update( + {_dict['attr_name']: _dict['attr_value']}) + except AttributeError: + pass + + self.pytesmo_results.close() + + return self.transcribed_dataset + + def build_outname(self, root: str, keys: List[Tuple[str]]) -> str: + """ + Build the output name for the NetCDF file. Slight alteration of the original function from pytesmo + `pytesmo.validation_framework.results_manager.build_filename`. + + Parameters + ---------- + root : str + The root path, where the file is to be written to. + keys : List[Tuple[str]] + The keys of the pytesmo results. + + Returns + ------- + str + The output name for the NetCDF file. + + """ + + ds_names = [] + for key in keys: + for ds in key: + if isinstance(ds, tuple): + ds_names.append(".".join(list(ds))) + else: + ds_names.append(ds) + + fname = "_with_".join(ds_names) + ext = "nc" + if len(str(Path(root) / f"{fname}.{ext}")) > 255: + ds_names = [str(ds[0]) for ds in key] + fname = "_with_".join(ds_names) + + if len(str(Path(root) / f"{fname}.{ext}")) > 255: + fname = "validation" + self.outname = Path(root) / f"{fname}.{ext}" + return self.outname + + def write_to_netcdf(self, + path: str, + mode: Optional[str] = 'w', + format: Optional[str] = 'NETCDF4', + engine: Optional[str] = 'netcdf4', + encoding: Optional[dict] = None, + compute: Optional[bool] = True, + **kwargs) -> str: + """ + Write the transcribed dataset to a NetCDF file, based on `xarray.Dataset.to_netcdf` + + Parameters + ---------- + path : str + The path to write the NetCDF file + mode : Optional[str], optional + The mode to open the NetCDF file, by default 'w' + format : Optional[str], optional + The format of the NetCDF file, by default 'NETCDF4' + engine : Optional[str], optional + The engine to use, by default 'netcdf4' + encoding : Optional[dict], optional + The encoding to use, by default {"zlib": True, "complevel": 5} + compute : Optional[bool], optional + Whether to compute the dataset, by default True + **kwargs : dict + Keyword arguments passed to `xarray.Dataset.to_netcdf`. + + Returns + ------- + str + The path to the NetCDF file. + """ + # Default encoding applied to all variables + if encoding is None: + encoding = {} + for var in self.transcribed_dataset.variables: + if not np.issubdtype(self.transcribed_dataset[var].dtype, + np.object_): + encoding[str(var)] = {'zlib': True, 'complevel': 1} + else: + encoding[str(var)] = {'zlib': False} + + try: + self.pytesmo_results.close() + Path(self.original_pytesmo_ncfile).rename( + self.original_pytesmo_ncfile + OLD_NCFILE_SUFFIX) + except PermissionError as e: + shutil.copy(self.original_pytesmo_ncfile, + self.original_pytesmo_ncfile + OLD_NCFILE_SUFFIX) + + if not self.keep_pytesmo_ncfile: + retry_count = 5 + for i in range(retry_count): + try: + self.pytesmo_results.close() + Path(self.original_pytesmo_ncfile + + OLD_NCFILE_SUFFIX).unlink() + break + except PermissionError: + if i < retry_count - 1: + time.sleep(1) + + for var in self.transcribed_dataset.data_vars: + # Check if the data type is Unicode (string type) + if self.transcribed_dataset[var].dtype.kind == 'U': + # Find the maximum string length in this variable + max_len = self.transcribed_dataset[var].str.len().max().item() + + # Create a character array of shape (n, max_len), where n is the number of strings + char_array = np.array([ + list(s.ljust(max_len)) + for s in self.transcribed_dataset[var].values + ], + dtype=f'S1') + + # Create a new DataArray for the character array with an extra character dimension + self.transcribed_dataset[var] = xr.DataArray( + char_array, + dims=(self.transcribed_dataset[var].dims[0], + f"{var}_char"), + coords={ + self.transcribed_dataset[var].dims[0]: + self.transcribed_dataset[var].coords[ + self.transcribed_dataset[var].dims[0]] + }, + attrs=self.transcribed_dataset[var]. + attrs # Preserve original attributes if needed + ) + + # Ensure the dataset is closed + if isinstance(self.transcribed_dataset, xr.Dataset): + self.transcribed_dataset.close() + + # Write the transcribed dataset to a new NetCDF file + self.transcribed_dataset.to_netcdf( + path=path, + mode=mode, + encoding=encoding, + ) + + return path + + def compress(self, + path: str, + compression: str = 'zlib', + complevel: int = 5) -> None: + """ + Opens the generated results netCDF file and writes to a new netCDF file with new compression parameters. The smaller of both files is then deleted and the remainign one named according to the original file. + + Parameters + ---------- + fpath: str + Path to the netCDF file to be re-compressed. + compression: str + Compression algorithm to be used. Currently only 'zlib' is implemented. + complevel: int + Compression level to be used. The higher the level, the better the compression, but the longer it takes. + + Returns + ------- + None + """ + + if compression in IMPLEMENTED_COMPRESSIONS and complevel in ALLOWED_COMPRESSION_LEVELS: + + def encoding_params(ds: xr.Dataset, compression: str, + complevel: int) -> dict: + return { + str(var): { + compression: True, + 'complevel': complevel + } + for var in ds.variables + if not np.issubdtype(ds[var].dtype, np.object_) + } + + try: + with xr.open_dataset(path) as ds: + parent_dir = Path(path).parent + file = Path(path).name + re_name = parent_dir / f're_{file}' + ds.to_netcdf(re_name, + mode='w', + format='NETCDF4', + encoding=encoding_params( + ds, compression, complevel)) + print(f'\n\nRe-compression finished\n\n') + + # for small initial files, the re-compressed file might be larger than the original + # delete the larger file and keep the smaller; rename the smaller file to the original name if necessary + fpath_size = os.path.getsize(path) + re_name_size = os.path.getsize(re_name) + + if fpath_size < re_name_size: + Path(re_name).unlink() + else: + Path(path).unlink() + Path(re_name).rename(path) + + return True + + except Exception as e: + print( + f'\n\nRe-compression failed. {e}\nContinue without re-compression.\n\n' + ) + return False + + else: + raise NotImplementedError( + f'\n\nRe-compression failed. Compression has to be {IMPLEMENTED_COMPRESSIONS} and compression levels other than {ALLOWED_COMPRESSION_LEVELS} are not supported. Continue without re-compression.\n\n' + ) + + @staticmethod + def get_tsws_from_qa4sm_ncfile(ncfile: str) -> Union[List[str], None]: + """ + Get the temporal sub-windows from a proper QA4SM NetCDF file. + + Parameters + ---------- + ncfile : str + The path to the NetCDF file. + + Returns + ------- + List[str] + The temporal sub-windows. + """ + + with xr.open_dataset(ncfile) as ds: + try: + return list(ds[TEMPORAL_SUB_WINDOW_NC_COORD_NAME].values) + except KeyError: + return None + + @staticmethod + def get_tsws_from_pytesmo_ncfile(ncfile: str) -> Union[List[str], None]: + """ + Get the temporal sub-windows from a pytesmo NetCDF file. + + **ATTENTION**: Only retrieves the temporal sub-windows if they are explicitly stated in the data variable names \ + present in the file. An implicit presence of the bulk case in pytesmo files is not detected. + + Parameters + ---------- + ncfile : str + The path to the NetCDF file. + + Returns + ------- + List[str] + The temporal sub-windows. + """ + + with xr.open_dataset(ncfile) as ds: + try: + out = list({ + data_var.split(TEMPORAL_SUB_WINDOW_SEPARATOR)[0] + for data_var in list(ds.data_vars) + if TEMPORAL_SUB_WINDOW_SEPARATOR in data_var + and any([metric in data_var for metric in METRICS]) + }) + if not out: + return None + return out + + except KeyError: + return None + + @staticmethod + def get_tsws_from_ncfile(ncfile: str) -> Union[List[str], None]: + """ + Get the temporal sub-windows from a QA4SM or pytesmo NetCDF file. + + **ATTENTION**: Only retrieves the temporal sub-windows if they are explicitly stated in the data variable names \ + present in the file. An implicit presence of the bulk case is not detected. + + Parameters + ---------- + ncfile : str + The path to the NetCDF file. + + Returns + ------- + Union[List[str], None] + A list of temporal sub-windows or None if the file does not contain any. + """ + + def sort_tsws(tsw_list: List[str]) -> List[str]: + '''Sort the temporal sub-windows in the order of the calendar months, the seasons, \ + and the custom temporal sub-windows. Only sorts if temporal sub-windows of only one \ + kind are present; + + Parameters + ---------- + tsw_list : List[str] + The list of temporal sub-windows. + + Returns + ------- + List[str] + The sorted list of temporal sub-windows. + ''' + if not tsw_list: + return tsw_list + + bulk_present = DEFAULT_TSW in tsw_list + if bulk_present: + tsw_list.remove(DEFAULT_TSW) + + month_order = { + month: index + for index, month in enumerate(calendar.month_abbr) if month + } + seasons_1_order = {f'S{i}': i - 1 for i in range(1, 5)} + seasons_2_order = { + season: index + for index, season in enumerate(['DJF', 'MAM', 'JJA', 'SON']) + } + + def get_custom_tsws(tsw_list): + customs = [ + tsw for tsw in tsw_list + if tsw not in month_order and tsw not in seasons_1_order + and tsw not in seasons_2_order + ] + return customs, list(set(tsw_list) - set(customs)) + + custom_tsws, tsw_list = get_custom_tsws(tsw_list) + lens = {len(tsw) for tsw in tsw_list} + + if lens == {2} and all( + tsw.startswith('S') + for tsw in tsw_list): # seasons like S1, S2, S3, S4 + _presorted = sorted(tsw_list, key=seasons_1_order.get) + + elif lens == {3} and all( + tsw in seasons_2_order + for tsw in tsw_list): # seasons like DJF, MAM, JJA, SON + _presorted = sorted(tsw_list, key=seasons_2_order.get) + + elif lens == {3} and all(tsw.isalpha() + for tsw in tsw_list) and all( + tsw in month_order for tsw in tsw_list + ): # months like Jan, Feb, Mar, Apr, ... + _presorted = sorted(tsw_list, key=month_order.get) + + else: + _presorted = tsw_list + + return ([DEFAULT_TSW] + if bulk_present else []) + _presorted + custom_tsws + + tsws = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_qa4sm_ncfile( + ncfile) + if not tsws: + tsws = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_pytesmo_ncfile( + ncfile) + return sort_tsws(tsws) + + +if __name__ == '__main__': + pth = '/tmp/qa4sm/basic/0-ISMN.soil moisture_with_1-C3S.sm.nc' + + transcriber = Pytesmo2Qa4smResultsTranscriber(pytesmo_results=pth, + intra_annual_slices=None, + keep_pytesmo_ncfile=True) + ds = transcriber.get_transcribed_dataset() + print('writing to netcdf') + transcriber.write_to_netcdf( + path='/tmp/qa4sm/basic/0-ISMN.soil moisture_with_1-C3S.sm.nc.new') diff --git a/src/qa4sm_reader/plot_all.py b/src/qa4sm_reader/plot_all.py index 33a872f..1b3f9e0 100644 --- a/src/qa4sm_reader/plot_all.py +++ b/src/qa4sm_reader/plot_all.py @@ -1,15 +1,21 @@ -# -*- coding: utf-8 -*- +# %% +# # -*- coding: utf-8 -*- import os -import warnings -from typing import Union +from typing import Union, List, Tuple, Dict +from itertools import chain import pandas as pd -from qa4sm_reader.plotter import QA4SMPlotter -from qa4sm_reader.img import QA4SMImg, extract_periods +from qa4sm_reader.plotter import QA4SMPlotter, QA4SMCompPlotter +from qa4sm_reader.img import QA4SMImg +from qa4sm_reader.netcdf_transcription import Pytesmo2Qa4smResultsTranscriber import qa4sm_reader.globals as globals +import numpy as np +import matplotlib.pyplot as plt +from pathlib import Path def plot_all(filepath: str, + temporal_sub_windows: List[str] = None, metrics: list = None, extent: tuple = None, out_dir: str = None, @@ -18,7 +24,7 @@ def plot_all(filepath: str, save_metadata: Union[str, bool] = 'never', save_csv: bool = True, engine: str = 'h5netcdf', - **plotting_kwargs) -> tuple: + **plotting_kwargs) -> Tuple[List[str], List[str], List[str], List[str]]: """ Creates boxplots for all metrics and map plots for all variables. Saves the output in a folder-structure. @@ -27,6 +33,8 @@ def plot_all(filepath: str, ---------- filepath : str path to the *.nc file to be processed. + temporal_sub_windows : List[str], optional (default: None) + List of temporal sub-windows to be processed. If None, all periods present are automatically extracted from the file. metrics : set or list, optional (default: None) metrics to be plotted. If None, all metrics with data are plotted extent : tuple, optional (default: None) @@ -60,7 +68,10 @@ def plot_all(filepath: str, fnames_mapplots: list lists of filenames for created mapplots and boxplots fnames_csv: list + fnames_cbplot: list + list of filenames for created comparison boxplots """ + if isinstance(save_metadata, bool): if not save_metadata: save_metadata = 'never' @@ -76,8 +87,13 @@ def plot_all(filepath: str, # initialise image and plotter fnames_bplot, fnames_mapplot, fnames_csv = [], [], [] - periods = extract_periods(filepath) + if temporal_sub_windows is None: + periods = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile(filepath) + else: + periods = np.array(temporal_sub_windows) + for period in periods: + print(f'period: {period}') img = QA4SMImg( filepath, period=period, @@ -96,6 +112,7 @@ def plot_all(filepath: str, for metric in metrics: metric_bplots, metric_mapplots = plotter.plot_metric( metric=metric, + period=period, out_types=out_type, save_all=save_all, **plotting_kwargs) @@ -106,27 +123,50 @@ def plot_all(filepath: str, fnames_mapplot.extend(metric_mapplots) if img.metadata and (save_metadata != 'never'): if save_metadata == 'always': - kwargs = { - 'meta_boxplot_min_samples': 0 - } + kwargs = {'meta_boxplot_min_samples': 0} else: kwargs = { - 'meta_boxplot_min_samples': globals.meta_boxplot_min_samples + 'meta_boxplot_min_samples': + globals.meta_boxplot_min_samples } - fnames_bplot.extend( - plotter.plot_save_metadata( - metric, - out_types=out_type, - **kwargs - )) + if period == globals.DEFAULT_TSW: + kwargs['period'] = globals.DEFAULT_TSW + fnames_bplot.extend( + plotter.plot_save_metadata(metric, + out_types=out_type, + **kwargs)) if save_csv: - out_csv = plotter.save_stats() + out_csv = plotter.save_stats(period=period) fnames_csv.append(out_csv) - return fnames_bplot, fnames_mapplot, fnames_csv + #$$ + # ? move somewhere else? + fnames_cbplot = [] + if isinstance(out_type, str): + out_type = [out_type] + metrics_not_to_plot = list(set(chain(globals._metadata_exclude, globals.metric_groups[3], ['n_obs']))) # metadata, tcol metrics, n_obs + if globals.DEFAULT_TSW in periods and len(periods) > 1: + cbp = QA4SMCompPlotter(filepath) + if not os.path.isdir(os.path.join(out_dir, 'comparison_boxplots')): + os.makedirs(os.path.join(out_dir, 'comparison_boxplots')) + + for available_metric in cbp.metric_kinds_available: + if available_metric in metrics.keys( + ) and available_metric not in metrics_not_to_plot: + spth = [Path(out_dir) / 'comparison_boxplots' / + f'{globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=available_metric, filetype=_out_type)}' + for _out_type in out_type] + _fig = cbp.plot_cbp( + chosen_metric=available_metric, + out_name=spth, + ) + plt.close(_fig) + fnames_cbplot.extend(spth) + + return fnames_bplot, fnames_mapplot, fnames_csv, fnames_cbplot def get_img_stats( diff --git a/src/qa4sm_reader/plotter.py b/src/qa4sm_reader/plotter.py index de169ac..d940337 100644 --- a/src/qa4sm_reader/plotter.py +++ b/src/qa4sm_reader/plotter.py @@ -1,18 +1,28 @@ # -*- coding: utf-8 -*- +import re +from unittest.mock import DEFAULT import warnings from pathlib import Path - +import os +from warnings import warn import pandas as pd -from typing import Union +import xarray as xr +from typing import Generator, Union, List, Tuple, Dict, Optional import numpy as np +import itertools + import matplotlib.pyplot as plt +from matplotlib.pylab import f +import matplotlib +from matplotlib.patches import Rectangle from qa4sm_reader.img import QA4SMImg import qa4sm_reader.globals as globals from qa4sm_reader import plotting_methods as plm - +from qa4sm_reader.plotting_methods import ClusteredBoxPlot, patch_styling from qa4sm_reader.exceptions import PlotterError -from warnings import warn +import qa4sm_reader.handlers as hdl +from qa4sm_reader.utils import note, filter_out_self_combination_tcmetric_vars class QA4SMPlotter: @@ -45,10 +55,11 @@ def __init__(self, image: QA4SMImg, out_dir: str = None): def get_dir(self, out_dir: str) -> Path: """Use output path if specified, otherwise same directory as the one storing the netCDF file""" + # if out_dir and globals.DEFAULT_TSW not in out_dir: if out_dir: out_dir = Path(out_dir) # use directory if specified if not out_dir.exists(): - out_dir.mkdir() # make if not existing + os.makedirs(out_dir) # make if not existing else: out_dir = self.img.filepath.parent # use default otherwise @@ -215,7 +226,7 @@ def _filenames_lut(type: str) -> str: except KeyError: raise PlotterError(f"type '{type}' is not in the lookup table") - def create_title(self, Var, type: str) -> str: + def create_title(self, Var, type: str, period: str = None) -> str: """ Create title of the plot @@ -229,10 +240,11 @@ def create_title(self, Var, type: str) -> str: parts = [globals._metric_name[Var.metric]] parts.extend(self._get_parts_name(Var=Var, type=type)) title = self._titles_lut(type=type).format(*parts) - + if period: + title = f'{period}: {title}' return title - def create_filename(self, Var, type: str) -> str: + def create_filename(self, Var, type: str, period: str = None) -> str: """ Create name of the file @@ -264,6 +276,8 @@ def create_filename(self, Var, type: str) -> str: parts.extend([mds_meta[0], mds_meta[1]['short_name'], Var.metric]) name = name.format(*parts) + if period: + name = f'{period}_{name}' return name @@ -273,7 +287,7 @@ def _yield_values( tc: bool = False, stats: bool = True, mean_ci: bool = True, - ) -> tuple: + ) -> Generator[pd.DataFrame, hdl.MetricVariable, pd.DataFrame]: """ Get iterable with pandas dataframes for all variables of a metric to plot @@ -298,6 +312,9 @@ def _yield_values( Vars = self.img._iter_vars(type="metric", filter_parms={"metric": metric}) + if metric in globals.TC_METRICS: + Vars = filter_out_self_combination_tcmetric_vars(Vars) + for n, Var in enumerate(Vars): values = Var.values[Var.varname] # changes if it's a common-type Var @@ -338,6 +355,7 @@ def _boxplot_definition(self, metric: str, df: pd.DataFrame, type: str, + period: str = None, ci=None, offset=0.07, Var=None, @@ -387,15 +405,22 @@ def _boxplot_definition(self, Var = Var break if not type == "metadata": - title = self.create_title(Var, type=type) + title = self.create_title(Var, type=type, period=period) ax.set_title(title, pad=globals.title_pad) - # add watermark if self.img.has_CIs: offset = 0.08 # offset smaller as CI variables have a larger caption if Var.g == 0: offset = 0.03 # offset larger as common metrics have a shorter caption - if globals.watermark_pos not in [None, False]: - plm.make_watermark(fig, offset=offset) + + # fig.tight_layout() + + plm.add_logo_to_figure(fig = fig, + logo_path = globals.watermark_logo_pth, + position = globals.watermark_logo_position, + offset = globals.watermark_logo_offset_box_plots, + scale = globals.watermark_logo_scale, + ) + return fig, ax @@ -403,6 +428,7 @@ def _barplot_definition(self, metric: str, df: pd.DataFrame, type: str, + period: str = None, Var=None) -> tuple: """ Define parameters of plot @@ -434,15 +460,19 @@ def _barplot_definition(self, Var = Var break - title = self.create_title(Var, type=type) + title = self.create_title(Var, type=type, period=period) ax.set_title(title, pad=globals.title_pad) # add watermark - if globals.watermark_pos not in [None, False]: - plm.make_watermark(fig, for_barplot=True) - - def _save_plot(self, out_name: str, out_types: str = 'png') -> list: + plm.add_logo_to_figure(fig = fig, + logo_path = globals.watermark_logo_pth, + position = globals.watermark_logo_position, + offset = globals.watermark_logo_offset_bar_plots, + scale = globals.watermark_logo_scale, + ) + + def _save_plot(self, out_name: str, out_types: Optional[Union[List[str], str]] = 'png') -> list: """ Save plot with name to self.out_dir @@ -450,8 +480,8 @@ def _save_plot(self, out_name: str, out_types: str = 'png') -> list: ---------- out_name: str name of output file - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' Returns ------- @@ -463,7 +493,7 @@ def _save_plot(self, out_name: str, out_types: str = 'png') -> list: for ext in out_types: fname = self._standard_filename(out_name, out_type=ext) if fname.exists(): - warn('Overwriting file {}'.format(fname.name)) + warn(f'Overwriting file {fname.name}') try: plt.savefig(fname, dpi='figure', bbox_inches='tight') except ValueError: @@ -474,8 +504,9 @@ def _save_plot(self, out_name: str, out_types: str = 'png') -> list: def boxplot_basic(self, metric: str, + period: str = None, out_name: str = None, - out_types: str = 'png', + out_types: Optional[Union[List[str], str]] = 'png', save_files: bool = False, **plotting_kwargs) -> Union[list, None]: """ @@ -489,8 +520,8 @@ def boxplot_basic(self, into one plot. out_name: str name of output file - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_files: bool, optional. Default is False wether to save the file in the output directory plotting_kwargs: arguments for _boxplot_definition function @@ -516,14 +547,17 @@ def boxplot_basic(self, fig, ax = self._boxplot_definition(metric=metric, df=values, type='boxplot_basic', + period=period, ci=ci, Var=Var, **plotting_kwargs) if not out_name: - out_name = self.create_filename(Var, type='boxplot_basic') + out_name = self.create_filename(Var, + type='boxplot_basic', + period=period) # save or return plotting objects if save_files: - fnames = self._save_plot(out_name, out_types=out_types) + fnames.extend(self._save_plot(out_name, out_types=out_types)) plt.close('all') return fnames @@ -533,8 +567,9 @@ def boxplot_basic(self, def boxplot_tc(self, metric: str, + period: str = None, out_name: str = None, - out_types: str = 'png', + out_types: Optional[Union[List[str], str]] = 'png', save_files: bool = False, **plotting_kwargs) -> list: """ @@ -548,8 +583,8 @@ def boxplot_tc(self, into one plot. out_name: str name of output file - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_files: bool, optional. Default is False wether to save the file in the output directory plotting_kwargs: arguments for _boxplot_definition function @@ -589,17 +624,19 @@ def boxplot_tc(self, df=df, ci=ci_id, type='boxplot_tc', + period=period, Var=Var, **plotting_kwargs) # save. Below workaround to avoid same names if not out_name: - save_name = self.create_filename(Var, type='boxplot_tc') + save_name = self.create_filename(Var, + type='boxplot_tc', + period=period) else: save_name = out_name # save or return plotting objects if save_files: - fns = self._save_plot(save_name, out_types=out_types) - fnames.extend(fns) + fnames.extend(self._save_plot(save_name, out_types=out_types)) plt.close('all') if save_files: @@ -608,7 +645,8 @@ def boxplot_tc(self, def barplot( self, metric: str, - out_types: str = 'png', + period: str = None, + out_types: Optional[Union[List[str], str]] = 'png', save_files: bool = False, ) -> Union[list, None]: """ @@ -620,8 +658,8 @@ def barplot( ---------- metric : str metric that is collected from the file for all datasets. - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_files: bool, optional. Default is False wether to save the file in the output directory @@ -644,14 +682,16 @@ def barplot( self._barplot_definition(metric=metric, df=values, type='barplot_basic', + period=period, Var=Var) - out_name = self.create_filename(Var, type='barplot_basic') - + out_name = self.create_filename(Var, + type='barplot_basic', + period=period) # save or return plotting objects if save_files: fnames.extend(self._save_plot(out_name, out_types=out_types)) - plt.close('all') + plt.close('all') if fnames: return fnames @@ -659,12 +699,12 @@ def barplot( def mapplot_var( self, Var, - out_name: str = None, - out_types: str = 'png', + period: str = None, + out_types: Optional[Union[List[str], str]] = 'png', save_files: bool = False, compute_dpi: bool = True, **style_kwargs, - ) -> Union[list, tuple]: + ) -> Union[list, Tuple[matplotlib.figure.Figure, matplotlib.axes.Axes]]: """ Plots values to a map, using the values as color. Plots a scatterplot for ISMN and a image plot for other input values. @@ -675,8 +715,8 @@ def mapplot_var( Var in the image to make the map for. out_name: str name of output file - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_files: bool, optional. Default is False wether to save the file in the output directory compute_dpi : bool, optional. Default is True. @@ -693,6 +733,7 @@ def mapplot_var( ------- fnames: list of file names with all the extensions """ + fnames = [] ref_meta, mds_meta, other_meta, scl_meta = Var.get_varmeta() metric = Var.metric ref_grid_stepsize = self.img.ref_dataset_grid_stepsize @@ -723,42 +764,55 @@ def mapplot_var( metric=metric, ref_short=ref_meta[1]['short_name'], ref_grid_stepsize=ref_grid_stepsize, - plot_extent= - None, # if None, extent is automatically adjusted (as opposed to img.extent) + plot_extent=None, # if None, extent is automatically adjusted (as opposed to img.extent) scl_short=scl_short, **style_kwargs) # title and plot settings depend on the metric group if Var.varname.startswith('status'): - title = self.create_title(Var=Var, type='mapplot_status') - save_name = self.create_filename(Var=Var, type="mapplot_status") + title = self.create_title(Var=Var, + type='mapplot_status', + period=period) + save_name = self.create_filename(Var=Var, + type="mapplot_status", + period=period) elif Var.g == 0: title = "{} between all datasets".format( globals._metric_name[metric]) - save_name = self.create_filename(Var, type='mapplot_common') + if period: + title = f'{period}: {title}' + save_name = self.create_filename(Var, + type='mapplot_common', + period=period) elif Var.g == 2: - title = self.create_title(Var=Var, type='mapplot_basic') - save_name = self.create_filename(Var, type='mapplot_double') + title = self.create_title(Var=Var, + type='mapplot_basic', + period=period) + save_name = self.create_filename(Var, + type='mapplot_double', + period=period) else: - title = self.create_title(Var=Var, type='mapplot_tc') - save_name = self.create_filename(Var, type='mapplot_tc') - - # overwrite output file name if given - if out_name: - save_name = out_name + title = self.create_title(Var=Var, + type='mapplot_tc', + period=period) + save_name = self.create_filename(Var, + type='mapplot_tc', + period=period) # use title for plot, make watermark ax.set_title(title, pad=globals.title_pad) - if globals.watermark_pos not in [None, False]: - plm.make_watermark(fig, - globals.watermark_pos, - for_map=True, - offset=0.04) + + plm.add_logo_to_figure(fig = fig, + logo_path = globals.watermark_logo_pth, + position = globals.watermark_logo_position, + offset = globals.watermark_logo_offset_map_plots, + scale = globals.watermark_logo_scale, + ) # save file or just return the image if save_files: - fnames = self._save_plot(save_name, out_types=out_types) - + fnames.extend(self._save_plot(save_name, out_types=out_types)) + plt.close('all') return fnames else: @@ -766,7 +820,8 @@ def mapplot_var( def mapplot_metric(self, metric: str, - out_types: str = 'png', + period: str = None, + out_types: Optional[Union[List[str], str]] = 'png', save_files: bool = False, **plotting_kwargs) -> list: """ @@ -776,8 +831,8 @@ def mapplot_metric(self, ---------- metric : str Name of a metric. File is searched for variables for that metric. - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_files: bool, optional. Default is False wether to save the file in the output directory plotting_kwargs: arguments for mapplot function @@ -794,7 +849,7 @@ def mapplot_metric(self, continue if not (np.isnan(Var.values.to_numpy()).all() or Var.is_CI): fns = self.mapplot_var(Var, - out_name=None, + period=period, out_types=out_types, save_files=save_files, **plotting_kwargs) @@ -803,14 +858,15 @@ def mapplot_metric(self, continue if save_files: fnames.extend(fns) - plt.close('all') + plt.close('all') if fnames: return fnames def plot_metric(self, metric: str, - out_types: str = 'png', + period: str = None, + out_types: Optional[Union[List[str], str]] = 'png', save_all: bool = True, **plotting_kwargs) -> tuple: """ @@ -820,8 +876,8 @@ def plot_metric(self, ---------- metric: str name of the metric - out_types: str or list - extensions which the files should be saved in + out_types: str or list of str, Optional + extensions which the files should be saved in. Default is 'png' save_all: bool, optional. Default is True. all plotted images are saved to the output directory plotting_kwargs: arguments for mapplot function. @@ -830,23 +886,30 @@ def plot_metric(self, if Metric.name == 'status': fnames_bplot = self.barplot(metric='status', + period=period, out_types=out_types, save_files=save_all) elif Metric.g == 0 or Metric.g == 2: fnames_bplot = self.boxplot_basic(metric=metric, + period=period, out_types=out_types, save_files=save_all, **plotting_kwargs) elif Metric.g == 3: fnames_bplot = self.boxplot_tc(metric=metric, + period=period, out_types=out_types, save_files=save_all, **plotting_kwargs) - fnames_mapplot = self.mapplot_metric(metric=metric, - out_types=out_types, - save_files=save_all, - **plotting_kwargs) + if period == globals.DEFAULT_TSW: + fnames_mapplot = self.mapplot_metric(metric=metric, + period=period, + out_types=out_types, + save_files=save_all, + **plotting_kwargs) + else: + fnames_mapplot = None return fnames_bplot, fnames_mapplot @@ -884,18 +947,20 @@ def meta_single(self, the boxplot ax : matplotlib.axes.Axes """ + values = [] for data, Var, var_ci in self._yield_values(metric=metric, stats=False, mean_ci=False): values.append(data) - if not values: raise PlotterError(f"No valid values for {metric}") values = pd.concat(values, axis=1) + # override values from metric if df is not None: values = df + # get meta and select only metric values with metadata available meta_values = self.img.metadata[metadata].values.dropna() values = values.reindex(index=meta_values.index) @@ -990,7 +1055,7 @@ def meta_combo( if binned_values is None: raise PlotterError( f"Could not bin metadata {metadata} with function {bin_funct}") - # dictionary with subset values + values_subset = { a_bin: values.reindex(index=binned_values[a_bin].index) for a_bin in binned_values.keys() @@ -1014,20 +1079,27 @@ def plot_metadata(self, metadata: str, metadata_discrete: str = None, save_file: bool = False, - out_types: str = 'png', + out_types: Optional[Union[List[str], str]] = 'png', + period: str = None, **plotting_kwargs): """ Wrapper built around the 'meta_single' or 'meta_combo' functions to produce a metadata-based boxplot of a metric. Parameters - __________ + ---------- metric : str name of metric to plot metadata : str name of metadata to subdivide the metric results metadata_discrete : str name of the metadata of the type 'discrete' + save_file : bool, optional + whether to save the plot to the output directory. Default is False + out_types : str or list of str, optional + extensions which the files should be saved in. Default is 'png' + period: str, optional + temporal sub-window to use Retrun ------ @@ -1035,6 +1107,7 @@ def plot_metadata(self, the boxplot ax : matplotlib.axes.Axes """ + fnames = [] if metadata_discrete is None: fig, ax = self.meta_single(metric=metric, metadata=metadata, @@ -1061,16 +1134,27 @@ def plot_metadata(self, title = self._titles_lut("metadata").format( globals._metric_name[metric], ", ".join(meta_names), self.img.datasets.ref["pretty_title"]) + if period: #$$ + title = f'{period}: {title}' fig.suptitle(title) - plm.make_watermark(fig=fig, offset=0) + fig.subplots_adjust(bottom=0.2) + + plm.add_logo_to_figure(fig = fig, + logo_path = globals.watermark_logo_pth, + position = globals.watermark_logo_position, + offset = globals.watermark_logo_offset_metadata_plots, + scale = globals.watermark_logo_scale, + ) if save_file: out_name = self._filenames_lut("metadata").format( metric, "_and_".join(metadata_tuple)) - out_name = self._save_plot(out_name, out_types=out_types) - - return out_name + if period: + out_name = f'{period}_{out_name}' + fnames.extend(self._save_plot(out_name, out_types=out_types)) + plt.close('all') + return fnames else: return fig, ax @@ -1078,8 +1162,9 @@ def plot_metadata(self, def plot_save_metadata( self, metric, - out_types: str = 'png', + out_types: Optional[Union[List[str], str]] = 'png', meta_boxplot_min_samples: int = 5, + period: str = None, ): """ Plots and saves three metadata boxplots per metric (defined in globals.py): @@ -1092,8 +1177,8 @@ def plot_save_metadata( ---------- metric : str name of metric - out_types: str or list, optional - extensions which the files should be saved in + out_types: str or list of str, optional + extensions which the files should be saved in. Default is 'png' meta_boxplot_min_samples: int, optional minimum number of samples per bin required to plot a metadata boxplot @@ -1108,6 +1193,9 @@ def plot_save_metadata( if metric in globals._metadata_exclude: return filenames + if not period: #$$ + return filenames + for meta_type, meta_keys in globals.out_metadata_plots.items(): try: # the presence of instrument_depth in the out file depends on the ismn release version @@ -1118,7 +1206,9 @@ def plot_save_metadata( *meta_keys, save_file=True, out_types=out_types, - meta_boxplot_min_samples=meta_boxplot_min_samples) + meta_boxplot_min_samples=meta_boxplot_min_samples, + period=period, + ) filenames.extend(outfiles) else: @@ -1131,12 +1221,632 @@ def plot_save_metadata( return filenames - def save_stats(self): + def save_stats(self, period: str = None) -> str: """Saves the summary statistics to a .csv file and returns the name""" table = self.img.stats_df() filename = self._filenames_lut("table") + '.csv' + if period: + filename = f'{period}_{filename}' filepath = self.out_dir.joinpath(filename) - table.to_csv(path_or_buf=filepath) return filepath + +#$$ +class QA4SMCompPlotter: + """ + Class to create plots containing the calculated metric for all temporal sub-window, default case excldued + + Parameters + ---------- + + results_file : str + path to the .nc results file + include_default_case : bool, default is False + whether to include the bulk case in the plots + + Returns + ------- + QA4SMCompPlotter object + """ + + def __init__(self, + results_file: str, + include_default_case: bool = False) -> None: + self.results_file = results_file + self.include_default_case = include_default_case + if os.path.isfile(results_file): + with xr.open_dataset(results_file) as ds: + self.ds: xr.Dataset = ds + self.datasets = hdl.QA4SMDatasets(self.ds.attrs) + self.ref_dataset: Dict = self.datasets.ref + self.candidate_datasets: List[Dict] = self.datasets.others + # self.metrics_in_ds = self.__ds_metrics() + self.metric_kinds_available: List = list( + self.metrics_in_ds.keys()) + self.metric_lut: Dict = self.metrics_ds_grouped_lut( + include_ci=False) + # self.df = self._ds2df() + # self.check_for_unexpecetd_metrics() + + self.cbp: ClusteredBoxPlot = ClusteredBoxPlot( + anchor_list=np.linspace(1, len(self.tsws_used), + len(self.tsws_used)), + no_of_ds=len(self.candidate_datasets), + space_per_box_cluster=0.9, + rel_indiv_box_width=0.9, + ) + + else: + warnings.warn( + f'FileNotFoundError: The file {results_file} does not exist. Please check the file path and try again.' + ) + return None + + @property + def temp_sub_win_dependent_vars(self) -> List[str]: + _list = [] + for var_name in self.ds.data_vars: + if 'tsw' in self.ds[var_name].dims: + _list.append(var_name) + return _list + + @property + def metrics_in_ds(self) -> Dict[str, List[str]]: + """ + Returns a dictionary of metrics in the dataset, whereas each individual metric kind is a key in the dictionary \ + and the values are lists of variables in the dataset that are associated with the respective metric kind. + + Returns + ------- + dict + dictionary of metrics in the dataset + + """ + return { + metric: [ + var_name for var_name in self.temp_sub_win_dependent_vars + if var_name.startswith(f'{metric}_') + ] + for metric in globals._colormaps.keys() if any( + var_name.startswith(f'{metric}_') + for var_name in self.temp_sub_win_dependent_vars) + } # globals._colormaps just so happens to contain all metrics + + def check_for_unexpecetd_metrics(self) -> bool: + """ + Checks if the metrics are present in the dataset that were not specified in `globals.METRICS` and adds them to \ + `QA4SMCompPlotter.ds_metrics`. + + Returns + ------- + bool + True if no unexpected metrics are found in the dataset, False otherwise + """ + + flattened_list = list( + set(itertools.chain.from_iterable(self.metrics_in_ds.values()))) + elements_not_in_flattened_list = set( + self.temp_sub_win_dependent_vars) - set(flattened_list) + _list = list( + set([ + m.split('_between')[0] for m in elements_not_in_flattened_list + ])) + grouped_dict = { + prefix: + [element for element in _list if element.startswith(prefix)] + for prefix in set([element.split('_')[0] for element in _list]) + } + + for prefix, elements in grouped_dict.items(): + self.metrics_in_ds[prefix] = elements + + if len(elements_not_in_flattened_list) > 0: + warnings.warn( + f"Following metrics were found in the dataset that were not specified in `globals.METRICS` and have \ + been added to `QA4SMCompPlotter.ds_metrics`: {elements_not_in_flattened_list}" + ) + return False + + return True + + def metrics_ds_grouped_lut(self, + include_ci: Optional[bool] = False + ) -> Dict[str, List[str]]: + """ + Returns a dictionary of for each metric, containing the QA4SM dataset combination used to compute said metric + + Parameters + ---------- + include_ci : bool, default is False + Whether to include the confidence intervals of a specific metric in the output + + Returns + ------- + dict + dictionary of grouped metrics in the dataset + """ + _metric_lut = {} + + def parse_metric_string( + metric_string: str) -> Union[Tuple[str, str], None]: + pattern = globals.METRIC_TEMPLATE.format( + ds1= + '(?P\d+-\w+)', # matches one or more digits (\d+), followed by a hyphen (-), \ + # followed by one or more word characters (\w+) + ds2= + '(?P\d+-\w+)', # matches one or more digits (\d+), followed by a hyphen (-), \ + # followed by one or more word characters (\w+) + ) + + match = re.search(pattern, metric_string) + if match: + return match.group('ds1'), match.group('ds2') + else: + return None + + def purge_ci_metrics(_dict: Dict) -> Dict: + return { + ds_combi: + [metric for metric in metric_values if "ci" not in metric][0] + for ds_combi, metric_values in _dict.items() + } + + for metric_kind, metrics_in_ds in self.metrics_in_ds.items(): + + parsed_metrics = set([ + pp for metric in metrics_in_ds + if (pp := parse_metric_string(metric)) is not None + ]) + + grouped_dict = { + metric: [ + item for item in metrics_in_ds + if parse_metric_string(item) == metric + ] + for metric in parsed_metrics + } + + if not include_ci: + grouped_dict = purge_ci_metrics(grouped_dict) + + _metric_lut[metric_kind] = grouped_dict + + return _metric_lut + + @property + def tsws_used(self): + """ + Get all temporal sub-windows used in the validation + + Parameters + ---------- + incl_default : bool, default is False + Whether to include the default TSW in the output + + + Returns + ------- + tsws_used : list + list of all TSWs used in the validation + """ + + temp_sub_wins_names = [ + tsw + for tsw in self.ds.coords[globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME].values + if tsw != globals.DEFAULT_TSW + ] + + if self.include_default_case: + temp_sub_wins_names.append(globals.DEFAULT_TSW) + + return temp_sub_wins_names + + def get_specific_metric_df(self, specific_metric: str) -> pd.DataFrame: + """ + Get the DataFrame for a single **specific** metric (e.g. "R_between_0-ISMN_and_1-SMOS_L3") from a QA4SM netCDF \ + file with temporal sub-windows. + + Parameters + ---------- + specific_metric : str + Name of the specific metric + + Returns + ------- + pd.DataFrame + DataFrame for this specific metric + """ + + _data_dict = {} + _data_dict['lat'] = self.ds['lat'].values + _data_dict['lon'] = self.ds['lon'].values + _data_dict['gpi'] = self.ds['gpi'].values + for tsw in self.tsws_used: + selection = {globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME: tsw} + + _data_dict[tsw] = self.ds[specific_metric].sel( + selection).values.astype(np.float32) + + df = pd.DataFrame(_data_dict) + df.set_index(['lat', 'lon', 'gpi'], inplace=True) + + return df + + def get_metric_df(self, generic_metric: str) -> pd.DataFrame: + """ + Get the DataFrame for a single **generic** metric/metric kind (e.g. "R") from a QA4SM netCDF file with \ + temporal sub-windows. + + Parameters + ---------- + generic_metric : str + Name of the generic metric/metric kind + + Returns + ------- + pd.DataFrame + Multilevel DataFrame for this generic metric/metric kind, whereas the two column levels are all candidate \ + datasets and the temporal sub-windows + """ + + df_dict = { + ds_combi[1]: + self.get_specific_metric_df(specific_metric=specific_metric) + for ds_combi, specific_metric in + self.metric_lut[generic_metric].items() + } + return pd.concat(df_dict.values(), keys=df_dict.keys(), axis=1) + + @staticmethod + @note( + "This method is redundant, as it yields the same result as `QA4SMCompPlotter.tsws_used()`. \ + It is kept as a static method for debugging purposes." + ) + def get_tsws_from_df(df: pd.DataFrame) -> List[str]: + """ + Get all temporal sub-windows used in the validation from a DataFrame as returned by \ + `QA4SMCompPlotter.get_metric_df()` + + Parameters + ---------- + df : pd.DataFrame + DataFrame with the temporal sub-windows + + Returns + ------- + tsws_used : list + list of all TSWs used in the validation + """ + return df.columns.levels[1].unique().tolist() + + @staticmethod + def get_datasets_from_df(df: pd.DataFrame) -> List[str]: + """ + Get all candiate datasets used in the validation from a DataFrame as returned by \ + `QA4SMCompPlotter.get_metric_df()` + + Parameters + ---------- + df : pd.DataFrame + DataFrame with the datasets + + Returns + ------- + datasets_used : list + list of all datasets used in the validation + """ + return sorted(df.columns.levels[0].unique().tolist()) + + def create_title(self, Var, type: str) -> str: + """ + Create title of the plot + + Parameters + ---------- + Var: MetricVar + variable for a metric + type: str + type of plot + """ + parts = [globals._metric_name[Var.metric]] + parts.extend(QA4SMPlotter._get_parts_name(Var=Var, type=type)) + title = QA4SMPlotter._titles_lut(type=type).format(*parts) + + return title + + def create_label(self, Var) -> str: + """ + Create y-label of the plot + + Parameters + ---------- + + Var: MetricVar + variable for a metric + + Returns + ------- + label: str + y-label for the plot + """ + parts = [globals._metric_name[Var.metric]] + parts.append(globals._metric_description[Var.metric].format( + globals.get_metric_units(self.ref_dataset['short_name']))) + return "{}{}".format(*parts) + + def get_metric_vars(self, generic_metric: str) -> Dict[str, str]: + _dict = {} + + _df = self.get_metric_df(generic_metric=generic_metric) + for dataset in self.get_datasets_from_df(_df): + for ds_combi, specific_metric in self.metrics_ds_grouped_lut( + )[generic_metric].items(): + if dataset in ds_combi: + _Var = hdl.MetricVariable(varname=specific_metric, + global_attrs=self.ds.attrs) + if _Var.values == None: + _Var.values = _df.loc[:, (dataset, slice(None))] + + _dict[dataset] = _Var + + return _dict + + def get_legend_entries(self, generic_metric: str) -> Dict[str, str]: + return { + f'{Var.metric_ds[0]}-{Var.metric_ds[1]["short_name"]}': + # 'hello': + self.cbp.label_template.format( + dataset_name=Var.metric_ds[1]["pretty_name"], + dataset_version=Var.metric_ds[1] + ["pretty_version"], # Replace with your actual dataset version + variable_name=Var.metric_ds[1] + ["pretty_variable"], # Replace with your actual variable name + unit=Var.metric_ds[1]["mu"]) + for Var in self.get_metric_vars(generic_metric).values() + } + + def _load_vars(self, empty=False, only_metrics=False) -> list: + """ + Create a list of common variables and fill each with values + + Parameters + ---------- + empty : bool, default is False + if True, Var.values is an empty dataframe + only_metrics : bool, default is False + if True, only variables for metric scores are kept (i.e. not gpi, idx ...) + + Returns + ------- + vars : list + list of QA4SMVariable objects for the validation variables + """ + vars = [] + for varname in self.metric_kinds_available: + df = self.get_metric_df(generic_metric=varname) + if empty: + values = None + else: + # lat, lon are in varnames but not in datasframe (as they are the index) + try: + # values = df + values = df + except: # KeyError: + values = None + + Var = hdl.QA4SMVariable(varname, self.ds.attrs, + values=df).initialize() + + if only_metrics and isinstance(Var, hdl.MetricVariable): + vars.append(Var) + elif not only_metrics: + vars.append(Var) + + return vars + + def _iter_vars(self, + type: str = None, + name: str = None, + filter_parms: dict = None) -> iter: + """ + Iter through QA4SMVariable objects that are in the file + + Parameters + ---------- + type : str, default is None + One of 'metric', 'ci', 'metadata' can be specified to only iterate through the specific group + name : str, default is None + yield a specific variable by its name + filter_parms : dict + dictionary with QA4SMVariable attributes as keys and filter value as values (e.g. {g: 0}) + """ + type_lut = { + "metric": hdl.MetricVariable, + "ci": hdl.ConfidenceInterval, + "metadata": hdl.Metadata, + } + for Var in self._load_vars(): + if name: + if name in [Var.varname, Var.pretty_name]: + yield Var + break + else: + continue + if type and not isinstance(Var, type_lut[type]): + continue + if filter_parms: + for key, val in filter_parms.items(): + if getattr(Var, + key) == val: # check all attribute individually + check = True + else: + check = False # does not match requirements + break + if check != True: + continue + + yield Var + + def plot_cbp(self, + chosen_metric: str, + out_name: Optional[Union[List, List[str]]] = None) -> matplotlib.figure.Figure: + """ + Plot a Clustered Boxplot for a chosen metric + + Parameters + ---------- + chosen_metric : str + name of the metric + out_name : str or list of str, optional + name of the output file. Default is None + + Returns + ------- + fig : matplotlib.figure.Figure + the boxplot + + """ + + def get_metric_vars( + generic_metric: str) -> Dict[str, hdl.MetricVariable]: + _dict = {} + + for dataset in self.get_datasets_from_df(metric_df): + for ds_combi, specific_metric in self.metrics_ds_grouped_lut( + )[generic_metric].items(): + if dataset in ds_combi: + _Var = hdl.MetricVariable(varname=specific_metric, + global_attrs=self.ds.attrs) + if _Var.values == None: + _Var.values = metric_df.loc[:, + (dataset, slice(None))] + + _dict[dataset] = _Var + + return _dict + + def get_legend_entries(cbp_obj: ClusteredBoxPlot, + generic_metric: str) -> Dict[str, str]: + return { + f'{Var.metric_ds[0]}-{Var.metric_ds[1]["short_name"]}': + cbp_obj.label_template.format( + dataset_name=Var.metric_ds[1]["pretty_name"], + dataset_version=Var.metric_ds[1]["pretty_version"], + variable_name=Var.metric_ds[1]["pretty_variable"], + unit=Var.metric_ds[1]["mu"]) + for Var in get_metric_vars(generic_metric).values() + } + + metric_df = self.get_metric_df(chosen_metric) + Vars = get_metric_vars(chosen_metric) + + legend_entries = get_legend_entries(cbp_obj=self.cbp, + generic_metric=chosen_metric) + + centers_and_widths = self.cbp.centers_and_widths( + anchor_list=self.cbp.anchor_list, + no_of_ds=self.cbp.no_of_ds, + space_per_box_cluster=0.9, + rel_indiv_box_width=0.8) + + figwidth = globals.boxplot_width * (len(metric_df.columns) + 1 + ) # otherwise it's too narrow + figsize = [figwidth, globals.boxplot_height] + fig_kwargs = { + 'figsize': figsize, + 'dpi': 'figure', + 'bbox_inches': 'tight' + } + + cbp_fig = self.cbp.figure_template(incl_median_iqr_n_axs=False, + fig_kwargs=fig_kwargs) + + legend_handles = [] + for dc_num, (dc_val_name, Var) in enumerate(Vars.items()): + _df = Var.values + bp = cbp_fig.ax_box.boxplot( + _df.dropna().values, + positions=centers_and_widths[dc_num].centers, + widths=centers_and_widths[dc_num].widths, + showfliers=False, + patch_artist=True, + ) + + for box in bp['boxes']: + box.set(color=list(globals.CLUSTERED_BOX_PLOT_STYLE['colors']. + values())[dc_num]) + + legend_handles.append( + Rectangle( + (0, 0), + 1, + 1, + color=list( + globals.CLUSTERED_BOX_PLOT_STYLE['colors'].values()) + [dc_num], + alpha=0.7, + label=legend_entries[dc_val_name])) + + patch_styling( + bp, + list(globals.CLUSTERED_BOX_PLOT_STYLE['colors'].values()) + [dc_num]) + + if self.cbp.no_of_ds >= 3: + _ncols = 3 + else: + _ncols = self.cbp.no_of_ds + + cbp_fig.ax_box.legend( + handles=legend_handles, + fontsize=globals.CLUSTERED_BOX_PLOT_STYLE['fig_params'] + ['legend_fontsize'], + ncols=_ncols) + + xtick_pos = self.cbp.centers_and_widths( + anchor_list=self.cbp.anchor_list, + no_of_ds=1, + space_per_box_cluster=0.7, + rel_indiv_box_width=0.8) + cbp_fig.ax_box.set_xticks([]) + cbp_fig.ax_box.set_xticklabels([]) + cbp_fig.ax_box.set_xticks(xtick_pos[0].centers) + + def get_xtick_labels(df: pd.DataFrame) -> List: + _count_dict = df.count().to_dict() + return [ + f"{tsw[1]}\nN: {count}" for tsw, count in _count_dict.items() + ] + + cbp_fig.ax_box.set_xticklabels(get_xtick_labels(_df), ) + cbp_fig.ax_box.tick_params( + axis='both', + labelsize=globals.CLUSTERED_BOX_PLOT_STYLE['fig_params'] + ['tick_labelsize']) + + _dummy_xticks = [ + cbp_fig.ax_box.axvline(x=(a + b) / 2, color='lightgrey') for a, b + in zip(xtick_pos[0].centers[:-1], xtick_pos[0].centers[1:]) + ] + cbp_fig.fig.suptitle( + self.create_title(Var, type='boxplot_basic'), + fontsize=globals.CLUSTERED_BOX_PLOT_STYLE['fig_params'] + ['title_fontsize']) + cbp_fig.ax_box.set_ylabel( + self.create_label(Var), + fontsize=globals.CLUSTERED_BOX_PLOT_STYLE['fig_params'] + ['y_labelsize'], + ) + + spth = [Path(f"{globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric = chosen_metric, filetype = 'png')}")] + if out_name: + spth = out_name + + [cbp_fig.fig.savefig( + fname=outname, + dpi=fig_kwargs['dpi'], + bbox_inches=fig_kwargs['bbox_inches'], + ) for outname in spth] + + return cbp_fig.fig diff --git a/src/qa4sm_reader/plotting_methods.py b/src/qa4sm_reader/plotting_methods.py index 5e542d2..1596747 100644 --- a/src/qa4sm_reader/plotting_methods.py +++ b/src/qa4sm_reader/plotting_methods.py @@ -2,32 +2,43 @@ """ Contains helper functions for plotting qa4sm results. """ +from logging import handlers from qa4sm_reader import globals from qa4sm_reader.exceptions import PlotterError +from qa4sm_reader.handlers import ClusteredBoxPlotContainer, CWContainer +from qa4sm_reader.utils import note import numpy as np import pandas as pd import os.path -from typing import Union +from typing import Union, List, Tuple, Dict, Optional, Any import copy import seaborn as sns +import matplotlib +import matplotlib.axes +import matplotlib.cbook as cbook +import matplotlib.image as mpimg import matplotlib.pyplot as plt import matplotlib.colors as mcol import matplotlib.ticker as mticker import matplotlib.gridspec as gridspec from matplotlib.patches import Patch, PathPatch -from matplotlib.lines import Line2D + from cartopy import config as cconfig import cartopy.feature as cfeature from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER +import cartopy.crs as ccrs from pygeogrids.grids import BasicGrid, genreg_grid from shapely.geometry import Polygon, Point import warnings +import os +from collections import namedtuple + cconfig['data_dir'] = os.path.join(os.path.dirname(__file__), 'cartopy') @@ -101,9 +112,9 @@ def geotraj_to_geo2d(df, index=globals.index_names, grid_stepsize=None): """ Converts geotraj (list of lat, lon, value) to a regular grid over lon, lat. The values in df needs to be sampled from a regular grid, the order does not matter. - When used with plt.imshow(), specify data_extent to make sure, + When used with plt.imshow(), specify data_extent to make sure, the pixels are exactly where they are expected. - + Parameters ---------- df : pandas.DataFrame @@ -190,8 +201,8 @@ def get_value_range(ds, try: v_min = ranges[metric][0] v_max = ranges[metric][1] - if (v_min is None and v_max is - None): # get quantile range and make symmetric around 0. + if (v_min is None and v_max is None + ): # get quantile range and make symmetric around 0. v_min, v_max = get_quantiles(ds, quantiles) v_max = max( abs(v_min), @@ -262,12 +273,12 @@ def get_plot_extent(df, grid_stepsize=None, grid=False) -> tuple: whether the values in df is on a equally spaced grid (for use in mapplot) df : pandas.DataFrame Plot values. - + Returns ------- extent : tuple | list (x_min, x_max, y_min, y_max) in Data coordinates. - + """ lat, lon, gpi = globals.index_names if grid and grid_stepsize in ['nan', None]: @@ -312,22 +323,29 @@ def get_plot_extent(df, grid_stepsize=None, grid=False) -> tuple: return extent -def init_plot(figsize, dpi, add_cbar=None, projection=None) -> tuple: +def init_plot(figsize, dpi, add_cbar=None, projection=None, fig_template = None) -> tuple: """Initialize mapplot""" if not projection: projection = globals.crs - fig = plt.figure(figsize=figsize, dpi=dpi) + + if fig_template is None: + # fig, ax_main = plt.subplots(figsize=figsize, dpi=dpi) + fig = plt.figure(figsize=figsize, dpi=dpi) + else: + fig = fig_template.fig + ax_main = fig_template.ax_main + + if add_cbar: gs = gridspec.GridSpec(nrows=2, ncols=1, height_ratios=[19, 1]) - ax = fig.add_subplot(gs[0], projection=projection) + ax_main = fig.add_subplot(gs[0], projection=projection) cax = fig.add_subplot(gs[1]) else: gs = gridspec.GridSpec(nrows=1, ncols=1) - ax = fig.add_subplot(gs[0], projection=projection) + ax_main = fig.add_subplot(gs[0], projection=projection) cax = None - return fig, ax, cax - + return fig, ax_main, cax def get_extend_cbar(metric): """ @@ -447,11 +465,16 @@ def style_map( return ax + +@note( + "DeprecationWarning: The function `qa4sm_reader.plotting_methods.make_watermark()` is deprecated and will be removed in the next release. Use `qa4sm_reader.plotting_methods.add_logo_to_figure` instead to add a logo." +) def make_watermark(fig, placement=globals.watermark_pos, for_map=False, offset=0.03, - for_barplot=False): + for_barplot=False, + fontsize=globals.watermark_fontsize): """ Adds a watermark to fig and adjusts the current axis to make sure there is enough padding around the watermarks. @@ -472,56 +495,146 @@ def make_watermark(fig, """ # ax = fig.gca() # pos1 = ax.get_position() #fraction of figure - fontsize = globals.watermark_fontsize pad = globals.watermark_pad height = fig.get_size_inches()[1] offset = offset + (( (fontsize + pad) / globals.matplotlib_ppi) / height) * 2.2 if placement == 'top': - plt.annotate(globals.watermark, - xy=[0.5, 1], - xytext=[-pad, -pad], - fontsize=fontsize, - color='grey', - horizontalalignment='center', - verticalalignment='top', - xycoords='figure fraction', - textcoords='offset points') + plt.annotate( + globals.watermark, + xy=[0.5, 1], + xytext=[-pad, -pad], + fontsize=fontsize, + color='white', #TODO! change back to grey + horizontalalignment='center', + verticalalignment='top', + xycoords='figure fraction', + textcoords='offset points') top = fig.subplotpars.top fig.subplots_adjust(top=top - offset) elif for_map or for_barplot: if for_barplot: - plt.suptitle(globals.watermark, - color='grey', - fontsize=fontsize, - x=-0.07, - y=0.5, - va='center', - rotation=90) + plt.suptitle( + globals.watermark, + color='white', #TODO! change back to grey + fontsize=fontsize, + x=-0.07, + y=0.5, + va='center', + rotation=90) else: - plt.suptitle(globals.watermark, - color='grey', - fontsize=fontsize, - y=0, - ha='center') + plt.suptitle( + globals.watermark, + color='white', #TODO! change back to grey + fontsize=fontsize, + y=0, + ha='center') elif placement == 'bottom': - plt.annotate(globals.watermark, - xy=[0.5, 0], - xytext=[pad, pad], - fontsize=fontsize, - color='grey', - horizontalalignment='center', - verticalalignment='bottom', - xycoords='figure fraction', - textcoords='offset points') + plt.annotate( + globals.watermark, + xy=[0.5, 0], + xytext=[pad, pad], + fontsize=fontsize, + color='white', #TODO! change back to grey + horizontalalignment='center', + verticalalignment='bottom', + xycoords='figure fraction', + textcoords='offset points') bottom = fig.subplotpars.bottom if not for_map: fig.subplots_adjust(bottom=bottom + offset) else: raise NotImplementedError +#$$ +Offset = namedtuple('offset', ['x', 'y']) # helper for offset in add_logo_to_figure +def add_logo_to_figure(fig: matplotlib.figure.Figure, + logo_path: Optional[str] = globals.watermark_logo_pth, + position: Optional[str] = globals.watermark_logo_position, + offset: Optional[Union[Tuple, Offset]] = (0., -0.15), + scale: Optional[float] = 0.15) -> None: + """ + Add a logo to an existing figure. This is done by creating an additional axis in the figure, at the location\ + specified by `position`. The logo is then placed on this axis. + + Parameters + ---------- + fig: matplotlib.figure.Figure + The figure to add the logo to. The figure should have at least one axis, otherwise an axis is created.z + + logo_path: Optional[str] + Path to the logo image. If the path does not exist, a warning is raised and the function returns. Default is\ + `globals.watermark_logo_pth`. + + position: Optional[str] + The position of the logo in the figure. Valid values are 'lower_left', 'lower_center', 'lower_right',\ + 'upper_left', 'upper_center', 'upper_right'. Default is `globals.watermark_logo_position`. + + offset: Optional[Tuple | Offset] + Offset of the logo from the right edge of the subplot (right lower corner of the main plot).\ + The first value is the x-offset, the second value is the y-offset. Default is (0., 0). + + scale: Optional[float] + Scale of the logo relative to the figure height (= fraction of figure height). Valid values are (0, 1].\ + Default is 0.15. + + Returns + ------- + None + """ + + if not fig.get_axes(): + warnings.warn("No axes found in the figure. Creating a new one.") + fig.add_subplot(111) + + if not os.path.exists(logo_path): + warnings.warn(f"No logo found at the specified path: '{logo_path}'. Skipping logo addition.") + print(f"No logo found at the specified path: '{logo_path}'. Skipping logo addition.") + return + + with cbook.get_sample_data(logo_path) as file: + im = mpimg.imread(file) + + # Get the dimensions of the image + height, width, _ = im.shape + + fig_height_pixels = fig.get_figheight() * fig.dpi + + logo_height_pixels = scale * fig_height_pixels + logo_width_pixels = width * logo_height_pixels / height + + # Convert back to figure coordinates + logo_width_fig = logo_width_pixels / fig.dpi + + if not isinstance(offset, Offset): + offset = Offset(*offset) + + + if 'left' in position: + left = 1 - (logo_width_fig) + offset.x + elif 'center' in position: + left = 0.5 - (logo_width_fig / 2) + offset.x + elif 'right' in position: # 'right' in position + left = 0 + offset.x + + if 'lower' in position: + bottom = offset.y + elif 'upper' in position: # 'upper' in position + bottom = 1 - offset.y + + # Define the new position of ax_logo + # [left, bottom, width, height] + ax_logo_pos = [left, bottom, logo_width_fig, scale] + + # Add a new axis to the figure at the position of ax_logo to house the logo + ax_logo = fig.add_axes(ax_logo_pos) + ax_logo.imshow(im) + + # Hide the axis + ax_logo.axis('off') + def _make_cbar(fig, im, @@ -716,12 +829,17 @@ def boxplot( values = df.copy() center_pos = np.arange(len(values.columns)) * 2 # make plot + ax = axis if axis is None: fig, ax = plt.subplots(figsize=figsize, dpi=dpi) + else: + fig = None ticklabels = values.columns # styling of the boxes kwargs = {"patch_artist": True, "return_type": "dict"} + for key, value in plotting_kwargs.items(): + kwargs[key] = value # changes necessary to have confidence intervals in the plot # could be an empty list or could be 'None', if de-selected from the kwargs if ci: @@ -750,29 +868,41 @@ def boxplot( patch_styling(low, 'skyblue') patch_styling(up, 'tomato') - cen = values.boxplot(positions=center_pos, + if not 'positions' in kwargs: + positions = center_pos + else: + positions = kwargs['positions'] + del kwargs['positions'] + + if not 'widths' in kwargs: + widths = 0.3 + else: + widths = kwargs['widths'] + del kwargs['widths'] + + cen = values.boxplot(positions=positions, showfliers=False, - widths=0.3, + widths=widths, ax=ax, **kwargs) patch_styling(cen, 'white') + if ci: low_ci = Patch(color='skyblue', alpha=0.7, label='Lower CI') up_ci = Patch(color='tomato', alpha=0.7, label='Upper CI') # _CI_difference(fig, ax, ci) - plt.legend(handles=[low_ci, up_ci], fontsize=8, loc="best") + ax.legend(handles=[low_ci, up_ci], fontsize=8, loc="best") # provide y label if label is not None: plt.ylabel(label, weight='normal') - ax.set_xticks(center_pos) + ax.set_xticks(positions) ax.set_xticklabels(ticklabels) ax.tick_params(labelsize=globals.tick_size) ax.grid(axis='x') ax.spines['right'].set_visible(False) ax.spines['top'].set_visible(False) - if axis is None: - return fig, ax + return fig, ax def _replace_status_values(ser): @@ -805,6 +935,7 @@ def barplot( label=None, figsize=None, dpi=100, + axis=None, ) -> tuple: """ Create a barplot from the validation errors in df. @@ -822,6 +953,8 @@ def barplot( Figure size in inches. The default is globals.map_figsize. dpi : int, optional Resolution for raster graphic output. The default is globals.dpi. + axis : matplotlib Axis obj. + if provided, the plot will be shown on it Returns ------- @@ -829,7 +962,12 @@ def barplot( the boxplot ax : matplotlib.axes.Axes """ - fig, ax = plt.subplots(figsize=figsize, dpi=dpi) + + ax = axis + if axis is None: + fig, ax = plt.subplots(figsize=figsize, dpi=dpi) + else: + fig = None values = df.copy() values = values[[values.keys()[0]]] @@ -1231,10 +1369,12 @@ def bplot_multiple(to_plot, y_axis, n_bars, **kwargs) -> tuple: def _dict2df(to_plot_dict: dict, meta_key: str) -> pd.DataFrame: """Transform a dictionary into a DataFrame for catplotting""" to_plot_df = [] + for range, values in to_plot_dict.items(): range_grouped = [] for ds in values: - values_ds = values[ds].to_frame(name="values") + values_ds = values[ds] + values_ds = values_ds.to_frame(name="values") values_ds["Dataset"] = ds values_ds[meta_key] = "\n[".join(range.split(" [")) range_grouped.append(values_ds) @@ -1389,8 +1529,9 @@ def boxplot_metadata( metric_label = "values" meta_key = metadata_values.columns[0] # sort data according to the metadata type - type = globals.metadata[meta_key][2] - bin_funct = bin_function_lut(type) + metadata_type = globals.metadata[meta_key][2] + + bin_funct = bin_function_lut(metadata_type) to_plot = bin_funct( df=df, metadata_values=metadata_values, @@ -1413,6 +1554,7 @@ def boxplot_metadata( elif isinstance(to_plot, pd.DataFrame): generate_plot = bplot_catplot + out = generate_plot( to_plot=to_plot, y_axis=ax_label, @@ -1428,20 +1570,20 @@ def boxplot_metadata( return fig, axes -def mapplot(df, - metric, - ref_short, - scl_short=None, - ref_grid_stepsize=None, - plot_extent=None, +def mapplot(df: pd.DataFrame, + metric: str, + ref_short : str, + scl_short: Optional[str] = None, + ref_grid_stepsize: Optional[float] = None, + plot_extent: Optional[Tuple[float, float, float, float]] = None, colormap=None, - projection=None, - add_cbar=True, - label=None, - figsize=globals.map_figsize, - dpi=globals.dpi_min, - diff_map=False, - **style_kwargs) -> tuple: + projection: Optional[ccrs.Projection] = None, + add_cbar: Optional[bool] = True, + label: Optional[str] = None, + figsize: Optional[Tuple[float, float]] = globals.map_figsize, + dpi: Optional[int] = globals.dpi_min, + diff_map: Optional[bool] = False, + **style_kwargs: Dict) -> Tuple[matplotlib.figure.Figure, matplotlib.axes.Axes]: """ Create an overview map from df using values as color. Plots a scatterplot for ISMN and an image plot for other input values. @@ -1810,3 +1952,152 @@ def average_non_additive(values: Union[pd.Series, np.array], # Back transform the result return np.tanh(mean) + +#$$ +class ClusteredBoxPlot: + """ + Class to create an empty figure object with one main axis and optionally three sub-axis. It is used to create a template for the clustered boxplot, which can then be filled with data. + """ + + def __init__(self, + anchor_list: Union[List[float], np.ndarray], + no_of_ds: int, + space_per_box_cluster: Optional[float] = 0.9, + rel_indiv_box_width: Optional[float] = 0.9): + self.anchor_list = anchor_list + self.no_of_ds = no_of_ds + self.space_per_box_cluster = space_per_box_cluster + self.rel_indiv_box_width = rel_indiv_box_width + + # xticklabel and legend label templates + # self.xticklabel_template = "{tsw}:\n{dataset_name}\n({dataset_version})\nVariable: {variable_name} [{unit}]\n Median: {median:.3e}\n IQR: {iqr:.3e}\nN: {count}" + self.xticklabel_template = "Median: {median:.3e}\n IQR: {iqr:.3e}\nN: {count}" + self.label_template = "{dataset_name} ({dataset_version})\nVariable: {variable_name} [{unit}]" + + @staticmethod + def centers_and_widths( + anchor_list: Union[List[float], np.ndarray], + no_of_ds: int, + space_per_box_cluster: Optional[float] = 0.9, + rel_indiv_box_width: Optional[float] = 0.9) -> List[CWContainer]: + """ + Function to calculate the centers and widths of the boxes of a clustered boxplot. The function returns a list of tuples, each containing the center and width of a box in the clustered boxplot. The output can then be used as indices for creating the boxes a boxplot using `matplotlib.pyplot.boxplot()` + + Parameters + ---------- + + anchor_list: Union[List[float], np.ndarray] + A list of floats representing the anchor points for each box cluster + no_of_ds: int + The number of datasets, i.e. the number of boxes in each cluster + space_per_box_cluster: float + The space each box cluster can occupy, 0.9 per default. This value should be <= 1 for a clustered boxplot to prevent overlap between neighboring clusters and boxes + rel_indiv_box_width: float + The relative width of the individual boxes in a cluster, 0.9 per default. This value should be <= 1 to prevent overlap between neighboring boxes + + Returns + ------- + + List[CWContainer] + A list of CWContainer objects. Each dataset present has its own CWContainer object, each containing the centers and widths of the boxes in the clustered boxplot + + """ + + b_lb_list = [ + -space_per_box_cluster / 2 + anchor for anchor in anchor_list + ] # list of lower bounds for each box cluster + b_ub_list = [ + space_per_box_cluster / 2 + anchor for anchor in anchor_list + ] # list of upper bounds for each box cluster + + _centers = sorted([(b_ub - b_lb) / (no_of_ds + 1) + b_lb + i * + ((b_ub - b_lb) / (no_of_ds + 1)) + for i in range(int(no_of_ds)) + for b_lb, b_ub in zip(b_lb_list, b_ub_list)]) + _widths = [ + rel_indiv_box_width * (_centers[0] - b_lb_list[0]) + for _center in _centers + ] + + return [ + CWContainer(name=f'ds_{ds}', + centers=_centers[ds::no_of_ds], + widths=_widths[ds::no_of_ds]) + for ds in range(int(no_of_ds)) + ] + + @staticmethod + def figure_template(incl_median_iqr_n_axs: Optional[bool] = False, + **fig_kwargs) -> ClusteredBoxPlotContainer: + """ + Function to create a figure template for e.g. a clustered boxplot. The function returns a \ + ClusteredBoxPlotContainer object, which contains the figure and the subplots for the boxplot as well as \ + optionally the median, IQR and N values. The layout is as follows: the axes are arranged in a 2x1 grid, \ + with the boxplot in the upper subplot and the median, IQR and N values in the lower subplot. \ + The lower subplot is further divided into three subplots, one for each value. + + Parameters + ---------- + incl_median_iqr_n_axs: Optional[bool] + If True, creates three subplots with median, IQR and N values for each box. If False, only the boxplot is \ + created. Default is False + fig_kwargs: dict + Keyword arguments for the figure + + Returns + ------- + ClusteredBoxPlotContainer + A ClusteredBoxPlotContainer object containing the figure and the subplots for the boxplot, median, \ + IQR and N values + """ + + if 'figsize' in fig_kwargs: + _fig = plt.figure(figsize=fig_kwargs['figsize']) + else: + _fig = plt.figure(figsize=(15, 10.5)) + + if not incl_median_iqr_n_axs: + ax_box = _fig.add_subplot(111) + ax_median, ax_iqr, ax_n = None, None, None + + if incl_median_iqr_n_axs: + # Create a main gridspec for ax_box and subplots below + gs_main = gridspec.GridSpec(2, 1, height_ratios=[2, 1], hspace=0.2) + + # Subgridspec for ax_box and ax_median (top subplot) + gs_top = gridspec.GridSpecFromSubplotSpec(1, + 1, + subplot_spec=gs_main[0]) + + # Subgridspec for ax_iqr and ax_n (bottom subplots) + gs_bottom = gridspec.GridSpecFromSubplotSpec( + 3, + 1, + height_ratios=[1, 1, 1], + subplot_spec=gs_main[1], + hspace=0) + ax_box = plt.subplot(gs_top[0]) + ax_median = plt.subplot(gs_bottom[0], sharex=ax_box) + ax_iqr = plt.subplot(gs_bottom[1], sharex=ax_box) + ax_n = plt.subplot(gs_bottom[2], sharex=ax_box) + + for _ax in [ax_box, ax_median, ax_iqr, ax_n]: + try: + _ax.tick_params(labelsize=globals.tick_size) + _ax.spines['right'].set_visible(False) + _ax.spines['top'].set_visible(False) + except AttributeError: + pass + + add_logo_to_figure(fig = _fig, + logo_path = globals.watermark_logo_pth, + position = globals.watermark_logo_position, + offset = globals.watermark_logo_offset_comp_plots, + scale = globals.watermark_logo_scale, + ) + + return ClusteredBoxPlotContainer(fig=_fig, + ax_box=ax_box, + ax_median=ax_median, + ax_iqr=ax_iqr, + ax_n=ax_n) diff --git a/src/qa4sm_reader/static/images/logo/QA4SM_logo_long.png b/src/qa4sm_reader/static/images/logo/QA4SM_logo_long.png new file mode 100755 index 0000000000000000000000000000000000000000..0aec08f2f5c93dbdab086cf4e0893f96bdce2aea GIT binary patch literal 30848 zcmeEu2Un9@*KGt55dj;ZbQKOrwa`mwq7tN&(3^CrQl$h$M2;dLfkcAattF9_v6L=er<~ zbE6k8fd4_mJNv;e8nWUqlGyrMl;O<) zlX)faf1bJbzs>%4LH_rI{KqQ(*B1V>4F7*ShxSu3IS54I^yjQK-wLAt7j!?35W#Jl z!%>dj^*j)zP7~p2R(9RvK3giukkexlp_pDTxq+g4+0Z{Pw;}8mWQz(>iDV8FV5+ zHUgIm#i`OL!9xvHcSI>6wU%%j4^{kxUrgPKSa#;LLBP>%jkz%qLAQKsqg==4@o$+H z%Y|<-E$6`_>Gfx0KxIlMKS!UpNppwJw~9XF(Y-A|`)eD^<@}P4yF% zv`i|1aKhaE0~@*xcaamIN&X?O;q$4f4NpkSiOQcZM{TOSKAQj+B?v$!d`a(pi=zZe z_tA!mtRYw{L4}>YEn)?_^rl}vX^ficYy^+M2xfkOmCwz@uJ2GMLHYB3tnOZlWuiZV z9hIhFp#IVG40VIp6YaC;WiO-j2vW&a&azmi5%!b;#$PPHbaOyzlvv-pGAMahbq5-F z3YtN-?}}2sp|u!91Zxn5)|?H#e7P%Y)&39o#%&gKn7-t$7bnM`@TF2}IDYJH+Sz`* zu{!%Ar@+TBeJ4 z<4!zX-QaP+T?){wmm3UlIe{UY4JweA=qJ6FF3nBPORH)gdA#$D+jY6{&rZZe&`#m{ zS#M9F7Xxx*+gCy`IA)&4Ta5rbKzgk}c<#OaN|J^f*?y2yi27{jJ9N$~c~81#cq?rs zcIGl@v@CMgO(g@%iM#+!r}z?^ZrX_FFyZORVMRv8rEUop&<3(}7W>(4gGY5n2QG4Q zcO|XXmxZ_7RlTdKtE#M8v9Ebob@(aAzMzBrR2KO(CNrneY0`l6K~hnbo_Ct$+ehFP z>0xKX{06<)**#V7#2n#@K5tEmDtMFk$&TmTn2yft%_|!rP`mSXpshj=Ko|gyHAqc^s?7E;&_B-pQ`>Y$I&BtQ83mKil zEYtjk(GT<6kemVRokQW6wB5(KhooNPL7j!O1D0-fTD$^g0rf0iUkO4Z;tjn z&36d1$Qw!;+;Til+anz`QHY(rnq4{T7NpdGO+!{SC>vjk_LSL0B=MVBF-L^K-c|_{ zg+0p9qMTqQ(V8q_G5)G)y5`ySXPB^8Q4j2r+GuGf*Ie51M@n3lu)zHoltb*aPhVw! zUd)jB=7YTjRvz-~SvQ^+!Kp9RPhW32wPe(E(Y+zDO7!fE3Yb!vOaHU9i`K)|`KAEx zArQ!Z)?Dm`-#?Jj-e`vewE7ON!6|R2IPx%^JD2q9*-~Mkf9yP+?HVjwi-Sa_t79Ys z*8_PIdA4U?N*oe2QAN6^yEw6Ak*vms=ctn;-gvCTw^Ny>*Yt8~iHMuYp(xutksx-z zd= zT?ZCpf0b4bpNT*IdWoe?f-PQkGgyzOZk%mWZ*Z+V0uGa^D%$iql<>90yw5}EAs(U1M-84xhn|@^M|iTi#|yZwk4;)m<^;J@ zCo%qOm5-~gk=iZ4{45k)nPIYd*4k*l>OV#kc6OX*o}mq`gVii+>}AorRh=GeuMt~| z#~qL4H&t}>{+9UbqbQQbjE3$k{b$;x=g&5<>CT+v%0Js0g6nx0oi)RL&-=!jJmeQ? zH3m$+eT`1+tK>_uIZixCa4x?!I&G{VL*w#U;a6OMU;D>O(5E1i28_6r8N5nVke*lB zhWKziHegj@Q1m1SSZf7o1syW#Clz1l%0teM@{g2zcGUc%`0EoCes%8edQxVeMY-8} z{r&htB$}ZcYTRsQ2&R2zSG^Rchs5ciBo0c5NvUMAAU9GKc^LOl_mR;2Vg5mG;Op-* zE59AP(C_3)Z(Q;-`;g!r5{#cLPoK(cnE;$Zr+5dv|(`(JvM1!&_FC1phQOtk3Mdhy5sceczax z$6TUk?GPoaN(8e>*m)4#PGx7#kU#SA`{L=!{T*UP#S1ZY@Va!HGpDHdN^*;voN%=5 zs_e>m1F4aJeDtlea{fxZmulOLlfX*3)1C>NMr!OXY}_Agrgp;8S;W5F%&__ht`^(Lslv4IJ|n9K$YHn5|{o3Bm*Icyc;1 z+~CxMuWx{YfV>@m$33C-_12Yb$E#^^W2G^Hr!0%Cr^8CoA9$S zL+okJY^S>>FM%h`ReO8O-v=DN!sRNX=4?cu@S&(a3~@=wX}J)aZLi~e=F3XY+=gfa z=41b$h7A)W9#$>HiTOPzn8`{DvZ9ohSvYI!kG}j zkP`=tzf0yXuM`O^lgppW+p%dp;YquGHfojs`$z|>NB=3h|LfZ+Q)g`M!Qn9~ss|&O z{3Sr+Y{-m<_1VD8m{*1O4zbJEH@?1t(?T*$?{KPF%~LV;x>jc~MdLO&JCDM_c`C)*e8?%lF(XFr{VQ)Um}tkD zFu?88XMo~B>seBTj7k?RFXS-F^<=D>isFGK*&t+1SDozksQReH$N ztrO5~y`Ph#tuL4(2t1See=FQXR&?8ze*ID9XH8@;TJ*gh7Bkyxytn7dX#7=ey^{3);AnLw2_e-xW7@mT2}eY6c!VjDMD@T2i%}T^b+=7 zJ_74_-+ct~&2cHuV}Gs-$-Kc_BsQG0)AZaeH5vLmY38yMpcDJF+mQ+l^X% z9|L^U>Ajr;$>g7Ytg@%jT?BFA2^Cj|qL#S6M=S1G+pABILW)QunD0f}qAKLaYw>O&Onv(;< zET@tO!-ER=f4==*O1jnqw__;y(WtI&IYl%TMSPeM)S}BUq(XM3?utKVN3&jiBbr39 zke})>R%E-sB}dQ8028*Lal7>W{?})rGbRiA3Kt@=Z>IFOD-imO`T34KLbsugFirf`P@x?#3XB=7U7~bzAd-t>V&Epv9gV>IJ z`VO>J=MEZXx71bBWQEjZ^-VKImHYC(@B8TKXZ;4_3*^7117h=Q<_JzbvdT_j`<|Fu zn62Oih~7_t^)cph75r)3NG$D0bJj#z@n`eDuQ5EV-VFr)hyQbT(>7+YcDY$O5noiO2b^_^I zrpw!=4?E)M6fp5Eff)+exqOt34h@IPh&d}6 zh}skq93vXbc)xYOnd)n!Z&sisE$ZJnff@0r8fjO02xomO%P)ftZe5}KQVWGlKT z1K)n+T>CK8LHUhLeyl+*r>+K6ZM#tV4vwESOBuHYpq#&v;eg+*@H;7@yNE2N$-Ho? zD>nKxt}#8R>~g}2Zu6QcaK?fcxjyhevU_Lyx|QD#GqI&95Fi|D(M8^gjgaTdlYF`G zp*oZ!IJ4oz3`vsQN0zOm%c~=&evYJ4R2XVLU2(o$0Z(jy z?_?N6S;0TNMqhaov2Ybb73|Yo#7%Yxr|P8XH%A*lxVo50V>letC?%-AW%j4OyV+z| z`blp@rVX1$ZE9#cb3GS?7II_fj1x6-FxuKN9c>n6!Gb_(DryEh(rwjzSb@UBjtCaz z`{OL}S>VWb0c--|Kr||^K_pMz=#kvO=96;Et8c0UIhLRoHG7Wz%4U>q@^$;gIsXo! z{d*mHuj-9W^k@A*m7blp?A<@l*9jvFEqVfm7W<}T+Rpu=*yqE$NgU5YkF%+JDFh)} z5VY;Dhw8{p6Eqk{$rS#!+$-MVt5O(SGj1Vi?CQMgzTA200Zn)&0UmJ-A|YzP1+(se z2=y@URR_I8jOJ&)meCvYz|&dlgom)tojocq?f!zUULx$HIho~6aq|=q!+@0HvIZ5I z+)Ep!EcJ8AO=jA4v2m3-V;=yvaDjVv7GCV`!tbN47^-n-KHyj zaVNKRwgY8r`|iKAXH($)Im@k8CNPUPTyM!Bbk&e6O*=I z*IoX03#Pj8v^Z*-^RI^!4t~P5UTvq_Yt+WHy1c!LBC)1-T+`gjwGMj3;+OAhI%o_C zAz&fl85Py&-Iz>Q{)*Eo)QvIXG{Tp%u7)-hm6Fr`$uZ{gJKJYTwgJwDGrrgAq%jOepucmF-z0zi5f*h1os%ZpfoV(4O?RIKBC|?a^0$Tc|^}vI;c6@jR zdY5ETo?2dTw5rp&cfuXi*C44C)96&^}8G4jZ5ACmiKb?Dx_9h(Sj*2F z#LQ%`Eny;m4%zu>&36}}>NWcHeaQ`5w4E;FH1WJpYIXvV9O!kA)J0j9ZCifeGtQ@k zi^P6ku0e(Lrq$Tj3Xbcx@}n`!cI8BuR=7%o9l2T@_V!;w97pmf@iY!g;0Va7E|Bt` zp?P?cSIoP(lvfmNnPbIPwFz3|}#q2iO=kH9MK z@16R(E+3fOM|8aXz|XvH{|?D1+&GQsFI`#1>N-vD7zc-$%hm_g0N;#@dee~T2b+5aaD0s>tzxO!- zo?y+S9Ch@c?~n$yCtjK}e{~8A(pM5gV5B?hJI2i!FguY|9a?(UHHp?R)4VLS5!3N} zq3{NoG--M6P5NSnCrgH57|5x(Ry?}92%#~n4xKf0*&)>D)bS>y-K^6!u6$6W>+xmpmzo+)>x7733C>L&HwilvWJ zsUX}+xR{Gw(m#HDD@cVfNSk#BWzGLUS|Jwt5?pRx$}c zaO8tnlUk0okne+}>*?VayEV?+GQcPv@$0czcVTdW^3xb${~|uNI&Ey)fj@JE6>U^D zPpYeSWBf}bd%l_J2wlkOy}TFX%=ave=DoWRt_sQIN)u1cRVRybyVj3+AF1rpj)tZ? zftOl22u)LqA6dMgzPC;gaplChz6_F~h$HHbpjU@37X=ZAh3MmV@Y5oeif?4=hvS5w z^Sbn(RYj+>Ti-AwU+TPoD{~$H6r0SKjQQoKeeK@FgKdCNO+JF2PUq(Vf# z-UFMq6SEC3ujP}{yu7#d3H2m0oa)3SaMS%j%L4t!6_JI=uO+={s*jdTc8Vn&AM_!v zZ?K11{URv4dbvg=@SkoGO2%`7aj}j+j_XPcDHA5(U*s80=KZW z+TkW=4$!$2qxF_Dla6y*_Xqw9h(`D^*?#646CEEPkpka-3VJDcKfI~UnN5QUq+Ttv z+z9sdL;IX|Cko>l$(Ng{dh$}z{|3WShqJRNwr)GQwlLu5U7Iv&P{k^*pKs6CH27|>A3}S^NRCvHs*#7|ursHX-HpjDpyd3&T7b#k711y%NM@AC zF-2J1=EAgY3R{j|(Au-mj~!k=u|;h`PEa*IXA-hqJ!BzKy(e#Af@0DM>f#{R+G z7InP6w!+x{;J%D#d|?Pkw^6$_k;I>`zwC}%lyhw4SA2|=D%N|wzxQ(_le?4Tb>BG6 zgl1dmEiP*+>|u}e06Pb57!zW(mT>A>#2D=otH*T$XoK%`bw+>O9+uM9@Uo}*9g`9; z9ACub2xaQj!kO=9fX{VK(3(CvH?-wr?9CYy7%)z#r7Zg%6EGYeSIAvV$tVyCctRx? zxQ;(ESA56Ag*Y3Uw)e5aU-___Zi&^@Qa-=d`BrMrgRJ5^cf*`(%xub;C0(Z5*92Q3 zy~VEF5p6XP2;5fcN@7{3qKfuV=mDV!t^$Ztvo`wE`{{mKI#pgWV7gzegqnWfR9Z%? zPfu$?eXFK^A?dpdP~^^m@Bl+?*mwL#tvcbCYHMbZygR1LS5= z_gH^M=m0bV7PbOvi-V>uuP zZw$4wp>Odnp68N|^)% zK0HHvU31k6Ka`sNewGD;fKxc3gp&=w^sFD)&No^bn~saI^6MvKA$apRi@f7tuOwxh z)}d?5!RjV{o36&Y&BN5~YHJTa*y0WyMrzxzu^V5q3?X{e4|6md6GC$hWpLB0M;!Fo zEdicNRq~2-`PCLBF}a-6ai$8sF!~oc-p3OATT=AA#_aEWV2JrnG7cNksikUP!9dt% zv*$#=v+1ZUhL>pVy|dNXmdX87R~0=E0Odrg2WFmr^O@?+!#l<*aHh8iw#y_&=&+1R zQ}bQ9FzJ#g3jT7piNJgpctNcAE}{cCuU|qYwUJF9ru$w}$S-+YP9?#WUCTZ+sb(Gr zzY!tUcZFLP@^4Rl_AAY6v9DKXJ9OhnI(n}iIq4)hw9U6s^z^px)JhLB{znkgJKGJE z*DR^`_l@?VBQD9Ld>P)+j45jIGP2xAvw!-)pk5T}tw(aexZ;{we;t)QX?im6${MU# zzypT*yST3_hD|22)VJCh)NGBcr>6z>7LZ;y*bJ6q z>EGbJZ$rMT&@$aRorh1hcCwJ=R}MZt4YM4@whs%x1f}ncifwMPe(||PN00eCcl_&4 z>FdzbU(#BGF(OCl_gsod*zROCBd(Z= zhunMz4~3(4Xz@?dY`We{F6#I(ToW(V|Ljo%eK+q*+-r<3)-8w$?k%u!D(l$&&^wW6 zaF;s2(>N1f3-?)cralWjWvfuzq53t|(Yo*Ds6c03gD>C+Zb21rmrB!k$VJ=}?uOBi zI>J#6fAdkjf93b36~l8V;YcMTd&Nj`8F#C%{JO)`BmVcvX6A?oH`4{yDVnp!h*{sr zRTyxnPc|n6G~#AtoLFxJ(8aZSt=Q?yv_fq~R=t;(-8mlH57n+j7gN*s%*Ju3D1)5x zU!wrI0obmnV@_43JOi{|$K8Ei;z2yU(K4ClpqBRBo5K6?Q=@VWwreWrVk_o*(^1DB znVFyPd-BD~)U-6m7oRe)kfJ=Rukn?)VhV51J_URjNa#!xS<|+4_NGmYfzN5+*UmSS z%=p!|ElLh8Iw7CqIfxt=d3jTL>2e+1Vpe4eZ?5B$IJQ(6`&v+Xp}65Kg!UB&UcT6U zC1b2=r!AIu;gq#1vZ+l7`E{&yiV)S#yzlL+_y!BNm3-S<5DJo?N>JC4*v|nBJfXck zO1$tGOgzC3qEYRsu9Gt3-a zbO|H`InbQ6Tf!gVg!w{)=uGFdNNvW8^EWMW7f8fJ;Pm|hrmV7=!(uF3DbsZ>?LHul zg|I5Jwr(K3?D=;?X<|=b4^&Z|V`GL?zFX->zwop52X((8^h&7urHA;%G~dhJ1yP2d zw={S7N#9d0cA9aE_0Mw--s&7uLo=AA)?9fQXDOd^CtNkaI?+d2rb<=6=GC-<3s*7Yr~ ze)AA0AjytQ03zu;6<*y0>7d_9pJxc!so&=c$A;ag(NKtU9#N(`jK3-TdhjTYyS0Z2ms1S30ac&(5w;gVjv=?Ai&!05>xg6|NVTA!`k_}0^_8s~s-{Ib`|ne2as z9aVPSelN07cq(lddfy)rYSSn_Ics1cUN^sT0jaB4Hj2))F%Nk}!hdmhluaG}Z8^S6 zB2|4OKYF7Ssb`$J-Px7$yvUMN8mXxF(`Q6HcUjD|`+D(4!0J~6uRomh3<)wEJ($f0 zMqCIWDrdpxMc2s^WKCu}|NK{Hgs|SKvQ}GU4(* zeXlJCO$y!Jwo-+?reWLpMwJcTnTEWB=WWSle1`{S7wp8SZFR6gCx7j1k;(m}{Pf6k z=Y$shnA2dLm&Kd!6JqbGRy%CLKKr^d;q?Xu@)gQb&70S}Rf3_m+6>0X8>7SkUP(vJ znk|$MY`>tH)Go>d$-R|fND|sTvCiGPVh`&1pw?CvC2nF6CLPGT9G;mY9vV^ZH$Cka zw1r2D7QSqxmKmjaXcpE`&{{Co>D8`bv^mqcPfcXfih|)?g#XK|^h2QmU60P&`Ugfj zV>MhZo_BM|jvU|NkSf|4w6!yXq<8KhtG}nhiS4KUzS{E2D#I3jgqlLPaPJj(SptX+ zf|}6ZHtJtCu^LgCi#AQaP-A}#3X!Ls&<4AZ%O*6=@H3L7;U;}=3rsFxrhH6+OYnx6TZ$(=nZR3plV>{ z5vUK0-i_K2$mTI8jjSC43P$_k3*x@W1Zp=2Cy0H2p0@5ZI1s~9YZF{! z-l%JH!46?lt$huW!!VS_O}4pRV_yDnh<}u+#-2@Jl-Xu-@8m_sfhgG^MFhw(?j;Ub zo!SrHSSis`3<=jsPrF5k9xw@lI>+Ds8v+c@YtnidzNcz9G}g3Ww_S$0hZFKD{v&aR zz)c2#zBv?ruN<`@zrCMVvk9DNc=9-vSY!tAV%M06fE@j5fMU(fK-6x|c5!UX0!;Ny zd9kciNAQdL#;(9;>-85)2QK|}bJ7F{ulTM4Zsvj3wJ+>4w*mQP{K}#{?MuR z{;}ygfw_I*Rj`RNYosynNW^!$u&~m?t!lz|XVY^p(~mQrF$-tX%JhxR#V>)H@Ne;S zrtid&uk!-|(WOAxBZsz&SW^KfvecWY|K5k*0y0xxk2&!BTCKE(Vo%fOUsSGM$7sTY zlY6{T58?}({*xoYb2Q(9WT)fU3e6u3ZpssEcfj%GA`U6{-ISs0YrI_qfY9_xR z>`oWUg*ohjdy=<%CmID=H7J{Z8YOfzmDXMdbIP8-LsIQBVGBH(`KM7&HU2RDk34gF z2e2d&$D7L2f~Mjwqx_$Jb7Y2wVp^51#(88yHTz8XPD?!UX{91Tl2q4Ts3FWgQCi`U z1Rbo!LFbtck-%BVz1ab&6rsX6WaJ0Z2{dr`*RB7;T55ts-G*Q4Rb+(bMFpQ~q z-Ue~HVxEZ`q`$Wxkpr>}Rmn?$ZPq)Xza{-^>RT!%;j6*o)&P)@z?PCw2{uJ{2~suV zK3AD=gyNUN;pq^vY+btD(ujm8mE?=)Etu^0DJjRyzMBn! zFYFil1_{nc#Um+<5|#Txs7pdut&?*ou=nr5?`VI$`D zzp=Dvy#ohLYv3j~&#V&=XQ1obUlwt|lMThxXa0T;Q*#sn)zuQJIyJbzm5VLs$ELP$ z)aN~r;O1|D;!W-u3)r42N0nIhh-BE2 z%BXIW?MuErj?SUr!qUSS)S&np^!7CWq2Y;>?t?h5y3g#t24>BE?<^MlYRvWua(;bN zV-Q{*^b%`S@JV2A`NgH&_zv}4b<>dL7>d?I2f8M=Kb4S%D!*-$?YEGOZB7q!&x}?{ zl1wt@_|ihFi2#iUULc{R3ZyCav^38Xx((?_a*K5rYF$QSz3-ipqVf_LxkMd{Rl18A zZ5tCPB-y}qR+S)EN|b76?`cg_4NI%H;@4gGx>_K^&{oht`|4URg4L{ zjSLk#T<$i2%p8LyzUFNy2G{xUV2~uCq^EqEUmyePfn}>B_AlUOx+)ln{R2%l>&E+2J$rWw7W3ks8j9d{CrQ-p)vxUD8edvm=LvR=JK>VLLwyVtSgZsDt+% z?@QJIja_t;KhkKH>C*JAiTv~8TRrvW4S zO#|%gIc3yh^b23FB&I~eV>XnrRszp$eeZP_+~s>rG#AUS%A+g**+hj}X${G;C+ z&CUl9H>PoBozvfR#mi>Qs(P$PaKnsz5pu3{JbUGwGu+T zwAXQ0R3-$-J^`N|lL;tf>`~@1b?#Gm5SN)Xa>E3D1#o^vL^+79IQz9`>y)48mpIN> z+km}B1v{IS{4?=`J`kk4VhmAyE6QL8by&>te=2ar)4@gaSnIY^o z5)F`Y88c34zAO(~e;@(NzH>&8Qva$c+k129 zF1QvQejUEBeVXT2rjq|qEiG3TSe8f5VqnW~Wv-wwd!m>Z>O*8n;M@9KJUspLK@-L) zSgn{BULK*g zKLtXh-nU%24ghTjs#_g=27$1MQs9aG5Pfv!G!Gfjf=|J6K;sM7r0*ZzGB^IcYxL9* zZhR!%*{LKa`Mu`x%7skzIQnnO^oT0CR(`EGK?^bU218zd6|qbKd4ag3Ohwa>UyTbU zm`4(U8?}84(sRDch0;6ZvS$1?ka#^o1;X9yhMxck1C&MT=7F1L~Lwssw`TPDOkCGgR2;$L^) z2AYA!>NF1-0NT%GjM^mF1{AJ*%-mhmOuG5F z71S{$$TBLeATTT_4&JKk#t?m(Bgom*=RD8rCi?#<(RneB;xGa``N&wY1TFaHq-pjx z!_YXLSjnYQz^6>|=P8Yc+56_Fu6pKJk1diz1#e#AKb0b=Q%ZOm00H7V+c=xpqhsIu z#u6!yMRe25`-TPOW&X{|r;ek$OeJRxx2t%$#II#aOqsdNj9J-iYV zT2=|y0ptu*udDW=17Ci7#PF>HOK%ZzYSza&wAQKbAE!ll`1X;>ok;DC5~-av0LRN6 zSZX>9j;k+d1GcGdp1aNJqyEnOsnxb@kIj(M4Af2u^0Rl5L&`Af3v=&U=R#dzH{KS| zKx3uT>*zDO)c!YcDe0vSt2;vE&asZo{)pIjDR)!o{{@^Nx5I#^=2hd|pVKOHp{N>1 z{IqlO><*q=ue-_?*u@_$%QH;nJ8f4~6uT>}n{|Yk8^MbSVo$B~ zsI(C`wKnu}+%Qu+XBQHO%!9l!+vP3amY7b~T@8S{Y=BpvtaY*#AJB z$Mqf>O6>eL+?arRSy)TBWxiKGyt64|2uXkPyyr1%W(eoh-@~jNyK9MM3P1=WnfwlQ z!n;y~lBu=PG%8y6J^8$=3DC}2c*01nS(HZt6%K%oIk4hMolOrcP`~5)_;aA(T$Gw6bFY9132NOEzHw7; zQ?;lE@|;#@pS2N7PlJAx&H<$q;7&kR5t2pm18%@Jp`S?_Wt)ZCH-5@CDf~=HcH=^i;9yVjQ2? zdmDc7^UsieX?xSvI%USWTkcx^g8ROrg3Epa z=SxpZVbVJL6Za9{K2q9K+i0q_;5a7-907`6&jl=rHFK%DDzS1zT$Y22nKm1rJYt$2WBZ>8jS^K+TF9(1oZM>S(@#-)?&IA5lR8FNt)g$Hb#eRB};nWrD z{A2QB@1wJtr`&5w#qp;mR&z$ zOYUOdCNWQl&_Nd}TGd46UdxvG6A&dq(=-^KH<_Q6tZcnj%tQshF3p1bym zp7p2YI*@%-{5hVvTa;nAv6LQ33)$^crwk@2xk#iOm#49&n=yH-drVx0F2XjJXZ6ec z0bOqkE|mP1t<3WbLl*M&WBYo`SHWxjd#CjnOW9xe<{57@bBk+)F$ z53HmEK~-&;1H-bd29E{#5fjh=+W0E(S&H!3HNiv5(7|5bnGH9e#d{y^H#(tc?32$CV?6R+(-~{^sCclx@A5$6M?`|8ly z<0!GjHZX;+as)|)m#l0JLdT0K&&ub^Mz)f@B1!3;ox|{c-(p%v;HO8bV=8lnf(kJ= z9@g#rseGS3Abp|l5%6T@t1ORU#ll}{k8Xs;_)fN(tOebWl${5-=72mC0Z^Tjm(}ph zdb>;Kg~2F{cJOwZaTk2Diya`EiRaQWr^CCDzb(((G*;7qOat^0s{Soc=krz>u6}m? zk3`*dKZ{FIIOo+J%&A#AXTBCWZ@pn1Toyu&L3t)iYEO?1A0u z2(8@*%2a{}M~In>ftOGFFJ(-bJF|)>TJQcI)E-L$i9jeu2+)Ni5II4K2QSwK@wp zywv43Zl;j!!OU#}UTPKA&$&<75f5a@898yQ4sXGu2!#He)7{3|2L!|7a1OV-S@mC} zr=lKo=oMT+cK&`v@;GLb@v+K&0!O6RT1hmTP_!c*!xEq9F|1WBd_pTu0y1R6^5cvd z;q6F9#Yg9iceSnj=0K7AKeh^lg4dJ$+>0|C_weU%IRRvj0Jy)tTk2M|IXJbx*$#<@ z%v%i4d-Bd_7={8NN)L-09D>zD?a!1d5=@We`6~UyORO&6uXPd zEQSgH#Jy%Jh3_9p_iGl6@ZSG_e;45WO1i5-v#DPzj?srZ95yXvdjwN)dZ{`@WyDK? zlS{%%=|9Zc8i6hXIxva0W@P2^c-j$w-zV4nJX?8HgFxon!cW`Bsn)vT>NIv~%7Z4? ztXs>plLA6GRA-n`>TA#7O3GdtJN@o6e7n59ljKpU^MUmOz;I@IiDhpJ@9bwZBiS+#AZ4uok)jbl1Y0vh=(_3Aw7L(rQsY6?T%b{B7XrFbWU6l~O<86{)-EsclBv ztydW9*SZZCL*-bdQ5iYQ}a?e}X78PVm^Q**+_4MF>6o z;n{U^M|LeP>ta{Cd*RF6z2y7`3P^Yn;yJjWdbeW55r06ElQ`n~g7cif>*5&M&bMI>_EVUsb6-jDOg;_3|P9ZoO5c1*t(v8x?9JS~B* z;BNR9ll~I{FM#s9KJZ)Z4CUf<9+>s2F&`MFTPZFa1w;WLyAEKEkbvnN7C2Bccw2^F zbIM6LnN(-J2@@GBo<# zQsoI&Zz*~rP-nCnxVcddZ=xq~`2qg9p!#(9jN$u;&BCg!+M#U0ik3O2?&3{+GUqpc z?Edm#!#J(-a@Uy$JB@YTukO;=5BU_7n3mz-{%zgG*MfJ4mYvXtHGj1RlKeY7%oZKx z`}UyFb|TE8_IyzAkD;nad{M!7Z{8K)+fVpcQlSYcf5sjy3DfgdAg4u^=4D*W!QdT( z%F?r6B@fhL^>d&t`to>!hFhNXrzX|hf+e{O%F{s-61W{s1aB0raYij=lXc<1G}TkE6Ida@-!)2*psDKaUmgRUg4xKW%xhf z0)T?mvO8X21r2yU&0-P9QJq@$<*7hWB==4E3}VnoR#bT(`bo zN?Gm7S=HXZCym|-17gP7k6Y$Fd%NE9T$^_rm-R``(wE({8-(6-z7p z(^+wnVqa{Pf0&BxwSoH|TjaCWY<9e5dGEgbf(i1B)i0k5+!tRsO?k~&?1_&yE;AmV zr(-j%Z_S$9FKVUH+|%@Z5(pdDkZGrYygdoBTbRXmK%y2XR0Qj9xD_(fqYjiO|W|ZKEhvXlq{1em^X|VCI_N z<+6N;ic){2I?W!mJV1jqWHJFLu^_QQAAb^RW0Lm+nX>m`7yX>KUN1V+*Lc6n&i$?f z@WVTx%qJ>$(;AH3rll(_Y65`F`pkQ~{ZS`Lw5?%szeoMCz>O-ZD?8|Lh4J(7$QP%7 zWS-Iw)88^t|F@~F-nSe)>X0%g>3;nv79`pU*R4&G6%LhgRT$bXzW4S(=}fYjtdb#_ z(&axhNF{lNWAhB~s5J9v{;E4g=;Zsz5*0QkyIRSv#ILG{LC|n;yV7*Iv{P2_-xM`@ zSbNU?th5+!6oy&O(CFJi(ep>1XfxTx-r;ifX!%Al*~4GxOagE=HiL@@wdv!wy?DuF zld(x+=tPer(;&lKgqjJ2OX%}>iA_e}30t+xy^6UW6EdM>xj)2JcbLnFThE(wUT`?) z<4qu=c%6OatD)fe-WLeQXbmi9ysi6$FiTVc@3=fn!)$xKmji9$6o}r<&oqw=2q@b~ z^^jfSJV9Aj;kK zXALpePnd6Wux@eRS5_d8;tMut5dfpgPSbYv53SWKsz=%LuDQ$8nqNQ>@7OaE`EbIp z?9-b64vhJRtU=GyI5bOEVt(hRj)?5sLIL48%W2*Dzn|AaI8yByhJT!|k5nw}{AD?= zu5M*dSM$W}P)4dOXx9Tu4Y#HH)?Y9QYHk&`%tK02WqdccL2Ak{+CR$^=;X+3s#~}J zOopi&sol@%68JvVE_g~mLD2IS_3qcRXZ|$k#iu+IL~Em84oL63V@#43$@P;}_sAV? zW{%vTmIrsFFNwGMRN;(<&?t);?P58;d<+X-8(W>-N|%e+UO1Ub9=(xgMyPSV^ncoW z??)=UKYsj{w1k#aLW8_Q=$hFj<=WzsO}O?bGrCAgC1hNiDD&Db*Su!Jb#2$)WL($Y zuJJk7`}@=PU-*3dlH7C8c%J8Zu5+G`r@8uga-hwNwO)UI$d8%9xOSZY#2bT?aokn# z!>QIyTC$J9=vdTS1Dwtw?K(6)SAq{ByIlEM!@Bq7H3%-tw=CaCC|4DJ2KQg4!H)I+ zBx#wM$=2Whp9vQiEczcVa$^?Q)vnrNuNZSTu4jlyOe%C6p$Rrn5ElaPp9rf3nO?kG zqsvdbr*p!PEmfWq@{T-)C7wAmL)$w0bAM|ynq=)BMX7`~MmnYUK`c_t*^T^dIgxD! zY4PJ1f^Rjh?bO%BNz+Y_?jPy5pb18Mm4itK2jyByZ-aYPbA5i((G`0&rZJY6e(4~j zDb67Cj0XsjMcH{4WkuIc<$$yQ^jda`+S3f*U0{Mri!72rl!r}M9k^J<)Muh_sPJO{ zxg##3PcpV?w>S{Nl{vrN-vV@bo6Joi^Ue*3^vYf9SR1424qK;9;z>#waysE}smqN& zAU*@$M1VXSE@H(>{R88O?-D;Y!qMj>^EeLd;Q?06)#Fo64S=0STqiEX~Rb^CL%BLQS z_XPqQEY;t#np>h~C~tbkbM}7J6(XWr+$gWUFfHcc&Fg1wb`{!yYzl6)}_y%nMdd0Gs@h_-2#Q;oW*vVb9<~f z1!|1x_q3N3HpErlsaIN_nOv$7;wMN)FwnV*N@)~i?FKh&US;4OHq<{xwTw@ImSL0b zyySgyOI2g(mW*NVqc7OP?edmM_JCz)nOUS+1VhlShV@r*;BW*_=@Xqfe4 z^}-Yp`V++cbBvfx2F?Ukzh5bpJlm%Chwu5f)8}w!+Z0bB^b;m3JA>2b!TrlQ(hV3- znbF)e-FRAI?t)lHesoUui*cV*tHyKcp=w!0c;SZs>z5k?52we_PV-xPl`E8_c)?no{~+*egdL}^7mRI?M* zS}WO0GQSj^8s;>o!$~Z1-zs?QL7?Kxq#N;vZ+d{J zKXAm48cPpEC-T}E^v^1J#ka7I@t(4L_?q(XZnscs-?*LD$d@)Q1}>moe9pF@eZ1+J6 zuwy&@0Kp*$RjS9?q%|OQnY&sYlVI2Dd^*bWHG=EW{PUT1IY;;&LmusDfcvn_*KG%# zQ}echZVcd_zmh{4v+{%A%*%J)ErtPc9@ zUt~+90n%+pOszpK61SX<9$>?YDRl~LJnz!%+q*DOKnel418#qv@ZiDoW&Vszkp;1= zcw?S8{a#nm@VbiW~(Rbl4nZB#70a|C>A{O~Y0529Y8pBdw z?LFI4>;gW@i)-I#UnD|xgi~>mAe&>mSAwiorc#Sv;C#Wf`MkM#?(olQy`pZGw1fz! zbY8j67T%AbqC6w>a;gW z@xPWcffX`8yo>cm=2DUZl;(6i{8|ndF>52A-kYEBbpz7t>qo_ujT3IwgWz#;xk_PR zOSUzAyG`wgYMh@7uUMS+{#$2Ub$_V_oj1em+h6>I%5O9;pQBCxs9{>h&2mL2r|Eg=3naHrF>K$S=B^s~o8I)WLvA06#&K=f zApgOtCKIDv9*6%e_o0cTx8=$g_c$52a&p8m>dTI0I__jC9ty(L5QqtO{#C!hLkAGF zHyGGGua`0{v>Fp;J(*K|4%};+-cpTx%SgbMuf+Yq`eb%}+y=B|KOM!xAhfEwvAYKi?>tzd#x zFI-mBah6;V=8eD|1wNkR^|$2us_E{ zIVT44_%sbrx76s2$slJ;eWf7dm3(cCIUQE$Mk270OVGhG@Z4X{Jl38w){=a+ZSuzZ zOc}Ce^H1Sj{%cxQgRb3aHg#h0-zS|eEAA-;&oaymoRlwBYn0~9n0u#w=PBkI`mPwJ zN=S)QqVC|_fHF+D4!pQMNJ~%bzrKtb9@+WT$GU||p}u2`DIuXhei+E4D`$ZlWSSqe zdbjMP118sX%bBfvL5-lHv5pG8hST!??ID8sKQQR<1Uc0YF|@Ce3*&rWC?0xOXZ*?> z)^5dW99sO#;|wAr2t6k`qd4cc;QyAimL*7hK^%xr!0aC^UugqE!sieri&IXK!{S`xP>+t=?TxVIJ% zs{MYPpPc&>aEIwjW=#tC&u1-x6u%~>3uu#-WHli-S{kMc86PUocwI5m_2s};b!_Sf zqWVu;5B)tk;<<&f@Z`H-xRm!`E2yRxLL^?j=5;q=NoGBP8`Jg{Ik~GPAi&ac>Xoje z$ub%Lr;_6l5g{C$>S8$cDLi-qF0w4Kgy{})>3u$KX!#t*=DGHbxSBCmH z``BL-WnoEDF~G46hIg0QuN>tO#^M8wKG+Ihj4pu4zS+X*gwB!{Qw^IcuWl{3%4h6q z&rJ6Fcs0f=`pkMY{zA2R9gN<1^l%;3Q7hs(KvPKP4enFL2y~M#SmJp%*HrL)VqTZd z4meq(_Z_Wr%^6}#VAEqQ%Db7_cd!RW2yQpmO=|4-lw+8YeQRP9FKT2vo%mrO_&`d{ zJk6S{-_Nufk7WF~Dp#sItdJ*{x*f(Q8W;x)Y9UHksJ*?0cSs?N3$V;>Hp?!@CA$s( z9?rQOQ}JMX)Oo&xr9X!p=feL*6nlA5+YQ7(AgJ_rI|7@l-0eHuFTEfZK5q9c@?<^n zC_a z$$tJYuS2i+a-G7Qm6#K`wf(0IKqgWZW4h2B(b(p)AF^RI6EvJDYyWWlDQo$8Tf5sr z#Cg#lwlShLjcJr&SnS}Hq_#5%iruE+-k)9Xyv`EA7is*8Y3?1_$)eM#{h7kag+Iqa zZ;8UBS1R^qXjchDX?1?D&WU)$u!MfhRC}{%gouDXX{TTn!~ADr)a^aVAvWHpxl~*s6cQ+_(`hvo5#8;&?+p;SzfP>hIjLaNXUqtv*XHQ_|Q; z#@*prZv;hgpWOR#wLU+#v#1^MCVau%MZnubbMw`j_-a*mv7xUIL7kZEf$MG>D>hWP z)9zJ7sogQvTC`#q;&n*FI~0UAx(Rq&RpN_k+V#Su>Hjjeke+w5DYug$UTY{g!@g0P z-gp25`+v)vI81GedY4X&6X}Ox^GacliKboYid>_b`VuE{&Cg?wc2x@j$I1n1I$ETm zR9&BdN3z6)vDOzu+pP~Me%lp==@;IIW{R_vjpo^UsVE=4++vBU0Fxn$39!t&nqX(l z%h$Dov4YK4q8FF4rW*fldYd2~x{ekVy`j_Ata|yJ$v?qCyy)m>bG-RdnqRJga%fQ= zy#t0MUeSf2-~Nj*48*904bqOCr`_^hNWAs-6OQ&ug~v1 zM)BxCiLVG}8p@#L&0HQ>%OIG;;Z_aKA8aKa<(+^^>qY)VEK9V>4q zdOeYh*nl+}*NjQ%{b%AbZR_r3X0Rk}tz*H`{JvV3OGF1+JIYCmpl~@`8>6kB;kNyL z5@%;~QmXCq{F4`uKW#CkH~M+*gy3@p`tb(zaizn{p@$l(+aI52-?E$1uYItT9$a9$ zcV$cL5vnZTiEG~Q!vSojbT_(qF?M8-DIw3EzwK*ED)XNTVtBXCP zMi9CcPfb&z!$w|zLa@H&5F08%#k4smEFGZ+d%Hv;y}1Ng`4^^5wH#7D=Ui7X-tEUH z&JCbCf`cAKWCmBX6jZ35K}cYqaxS=&&5J9GaG&u3-hV$3NUu#<>I7LLRW>{uh{y_W zep6bxvzvR54-Wd*uj4MEGDPARc3|Gon=t+_a$W_dFW*jlT{2;Z z;h73mg?TLD=rgVYm_bQviDO=Ax~`G4YMlVfa(yeG5}eXn*vdnRa7z)ZZoU@?ar(Ufdd z9UY=bzqT_KAg{V%=Q{i>4Z7437ZiAw;0Dr?dH(2W75K#=Yk$t|&>iL^)?-2!9>u>- zH*MRHWZmtE+g?Un$v^V?6`yOPA2@R)(3k}4Jj0sFhf+RUB5tN^Ul5UL*W$b?2W8@} zN1w*Dv)NWhdCajtjGp{P0~QmrX6&?3D6?q$mbF`$i*||fOdkJ4zWxu4>7%cg$W>O- z+hB?9u+f332j}zK{ePX{X1=Kh5*a>1{V)=+KBJ56_|q@8-n8_jzp%i%POqw2es{D^ zN2TT6Hr6u1ntiNup#_2!or%gGk6foc(w;fLjps8o9I$y?frbuY$i}R>yy1jEN?ynP9! zW_gZo*xkOpwu8!X79TNV7M^~ngkRxUW#oGYV@&7QMP@|0jA6^I9)766kl@RM+JPn7 zqyEG}<+>!8zZsk@JQC_aSD3N1#Q|dV{AM zdPlS|X(KN67p`;geb}D%%qwiisu})eV|7SI%}F|Wl3+AhXI(?E5UY46H2 z_Rrs+=PdBy_gI^Gua88?wV;f2UM-^axf4#Bj(uv^B6DNRRf9!6%bsohJ{UeE8PiZ! z)f+r{b2wYkMh&wHCT^BlC*It#gRHsN1|Xe_ZEP;@RxnT1wddSx{F;XBUXLI-f~_Wh z!_N~fIh{Y4@H)pU_^^j^=aPy78Ta8UrndSgf*1?*@w#tK^ZYvNV0 z4s6DYzs|PV0Tbh&40gE8$al7@e;Y1uWV>``DnLW{w{<}4zrM$0$Rws;Q8f2Euzl2<-?dHSKSe-K>&Qo&k7H*0vfLkaDUyX-_<=l?LSB{Imd+p7?KFOwy`+e`jKsfUsl!}tP zpyDUQwj0V=hjNrDh_(#*q@hw4{ups#1+O$c^Z2n}Kk`*XOVLP|;=|V)(oi zog4@J+18A7!wKhWcmgQK%^PXFo5S3?58$cBa1SqLv(a}?DhtgLNEWoVQxlra-=xs3 ze1Arp$;F90zXG*&m&rQ%{G3uVQcsGrULWedt(H&=`)iLjg8XRJW?w=Wl7ppYKUu4J zN*|IvwP&SIpYR9*)GS3`bcPpvw&e1|z(zEUc`Eg=#1%5V3erSEPqFD zwX(({nc7+FJ)wFYT5i5Io7SEO@hfdnW3`fa+I&CXWO;3o_nI*PiBE617LpedBH#S)PabRk%^ioi>FT z6(_yh*48{4PM>oA(|sVpTej|3D%`!IUM30G!=TR;@PFNZb9vX9W$u7W^Uaz(f1@}m zb2L_QPiywZ7z#k_UT2`z2-s;`;Sl7+pny%p<8c&%J%8P)E%*Atllyjj3%HcV)=31} zTpa@00BD|ty!usAO{Xl~4+N zH{B@zXU}03LLw(I@d2yB_1Wm0lsm-Cj6uYkE2MpC%g~f_$TonU9jqv*g>L0~7WId2 zvMgl`WoWVX;__~YGV2}_pES3GfWFe6tVyrZyF-zix=6r88kcvIkxL+1>7Z$(;&L=B zZPKE5<96@^4SP3E&DAqnHUi$!3VZKo5GP?Rt&?fn%K*w*>~qJ3(u+nH`CUre2fScM z{f7!4_0II3giRX{5icESZMhH>7MBY?k-n?GKWIMvUoq^i&yQz^PZ8%=iwO~bzYgO_G>lyU?jI3&y$}9ic93ij(~6yC0a-!m|J!h{)|ZXY)TfOw3JxAN8MU`=_Z+(EMU`&jQ)zS z=>SjGw=x6rYDLWPxTve|o*2CIS8khas?w9wK6a)?NaeG~JpKUS>heWMSyx29yAuBo z_&$0Fg(x3`8$NFg5>a;|A9KcrLHy%q^mLrlFvK{CkvI%Efed&N7gx7xkzH1^J zq_AXlAKeeF&WAH4ggrYH05T*vz@p1}8H$$87ZhLJ1n+Z7djL4FF5z|~@-Nh+eAZ0%7sw05i@Gx}%cZMJUPvl1fxVnk6p-Fh)T5dqBFDTQ}_Wc`ZE zD>bJr=_tDv^mpK|Rt^&?c6?g|uFFW`wPMDiJUoQ1%Q$I(Gb8m0AsgcHDoz%CqeaV zEcX#we;Z06Ms;RzJ||7#fOxW0S&9(J&|nL ztBXmV5ZNqkhaa{MIW4!xyBiPDU6uU}eCw~uoU;Yh1vx39IWGZLuNS~wC995FLN&jw zC006EsP05r#*YcIvCw-mOE?u=_W;)7QK9!nv|HE zv$ZI9-xCVz95uF$E{5E)Utscz-!G|=8-2uj%RXOs*r3H=MO>?McVJ5nj7BZX;9bDA zW)}0{=DV!+Lh|-YUAEG8tL39vGI$#V6_`E6B+n7*L!!+uym(*D#QnpPIk(Ygyv{^9 zD#woKEc;W`BrAo)`*k0+rpB35v_}8mYv5lsZOka?*o^@%Hhl2RDTwTg{oW0LRvVCW z>Kvy(7X6wzi7DsvuE+RMZnlMLk{lYZ{ydS1m1lU{06_b3%=eBmltt;D*w(nASrgu5 z9PhE;R$iBHliaQ8=}vk@ywYR=wnyQn<26x1sXQ$T#}yMAh%XHwoOvN!-x;=!gV<-! zsBSG=_!Y_<9`rbMuAREc(?HP)m!A-G`M?9l z>JCfd_gPi#q5-%r1CYtSb>wsN3W!)@@$j~VXIIO&@YJcr-?L#&jIQN2^X@Pj9k>#9 z{y>HgOEgWTyhp`!k;=Ie66y|(H7NiUR~856Bxah`x#ig9ta-%CBc-!OKCJ%5e}e?% z;BVCc9J{%;DXT>PnC$&iZ9|L;mq!4zJfMt+1#-QA%UaG%w%z)Ge+AHSm#Bc>Tz37% zHXheyjne(1ik0UiT#BkQ_gJH0h*UyXSk5xX(ZRCL6%!}0zi zl_6(`dD_*<8pB9@pS}vT{SE-`bpfb^kR%%?nn?hF=k21`yYsajUjK~OG z+Vu`MW@zo~3)m4ys7%SkTw7sHRR$=r0GSg2c*wG2)0sjnB!zKPfT3=rc4=6Y2bw|W zHdfdm`4q;!C`6Fkss^uexWDda9(ce_jI)yfh<1l5U~J#28#ATt`mA}EV;4M3?!z1x zPu@U^g6UDnE-hRz&%te+(-TE}7#u_}6 zY`k_^0secFI^Br;A4SDSjL<5h0emdz)=CsG31saZ|NNt``vVTC4L#oiG0&e9`2xG$ zt(hfqw)#rLo7fi*e14H{1EU2ZMTMM~_0|caW@}vDm07I5M=35yY4^<4BmI`^)*j*; zrW`5kF-0FVmGXo3o_+ug-go^|*fj0x@5NbRo3{e=EW%R0(8}9Jih4tgd0;hPYCy4w zB#`$FHgWA$t;pEYw&1$ojz*UuEoI(Mqnk!d&gzJM+DS2uej0Sy0aA(}zN7gES!e;J zyFU5bZ(enJ4=$Ne+eNRI6{lp(yaCOUIFGktOdr;rcBb<*Y&s;4P40%##XOFYA;x76 zYOpV3Y0DZMl$x01q1UxK-O@8{FjXXTD})LMZr#sgl6DmePKNSrz21X)fd2$Z$~kVT zNxa(11H;_fu87)DiDJq4UU8Gn6Sz}MmW5;W*_|f8;o{mV^U74PV z&pXDr+llEi)-`>dIB<<<9^EcP?4=6HsQ|> zmAlxPmR|E%o9lEAFRtr#0ga`bNZ)_ap7+Xdyr5M616x=h6JMozCdXPp*r98FrsF%G zSThB$QqZ zftkzFP{qf_w|eehl~^bo(Nf3)%mR)pHLmvfnRMr><@;jZ-jzd}3V?L7+xZv4T6J!o zeYD1R(dh?$;&bQ;gD75dj}}*06MJudQw^ch4SR|z6-JJw!tZjOTuHBq6A}&1*$%Xp z6`ANMD5L7JX)E@19~e_8W!nCpe-KRyi(_lsMz*% zzsqTY^3n9*91qsawxhQu`n|k(Z0D_RS(}v^TA9u}=~KxKkpkq#nei0IE5{Hfsz^*6 zV7IgMacyk{XsZf7uT-gbPvUb^sAOxTmO0zA(dhQRFT7|8@Ai%@g40%u4&7UdCzTYX z*4tA#=+3be*6Ym=sn85sHq7r9ml|wA0WcyMlc}Cu zU?vnSsPrOruF_fJ(hWCs?e*aQUwRR@(dCMc@XpLFl7=M@mj~zKv*i+Z&ZA^ z_r;5$fkK=6;M7|H%zQ{v;`!vVDI){b{zoGsQo;9u4t-l%hSuH!B?V;VsGVhSt(3l` zyLP%sz}geSS&F`JOJdl;<1ZC%xZ0FvnJd!A0uwzn7==6dpajy^iGvE+jzOiC(#)6H3!suPMXfX#=rBLEAHZV0JV9Br!v zC#PU|Ho?(bct<2iRQQpyr)Tie450BtDkuBG&8SE3b|k`D2lF~(lG&8sdk0z zY5p%QpSfqRYnQEZtjTR+@OJm-4@T1?q18iBiw2@D` z^S=cRp595u3s)`+4RI}n^rTlu3=iYL4cNPTRL0Xe*0yi15Jgp-=R7}Rqxux1E=8l} z?_Cog+}1uYl%<~NC@MpV)zM9&NO5V8UCIi8Ul(?$U1t5oUdu|)97JGn@saO>W02H} zLP=c5t!t?v2+B=2ID)fL8Fe8BF_0iss%&~9-PsG^;$}nn0ztGx zR0Axaa(8##vfB*I)fsTFf@efM6aV)6{{$aW{p;bJ>jTf#pennw=-k*PSl5^1I$yxW z0HH4O!wc#S-(r8?b;r`L$Qins+>gOm`DhuMU{OMM1i&nOsX|ZI8hg`@W4m_Xzh%~N zAh@i3eHJ_}ATg*+f#0h#U`ZTQ3(zU@n;#}={O}FiNk9omCABnFO$_=hkag^{rR`vS z{#nSas~-S&LZH+yjLXv24sbLgXP|Ivo#3qj(Nkb2AYxyLf}pdet?T-Dl^>hc*=ZYq zXDzPX$w1%nX1^E>SYiA>s&00&%9|uN*UqG!*?JTuY# zhC(+szpE&RH?^N{LWK2N+Lbs~4USQ*&mVNuBgTZ0YLd<{XmaJe@*}mRjIbwZq^q=N z;zQ*sSqCat_0(*2lt*4gdF(`Sti8DLll`Y~Mhi2nJk5tn1H8xj`fPhzBWRrmBqu8K zas~HFevUGvXmF@au}eS7tm2|ROq2ghecBmtNPL%mb%BY+4rKcEg)PxZk`=q|e%)Wd zwKI)8XCH3)6lmH_185^#q5&*d*^hweN&w4%WXEHT9sAwlV3zBxlVH!O0!&9CDPVR$ z3{F!S_9jB7F&?(}a@AF=g z5bE+5r|dd_p8o(o9ABeqx(=vYDk0`+;+$(l-J7lTHcB13iTil0a4h6%MZR_e%nUkoKp+-(<5p4<+L zgg&`}#DkAIz@-CNc|Pvq;@~K0$sZfJVdbclW=QRfhsqywH&{~W7Z>%qYDPz+hNr_* zf>MZwLB7;_Y=%?|3}RHk7I4ujAkCsq*sp=l|}y ni~p|%=`j;fgI&izviKt!Db>VU;p;l~)IY%FRiEWPHSzmDXs&Ds literal 0 HcmV?d00001 diff --git a/src/qa4sm_reader/utils.py b/src/qa4sm_reader/utils.py new file mode 100644 index 0000000..3ce2ea6 --- /dev/null +++ b/src/qa4sm_reader/utils.py @@ -0,0 +1,99 @@ +from functools import wraps +import inspect +import logging +from typing import Any, Callable, TypeVar, Union, Dict, List +from re import match as regex_match +import qa4sm_reader.globals +from qa4sm_reader.handlers import QA4SMVariable +from qa4sm_reader.netcdf_transcription import Pytesmo2Qa4smResultsTranscriber +import qa4sm_reader.globals as globals +import xarray as xr +from pathlib import PosixPath + +T = TypeVar('T', bound=Callable[..., Any]) + + +def note(note_text: Any) -> Callable[[T], T]: + """ + Factory function creating a decorator, that prints a note before the execution of the decorated function. + + Parameters: + ---------- + note_text : Any + The note to be printed. + + Returns: + ------- + Callable[[T], T] + The decorated function. + """ + + def decorator(func: T) -> T: + + @wraps(func) + def wrapper(*args, **kwargs): + print(f'\n\n{note_text}\n\n') + return func(*args, **kwargs) + + return wrapper + + return decorator + + +def log_function_call(func: Callable) -> Callable[[T], T]: + '''Decorator that logs the function call with its arguments and their values.''' + @wraps(func) + def wrapper(*args, **kwargs): + frame = inspect.currentframe().f_back + func_name = frame.f_code.co_name + local_vars = frame.f_locals + logging.info(f'**{func_name}**({", ".join(f"{k}={v}" for k, v in local_vars.items())})') + return func(*args, **kwargs) + return wrapper + + +def transcribe(file_path: Union[str, PosixPath]) -> Union[None, xr.Dataset]: + '''If the dataset is not in the new format, transcribe it to the new format. + This is done under the assumption that the dataset is a `pytesmo` dataset and corresponds to a default\ + validation, i.e. no temporal sub-windows are present. + + Parameters + ---------- + file_path : str or PosixPath + path to the file to be transcribed + + Returns + ------- + dataset : xr.Dataset + the transcribed dataset + ''' + + temp_sub_wdw_instance = None # bulk case, no temporal sub-windows + + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=file_path, + intra_annual_slices=temp_sub_wdw_instance, + keep_pytesmo_ncfile=False) + + if transcriber.exists: + return transcriber.get_transcribed_dataset() + + +def filter_out_self_combination_tcmetric_vars(variables: List[QA4SMVariable]) -> List[QA4SMVariable]: + """ + Filters out the 'self-combination' temporal collocation metric varriables, referring to variables that \ + match the pattern: {METRIC}_{DATASET_A}_between_{DATASET_A}_and_{WHATEVER}. The occurence of these \ + metric vars is a consequence of reference dataset tcol metric vas being written to the file + + Parameters + ---------- + variables : List[QA4SMVariable] + list of variables to be filtered + + Returns + ------- + List[QA4SMVariable] + the filtered list of variables + """ + + return [var for var in variables if var.metric_ds != var.ref_ds] diff --git a/tests/conftest.py b/tests/conftest.py index e0015f2..1c45f95 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,4 +1,7 @@ # -*- coding: utf-8 -*- +import pytest +from pathlib import Path + """ Dummy conftest.py for qa4sm_reader. @@ -6,3 +9,18 @@ Read more about conftest.py under: https://pytest.org/latest/plugins.html """ + +def pytest_collection_modifyitems(items): + # Move the test_utils::test_transcribe to the beginning of the list, as it is required for transcribing test files for other tests + first_test = None + for item in items: + if item.name == "test_transcribe": + first_test = item + break + if first_test: + items.insert(0, items.pop(items.index(first_test))) + + +@pytest.fixture(scope="session") +def TEST_DATA_DIR(): + return Path(__file__).parent / 'test_data' diff --git a/tests/test_data/intra_annual/custom_intra_annual_windows.json b/tests/test_data/intra_annual/custom_intra_annual_windows.json new file mode 100644 index 0000000..e96749d --- /dev/null +++ b/tests/test_data/intra_annual/custom_intra_annual_windows.json @@ -0,0 +1,218 @@ +{ + "seasons": { + "S1": [ + [ + 12, + 1 + ], + [ + 2, + 28 + ] + ], + "S2": [ + [ + 3, + 1 + ], + [ + 5, + 31 + ] + ], + "S3": [ + [ + 6, + 1 + ], + [ + 8, + 31 + ] + ], + "S4": [ + [ + 9, + 1 + ], + [ + 11, + 30 + ] + ] + }, + "months": { + "Jan": [ + [ + 1, + 1 + ], + [ + 1, + 31 + ] + ], + "Feb": [ + [ + 2, + 1 + ], + [ + 2, + 28 + ] + ], + "Mar": [ + [ + 3, + 1 + ], + [ + 3, + 31 + ] + ], + "Apr": [ + [ + 4, + 1 + ], + [ + 4, + 30 + ] + ], + "May": [ + [ + 5, + 1 + ], + [ + 5, + 31 + ] + ], + "Jun": [ + [ + 6, + 1 + ], + [ + 6, + 30 + ] + ], + "Jul": [ + [ + 7, + 1 + ], + [ + 7, + 31 + ] + ], + "Aug": [ + [ + 8, + 1 + ], + [ + 8, + 31 + ] + ], + "Sep": [ + [ + 9, + 1 + ], + [ + 9, + 30 + ] + ], + "Oct": [ + [ + 10, + 1 + ], + [ + 10, + 31 + ] + ], + "Nov": [ + [ + 11, + 1 + ], + [ + 11, + 30 + ] + ], + "Dec": [ + [ + 12, + 1 + ], + [ + 12, + 31 + ] + ] + }, + "custom": { + "star wars month": [ + [ + 5, + 1 + ], + [ + 5, + 31 + ] + ], + "halloween season": [ + [ + 10, + 1 + ], + [ + 10, + 31 + ] + ], + "advent": [ + [ + 12, + 1 + ], + [ + 12, + 24 + ] + ], + "movember": [ + [ + 11, + 1 + ], + [ + 11, + 30 + ] + ], + "christmas": [ + [ + 12, + 24 + ], + [ + 12, + 26 + ] + ] + } +} diff --git a/tests/test_data/intra_annual/monthly/0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_pytesmo.nc b/tests/test_data/intra_annual/monthly/0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_pytesmo.nc new file mode 100644 index 0000000000000000000000000000000000000000..dc9b91ee7cf55e72cb2c8af98a610a564562343a GIT binary patch literal 342376 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

xB|E!Q1!-Vg? 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

%6eDW&5>@{3O48+7!imEcPo#(YUYH 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 S6M%7G0-K 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 A1poj5 literal 0 HcmV?d00001 diff --git a/tests/test_data/intra_annual/seasonal/0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_pytesmo.nc b/tests/test_data/intra_annual/seasonal/0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_pytesmo.nc new file mode 100644 index 0000000000000000000000000000000000000000..c7345166918936014474897bb917504545b7e717 GIT binary patch literal 8157293 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

_PDrdr*AE9u!}(2gO(H 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%0AcZ`G*LOk(re1~ay;G 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 HrQ?4Bg$n`L literal 0 HcmV?d00001 diff --git a/tests/test_image.py b/tests/test_image.py index 51e9636..bb1ee36 100644 --- a/tests/test_image.py +++ b/tests/test_image.py @@ -70,7 +70,7 @@ def test_load_vars(img): Vars = img._load_vars() assert len(Vars) == len(img.varnames) Metr_Vars = img._load_vars(only_metrics=True) - assert len(Metr_Vars) == len(Vars) - 21 + assert len(Metr_Vars) == len(Vars) - 22 def test_iter_vars(img): @@ -120,13 +120,16 @@ def test_ds2df(img): def test_metric_df(img): df = img.metric_df(['R']) + print(list(df.columns)) assert list(df.columns) == [ 'R_between_0-ERA5_LAND_and_1-C3S_combined', 'R_ci_lower_between_0-ERA5_LAND_and_1-C3S_combined', 'R_ci_upper_between_0-ERA5_LAND_and_1-C3S_combined', 'R_between_0-ERA5_LAND_and_2-SMOS_IC', 'R_ci_lower_between_0-ERA5_LAND_and_2-SMOS_IC', - 'R_ci_upper_between_0-ERA5_LAND_and_2-SMOS_IC', 'idx' + 'R_ci_upper_between_0-ERA5_LAND_and_2-SMOS_IC', + globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME, + 'idx', ] diff --git a/tests/test_intra_annual_temp_windows.py b/tests/test_intra_annual_temp_windows.py new file mode 100644 index 0000000..c8c0a1b --- /dev/null +++ b/tests/test_intra_annual_temp_windows.py @@ -0,0 +1,513 @@ +import os +from pathlib import Path +import pytest +import json +from copy import deepcopy +from datetime import datetime +from pytesmo.validation_framework.metric_calculators_adapters import TsDistributor +from pytesmo.time_series.grouping import YearlessDatetime + +from qa4sm_reader.intra_annual_temp_windows import TemporalSubWindowsDefault, TemporalSubWindowsCreator, NewSubWindow, InvalidTemporalSubWindowError + + +@pytest.fixture +def default_monthly_sub_windows_no_overlap(): + # default 'months' defined in globals.py + return TemporalSubWindowsCreator(temporal_sub_window_type="months", + overlap=0, + custom_file=None) + + +@pytest.fixture +def default_seasonal_sub_windows_no_overlap(): + # default 'seasons' defined in globals.py + return TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=0, + custom_file=None) + + +@pytest.fixture +def seasonal_sub_windows_positive_overlap(): + # the ovelap is in units of days and can be positive or negative and is applied to both ends of the temporal sub-windows + # a positive overlap will result in temporal sub-windows that overlap with each other + return TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=5, + custom_file=None) + + +@pytest.fixture +def seasonal_sub_windows_negative_overlap(): + # a negative overlap will result in temporal sub-windows that have gaps between them + return TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=-5, + custom_file=None) + + +@pytest.fixture +def temporal_sub_windows_custom(): + # load custom temporal sub-windows from json file + return TemporalSubWindowsCreator( + temporal_sub_window_type='custom', + overlap=0, + custom_file=Path(__file__).resolve().parent.parent / 'tests' / + 'test_data' / 'intra_annual' / 'custom_intra_annual_windows.json') + + +@pytest.fixture +def additional_temp_sub_window(): + # create a new temporal sub-window, to be used in addition to the default ones + return NewSubWindow(name="Feynman", + begin_date=datetime(1918, 5, 11), + end_date=datetime(1988, 2, 15)) + + +#------------------------- Tests for TemporalSubwindowsDefault class ----------------------------------------------------------------------- + + +class TemporalSubWindowsConcrete(TemporalSubWindowsDefault): + # used to test the abstract class TemporalSubWindowsDefault + def _get_available_temp_sub_wndws(self): + return {"seasons": {"S1": [[12, 1], [2, 28]], "S2": [[3, 1], [5, 31]]}} + + +def test_initialization(): + temp_sub_windows = TemporalSubWindowsConcrete(custom_file='test.json') + assert temp_sub_windows.custom_file == 'test.json' + + +def test_load_json_data(tmp_path): + test_data = { + "seasons": { + "S1": [[12, 1], [2, 28]], + "S2": [[3, 1], [5, 31]] + } + } + test_file = tmp_path / "test.json" + with open(test_file, 'w') as f: + json.dump(test_data, f) + + temp_sub_windows = TemporalSubWindowsConcrete() + loaded_data = temp_sub_windows._load_json_data(test_file) + assert loaded_data == test_data + + +def test_get_available_temp_sub_wndws(): + temp_sub_windows = TemporalSubWindowsConcrete() + available_windows = temp_sub_windows._get_available_temp_sub_wndws() + assert available_windows == { + "seasons": { + "S1": [[12, 1], [2, 28]], + "S2": [[3, 1], [5, 31]] + } + } + + +#------------------------- Tests for NewSubWindow class ----------------------------------------------------------------------- + + +def test_new_sub_window_attributes(additional_temp_sub_window): + # used to generate proper description of temporal sub-window dimenison in the netCDF file + assert additional_temp_sub_window.begin_date_pretty == '1918-05-11' + assert additional_temp_sub_window.end_date_pretty == '1988-02-15' + + +def test_faulty_new_sub_window(): + # begin_date and end_date must be datetime objects + with pytest.raises((TypeError, AttributeError)): + NewSubWindow(name="Test Window", + begin_date="2023-01-01", + end_date=datetime.now()) + + with pytest.raises((TypeError, AttributeError)): + NewSubWindow(name="Test Window", + begin_date=datetime.now(), + end_date="2023-12-31") + + # begin_date must be before end_date, bc date is NOT a yearless date + with pytest.raises(ValueError): + NewSubWindow(name="Test Window", + begin_date=datetime(5000, 1, 1), + end_date=datetime(1000, 1, 1)) + + # both begin_date and end_date must be instances of the same class + with pytest.raises(TypeError): + NewSubWindow(name="Test Window", + begin_date=datetime(5000, 1, 1), + end_date=YearlessDatetime(1, 1)) + + +#------------------------- Tests for TemporalSubWindowsCreator class ---------------------------------------------------------- + + +def test_default_monthly_sub_windows_attributes( + default_monthly_sub_windows_no_overlap, + default_seasonal_sub_windows_no_overlap): + assert default_monthly_sub_windows_no_overlap.temporal_sub_window_type == "months" + + assert default_seasonal_sub_windows_no_overlap.temporal_sub_window_type == "seasons" + + assert default_monthly_sub_windows_no_overlap.overlap == default_seasonal_sub_windows_no_overlap.overlap == 0 + + assert default_monthly_sub_windows_no_overlap.custom_file == default_seasonal_sub_windows_no_overlap.custom_file == None + + assert default_monthly_sub_windows_no_overlap.available_temp_sub_wndws == default_seasonal_sub_windows_no_overlap.available_temp_sub_wndws == [ + 'seasons', 'months' + ] + + assert default_monthly_sub_windows_no_overlap.names == [ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', + 'Nov', 'Dec' + ] + + # included so that if definition of months changes in the globals.py file, the test will fail + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Jan'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(1, 1), + YearlessDatetime(1, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Feb'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(2, 1), + YearlessDatetime(2, 28))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Mar'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(3, 1), + YearlessDatetime(3, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Apr'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(4, 1), + YearlessDatetime(4, 30))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'May'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(5, 1), + YearlessDatetime(5, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Jun'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(6, 1), + YearlessDatetime(6, 30))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Jul'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(7, 1), + YearlessDatetime(7, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Aug'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(8, 1), + YearlessDatetime(8, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Sep'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(9, 1), + YearlessDatetime(9, 30))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Oct'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(10, 1), + YearlessDatetime(10, 31))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Nov'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(11, 1), + YearlessDatetime(11, 30))]).yearless_date_ranges + assert default_monthly_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'Dec'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(12, 1), + YearlessDatetime(12, 31))]).yearless_date_ranges + + assert default_monthly_sub_windows_no_overlap.additional_temp_sub_wndws_container == {} + + # used to generate proper description of temporal sub-window dimenison in the netCDF file + assert default_monthly_sub_windows_no_overlap.metadata == { + 'Temporal sub-window type': + 'months', + 'Overlap': + '0 days', + 'Pretty Names [MM-DD]': + 'Jan: 01-01 to 01-31, Feb: 02-01 to 02-28, Mar: 03-01 to 03-31, Apr: 04-01 to 04-30, May: 05-01 to 05-31, Jun: 06-01 to 06-30, Jul: 07-01 to 07-31, Aug: 08-01 to 08-31, Sep: 09-01 to 09-30, Oct: 10-01 to 10-31, Nov: 11-01 to 11-30, Dec: 12-01 to 12-31' + } + + +def test_default_seasonal_sub_windows_attributes( + default_seasonal_sub_windows_no_overlap): + assert default_seasonal_sub_windows_no_overlap.temporal_sub_window_type == "seasons" + + assert default_seasonal_sub_windows_no_overlap.overlap == 0 + + assert default_seasonal_sub_windows_no_overlap.custom_file == None + + assert default_seasonal_sub_windows_no_overlap.available_temp_sub_wndws == [ + 'seasons', 'months' + ] + + assert default_seasonal_sub_windows_no_overlap.names == [ + 'S1', 'S2', 'S3', 'S4' + ] + + # included so that if definition of months changes in the globals.py file, the test will fail + assert default_seasonal_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'S1'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(12, 1), + YearlessDatetime(2, 28))]).yearless_date_ranges + assert default_seasonal_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'S2'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(3, 1), + YearlessDatetime(5, 31))]).yearless_date_ranges + assert default_seasonal_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'S3'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(6, 1), + YearlessDatetime(8, 31))]).yearless_date_ranges + assert default_seasonal_sub_windows_no_overlap.custom_temporal_sub_windows[ + 'S4'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(9, 1), + YearlessDatetime(11, 30))]).yearless_date_ranges + + assert default_seasonal_sub_windows_no_overlap.additional_temp_sub_wndws_container == {} + + # used to generate proper description of temporal sub-window dimenison in the netCDF file + assert default_seasonal_sub_windows_no_overlap.metadata == { + 'Temporal sub-window type': + 'seasons', + 'Overlap': + '0 days', + 'Pretty Names [MM-DD]': + 'S1: 12-01 to 02-28, S2: 03-01 to 05-31, S3: 06-01 to 08-31, S4: 09-01 to 11-30' + } + + +def test_faulty_temporal_sub_windows_creator(): + # temporal_sub_window_type must be either 'months' or 'seasons' + with pytest.raises(InvalidTemporalSubWindowError): + TemporalSubWindowsCreator( + temporal_sub_window_type="not-a-default-value", + overlap=0, + custom_file=None) + + +def test_load_custom_temporal_sub_windows(temporal_sub_windows_custom): + # 'temporal_sub_window_type' corresponds to the defined temporal sub-windows in the provided json file + # the file may contain any number of temporal sub-windows, but one is selected via a keyword argument 'temporal_sub_window_type' for each TemporalSubWindowsCreator instance + + assert temporal_sub_windows_custom.custom_file == Path(__file__).resolve( + ).parent.parent / 'tests' / 'test_data' / 'intra_annual' / 'custom_intra_annual_windows.json' + + assert temporal_sub_windows_custom.temporal_sub_window_type == 'custom' + + assert temporal_sub_windows_custom.overlap == 0 + + assert temporal_sub_windows_custom.available_temp_sub_wndws == [ + 'seasons', 'months', 'custom' + ] + + assert temporal_sub_windows_custom.names == [ + 'star wars month', 'halloween season', 'advent', 'movember', + 'christmas' + ] + + assert temporal_sub_windows_custom.custom_temporal_sub_windows[ + 'star wars month'].yearless_date_ranges == TsDistributor( + yearless_date_ranges=[( + YearlessDatetime(5, 1), + YearlessDatetime(5, 31))]).yearless_date_ranges + assert temporal_sub_windows_custom.custom_temporal_sub_windows[ + 'halloween season'].yearless_date_ranges == TsDistributor( + yearless_date_ranges=[( + YearlessDatetime(10, 1), + YearlessDatetime(10, 31))]).yearless_date_ranges + assert temporal_sub_windows_custom.custom_temporal_sub_windows[ + 'advent'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(12, 1), + YearlessDatetime(12, 24))]).yearless_date_ranges + assert temporal_sub_windows_custom.custom_temporal_sub_windows[ + 'movember'].yearless_date_ranges == TsDistributor( + yearless_date_ranges=[( + YearlessDatetime(11, 1), + YearlessDatetime(11, 30))]).yearless_date_ranges + assert temporal_sub_windows_custom.custom_temporal_sub_windows[ + 'christmas'].yearless_date_ranges == TsDistributor( + yearless_date_ranges=[( + YearlessDatetime(12, 24), + YearlessDatetime(12, 26))]).yearless_date_ranges + + +def test_load_nonexistent_custom_temporal_sub_windows(): + with pytest.raises(FileNotFoundError): + TemporalSubWindowsCreator(temporal_sub_window_type='whatever', + overlap=0, + custom_file='i_dont_exist.json') + + +def test_overlap_parameter(seasonal_sub_windows_positive_overlap, + seasonal_sub_windows_negative_overlap): + # overlap is added to both ends of the temporal sub-windows + assert seasonal_sub_windows_positive_overlap.overlap == 5 + assert seasonal_sub_windows_positive_overlap.custom_temporal_sub_windows[ + 'S1'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(11, 26), + YearlessDatetime(3, 5))]).yearless_date_ranges + assert seasonal_sub_windows_positive_overlap.custom_temporal_sub_windows[ + 'S2'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(2, 24), + YearlessDatetime(6, 5))]).yearless_date_ranges + assert seasonal_sub_windows_positive_overlap.custom_temporal_sub_windows[ + 'S3'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(5, 27), + YearlessDatetime(9, 5))]).yearless_date_ranges + assert seasonal_sub_windows_positive_overlap.custom_temporal_sub_windows[ + 'S4'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(8, 27), + YearlessDatetime(12, 5))]).yearless_date_ranges + assert seasonal_sub_windows_positive_overlap.metadata == { + 'Temporal sub-window type': + 'seasons', + 'Overlap': + '5 days', + 'Pretty Names [MM-DD]': + 'S1: 11-26 to 03-05, S2: 02-24 to 06-05, S3: 05-27 to 09-05, S4: 08-27 to 12-05' + } + + # overlap is subtracted from both ends of the temporal sub-windows + assert seasonal_sub_windows_negative_overlap.overlap == -5 + assert seasonal_sub_windows_negative_overlap.custom_temporal_sub_windows[ + 'S1'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(12, 6), + YearlessDatetime(2, 23))]).yearless_date_ranges + assert seasonal_sub_windows_negative_overlap.custom_temporal_sub_windows[ + 'S2'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(3, 6), + YearlessDatetime(5, 26))]).yearless_date_ranges + assert seasonal_sub_windows_negative_overlap.custom_temporal_sub_windows[ + 'S3'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(6, 6), + YearlessDatetime(8, 26))]).yearless_date_ranges + assert seasonal_sub_windows_negative_overlap.custom_temporal_sub_windows[ + 'S4'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(9, 6), + YearlessDatetime(11, 25))]).yearless_date_ranges + assert seasonal_sub_windows_negative_overlap.metadata == { + 'Temporal sub-window type': + 'seasons', + 'Overlap': + '-5 days', + 'Pretty Names [MM-DD]': + 'S1: 12-06 to 02-23, S2: 03-06 to 05-26, S3: 06-06 to 08-26, S4: 09-06 to 11-25' + } + + # overlap is rounded to the nearest integer + float_overlap = TemporalSubWindowsCreator( + temporal_sub_window_type="seasons", overlap=5.2, custom_file=None) + + assert float_overlap.overlap == 5 + + assert [ + x.yearless_date_ranges + for x in float_overlap.custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges for x in seasonal_sub_windows_positive_overlap. + custom_temporal_sub_windows.values() + ] + + assert float_overlap.metadata == seasonal_sub_windows_positive_overlap.metadata + + # make sure cyclic boundaries are handled correctly + # no overlap and +/-365 days overlap should be the same + aa = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=0, + custom_file=None) + aa_plus = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=365, + custom_file=None) + aa_minus = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=-365, + custom_file=None) + # +376 days overlap should be the same as +11 days overlap and -354 days overlap + bb = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=376, + custom_file=None) + bb_plus = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=11, + custom_file=None) + bb_minus = TemporalSubWindowsCreator(temporal_sub_window_type="seasons", + overlap=-354, + custom_file=None) + + assert [ + x.yearless_date_ranges + for x in aa.custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges + for x in aa_plus.custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges + for x in aa_minus.custom_temporal_sub_windows.values() + ] + assert [ + x.yearless_date_ranges + for x in bb.custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges + for x in bb_plus.custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges + for x in bb_minus.custom_temporal_sub_windows.values() + ] + + +def test_add_temporal_sub_window(seasonal_sub_windows_positive_overlap, + additional_temp_sub_window): + seasonal_sub_windows_positive_overlap.add_temp_sub_wndw( + additional_temp_sub_window) + + assert seasonal_sub_windows_positive_overlap.names == [ + 'S1', 'S2', 'S3', 'S4', 'Feynman' + ] + + assert seasonal_sub_windows_positive_overlap.custom_temporal_sub_windows[ + 'Feynman'].date_ranges == [(datetime(1918, 5, + 11), datetime(1988, 2, 15))] + + # if a new window is to be added, it should not have a name that already exists. In this case, this new window should not be added + name_exists = NewSubWindow(name="S1", + begin_date=YearlessDatetime(5, 11), + end_date=YearlessDatetime(2, 15)) + + seasonal_sub_windows_positive_overlap_copy = deepcopy( + seasonal_sub_windows_positive_overlap) + + seasonal_sub_windows_positive_overlap_copy.add_temp_sub_wndw(name_exists) + + assert seasonal_sub_windows_positive_overlap_copy.names == seasonal_sub_windows_positive_overlap.names + + assert [ + x.yearless_date_ranges + for x in seasonal_sub_windows_positive_overlap_copy. + custom_temporal_sub_windows.values() + ] == [ + x.yearless_date_ranges for x in seasonal_sub_windows_positive_overlap. + custom_temporal_sub_windows.values() + ] + + # if a new window is added and specified to become the first window, it should be added at the beginning + seasonal_sub_windows_positive_overlap_copy.add_temp_sub_wndw( + NewSubWindow('I am first', YearlessDatetime(1, 1), + YearlessDatetime(2, 2)), + insert_as_first_wndw=True) + assert seasonal_sub_windows_positive_overlap_copy.names[0] == 'I am first' + + # if an existing window is to be overwritten, it should exist. + seasonal_sub_windows_positive_overlap_copy = deepcopy( + seasonal_sub_windows_positive_overlap) + seasonal_sub_windows_positive_overlap_copy.overwrite_temp_sub_wndw( + name_exists) + + assert seasonal_sub_windows_positive_overlap_copy.names == seasonal_sub_windows_positive_overlap.names + + assert seasonal_sub_windows_positive_overlap_copy.custom_temporal_sub_windows[ + 'S1'].yearless_date_ranges == TsDistributor(yearless_date_ranges=[( + YearlessDatetime(5, 11), + YearlessDatetime(2, 15))]).yearless_date_ranges + + # when overwriting an existing window, it should be possible to use a new datatype for the dates (but always either datetime or YearlessDatetime) + seasonal_sub_windows_positive_overlap_copy.overwrite_temp_sub_wndw( + NewSubWindow('S1', datetime(2023, 1, 1), datetime(2023, 12, 31))) + + assert seasonal_sub_windows_positive_overlap_copy.custom_temporal_sub_windows[ + 'S1'].yearless_date_ranges == None + assert seasonal_sub_windows_positive_overlap_copy.custom_temporal_sub_windows[ + 'S1'].date_ranges == TsDistributor( + date_ranges=[(datetime(2023, 1, 1), + datetime(2023, 12, 31))]).date_ranges diff --git a/tests/test_netcdf_transcription.py b/tests/test_netcdf_transcription.py new file mode 100644 index 0000000..e33eda8 --- /dev/null +++ b/tests/test_netcdf_transcription.py @@ -0,0 +1,857 @@ +import pytest +from copy import deepcopy +from datetime import datetime +import xarray as xr +import shutil +from pathlib import Path +from typing import Union, Optional, Tuple, List +import logging +import numpy as np +import tempfile + +from qa4sm_reader.netcdf_transcription import Pytesmo2Qa4smResultsTranscriber, TemporalSubWindowMismatchError +from qa4sm_reader.intra_annual_temp_windows import TemporalSubWindowsCreator, NewSubWindow, InvalidTemporalSubWindowError +import qa4sm_reader.globals as globals +from qa4sm_reader.utils import log_function_call +import qa4sm_reader.plot_all as pa + +log_file_path = Path( + __file__).parent.parent / '.logs' / "test_netcdf_transcription.log" +if not log_file_path.parent.exists(): + log_file_path.parent.mkdir(parents=True, exist_ok=True) + +logging.basicConfig(level=logging.DEBUG, + format='%(asctime)s - %(levelname)s - %(message)s', + filename=str(log_file_path)) + + +#-------------------------------------------------------Fixtures-------------------------------------------------------- +@pytest.fixture(scope="module") +def tmp_paths(): + '''Fixture to keep track of temporary directories created during a test run and clean them up after the test run''' + paths = [] + yield paths + + for path in paths: + shutil.rmtree(path, ignore_errors=True) + + +@pytest.fixture +def monthly_tsws() -> TemporalSubWindowsCreator: + return TemporalSubWindowsCreator(temporal_sub_window_type='months', + overlap=0, + custom_file=None) + + +@pytest.fixture +def monthly_tsws_incl_bulk(monthly_tsws) -> TemporalSubWindowsCreator: + bulk_wndw = NewSubWindow('bulk', datetime(1950, 1, 1), + datetime(2020, 1, 1)) + return monthly_tsws.add_temp_sub_wndw(bulk_wndw, insert_as_first_wndw=True) + + +@pytest.fixture +def seasonal_tsws() -> TemporalSubWindowsCreator: + return TemporalSubWindowsCreator(temporal_sub_window_type='seasons', + overlap=0, + custom_file=None) + + +@pytest.fixture +def seasonal_tsws_incl_bulk() -> TemporalSubWindowsCreator: + seasonal_tsws = TemporalSubWindowsCreator( + temporal_sub_window_type='seasons', overlap=0, custom_file=None) + bulk_wndw = NewSubWindow('bulk', datetime(1950, 1, 1), + datetime(2020, 1, 1)) + seasonal_tsws.add_temp_sub_wndw(bulk_wndw, insert_as_first_wndw=True) + return seasonal_tsws + + +@pytest.fixture +def seasonal_pytesmo_file(TEST_DATA_DIR) -> Path: + return Path( + TEST_DATA_DIR / 'intra_annual' / 'seasonal' / + '0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_pytesmo.nc' + ) + + +@pytest.fixture +def seasonal_qa4sm_file(TEST_DATA_DIR) -> Path: + return Path( + TEST_DATA_DIR / 'intra_annual' / 'seasonal' / + '0-ERA5.swvl1_with_1-ESA_CCI_SM_combined.sm_with_2-ESA_CCI_SM_combined.sm_with_3-ESA_CCI_SM_combined.sm_with_4-ESA_CCI_SM_combined.sm.CI_tsw_seasons_qa4sm.nc' + ) + + +@pytest.fixture +def monthly_pytesmo_file(TEST_DATA_DIR) -> Path: + return Path(TEST_DATA_DIR / 'intra_annual' / 'monthly' / + '0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_pytesmo.nc') + + +@pytest.fixture +def monthly_qa4sm_file(TEST_DATA_DIR) -> Path: + return Path(TEST_DATA_DIR / 'intra_annual' / 'monthly' / + '0-ISMN.soil_moisture_with_1-C3S.sm_tsw_months_qa4sm.nc') + + +#------------------Helper functions------------------------ + + +@log_function_call +def get_tmp_whole_test_data_dir( + TEST_DATA_DIR: Path, tmp_paths: List[Path]) -> Tuple[Path, List[Path]]: + '''Copy the whole test data directory to a temporary directory and return the path to the temporary directory + + Parameters + ---------- + + TEST_DATA_DIR: Path + The path to the test data directory + tmp_paths: List[Path] + **Don't modify this list directly. Keeps track of created tmp dirs during a test run** + + Returns + ------- + + Tuple[Path, List[Path]] + A tuple containing the path to the temporary directory and the list of temporary directories that have been created during the test + ''' + if isinstance(TEST_DATA_DIR, str): + TEST_DATA_DIR = Path(TEST_DATA_DIR) + temp_dir = Path(tempfile.mkdtemp()) + shutil.copytree(TEST_DATA_DIR, temp_dir / TEST_DATA_DIR.name) + + return temp_dir / TEST_DATA_DIR.name, tmp_paths + + +@log_function_call +def get_tmp_single_test_file(test_file: Path, + tmp_paths: List[Path]) -> Tuple[Path, List[Path]]: + '''Copy a single test file to a temporary directory and return the path to the temporary file + + Parameters + ---------- + + TEST_DATA_DIR: Path + The path to the test data directory + tmp_paths: List[Path] + **Don't modify this list directly. Keeps track of created tmp files during a test run** + + Returns + ------- + + Tuple[Path, List[Path]] + A tuple containing the path to the temporary file and the list of temporary files that have been created during the test + ''' + if isinstance(test_file, str): + test_file = Path(test_file) + temp_dir = Path(tempfile.mkdtemp()) + temp_file_path = temp_dir / test_file.name + shutil.copy(test_file, temp_file_path) + return temp_file_path, tmp_paths + + +@log_function_call +def run_test_transcriber( + ncfile: Path, + intra_annual_slices: Union[None, TemporalSubWindowsCreator], + keep_pytesmo_ncfile: bool, + write_outfile: Optional[bool] = True +) -> Tuple[Pytesmo2Qa4smResultsTranscriber, xr.Dataset]: + '''Run a test on the transcriber with the given parameters + + Parameters + ---------- + + ncfile: Path + The path to the netcdf file to be transcribed + intra_annual_slices: Union[None, TemporalSubWindowsCreator] + The temporal sub-windows to be used for the transcription + keep_pytesmo_ncfile: bool + Whether to keep the original pytesmo nc file + write_outfile: Optional[bool] + Whether to write the transcribed dataset to a new netcdf file. Default is True + + Returns + ------- + Tuple[Pytesmo2Qa4smResultsTranscriber, xr.Dataset] + A tuple containing the transcriber instance and the transcribed dataset''' + + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=ncfile, + intra_annual_slices=intra_annual_slices, + keep_pytesmo_ncfile=keep_pytesmo_ncfile) + + logging.info(f"{transcriber=}") + + assert transcriber.exists + + transcriber.output_file_name = ncfile + transcribed_ds = transcriber.get_transcribed_dataset() + + assert isinstance(transcribed_ds, xr.Dataset) + + if write_outfile: + transcriber.write_to_netcdf(transcriber.output_file_name) + assert Path(transcriber.output_file_name).exists() + + if keep_pytesmo_ncfile: + assert Path(ncfile.parent, + ncfile.name + globals.OLD_NCFILE_SUFFIX).exists() + else: + assert not Path(ncfile.parent, + ncfile.name + globals.OLD_NCFILE_SUFFIX).exists() + + return transcriber, transcribed_ds + + +#------------------Check that all required consts are defined------------------ +@log_function_call +def test_qr_globals_attributes(): + attributes = [ + 'METRICS', 'TC_METRICS', 'NON_METRICS', 'METADATA_TEMPLATE', + 'IMPLEMENTED_COMPRESSIONS', 'ALLOWED_COMPRESSION_LEVELS', + 'INTRA_ANNUAL_METRIC_TEMPLATE', 'INTRA_ANNUAL_TCOL_METRIC_TEMPLATE', + 'TEMPORAL_SUB_WINDOW_SEPARATOR', 'DEFAULT_TSW', + 'TEMPORAL_SUB_WINDOW_NC_COORD_NAME', 'MAX_NUM_DS_PER_VAL_RUN', + 'DATASETS', 'TEMPORAL_SUB_WINDOWS' + ] + + assert any(attr in dir(globals) for attr in attributes) + + assert 'zlib' in globals.IMPLEMENTED_COMPRESSIONS + + assert globals.ALLOWED_COMPRESSION_LEVELS == [None, *list(range(10))] + + assert globals.INTRA_ANNUAL_METRIC_TEMPLATE == [ + "{tsw}", globals.TEMPORAL_SUB_WINDOW_SEPARATOR, "{metric}" + ] + + assert globals.INTRA_ANNUAL_TCOL_METRIC_TEMPLATE == globals.INTRA_ANNUAL_TCOL_METRIC_TEMPLATE == [ + "{tsw}", globals.TEMPORAL_SUB_WINDOW_SEPARATOR, "{metric}", "_", + "{number}-{dataset}", "_between_" + ] + + assert len(globals.TEMPORAL_SUB_WINDOW_SEPARATOR) == 1 + + assert globals.TEMPORAL_SUB_WINDOWS == { + "seasons": { + "S1": [[12, 1], [2, 28]], + "S2": [[3, 1], [5, 31]], + "S3": [[6, 1], [8, 31]], + "S4": [[9, 1], [11, 30]], + }, + "months": { + "Jan": [[1, 1], [1, 31]], + "Feb": [[2, 1], [2, 28]], + "Mar": [[3, 1], [3, 31]], + "Apr": [[4, 1], [4, 30]], + 'May': [[5, 1], [5, 31]], + "Jun": [[6, 1], [6, 30]], + "Jul": [[7, 1], [7, 31]], + "Aug": [[8, 1], [8, 31]], + "Sep": [[9, 1], [9, 30]], + "Oct": [[10, 1], [10, 31]], + "Nov": [[11, 1], [11, 30]], + "Dec": [[12, 1], [12, 31]], + } + } + + +# ------------------Test Pytesmo2Qa4smResultsTranscriber------------------------------------------------------- +#-------------------------------------------------------------------------------------------------------------- + +#------------Test instantiation of Pytesmo2Qa4smResultsTranscriber, attrs and basic functionalities------------ + + +@log_function_call +def test_on_non_existing_file(): + with pytest.raises(FileNotFoundError): + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results='non_existing.nc', + intra_annual_slices=None, + keep_pytesmo_ncfile=False) + + +@log_function_call +def test_invalid_temp_subwins(seasonal_tsws_incl_bulk, + tmp_paths, + TEST_DATA_DIR, + test_file: Optional[Path] = None): + logging.info( + f'test_invalid_temp_subwins: {seasonal_tsws_incl_bulk=}, {tmp_paths=}, {TEST_DATA_DIR=}, {test_file=}' + ) + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + + # Test that the transcriber raises an InvalidTemporalSubWindowError when the intra_annual_slices parameter is neither None nor a TemporalSubWindowsCreator instance + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + with pytest.raises(InvalidTemporalSubWindowError): + _, ds = run_test_transcriber(tmp_test_file, + intra_annual_slices='faulty', + keep_pytesmo_ncfile=False) + ds.close() + + +@log_function_call +def test_invalid_temporalsubwindowscreator(seasonal_tsws_incl_bulk, + tmp_paths, + TEST_DATA_DIR, + test_file: Optional[Path] = None): + logging.info( + f'test_invalid_temporalsubwindowscreator: {seasonal_tsws_incl_bulk=}, {tmp_paths=}, {TEST_DATA_DIR=}, {test_file=}' + ) + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + + # Test that the transcriber raises an InvalidTemporalSubWindowError when the intra_annual_slices parameter is a faulty TemporalSubWindowsCreator instance + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + + with pytest.raises(InvalidTemporalSubWindowError): + _, ds = run_test_transcriber( + tmp_test_file, + intra_annual_slices=TemporalSubWindowsCreator('gibberish'), + keep_pytesmo_ncfile=False) + ds.close() + + +@log_function_call +def test_temp_subwin_mismatch(seasonal_tsws_incl_bulk, + tmp_paths, + TEST_DATA_DIR, + test_file: Optional[Path] = None): + logging.info( + f'test_temp_subwin_mismatch: {seasonal_tsws_incl_bulk=}, {tmp_paths=}, {TEST_DATA_DIR=}, {test_file=}' + ) + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + + # Test that the transcriber raises a TemporalSubWindowMismatchError when the intra_annual_slices parameter is a TemporalSubWindowsCreator instance that does not match the temporal sub-windows in the pytesmo_results file + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + with pytest.raises(TemporalSubWindowMismatchError): + _, ds = run_test_transcriber( + tmp_test_file, + intra_annual_slices=seasonal_tsws_incl_bulk, + keep_pytesmo_ncfile=False) + ds.close() + + +@log_function_call +def test_keep_pytesmo_ncfile(TEST_DATA_DIR, test_file: Optional[Path] = None): + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + transcriber, ds = run_test_transcriber(tmp_test_file, + intra_annual_slices=None, + keep_pytesmo_ncfile=True) + transcriber.pytesmo_results.close() + ds.close() + + +@log_function_call +def test_dont_keep_pytesmo_ncfile(TEST_DATA_DIR, + test_file: Optional[Path] = None): + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + _, ds = run_test_transcriber(tmp_test_file, + intra_annual_slices=None, + keep_pytesmo_ncfile=False) + ds.close() + + +@log_function_call +def test_ncfile_compression(TEST_DATA_DIR, test_file: Optional[Path] = None): + if test_file is None: + test_file = Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc') + tmp_test_file = get_tmp_single_test_file(test_file, tmp_paths)[0] + transcriber, ds = run_test_transcriber(tmp_test_file, + intra_annual_slices=None, + keep_pytesmo_ncfile=False, + write_outfile=True) + + # only zlib compression is implemented so far, with compression levels 0-9 + with pytest.raises(NotImplementedError): + transcriber.compress(transcriber.output_file_name, 'not_implemented', + 0) + transcriber.compress(transcriber.output_file_name, 'zlib', -1) + transcriber.compress(transcriber.output_file_name, 'not_implemented', + -1) + + # test the case of a non-existing file + assert not transcriber.compress('non_existing_file.nc', 'zlib', 0) + + # test successful compression with zlib and compression level 9 + assert transcriber.compress(transcriber.output_file_name, 'zlib', 9) + + # test successful compression with defaults + assert transcriber.compress(transcriber.output_file_name) + + ds.close() + + +#-------------------Test default case (= no temporal sub-windows)-------------------------------------------- + + +@log_function_call +def test_bulk_case_transcription(TEST_DATA_DIR, tmp_paths): + # Test transcription of all original test data nc files (== bulk case files) + tmp_test_data_dir, _ = get_tmp_whole_test_data_dir(TEST_DATA_DIR, + tmp_paths) + nc_files = [ + path for path in Path(tmp_test_data_dir).rglob('*.nc') + if 'intra_annual' not in str(path) + ] + logging.info(f"Found {len(nc_files)} .nc files for transcription.") + + for ncf in nc_files: + _, ds = run_test_transcriber(ncf, + intra_annual_slices=None, + keep_pytesmo_ncfile=False, + write_outfile=True) + assert ds.sel( + {globals.TEMPORAL_SUB_WINDOW_NC_COORD_NAME: + globals.DEFAULT_TSW}) == globals.DEFAULT_TSW + logging.info(f"Successfully transcribed file: {ncf}") + ds.close() + + if tmp_test_data_dir.exists(): + shutil.rmtree(tmp_test_data_dir, ignore_errors=True) + + +#-------------------------------------------Test with intra-annual metrics--------------------------------------------- + + +@log_function_call +def test_correct_file_transcription(seasonal_pytesmo_file, seasonal_qa4sm_file, + monthly_pytesmo_file, monthly_qa4sm_file): + ''' + Test the transcription of the test files with the correct temporal sub-windows and the correct output nc files''' + + # test that the test files exist + assert seasonal_pytesmo_file.exists + assert seasonal_qa4sm_file.exists + assert monthly_pytesmo_file.exists + assert monthly_qa4sm_file.exists + + # instantiate proper TemporalSubWindowsCreator instances for the corresponding test files + bulk_tsw = NewSubWindow( + 'bulk', datetime(1900, 1, 1), datetime(2000, 1, 1) + ) # if ever the default changes away from 'bulk, this will need to be taken into account + + seasons_tsws = TemporalSubWindowsCreator('seasons') + seasons_tsws.add_temp_sub_wndw(bulk_tsw, insert_as_first_wndw=True) + + monthly_tsws = TemporalSubWindowsCreator('months') + monthly_tsws.add_temp_sub_wndw(bulk_tsw, insert_as_first_wndw=True) + + # make sure the above defined temporal sub-windows are indeed the ones on the expected output nc files + assert seasons_tsws.names == Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile( + seasonal_qa4sm_file) + assert monthly_tsws.names == Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile( + monthly_qa4sm_file) + + # instantiate transcribers for the test files + seasonal_transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=seasonal_pytesmo_file, + intra_annual_slices=seasons_tsws, + keep_pytesmo_ncfile=False + ) # deletion or keeping of the original pytesmo nc file only triggers when the transcriber is written to a new file, which is not the case here + + monthly_transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=monthly_pytesmo_file, + intra_annual_slices=monthly_tsws, + keep_pytesmo_ncfile=False) + + assert seasonal_transcriber.exists + assert monthly_transcriber.exists + + # get the transcribed datasets + seasonal_transcribed_ds = seasonal_transcriber.get_transcribed_dataset() + monthly_transcribed_ds = monthly_transcriber.get_transcribed_dataset() + + # check that the transcribed datasets are indeed xarray.Dataset instances + assert isinstance(seasonal_transcribed_ds, xr.Dataset) + assert isinstance(monthly_transcribed_ds, xr.Dataset) + + # check that the transcribed datasets are equal to the expected output files + # xr.testing.assert_equal(ds1, ds2) runs a more detailed comparison of the two datasets as compared to ds1.equals(ds2) + with xr.open_dataset(seasonal_qa4sm_file) as f: + expected_seasonal_ds = f + with xr.open_dataset(monthly_qa4sm_file) as f: + expected_monthly_ds = f + + #!NOTE: pytesmo/QA4SM offer the possibility to calculate Kendall's tau, but currently this metric is deactivated. + #! Therefore, in a real validation run no tau related metrics will be transcribed to the QA4SM file, even though they might be present in the pytesmo file. + + # drop the tau related metrics from the expected datasets + for var in expected_seasonal_ds.data_vars: + if 'tau' in var: + logging.info( + f"Dropping variable {var} from expected seasonal dataset") + expected_seasonal_ds = expected_seasonal_ds.drop_vars(var) + + for var in expected_monthly_ds.data_vars: + if 'tau' in var: + logging.info( + f"Dropping variable {var} from expected monthly dataset") + expected_monthly_ds = expected_monthly_ds.drop_vars(var) + + assert None == xr.testing.assert_equal( + monthly_transcribed_ds, + expected_monthly_ds) # returns None if the datasets are equal + assert None == xr.testing.assert_equal( + seasonal_transcribed_ds, + expected_seasonal_ds) # returns None if the datasets are equal + + # the method above does not check attrs of the datasets, so we do it here + # Creation date and qa4sm_reader might differ, so we exclude them from the comparison + datasets = [ + monthly_transcribed_ds, expected_monthly_ds, seasonal_transcribed_ds, + expected_seasonal_ds + ] + attrs_to_be_excluded = ['date_created', 'qa4sm_version'] + for ds in datasets: + for attr in attrs_to_be_excluded: + if attr in ds.attrs: + del ds.attrs[attr] + + assert seasonal_transcribed_ds.attrs == expected_seasonal_ds.attrs + assert monthly_transcribed_ds.attrs == expected_monthly_ds.attrs + + # Compare the coordinate attributes + for coord in seasonal_transcribed_ds.coords: + for attr in seasonal_transcribed_ds[coord].attrs: + if isinstance(seasonal_transcribed_ds[coord].attrs[attr], + (list, np.ndarray)): + assert np.array_equal( + seasonal_transcribed_ds[coord].attrs[attr], + expected_seasonal_ds[coord].attrs[attr] + ), f"Attributes for coordinate {coord} do not match in seasonal dataset" + else: + assert seasonal_transcribed_ds[coord].attrs[ + attr] == expected_seasonal_ds[coord].attrs[ + attr], f"Attributes for coordinate {coord} do not match in seasonal dataset: '{seasonal_transcribed_ds[coord].attrs[attr]}' =! '{expected_seasonal_ds[coord].attrs[attr]}'" + + for coord in monthly_transcribed_ds.coords: + for attr in monthly_transcribed_ds[coord].attrs: + if isinstance(monthly_transcribed_ds[coord].attrs[attr], + (list, np.ndarray)): + assert np.array_equal( + monthly_transcribed_ds[coord].attrs[attr], + expected_monthly_ds[coord].attrs[attr] + ), f"Attributes for coordinate {coord} do not match in monthly dataset" + else: + assert monthly_transcribed_ds[coord].attrs[ + attr] == expected_monthly_ds[coord].attrs[ + attr], f"Attributes for coordinate {coord} do not match in monthly dataset: '{monthly_transcribed_ds[coord].attrs[attr]}' =! '{expected_monthly_ds[coord].attrs[attr]}'" + + seasonal_transcribed_ds.close() + monthly_transcribed_ds.close() + + +#TODO: refactoring +@log_function_call +def test_plotting(seasonal_qa4sm_file, monthly_qa4sm_file, tmp_paths): + ''' + Test the plotting of the test files with temporal sub-windows beyond the bulk case (this scenario covered in other tests) + ''' + + tmp_seasonal_file, _ = get_tmp_single_test_file(seasonal_qa4sm_file, + tmp_paths) + tmp_seasonal_dir = tmp_seasonal_file.parent + + tmp_monthly_file, _ = get_tmp_single_test_file(monthly_qa4sm_file, + tmp_paths) + tmp_monthly_dir = tmp_monthly_file.parent + + # check the output directories + + pa.plot_all( + filepath=tmp_seasonal_file, + temporal_sub_windows=Pytesmo2Qa4smResultsTranscriber. + get_tsws_from_ncfile(tmp_seasonal_file), + out_dir=tmp_seasonal_dir, + save_all=True, + out_type=['png', 'svg'], + ) + + metrics_not_plotted = [ + *globals.metric_groups[0], *globals.metric_groups[3], + *globals._metadata_exclude + ] + + tsw_dirs_expected = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile( + tmp_seasonal_file) + if globals.DEFAULT_TSW in tsw_dirs_expected: + tsw_dirs_expected.remove( + globals.DEFAULT_TSW) # we're not checking the default case here + + for tsw in tsw_dirs_expected: + assert Path( + tmp_seasonal_dir / + tsw).is_dir(), f"{tmp_seasonal_dir / tsw} is not a directory" + + # only metrics and tcol metrics get their dedicated plots for each temporal sub-window + for metric in [ + *list(globals.METRICS.keys()), *list(globals.TC_METRICS.keys()) + ]: + if metric in metrics_not_plotted: + continue + assert Path( + tmp_seasonal_dir / tsw / f"{tsw}_boxplot_{metric}.png" + ).exists( + ), f"{tmp_seasonal_dir / tsw / f'{tsw}_boxplot_{metric}.png'} does not exist" + assert Path( + tmp_seasonal_dir / tsw / f"{tsw}_boxplot_{metric}.svg" + ).exists( + ), f"{tmp_seasonal_dir / tsw / f'{tsw}_boxplot_{metric}.svg'} does not exist" + + assert Path( + tmp_seasonal_dir / tsw / f'{tsw}_statistics_table.csv' + ).is_file( + ), f"{tmp_seasonal_dir / tsw / f'{tsw}_statistics_table.csv'} does not exist" + + # check intra-annual-metric-exclusive comparison boxplots + assert Path(tmp_seasonal_dir / 'comparison_boxplots').is_dir() + for metric in globals.METRICS: + if metric in metrics_not_plotted: + continue + assert Path( + tmp_seasonal_dir / 'comparison_boxplots' / + globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, + filetype='png') + ).exists( + ), f"{tmp_seasonal_dir / 'comparison_boxplots' / globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, filetype='png')} does not exist" + assert Path( + tmp_seasonal_dir / 'comparison_boxplots' / + globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, + filetype='svg') + ).exists( + ), f"{tmp_seasonal_dir / 'comparison_boxplots' / globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, filetype='svg')} does not exist" + + # now check the file with monthly temporal sub-windows and without tcol metrics + + pa.plot_all( + filepath=tmp_monthly_file, + temporal_sub_windows=Pytesmo2Qa4smResultsTranscriber. + get_tsws_from_ncfile(tmp_monthly_file), + out_dir=tmp_monthly_dir, + save_all=True, + save_metadata=True, + out_type=['png', 'svg'], + ) + + tsw_dirs_expected = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile( + tmp_monthly_file) + if globals.DEFAULT_TSW in tsw_dirs_expected: + tsw_dirs_expected.remove(globals.DEFAULT_TSW) + + for t, tsw in enumerate(tsw_dirs_expected): + assert Path( + tmp_monthly_dir / + tsw).is_dir(), f"{tmp_monthly_dir / tsw} is not a directory" + + # no tcol metrics present here + for metric in [*list(globals.METRICS.keys())]: + if metric in metrics_not_plotted: + continue + # tsw specific plots + assert Path( + tmp_monthly_dir / tsw / f"{tsw}_boxplot_{metric}.png" + ).exists( + ), f"{tmp_monthly_dir / tsw / f'{tsw}_boxplot_{metric}.png'} does not exist" + assert Path( + tmp_monthly_dir / tsw / f"{tsw}_boxplot_{metric}.svg" + ).exists( + ), f"{tmp_monthly_dir / tsw / f'{tsw}_boxplot_{metric}.svg'} does not exist" + + if t == 0: + #comparison boxplots + assert Path(tmp_seasonal_dir / 'comparison_boxplots').is_dir() + assert Path( + tmp_seasonal_dir / 'comparison_boxplots' / + globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, + filetype='png') + ).exists( + ), f"{tmp_seasonal_dir / 'comparison_boxplots' / globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, filetype='png')} does not exist" + assert Path( + tmp_seasonal_dir / 'comparison_boxplots' / + globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, + filetype='svg') + ).exists( + ), f"{tmp_seasonal_dir / 'comparison_boxplots' / globals.CLUSTERED_BOX_PLOT_SAVENAME.format(metric=metric, filetype='svg')} does not exist" + assert Path( + tmp_monthly_dir / tsw / f'{tsw}_statistics_table.csv' + ).is_file( + ), f"{tmp_monthly_dir / tsw / f'{tsw}_statistics_table.csv'} does not exist" + + +@log_function_call +def test_write_to_netcdf_default(TEST_DATA_DIR, tmp_paths): + temp_netcdf_file: Path = get_tmp_single_test_file( + Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc'), tmp_paths)[0] + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=temp_netcdf_file) + + transcribed_ds = transcriber.get_transcribed_dataset() + # Write to NetCDF + transcriber.write_to_netcdf(temp_netcdf_file) + + # Check if the file is created + assert temp_netcdf_file.exists() + + # Close the datasets + transcriber.pytesmo_results.close() + transcriber.transcribed_dataset.close() + transcribed_ds.close() + + +@log_function_call +def test_write_to_netcdf_custom_encoding(TEST_DATA_DIR, tmp_paths): + temp_netcdf_file: Path = get_tmp_single_test_file( + Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc'), tmp_paths)[0] + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=temp_netcdf_file) + + transcribed_ds = transcriber.get_transcribed_dataset() + + custom_encoding = { + str(var): { + 'zlib': True, + 'complevel': 1 + } + for var in transcribed_ds.variables + if not np.issubdtype(transcribed_ds[var].dtype, np.object_) + } + + # Write to NetCDF with custom encoding + transcriber.write_to_netcdf(temp_netcdf_file, encoding=custom_encoding) + + # Check if the file is created + assert temp_netcdf_file.exists() + + # Close the datasets + transcriber.pytesmo_results.close() + transcriber.transcribed_dataset.close() + transcribed_ds.close() + + +def test_get_transcribed_dataset(TEST_DATA_DIR, tmp_paths): + temp_netcdf_file = get_tmp_single_test_file( + Path(TEST_DATA_DIR / 'basic' / + '0-ISMN.soil moisture_with_1-C3S.sm.nc'), tmp_paths)[0] + transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=temp_netcdf_file) + + # Get the transcribed dataset + transcribed_dataset = transcriber.get_transcribed_dataset() + + # Check if the transcribed dataset is an xarray Dataset + assert isinstance(transcribed_dataset, xr.Dataset) + + # Close the datasets + transcriber.pytesmo_results.close() + transcriber.transcribed_dataset.close() + transcribed_dataset.close() + + +@log_function_call +def test_is_valid_metric_name(seasonal_pytesmo_file, seasonal_tsws_incl_bulk): + # Create a mock cases + mock_tsws = seasonal_tsws_incl_bulk + mock_transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=seasonal_pytesmo_file, + intra_annual_slices=mock_tsws, + keep_pytesmo_ncfile=False) + + # Test valid metric names + tsws = mock_tsws.names + sep = '|' + dataset_combi = '_between_0-ERA5_and_3-ESA_CCI_SM_combined' + valid_metrics = globals.METRICS.keys() + + valid_metric_names = [ + f'{tsw}{sep}{metric}{dataset_combi}' for tsw in tsws + for metric in valid_metrics + ] + for metric_name in valid_metric_names: + assert mock_transcriber.is_valid_metric_name(metric_name) == True + + # Test invalid metric names with metrics that dont even exist + nonsense_metrics = ['nonsense_metric_1', 'nonsense_metric_2'] + nonsense_metric_names = [ + f'{tsw}{sep}{metric}{dataset_combi}' for tsw in tsws + for metric in nonsense_metrics + ] + for metric_name in nonsense_metric_names: + assert mock_transcriber.is_valid_metric_name(metric_name) == False + + # Test tcol metric names + tcol_metrics = globals.TC_METRICS.keys() + tcol_metric_names = [ + f'{tsw}{sep}{metric}{dataset_combi}' for tsw in tsws + for metric in tcol_metrics + ] + for metric_name in tcol_metric_names: + assert mock_transcriber.is_valid_metric_name(metric_name) == False + + +@log_function_call +def test_is_valid_tcol_metric_name(seasonal_pytesmo_file, + seasonal_tsws_incl_bulk): + # Create a mock cases + mock_tsws = seasonal_tsws_incl_bulk + mock_transcriber = Pytesmo2Qa4smResultsTranscriber( + pytesmo_results=seasonal_pytesmo_file, + intra_annual_slices=mock_tsws, + keep_pytesmo_ncfile=False) + + tcol_metric_names = [ + 'S1|snr_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|snr_2-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|snr_3-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|snr_4-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_4-ESA_CCI_SM_combined', + ] #amongst others + + for metric_name in tcol_metric_names: + assert mock_transcriber.is_valid_tcol_metric_name(metric_name) == True + + tcol_metrics_not_transcribed = [ + 'S1|snr_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|snr_ci_lower_2-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|err_std_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|err_std_ci_lower_2-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|beta_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|beta_ci_lower_2-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_2-ESA_CCI_SM_combined', + 'S1|snr_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|snr_ci_lower_3-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|err_std_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|err_std_ci_lower_3-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|beta_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|beta_ci_lower_3-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_3-ESA_CCI_SM_combined', + 'S1|snr_ci_lower_1-ESA_CCI_SM_combined_between_0-ERA5_and_1-ESA_CCI_SM_combined_and_4-ESA_CCI_SM_combined', + ] + + for metric_name in tcol_metrics_not_transcribed: + assert mock_transcriber.is_valid_tcol_metric_name(metric_name) == False + + +if __name__ == '__main__': + test_file = Path('/tmp/test_dir/0-ISMN.soil_moisture_with_1-C3S.sm.nc') + # transcriber, ds = run_test_transcriber(test_file, + # intra_annual_slices=None, + # keep_pytesmo_ncfile=True) + # transcriber.pytesmo_results.close() + # ds.close() + + test_bulk_case_transcription() diff --git a/tests/test_plot_all.py b/tests/test_plot_all.py index efabe2b..1301a4d 100644 --- a/tests/test_plot_all.py +++ b/tests/test_plot_all.py @@ -5,8 +5,11 @@ import pytest import tempfile import shutil +from pathlib import Path +from qa4sm_reader.netcdf_transcription import Pytesmo2Qa4smResultsTranscriber import qa4sm_reader.plot_all as pa +from qa4sm_reader.utils import transcribe # if sys.platform.startswith("win"): # pytestmark = pytest.mark.skip( @@ -27,15 +30,28 @@ def test_plot_all(plotdir): testfile_path = os.path.join(os.path.dirname(__file__), '..', 'tests', 'test_data', 'metadata', testfile) + temporal_sub_windows_present = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile(testfile_path) + if not temporal_sub_windows_present: + dataset = transcribe(testfile_path) + + tmp_testfile_path = Path(plotdir + '/tmp_testfile.nc') + encoding={var: {'zlib': False} for var in dataset.variables} + dataset.to_netcdf(tmp_testfile_path, encoding=encoding) + testfile_path = tmp_testfile_path + temporal_sub_windows_present = Pytesmo2Qa4smResultsTranscriber.get_tsws_from_ncfile(testfile_path) + + pa.plot_all( filepath=testfile_path, + temporal_sub_windows=temporal_sub_windows_present, out_dir=plotdir, save_all=True, save_metadata=True, ) - assert len(os.listdir(plotdir)) == 60 - assert all(os.path.splitext(file)[1] in [".png", ".csv"] for file in os.listdir(plotdir)), \ - "Not all files have been saved as .png or .csv" + for tswp in temporal_sub_windows_present: + assert len(os.listdir(os.path.join(plotdir, tswp))) == 60 + assert all(os.path.splitext(file)[1] in [".png", ".csv"] for file in os.listdir(os.path.join(plotdir, tswp))), \ + "Not all files have been saved as .png or .csv" shutil.rmtree(plotdir) diff --git a/tests/test_plotter.py b/tests/test_plotter.py index 1dc9d6a..0c2b4a6 100644 --- a/tests/test_plotter.py +++ b/tests/test_plotter.py @@ -601,3 +601,7 @@ def test_average_non_additive(): # Included in the standard interval assert 0.5 < avg < 0.7 assert avg != np.mean(values) + + +def test_logo_exists(): + assert os.path.exists(os.path.join(os.path.dirname(__file__), '..', 'src', 'qa4sm_reader', 'static', 'images', 'logo', 'QA4SM_logo_long.png')) diff --git a/tests/test_utils.py b/tests/test_utils.py index 3e67fe2..78c67c7 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,4 +1,25 @@ +import os +from pathlib import Path +from glob import glob +import xarray as xr + import qa4sm_reader +from qa4sm_reader.utils import transcribe +from qa4sm_reader.globals import TEMPORAL_SUB_WINDOW_NC_COORD_NAME def test_get_version(): assert qa4sm_reader.__version__ != 'unknown' + +def test_transcribe_all_testfiles(): + # check if all test files can be transcribed for subsequent tests. proper testing of the transcription is done in test_netcdf_transcription.py + TEST_FILE_ROOT = Path(Path(os.path.dirname(os.path.abspath(__file__))).parent, 'tests', 'test_data') + test_files = [ + x for x in glob(str(TEST_FILE_ROOT / '**/*.nc'), recursive=True) + if 'intra_annual' not in Path(x).parts + ] # ignore the dedicated intra-annual test files for now, as they will be tested separately in depth + + assert len(test_files) == 13 + + assert any([isinstance(transcribe(f), xr.Dataset) for f in test_files]) + + assert any([TEMPORAL_SUB_WINDOW_NC_COORD_NAME in transcribe(f).dims for f in test_files])

86o*D*weYrR78zz`LM^2$11h^VmFi$GM^*N5-V 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 #T4&X(Oh32Q1JQMSG_2_Q!!MSyeP-|K8IAjH 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 z zUgSZe7Y#HTy~u+`FY=(#i#%xbA`cq9$b&{N8hJE&kq3=lTWb4Gfo!Tb61Vu(v*dc*Hm4N zU)O$7Zv48&YfD{?U)TM*j7Hb|a`iYje#_0P>bT2jtm=B5=Uc|F)?G2qjbGQe8jbe2 z8ozd3b2WZ7SL3(Ht>3+E#JlFX>T1N>Sp9yETD2aR9kLE{&VJsQ8rgT^oNpz(`5X#64%8oy}l(fCCkG=7l> zjbG$J;}?0*_(emF#xL@q@ryiY{2~t;zsQ5eFY=)Ai^d*}U*tjK7kSY5MIJPMkq3=m zH1=rxA`cqB$b-f&@}TjHJZSu)aZ2MCdHmJJ?>2km^~dgm`RcuQSuHbCDm8wK9>8kU zIeGw>wyJcWzj|DI0GGS2_5dz7uiSXi19%ZR)U**??tblY?Qv??HCH28bB)d(r;Es; z*w^X-taXjr16cE#ibW6L{Qmu$pUrv^ul-=w^Le|u(xW&!@wcp3as3^$p2zFWml$5z zOL_>0yZ%FZB>VgAAib!glb-s~^em1p_$liFz2-*JQ`%pDYuVr1a_Ouma*M5hl6n7X zn)Ps=QD4UWHd$}&^o;S@`rB5Q9>zhPX0pG(`&V*5-j}P${9v6<(i_=d>*(x0#*UIa zYV)(qkGI+?>pgu|UAgZ#*>0xvUjD63)`R-+b!1-h%8A*19X?WeC?^wtkenydtM1SsMa{u1dYskE4&jzx8*!I(KhVuQU=RPOjM{>%{?0RRfGF9$- zM7BP<;bhq_I__5KMV-FA; zN3@YVuHR62M$eDTo@cM-a$oVW4YKFhFYECht=de+(}t5}y?1#R;T9e?L9P=nePniD zZQqx5<}2r?mJ+Dc2wu6dw?~Z{!Mo>zfkqm^__LuAjK(L8VB|p~7*Zm7h6W8j@OhCsr!Xxj7XiQMx^FpZbWLX zMx^E%my{7%?tJL=HL5YJxyI@m!@4eU7{fa5Iv+ajincLq&(rf^8^bzJjbY7Q(Kd#4 zp34|6#%*I*f3IbXVO^g(jA0$uSXEa{ImpdOi zPh&Y_Sm%`@Ked%WrN;2~jlDf<)EM3)7Z5bk7{=cXjbSuGX$&I|8pFtg#xNS8G=`A} zjbY?LV;Buc8pFtg#xU}rF^oKD45I-_V;FhR7)Bm6hLH!2VKn||3?mO3!^nfiF!G== zj67%zqwz;$7KaW#t7n5;0aJyu=&R{_E^Ep=yyZ;^P&5>Vx0FNw#Q?u z2eCb_J&5gkP3115Soe3G5A8v$^XwkPMg7mePf8_zY9)b6jpCM#y}fGGDBd#{6g1K( z#vcuhVl+l+6eABB#mIw3F&d*ZijfD6V&p-i7!64p#mIw3G4h~Mj67%*qajJ77VZ2jbh|MqZoP6C`KMMiqQz9QH(rj6eABB#mIw3 zG4h~Mj7A`hV&p-i7}G5Dfx1B=E?Y1oBS$q*HdJFZ|MtUJn41Ax2B%1cAKpCJ8m?= ztl>1t_v!YDiQX0OelGQ8j+6UO+V4Nf zdAA4^X7hR z^5Ea=%#iwJBj!t9Cz1W5cYcu=H`{8wj6ZN|#(D5}azD|npQomtUO7SP>Do_yWAdoZ z&$3VS(1UMC{@&r)^)6^XPWBmG{}HL5a-rOxf5Sz>D?00*jMv$h3m<>zPFY-b-iu~_ zGHMOEAAjHta{cs&ALV-CCDSCvM`ZUOjZQu=^Sy)4cw4Ub-H+Mz*KYrdy}w_!KG}P}Y~Nen8!Pq8TD>a! zFVl3kiP00w$?qXNbp9(QPlx>~`*;)D$nVs@^qI+~9-p^<_Pc$0fbjI*>y2&A6hTY zM?SCI`OtOYBAyRjUoM8$`KU18Iv+Z&=Ra`LE{*C&^SgOG>*|2q;ZTqXdELC8pp_k#xe4sag4?w zjbr3N;~06+I7S{cj*$nAV>AY793u}J$H;@mG4h~sj67%@qajD*7*|YrE!cr z{@0A-Imh7h_dX8uXP@xj%Z!+X8khfHMsn$v2@?>-xXSNY?8mOUOv3vA<-Eef|DI8vC`?*e`vB{M1SUl^V%C8+-fJsFA!+E;wkU zk&HhY8p&v!(nv-gG?I}Ajbt=VX(S^L8p+6mMlu?fG?I}Ajb!9OBN=(nNJhhwMl$lC zk&HZOBqI+R$!HYPNJbtsl930EWaL338F|o1Mx&5MGV-92j67&0BM%zM$b&{Q8ih2H zkq3=rfC8p+6mMl$lCk&HZOBqI+R$!MI?NJbtsl95Nl<1rs~8s^J6z_6zm@cOj(6QBi|tmHp3&a^+x~8P zE=P^d_>aV7OX)Ek9kZ_V^7am0*9%JH!K1UKN4D4hD(T6c-hR0BeD*$AKI=8T@hdXV ze{GQL?;mi2j0X>9y~(|P*JVAn+qchpNDr%@kHs3?VmhC(n}m4BOR{{lcG*$*waa&c3H-pUUPR?aTKOcl}nL z$6x9m=^>u1ov**?PK*GiranUeL4zhtP~UvRqPZ8m-`Bz{8GNR(hxtjl|ZG&@}S1v0X1qY@0SY@8fh%!?}o-Q8mTmvkq3=s z;G@8*!q|uB#Xfz`a8qLUqMl;G@8*krO}K$Xfz{_#Wk9r=z#kj zaW>{BUHICinQ>Ds!&!UOmXlUAgwC zb&c1yx}W!`t!?*R?tZn0vvZzhJUizt;d8OL*A4O>&eh&0@8Mi-U3Je#x&3V8x!nA} zYFyt4pgo)y`MTA7BfuhGr_Aq?#&e16f7_>0<9SYF@8B9Wo)5|e3XL?L@%KdI8I4vN z&&Y$uGxDJEj7BSsXXHWS8F|onMuU^aGxDJEj67&OBM%zSXmHYaMjkYtkq3=utTw^AG3X^=|8g`O#yejY>vNJn`Z6VrYt-YNN7XWe3A zGX1T?O$_{D*Gu%SmU>*j%Uvc&*P6=@g|c;Ev`S^M6cEB^1R^*+Z|`}aOU* zSDr5jf6u%GUc2JS5MRM%#5T^`OT`r$~J9 zj_XVeyT{r6UDjRd;e=4;`%m@1Lgod#bT-kO+*a~<++M=dyK*~O7YtnP1~VQF-bc7a z6JC2aRat zK_eP@(1=DJG@{Wsr4fxhXhb8A|8FCDxAXCSKIn}3ve$mGYW82~iOH$Pbg3kHSz}ra z&^#_FV_NS=V{94IT32IQb2X+lS7TapJ1!|>+P+Rr8`H)9WsGT^S6yRT*J&(gOzS)~ zrZtaqV_I{K)itJdogK>=)5ZMUnAW_UF|G6L^PzQpqk!f`T*NmD=z9B&0$R6YvV`9# zpx3MN`Ov>V^o;^}UQ=%r(EG99D4=ya7H<^Lzpv~!3TQo#i+VovjRN-dHD6M16wv*h zZxqO%t2iIl^DgQe1@yY5$WLu0P^mG!{m$NDHEK*Bk_#9bX-wnqhQ>4+u{5TU2aRdu zL1P+?SQ^vFgT^%SpfQaGD2-|4L1P+u(3nOZG^Wu2r7?{>XiOsy8q>&w#xxp_G^UXU zjcMdTV;XtTm_{BnrqOt$F^xQEOd}5()5wFyH1eP^jm9I5Y2-m;8hOx|MjkY#kq3=w zH2i2xBM%zW$b-f-@}Mz|JZMZK4;s^GJkpp(9yF$r2aRduL1P+u(3nQ!k;XLgpfQa+ zXiOsy8q>&w#xxqIG^UXUjcMfZcQ>Y^3-Nw8zX5ZQB?$I?U6_YX7UuR-4a6lI8{!4mphX-D8 zkJMj!LwZ>0$0K`{nsEFTP*)_cpsu?kBzA!fd~0!=yKNxb(5oE8JV| zA?Yz64Vclxtc(5OH<*}wvt8CRyw}+mnml^o1L;v7UvWydZ=ECLd7_oB%zDp1(Oh~j zr)Tt#=S}0^Pc-Yi4Tm3NV$$*K{w4-vSCIA5@*iJq^0d>qyG``h$$Hu+L-vyAh`NqF zPwLAz6<)!Z59NOR69&n;aQbml4@aIQz1GuJSC{LC!|Oa zAiMuyv%{~F{dXAL$;9}YljVE$pPC`j`}$m&?_GXh#%t1-avguewS;@xx21f);Wk&w z_YqIsBfHO|wrXeg3m(kZ54}mA%U@=U^g>U@Tz;w<54Y+nJ=DD$$IEqs$Jdg2)VjIM z4_|EF)yxa-SnnbeR)yRWJHS(ZQjfNnBM%zYXaLfvMjkY(kq3=xU@_`s^e;uYHk~) zT2HHJlb&YCVYwj|xb-aRct>1?$TE?~RqcJUGTvqd`jJ8hOyTMjkY-kq3=yG$v_W zBM%za$b-f;@}O~zJZM~_F-hYZdC<5<9yG3z2aRjwLE{>YNgCJ4gT^)TpmB{nXj~%? z8rNtD(zr$*G_H{cjcepV;~II;xJDi{uF;sJag97^Tq6$}*T{p$HS(Zwjm9L6Yve)W z8hOyTMjkY-kq3=yG)`$;BM%za$m74=xE|IGpEvA*`EG4S{3kPl#JtuXzoioP#LkUu zyRJrdl=t|x$Ai4buU)U{yy)?p-?tjsdL8ZYt9gZ(_xP<)w>Xp=*B-y+=Gi@db-v3u z)p1v}jZ@b=try0r^?cgnSLbQ0(BoIvX^&sc^XM{8b-yB7#%WR4{qi2a73w;kN4v+b z&etBlnrn|=&8r(-=fk;=qX)Lmx6g-dWa~UT+C8v~@w^AN=4svoTk~=~uyvmHz}8%2 z(F5D!ujBg00?oAtw&vx|hoASr*7>%Pt#y54f!zaJ$F&D`k?Z|du?Kds&gy}!b^DD4 zS}%HF>-99|Z!FMxdOkES7pvO?TlcfySP)x1uyvkoWCwWB8+p*kMjkY>(Ws=6jXY>% zBM%zc$b&{U@}QB8MkS4GH{rWM0>Q>225bUvS!W{g+vGUH^rFUDy9l znO)ca#@DWEu2Jt({}ZQO*S|UKx)QPLE9dHzU0=mfU)51x%~8*>diMTnIOebEsITRy zukEO>!`2qsBhq?Z|JCRM}1pIeLF{edq=&#qrQWqzN4ewz)|1HQE%v|H*(Y)JL)?->P;N= zrjGh9j{2^S`fiT;?v8phM|}@Ry}6^lr=uP?>U%lrdpqj;IO_X4>iaqB`#b6fIO+#F z>IXUMEgbcO9rc!u`XP?`p^o}tj{4z_`Vo%$k&b#RNBt;Ay|tr$w4;8EqkgQTew?G; z#!)}sQ9r>^KhaS?$x(0XsE3aF$&UIdj(R&s{a=oHdq@3LNBuNM{d7nD3`hM;NBt~E zy@R9P(NRC!Q9s8~Ki5(3>X$m|mpST} zJL*?B>Q_4Ik)wWI)sCReNdpPRXI_lRs>eoB!H#q7&9rYU>^q_=Xnb!8f!Z55A!V zdGHM_%fSD>Hw1$podEi1s^r+h;T z^57d*?@p=Cw*-!FVa3-aI_T960d(1JYph8E<(H?;f%{yya! zT960d(1JYph8E<(H?$xRzM*9$`1_P^Xh9x)LksfY8(NUZYCSPO>F)E4fEcfJ&s-z+ z2lM-WW}-LkirJEXdZR>tO1tk(9`CTp4<;sWPWn#fjcD?Cx2|2?Z11^RMy@0jqD#j zda2A$PCY~B2e^}BwC%@Bp?oJ<@dFe?9O75Srw(v|Y31nS3WoY*N122{52-oi@oRSxN$?wH` zYa3Y~FFjkhrC0UIu5(x?xlVY08>zd_N9oe@uPptKs-6#>uhBjqS}$U`^O0XaT*ULC z*U|G)>X31#&+vm0MSTe8-F)6 zw$aF?v5h=vY$FdE+i2v{*hU^Swvh*oZ8T76Y$FdE+sK2)Hu9jcjRq=>ZR9~?8+p*! zMjkY_(YU0sjXY>@>Hy#xA{JLs%+w~&PjqW1P*A;I(uq zc%bv`^Pz7%&~c6BjBcG*-KcLou-Cx~CGULoom53KLoe&d0zQ=?mRjrzs|%{8jgt$Dfg5m|3MD6QkC zwi2k+=pMVXcU+Ac-N)pDh(;RS_`9Lejm9pGZsb9u8+p*^Mq`&oH}as-jXY>{qoGQp z8+p*^MjkY}kq3=#G*oGHBM%zg$b&{V@}SX;MkbAJ{BM%zg$b&{V@}SX;#wm?%rRB_3+kljn(bpt?RUhx8~)HR#y*iU0+12hj&r8 zzL)svAz4rG8y}FK?a}pfq{nzN?^lWO*lnd}d3yLyS?}^*H)g%YZ(dP)oCo!GkY4g> z{il93J;%e3ew1G6-liK$Pxxfy=2@@u7naJ_t-AG3W}f#$6X`)7PupI`y{-1odbLj; zC+q#IR+k>+{%gC+{@!X|$o)hkR+0Jf*XK%a^W=ad4ddK^9 z>&kt{M{hk-?r--tvVU^OIx;VM9rlWh#kagd@A@?0E-$v%8UE5_n;SZfI z_2l94Sr7VGC&+km`A1oA_68@*^`g~V%0B)B>D#hj_Z6h>4H+TV39oCF^=!Xm$Bbv+ z^|I?teMs)#yLydm-u*ku{@#7R$o0}SW@YizXQb}WcwKtMhtDk|*NX=YlIw(5PtES* z<@aQMvcn|dIPI$)S|0&(yM3jX zd~j0TY4TkA-YPxl!&82i>jb-f^1i7j+wU#&R? zlPp0-&MxFUna@=;NuIk-`U6GZ;~RO<_(mQyzL5uw zZ!|V(d?ODU-^hc;H}atIjXY?4qp?Zj8+p+9MjkZ2kq3=$S9`pwxf-uJKeCKhtyedy@v7?;ty51Gl2)D;= zBitUZsa%cln%YnIQ6pUQ3ehscD~$iiw=~30tt3#X5x#O0@5CB4!jI1d6OA;&@kc`= z9F1QZ;mCtVIP#zoj>a#IaO6QF9C^?PN5hpyIP#zojy!0DBM%zkXt>e{M;^u1l1p2`KAPJ-lC`eUWsJLeBp2%(J(6|2szz+N9?8025%V6&MV>#m_DI&c z%NW;jjiKEmIp0r>ah<2JT#sa(=Q(;L7vuSL)QGi>ahDMr`zENRu_o?psvc`DTzwgqe`KgrzDmBKpZ{oGBQDgkX zTtLxCV;p}pG{(^grZJ8@XpAEd8slgL(-=n{G{%t!jd3(!X^bNe8so@=#yIkzF^&c- zjdA2bV;p(V7)Ks7#?knsF^)WFj3W;kadAapXZ`9C^?fM;@}Mz}JZOxg;Yec~dC(X~9yG?02aR#$L1P?w&=^PKlg2pmpfQd- zXpAEd8so@=#yA?EG{%t!jdA2bV;p(V7)Ks7#?d&XF^)WFj3W;kfUxbHp}4ma~=wUqs%;N_3ZyyX6R zlTD1KJ}}P2;IM(SP4w?y=2H{nonMjp-t6Y7%=>iQ=O%{F4tZDd@oPvPtgx}%k2mJ2 z8K$0oaocMqdXF3?`-Q*#KHlX1a$C#1sP58l$ogS_$o10(9p}jWM&HYG2h&D=W%9U5 zdwHJViIc81dD?Q2tdGZiCHI#M8}PEJ`#o-+AhGRclT3`h9VyohI(HIY@zo<=mGKcv z$vS`NE7K%D#><|gSNrE=-IH^_G|^jX=mV0Uw{@0x+URSOC)?g3^Ssp$5w8B}_sey> z-|iKj;W4Xa-|O}><^Gdi*USC*ANP{)FP=JgirFW;==XQzIzL|af{Fg8FUs%0?{$t` zFFv#WWy8(&8uyUr_IJBzs+pJco-onG=<`qIdVV@gzMo*|&`9=KuYUIZG;aHpf% z_YwV8?|qYd{?_-Kn4CE~d#>BplJVe{ljOdWf1fD#7hLe0d>>)Q!T*+h4qI3D^#)$} zg~@|%x5)h_6JN@BZgZ8a^O~P3`@|3KBm1Y@v>I*ZhyS=Spl z`(_T7c~b^Uz1;aIZ3%BuNUigs?rd^Yc+!$4_k~P^nSgvWa(cjT+@`b3sKTjdJ|m&?rY^ zm_|ABpiz!IXq2NdOrsom&?rY9G|JJCrBRMNXp|!l8s*4?MmZX?G|G_&jdJ8cqa1nA zC`TidMmh4JQI0%llp_xs<;a6ZIU1of%8>_+a^yjy9C^?vM;>piz!IXp|!l8s%t& z(kMqBG|G_&jdJ8cqa1nAC`aRzMmh4JQI0%llp~MYW|X%bi1)wL! z^Yx7kcHPcx<6Ot}jSQN*qMyH!!8Kmpy1tRYwXVV&8Orccd8zF^zNNLE{{G&^SkuKRgqdZ6pPMeTvE z>s>w2bzEaq!#&V-U%Lmo)-^6_4|H8$&bYOEJgaeA-5%(AJzsmE=ihg^9_YGGjoZZP zfgW}}Kzh4JS2dp{J=Z5+D!tazbd@Y#I)ALGr%gY6LwcvrJ8QheGY+32^N;N*J=(*& zXC)?&PwFi_+LJGSpDW|@H_m#;H@;EoQKvm$mU=q+6Pf?(8<5{;?8@^{>f8sNH6=e z$;Gl?wAF_1ne~3_lVo1B?x~Ya9&h)$T;IE(e%7nLZM(PRI=?lS=Lkm(%i?{9jxhCf zueW7=&~LijU;N|aZ_E762FU)wrE9%!a zJ}}Wgwb7dkNbWy5=m_DJPJLBkxc(E_^&eU;yUuN6GM=S1{M1qc zl^W?in|SSO)JSia3oaUIq~p(qMmieDG}4g=jdbKeBOQ%n8tKS`MmqAKk&cEfjdbKe zBOQ6rNJkzt($TP`k&ZlQq$3X+>BxgdIvS-k(vb&^bmT!J9eL15M;BxgdIvS@m(vb&^bmT!J z9eMn(8R=gR!sqYx1m^L>!H~?DT4>L7HF8T+7CK(8u12nFUXUBPIv(UkuI6gwYHl03 zTDN04BiEj1c>dz~7&73yV-TzkGN4;;q2&JS~AUGpF} z)-`t->pJc-)^*$!^?c~K%UIWOJ673P*WY7qtm{5%tZT04Lv!0$*Lrb2Y-2sYj%}># zIyKfccg1q&LydKNy`B%do?6CwF`gUin!Aj39oJaSSl4+PD;VoJCzr9V>on^5u#NR% zJU7-g*JvB-S}#R@YAbu-~9gSof z>&Sz~I`W{gjs`A`b>u-~9eL1LM;u8+PSVtZ-){zH|b>u-~9eL1LN8^;nI`W{gjy!0rBM%zu z$b-f@8mBbYkq3=+_gb!B=?>pa`o zt*IW!$F%awhnwN{NH$J%5X%BWCcb$(Y@4>F~N|B%1N}y7seQXo&j2boCPs;@vjWpWvcSEBc zjb$3`$b&{Z@}SX<#xjj|G}@5|jdtWgqaAtBXh$QJMmzGL(T+T5 zv?C81?Z|^hI~tfY+K~s1cH}{$9eL1bM;D zn5>U)*kiWIgLm%xMB-|f%KY@#@gJHz?a=0P6T_uXf7it1jKe-N(fj0_?0#N4GTZ+@ zV@8^KG;i1!CdOCa__m3`mS@Slv}McJW!*0S$*%wOTVI;o-))cVx%=MzmC4g+ZF!z( z<*Rzg`VGd)`lRz<;TDWp@da7e>9p}CdMlkiQQ}#<$a6#=c9>@JWWu(?O$;90M4rpv zejDMK-gMIxQ;+WZeu&KLc5!weLuU1t`AglE?XyjtuT37#Yn;tHs%`c>@7K@9TU{(X z!)Hgy_2Oou7Ed1GIcy0_x|r)B+V&9eLZ`G;Au&)C<6 zfBNfxgl9DKCs`Msy^8FU+|^B(OvXkE{T=APqx=(y{A z6yuKbq2n6E>Yk6Bvz`y#r-;=&AH_QB`zv=o7P78X;-^*;sML6$)5JTgMveC~a)Cx8 zjd%Rf(0E6qnZ`Tvpz)48XuPA*OyeDS(0E54G~UtRrSXnDXuKm28t=%1#yc9kG~SU1 zjd$ch;~ja>ct>NE#yj$$@s2!bydw`9@5qD3I~uDr-jN55cjQ6i9eL1rM;ct_)u#yj$$@s2!bydw`9@5p0ujrZ4I#{JGr zFz?cBvjZ|COHAL=9~Wx;YF&-^BDYLRt*h~?xo;WqTDOh(qHgW0M!ajhf)Q`8FJr_P z`{qWx=2bP~b-qTwj1jN%YTAg`eeI~mZ(+peeAI~7`L+?Sbv5EO*QiFk=4lm;c%83C zyyj}e7rFI4YCW=yc&%$xBVKcjYQ$?^#N3G2T#b0m)rkMQyfLDS z2aR~-K_eb{(1=H)l}0@Bpb?KeXv8BA8u7@3Mm!p=G~$s5jdS2aR~-K_eb{ENLTtl~?e3PrZuyPS?)vQ8KpF2rm5*%=xP3 zc8_e=y2S1wZ(UD&Wb1lY4|yHe9@(1PJ><0>SjN28H5NVOt^3h&FYh5=rUVCI~{&$O!)g!yc?$7EWU+k+rm5zvph#Su#d#>to=vG{JHzfeR=(72seMZ zb!C3K^3Zo>{LMS3%0A27B-i!oefvg=vgew2V#d+C@B>p1n)Q1_)-~-d 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