wavyopen 0.4.1__tar.gz → 0.4.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.coverage +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/PKG-INFO +1 -1
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_triple_collocation.rst +23 -38
- {wavyopen-0.4.1 → wavyopen-0.4.2}/pyproject.toml +1 -1
- wavyopen-0.4.2/tests/test_triple_collocation.py +248 -0
- wavyopen-0.4.2/wavy/triple_collocation.py +734 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/PKG-INFO +1 -1
- wavyopen-0.4.1/tests/test_triple_collocation.py +0 -129
- wavyopen-0.4.1/wavy/triple_collocation.py +0 -402
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.env.example +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.github/workflows/lint.yml +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.github/workflows/python.yml +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.gitignore +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/.readthedocs.yaml +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/LICENSE +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/README.md +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/.gitignore +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/Makefile +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/conf.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/credits.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_L2_vs_L3.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_col_insitu.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_gridder_coll_nov.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_gridder_coll_rmse.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_gridder_obs.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_quicklook_001.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_quicklook_002.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_quicklook_003.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_quicklook_004.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_quicklook_005.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_vs_mod_waves.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_vs_mod_wind.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_waves.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_sat_wind.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_stormtrack.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_tc_1.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_tc_2.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_ts_insitu.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/docs_fig_ts_sat.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/ecwamMoz_coll_2023_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/ecwamMoz_coll_2023_sc.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/ecwamMoz_coll_2023_ts.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/gallery.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/index.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/installation.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/lm_example.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/lm_example_coast.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/lm_example_coast_norway.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/model_quicklook.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/mozambique23.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/mozambique24.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oneocean.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_collocated_ts.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_1.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_2.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_3.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_4.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_map_despike.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_map_limits.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_map_raw.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_map_smooth.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_ts_despike.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_ts_limits.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_ts_raw.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_ts_smooth.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_filters_sat_xtrack.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_gridding_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_gridding_nb_collocated.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_gridding_rmsd.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_insitu.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_model_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_sat_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/oslo_ws24_sat_ts.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/quicklook_ts_insitu.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/rabault_et_al_2022.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/requirements.txt +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/serve.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_ais.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_collocmod.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_config.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_consolidate.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_gridder.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_insitu.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_modelmod.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_quicklooks.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat_download.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat_filters.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat_import.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat_multi.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_sat_regions.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_stats.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_stormtrack.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_validate.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/tutorials_wavyQuick.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam21.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam22.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam22_2.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam25.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam_coll_2022_2_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam_coll_2022_2_sc.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/vietnam_coll_2022_2_ts.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/workshop_latest.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/workshop_map.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/workshop_time.png +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/docs/workshops.rst +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/environment.yml +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/setup.cfg +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/__init__.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/conftest.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0756_20190324_085453_20190324_094523__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0757_20190324_094523_20190324_103552__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0758_20190324_103552_20190324_112622__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0759_20190324_112622_20190324_121651__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0760_20190324_121651_20190324_130721__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0761_20190324_130721_20190324_135750__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0762_20190324_135751_20190324_144820__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0763_20190324_144820_20190324_153850__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0764_20190324_153850_20190324_162919__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0765_20190324_162919_20190324_171948__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0766_20190324_171950_20190324_181019__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0767_20190324_181019_20190324_190048__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0768_20190324_190048_20190324_195118__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/CCIv3_20Hz/S3A_SGDR_C0042_P0769_20190324_195118_20190324_204148__PEACHI_V2-1.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/multi/ESACCI-SEASTATE-L3-SWH-MULTI_1D-20050826-fv01.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/multi/ESACCI-SEASTATE-L3-SWH-MULTI_1D-20050828-fv01.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T000000_20220201T030000_20220627T133409.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T030000_20220201T060000_20220627T133414.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T060000_20220201T090000_20220627T133419.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T090000_20220201T120000_20220627T133506.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T120000_20220201T150000_20220627T133453.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T150000_20220201T180000_20220627T133459.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T180000_20220201T210000_20220627T133503.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220201T210000_20220202T000000_20220627T133543.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T000000_20220202T030000_20220627T133539.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T030000_20220202T060000_20220627T133550.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T060000_20220202T090000_20220627T133545.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T090000_20220202T120000_20220627T133627.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T120000_20220202T150000_20220627T133630.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T150000_20220202T180000_20220627T133628.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T180000_20220202T210000_20220627T133630.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220202T210000_20220203T000000_20220627T133716.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T000000_20220203T030000_20220627T133711.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T030000_20220203T060000_20220627T133710.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T060000_20220203T090000_20220627T133713.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T090000_20220203T120000_20220627T133755.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T120000_20220203T150000_20220627T133753.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T150000_20220203T180000_20220627T133755.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T180000_20220203T210000_20220627T133758.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20220203T210000_20220204T000000_20220627T133839.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3a/global_vavh_l3_rt_s3a_20230704T180000_20230704T210000_20230705T001501.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T000000_20220201T030000_20220630T215237.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T030000_20220201T060000_20220630T214527.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T060000_20220201T090000_20220630T214537.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T090000_20220201T120000_20220630T214910.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T120000_20220201T150000_20220630T215128.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T150000_20220201T180000_20220630T215045.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T180000_20220201T210000_20220630T215105.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220201T210000_20220202T000000_20220630T215305.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T000000_20220202T030000_20220630T214228.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T030000_20220202T060000_20220630T214237.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T060000_20220202T090000_20220630T214520.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T090000_20220202T120000_20220630T215205.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T120000_20220202T150000_20220630T214753.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T150000_20220202T180000_20220630T214826.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T180000_20220202T210000_20220630T214830.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220202T210000_20220203T000000_20220630T214307.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T000000_20220203T030000_20220630T214824.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T030000_20220203T060000_20220630T214744.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T060000_20220203T090000_20220630T214947.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T090000_20220203T120000_20220630T214931.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T120000_20220203T150000_20220630T214405.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T150000_20220203T180000_20220630T214913.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T180000_20220203T210000_20220630T214613.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/L3/s3b/global_vavh_l3_rt_s3b_20220203T210000_20220204T000000_20220630T215211.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/SWIM_L2P/CFO_OP05_SWI_L2PBOX_F_20220226T173014_20220226T174953.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/geojson/wci_nn.geojson +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/insitu/daily/Draugen/AR_TS_MO_Draugen_20230820.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/insitu/daily/Draugen/AR_TS_MO_Draugen_20230821.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/insitu/daily/Sulafjorden/AR_TS_MO_A-Sulafjorden_20230820.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/insitu/monthly/Draugen/AR_TS_MO_Draugen_202307.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/insitu/monthly/Sulafjorden/AR_TS_MO_A-Sulafjorden_202307.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/track/Katrina_track.csv +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/triple_collocation/Norne_ico.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/triple_collocation/Norne_mco.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/triple_collocation/Norne_sco.nc +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/data/triple_collocation/simulated_t.csv +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_aismod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_collocmod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_config.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_consolidate.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_filtermod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_gridder.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_insitumod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_modelmod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_multiins.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_multisat.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_satellite_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/tests/test_utils.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/GPfcts.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/__init__.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/ais_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/apps/__init__.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/apps/wavyCFG.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/apps/wavyDownload.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/apps/wavyQuick.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/collocation_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/d22_var_dicts.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/insitu_cfg.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/insitu_cfg.yaml.minimal +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/model_cfg.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/model_cfg.yaml.minimal +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/quicklook_cfg.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/region_cfg.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/satellite_cfg.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/satellite_cfg.yaml.minimal +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/validation_metrics.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/variable_def.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/config/variables_frost.yaml.default +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/consolidate.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/credentials.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/filtermod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/grid_readers.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/grid_stats.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/gridder_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/init_class_insitu.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/init_class_mod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/init_class_sat.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/insitu_collectors.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/insitu_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/insitu_readers.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/model_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/model_readers.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/multiins.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/multisat_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/ncmod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/quicklookmod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/quicklookmod.py.old +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/satellite_collectors.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/satellite_module.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/satellite_readers.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/utils.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/validationmod.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavy/wconfig.py +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/SOURCES.txt +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/dependency_links.txt +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/entry_points.txt +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/requires.txt +0 -0
- {wavyopen-0.4.1 → wavyopen-0.4.2}/wavyopen.egg-info/top_level.txt +0 -0
|
Binary file
|
|
@@ -98,17 +98,21 @@ With: :math:`\epsilon_{x} \sim \mathcal{N}(0,0.1)`, :math:`\epsilon_{y} \sim \ma
|
|
|
98
98
|
>>> import numpy as np
|
|
99
99
|
>>> n = len(df)
|
|
100
100
|
>>> np.random.seed(1)
|
|
101
|
-
>>> e_x = np.random.normal(0, 0.
|
|
101
|
+
>>> e_x = np.random.normal(0, 0.1, n)
|
|
102
102
|
>>> np.random.seed(5)
|
|
103
|
-
>>> e_y = np.random.normal(0, 0.
|
|
103
|
+
>>> e_y = np.random.normal(0, 0.2, n)
|
|
104
104
|
>>> np.random.seed(11)
|
|
105
|
-
>>> e_z = np.random.normal(0, 0.
|
|
105
|
+
>>> e_z = np.random.normal(0, 0.2, n)
|
|
106
106
|
|
|
107
107
|
>>> # Generating the simulated measurements
|
|
108
108
|
>>> df['x'] = df['t'] + e_x
|
|
109
109
|
>>> df['y'] = a_y*df['t'] + b_y + e_y
|
|
110
110
|
>>> df['z'] = a_z*df['t'] + b_z + e_z
|
|
111
111
|
|
|
112
|
+
>>> # Save data into a dictionary
|
|
113
|
+
>>> data = df[['x', 'y', 'z']].to_dict(orient='list')
|
|
114
|
+
|
|
115
|
+
|
|
112
116
|
Now we can have a look at the generated measurements:
|
|
113
117
|
|
|
114
118
|
.. code-block:: python3
|
|
@@ -116,9 +120,9 @@ Now we can have a look at the generated measurements:
|
|
|
116
120
|
>>> import matplotlib.pyplot as plt
|
|
117
121
|
>>> fig, ax = plt.subplots(1,1,figsize=(12,5))
|
|
118
122
|
>>> g1 = ax.plot(df['t'], c='black', label='$t$')
|
|
119
|
-
>>> g2 = ax.scatter(np.arange(0,n),
|
|
120
|
-
>>> g3 = ax.scatter(np.arange(0,n),
|
|
121
|
-
>>> g4 = ax.scatter(np.arange(0,n),
|
|
123
|
+
>>> g2 = ax.scatter(np.arange(0,n),data['x'], c='#d73027', alpha=0.7, marker='.', label='$x$')
|
|
124
|
+
>>> g3 = ax.scatter(np.arange(0,n),data['y'], c='#fc8d59', alpha=0.7, marker='.', label='$y$')
|
|
125
|
+
>>> g4 = ax.scatter(np.arange(0,n),data['z'], c='#4575b4', alpha=0.7, marker='.',label='$z$')
|
|
122
126
|
>>> ax.legend(fontsize=13)
|
|
123
127
|
>>> plt.show()
|
|
124
128
|
|
|
@@ -131,9 +135,8 @@ Before applying the Triple Collocation analysis, let us now calibrate :math:`y`
|
|
|
131
135
|
|
|
132
136
|
>>> import wavy.triple_collocation as tc
|
|
133
137
|
|
|
134
|
-
>>>
|
|
135
|
-
|
|
136
|
-
... B=df['z'].values)
|
|
138
|
+
>>> data_cal = tc.calibration_triplets_tc(data, ref='x')
|
|
139
|
+
|
|
137
140
|
|
|
138
141
|
Let us look at the series after calibration.
|
|
139
142
|
|
|
@@ -141,9 +144,9 @@ Let us look at the series after calibration.
|
|
|
141
144
|
|
|
142
145
|
>>> fig, ax = plt.subplots(1,1,figsize=(12,5))
|
|
143
146
|
>>> g1 = ax.plot(df['t'], c='black', label='$t$')
|
|
144
|
-
>>> g2 = ax.scatter(np.arange(0,n),
|
|
145
|
-
>>> g3 = ax.scatter(np.arange(0,n),
|
|
146
|
-
>>> g4 = ax.scatter(np.arange(0,n),
|
|
147
|
+
>>> g2 = ax.scatter(np.arange(0,n),data_cal['x'], c='#d73027', alpha=0.7, marker='.', label='$x$')
|
|
148
|
+
>>> g3 = ax.scatter(np.arange(0,n),data_cal['y'], c='#fc8d59', alpha=0.7, marker='.', label='$y^x$')
|
|
149
|
+
>>> g4 = ax.scatter(np.arange(0,n),data_cal['z'], c='#4575b4', alpha=0.7, marker='.',label='$z^x$')
|
|
147
150
|
>>> ax.legend(fontsize=13)
|
|
148
151
|
>>> plt.show()
|
|
149
152
|
|
|
@@ -151,42 +154,24 @@ Let us look at the series after calibration.
|
|
|
151
154
|
.. image:: ./docs_fig_tc_2.png
|
|
152
155
|
:scale: 80
|
|
153
156
|
|
|
154
|
-
Let us first prepare the data, it should take the form of a dictionnary as follows:
|
|
155
|
-
|
|
156
|
-
.. code-block:: python3
|
|
157
|
-
|
|
158
|
-
>>> data = {'x':df['x'].values,
|
|
159
|
-
... 'y^x':df['y^x'].values,
|
|
160
|
-
... 'z^x':df['z^x'].values}
|
|
161
|
-
|
|
162
|
-
or directly if using pandas as in this example:
|
|
163
|
-
|
|
164
|
-
.. code-block:: python3
|
|
165
|
-
|
|
166
|
-
>>> data = df[['x', 'y^x', 'z^x']].to_dict(orient='list')
|
|
167
157
|
|
|
168
158
|
Then we can run the Triple Collocation analysis. A reference is defined for the metrics that are calculated relatively to one of the three measurements.
|
|
169
159
|
|
|
170
160
|
.. code-block:: python3
|
|
171
161
|
|
|
172
|
-
>>> ref='x'
|
|
173
|
-
>>> tc_results = tc.triple_collocation_validate(data,ref=ref)
|
|
162
|
+
>>> tc_results = tc.triple_collocation(data_cal,ref='x')
|
|
174
163
|
|
|
175
164
|
This returns a dictionary with the results of the Triple Collocation analysis. It can be displayed in a table as follows (the results are rounded to the third decimal by default):
|
|
176
165
|
|
|
177
166
|
.. code-block:: python3
|
|
178
167
|
|
|
179
|
-
>>>
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
mean 2.114 2.114 2.114
|
|
187
|
-
std 0.717 0.815 0.727
|
|
188
|
-
|
|
189
|
-
The reference for the SI is: x
|
|
168
|
+
>>> tc_results
|
|
169
|
+
|
|
170
|
+
var rmse si rho mean std
|
|
171
|
+
x 0.010 0.098 0.047 0.981 2.114 0.717
|
|
172
|
+
y 0.160 0.400 0.189 0.759 2.114 0.815
|
|
173
|
+
z 0.024 0.155 0.073 0.955 2.114 0.727
|
|
174
|
+
|
|
190
175
|
|
|
191
176
|
Now we can check the variances of error estimated with Triple collocation are indeed the ones we input when simulating the data.
|
|
192
177
|
So in theory we had (also rounding to the third decimal):
|
|
@@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "wavyopen"
|
|
7
7
|
requires-python = ">=3.10"
|
|
8
|
-
version = "0.4.
|
|
8
|
+
version = "0.4.2"
|
|
9
9
|
description = "A package for processing/calibrating/validating wave measurements and wave model output."
|
|
10
10
|
license = "MIT"
|
|
11
11
|
license-files = ["LICENSE"]
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from wavy.insitu_module import insitu_class as ic
|
|
3
|
+
from wavy.satellite_module import satellite_class as sc
|
|
4
|
+
from wavy.model_module import model_class as mc
|
|
5
|
+
import xarray as xr
|
|
6
|
+
import wavy.triple_collocation as tc
|
|
7
|
+
import numpy as np
|
|
8
|
+
import pandas as pd
|
|
9
|
+
|
|
10
|
+
def test_triple_collocation(test_data):
|
|
11
|
+
|
|
12
|
+
# Wavy objects
|
|
13
|
+
# Import in-situ data
|
|
14
|
+
ico = ic(sd='2014-01-01',
|
|
15
|
+
ed='2018-12-31',
|
|
16
|
+
nID='history_cmems_NRT',
|
|
17
|
+
name='Norne')
|
|
18
|
+
ico.vars = xr.open_dataset(
|
|
19
|
+
str(test_data/"triple_collocation/Norne_ico.nc")
|
|
20
|
+
)
|
|
21
|
+
# Import satellite data
|
|
22
|
+
sco = sc(sd='2014-01-01',
|
|
23
|
+
ed='2018-12-31',
|
|
24
|
+
nID='CCIv1_L3',
|
|
25
|
+
name='multi')
|
|
26
|
+
sco.vars = xr.open_dataset(
|
|
27
|
+
str(test_data/"triple_collocation/Norne_sco.nc")
|
|
28
|
+
)
|
|
29
|
+
# Import model data
|
|
30
|
+
mco = mc(sd='2014-01-01',
|
|
31
|
+
ed='2018-12-31',
|
|
32
|
+
nID='NORA3_hc_waves')
|
|
33
|
+
mco.vars = xr.open_dataset(
|
|
34
|
+
str(test_data/"triple_collocation/Norne_mco.nc")
|
|
35
|
+
)
|
|
36
|
+
# Create dictionary for triple collocation function
|
|
37
|
+
dict_data = {'insitu': ico, 'satellite': sco, 'model': mco}
|
|
38
|
+
# Apply triple collocation
|
|
39
|
+
ref = 'insitu'
|
|
40
|
+
tc_res = tc.triple_collocation(dict_data, ref=ref)
|
|
41
|
+
|
|
42
|
+
assert isinstance(tc_res, pd.DataFrame)
|
|
43
|
+
assert tc_res.attrs['ref'] in dict_data.keys()
|
|
44
|
+
assert len(tc_res) == 3
|
|
45
|
+
assert len(list(tc_res)) == 6
|
|
46
|
+
|
|
47
|
+
# Simulated data
|
|
48
|
+
n = 1000
|
|
49
|
+
T = [np.sin(0.2 * i) + 1.2 for i in range(n)]
|
|
50
|
+
b_x = 1.1
|
|
51
|
+
b_y = 0.5
|
|
52
|
+
b_z = 1.8
|
|
53
|
+
|
|
54
|
+
np.random.seed(1)
|
|
55
|
+
s_x = 0.1
|
|
56
|
+
e_x = np.random.normal(0, s_x, n)
|
|
57
|
+
|
|
58
|
+
np.random.seed(5)
|
|
59
|
+
s_y = 0.2
|
|
60
|
+
e_y = np.random.normal(0, s_y, n)
|
|
61
|
+
|
|
62
|
+
np.random.seed(11)
|
|
63
|
+
s_z = 0.5
|
|
64
|
+
e_z = np.random.normal(0, s_z, n)
|
|
65
|
+
|
|
66
|
+
X = [b_x * T[i] + e_x[i] for i in range(n)]
|
|
67
|
+
Y = [b_y * T[i] + e_y[i] for i in range(n)]
|
|
68
|
+
Z = [b_z * T[i] + e_z[i] for i in range(n)]
|
|
69
|
+
|
|
70
|
+
dict_data = {'X': X, 'Y': Y, 'Z': Z}
|
|
71
|
+
ref = 'X'
|
|
72
|
+
|
|
73
|
+
tc_res = tc.triple_collocation(dict_data, ref=ref)
|
|
74
|
+
|
|
75
|
+
assert isinstance(tc_res, pd.DataFrame)
|
|
76
|
+
assert tc_res.attrs['ref'] in dict_data.keys()
|
|
77
|
+
assert len(tc_res) == 3
|
|
78
|
+
assert len(list(tc_res)) == 6
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
def test_calibration_triplets_cdf_matching(test_data):
|
|
82
|
+
|
|
83
|
+
# Wavy objects
|
|
84
|
+
# Import in-situ data
|
|
85
|
+
ico = ic(sd='2014-01-01',
|
|
86
|
+
ed='2018-12-31',
|
|
87
|
+
nID='history_cmems_NRT',
|
|
88
|
+
name='Norne')
|
|
89
|
+
ico.vars = xr.open_dataset(
|
|
90
|
+
str(test_data/"triple_collocation/Norne_ico.nc")
|
|
91
|
+
)
|
|
92
|
+
# Import satellite data
|
|
93
|
+
sco = sc(sd='2014-01-01',
|
|
94
|
+
ed='2018-12-31',
|
|
95
|
+
nID='CCIv1_L3',
|
|
96
|
+
name='multi')
|
|
97
|
+
sco.vars = xr.open_dataset(
|
|
98
|
+
str(test_data/"triple_collocation/Norne_sco.nc")
|
|
99
|
+
)
|
|
100
|
+
# Import model data
|
|
101
|
+
mco = mc(sd='2014-01-01',
|
|
102
|
+
ed='2018-12-31',
|
|
103
|
+
nID='NORA3_hc_waves')
|
|
104
|
+
mco.vars = xr.open_dataset(
|
|
105
|
+
str(test_data/"triple_collocation/Norne_mco.nc")
|
|
106
|
+
)
|
|
107
|
+
# Create dictionary for triple collocation function
|
|
108
|
+
dict_data = {'insitu': ico.vars.Hs.values,
|
|
109
|
+
'satellite': sco.vars.Hs.values,
|
|
110
|
+
'model': mco.vars.Hs.values}
|
|
111
|
+
# Apply triple collocation
|
|
112
|
+
ref = 'insitu'
|
|
113
|
+
|
|
114
|
+
data_cal = tc.calibration_triplets_cdf_matching(dict_data,
|
|
115
|
+
ref=ref,
|
|
116
|
+
step=0.04)
|
|
117
|
+
|
|
118
|
+
assert list(dict_data.keys()) == list(data_cal.keys())
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
def test_calibration_triplets_tc(test_data):
|
|
122
|
+
|
|
123
|
+
# Wavy objects
|
|
124
|
+
# Import in-situ data
|
|
125
|
+
ico = ic(sd='2014-01-01',
|
|
126
|
+
ed='2018-12-31',
|
|
127
|
+
nID='history_cmems_NRT',
|
|
128
|
+
name='Norne')
|
|
129
|
+
ico.vars = xr.open_dataset(
|
|
130
|
+
str(test_data/"triple_collocation/Norne_ico.nc")
|
|
131
|
+
)
|
|
132
|
+
# Import satellite data
|
|
133
|
+
sco = sc(sd='2014-01-01',
|
|
134
|
+
ed='2018-12-31',
|
|
135
|
+
nID='CCIv1_L3',
|
|
136
|
+
name='multi')
|
|
137
|
+
sco.vars = xr.open_dataset(
|
|
138
|
+
str(test_data/"triple_collocation/Norne_sco.nc")
|
|
139
|
+
)
|
|
140
|
+
# Import model data
|
|
141
|
+
mco = mc(sd='2014-01-01',
|
|
142
|
+
ed='2018-12-31',
|
|
143
|
+
nID='NORA3_hc_waves')
|
|
144
|
+
mco.vars = xr.open_dataset(
|
|
145
|
+
str(test_data/"triple_collocation/Norne_mco.nc")
|
|
146
|
+
)
|
|
147
|
+
# Create dictionary for triple collocation function
|
|
148
|
+
dict_data = {'insitu': ico.vars.Hs.values,
|
|
149
|
+
'satellite': sco.vars.Hs.values,
|
|
150
|
+
'model': mco.vars.Hs.values}
|
|
151
|
+
# Apply triple collocation
|
|
152
|
+
ref = 'insitu'
|
|
153
|
+
|
|
154
|
+
data_cal = tc.calibration_triplets_tc(dict_data, ref=ref)
|
|
155
|
+
|
|
156
|
+
assert list(dict_data.keys()) == list(data_cal.keys())
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
def test_least_squares_merging(test_data):
|
|
160
|
+
|
|
161
|
+
# Wavy objects
|
|
162
|
+
# Import in-situ data
|
|
163
|
+
ico = ic(sd='2014-01-01',
|
|
164
|
+
ed='2018-12-31',
|
|
165
|
+
nID='history_cmems_NRT',
|
|
166
|
+
name='Norne')
|
|
167
|
+
ico.vars = xr.open_dataset(
|
|
168
|
+
str(test_data/"triple_collocation/Norne_ico.nc")
|
|
169
|
+
)
|
|
170
|
+
# Import satellite data
|
|
171
|
+
sco = sc(sd='2014-01-01',
|
|
172
|
+
ed='2018-12-31',
|
|
173
|
+
nID='CCIv1_L3',
|
|
174
|
+
name='multi')
|
|
175
|
+
sco.vars = xr.open_dataset(
|
|
176
|
+
str(test_data/"triple_collocation/Norne_sco.nc")
|
|
177
|
+
)
|
|
178
|
+
# Import model data
|
|
179
|
+
mco = mc(sd='2014-01-01',
|
|
180
|
+
ed='2018-12-31',
|
|
181
|
+
nID='NORA3_hc_waves')
|
|
182
|
+
mco.vars = xr.open_dataset(
|
|
183
|
+
str(test_data/"triple_collocation/Norne_mco.nc")
|
|
184
|
+
)
|
|
185
|
+
# Create dictionary for triple collocation function
|
|
186
|
+
dict_data = {'insitu': ico.vars.Hs.values,
|
|
187
|
+
'satellite': sco.vars.Hs.values,
|
|
188
|
+
'model': mco.vars.Hs.values}
|
|
189
|
+
# Apply triple collocation
|
|
190
|
+
ref = 'insitu'
|
|
191
|
+
|
|
192
|
+
least_squares_merge = tc.least_squares_merging(dict_data)
|
|
193
|
+
|
|
194
|
+
assert len(least_squares_merge) == len(dict_data['insitu'])
|
|
195
|
+
|
|
196
|
+
|
|
197
|
+
def test_spectra_cco(test_data):
|
|
198
|
+
|
|
199
|
+
assert True
|
|
200
|
+
|
|
201
|
+
def test_integrate_r2(test_data):
|
|
202
|
+
|
|
203
|
+
assert True
|
|
204
|
+
|
|
205
|
+
def test_filter_collocation_distance(test_data):
|
|
206
|
+
|
|
207
|
+
assert True
|
|
208
|
+
|
|
209
|
+
def test_filter_values(test_data):
|
|
210
|
+
|
|
211
|
+
# Wavy objects
|
|
212
|
+
# Import in-situ data
|
|
213
|
+
ico = ic(sd='2014-01-01',
|
|
214
|
+
ed='2018-12-31',
|
|
215
|
+
nID='history_cmems_NRT',
|
|
216
|
+
name='Norne')
|
|
217
|
+
ico.vars = xr.open_dataset(
|
|
218
|
+
str(test_data/"triple_collocation/Norne_ico.nc")
|
|
219
|
+
)
|
|
220
|
+
# Import satellite data
|
|
221
|
+
sco = sc(sd='2014-01-01',
|
|
222
|
+
ed='2018-12-31',
|
|
223
|
+
nID='CCIv1_L3',
|
|
224
|
+
name='multi')
|
|
225
|
+
sco.vars = xr.open_dataset(
|
|
226
|
+
str(test_data/"triple_collocation/Norne_sco.nc")
|
|
227
|
+
)
|
|
228
|
+
# Import model data
|
|
229
|
+
mco = mc(sd='2014-01-01',
|
|
230
|
+
ed='2018-12-31',
|
|
231
|
+
nID='NORA3_hc_waves')
|
|
232
|
+
mco.vars = xr.open_dataset(
|
|
233
|
+
str(test_data/"triple_collocation/Norne_mco.nc")
|
|
234
|
+
)
|
|
235
|
+
# Create dictionary for triple collocation function
|
|
236
|
+
dict_data = {'insitu': ico.vars.Hs.values,
|
|
237
|
+
'satellite': sco.vars.Hs.values,
|
|
238
|
+
'model': mco.vars.Hs.values}
|
|
239
|
+
# Apply triple collocation
|
|
240
|
+
ref = 'insitu'
|
|
241
|
+
|
|
242
|
+
data_filtered = tc.filter_values(dict_data, ref_data=ref)
|
|
243
|
+
|
|
244
|
+
assert len(data_filtered['insitu']) <= len(dict_data['insitu'])
|
|
245
|
+
|
|
246
|
+
def test_filter_dynamic_collocation(test_data):
|
|
247
|
+
|
|
248
|
+
assert True
|