colm-openbench 3.0.0__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.
- colm_openbench-3.0.0/.gitignore +75 -0
- colm_openbench-3.0.0/CHANGELOG.md +334 -0
- colm_openbench-3.0.0/LICENSE +21 -0
- colm_openbench-3.0.0/PKG-INFO +713 -0
- colm_openbench-3.0.0/README.md +647 -0
- colm_openbench-3.0.0/pyproject.toml +207 -0
- colm_openbench-3.0.0/src/openbench/CONVENTIONS.md +43 -0
- colm_openbench-3.0.0/src/openbench/__init__.py +7 -0
- colm_openbench-3.0.0/src/openbench/__main__.py +5 -0
- colm_openbench-3.0.0/src/openbench/cli/__init__.py +1 -0
- colm_openbench-3.0.0/src/openbench/cli/_display.py +85 -0
- colm_openbench-3.0.0/src/openbench/cli/_names.py +53 -0
- colm_openbench-3.0.0/src/openbench/cli/_optimize.py +85 -0
- colm_openbench-3.0.0/src/openbench/cli/_options.py +61 -0
- colm_openbench-3.0.0/src/openbench/cli/_parsing.py +198 -0
- colm_openbench-3.0.0/src/openbench/cli/_profile_rescue.py +806 -0
- colm_openbench-3.0.0/src/openbench/cli/_ref_commands.py +165 -0
- colm_openbench-3.0.0/src/openbench/cli/_reference_errors.py +20 -0
- colm_openbench-3.0.0/src/openbench/cli/_register.py +371 -0
- colm_openbench-3.0.0/src/openbench/cli/_scan.py +292 -0
- colm_openbench-3.0.0/src/openbench/cli/_scan_support.py +115 -0
- colm_openbench-3.0.0/src/openbench/cli/_simulation_validation.py +37 -0
- colm_openbench-3.0.0/src/openbench/cli/_wizard.py +79 -0
- colm_openbench-3.0.0/src/openbench/cli/cache.py +66 -0
- colm_openbench-3.0.0/src/openbench/cli/check.py +795 -0
- colm_openbench-3.0.0/src/openbench/cli/data.py +376 -0
- colm_openbench-3.0.0/src/openbench/cli/gui.py +25 -0
- colm_openbench-3.0.0/src/openbench/cli/init_cmd.py +1688 -0
- colm_openbench-3.0.0/src/openbench/cli/main.py +75 -0
- colm_openbench-3.0.0/src/openbench/cli/migrate.py +35 -0
- colm_openbench-3.0.0/src/openbench/cli/model.py +1147 -0
- colm_openbench-3.0.0/src/openbench/cli/registry_cmd.py +133 -0
- colm_openbench-3.0.0/src/openbench/cli/run.py +445 -0
- colm_openbench-3.0.0/src/openbench/cli/sim.py +744 -0
- colm_openbench-3.0.0/src/openbench/cli/smoke.py +349 -0
- colm_openbench-3.0.0/src/openbench/config/__init__.py +30 -0
- colm_openbench-3.0.0/src/openbench/config/adapter.py +1231 -0
- colm_openbench-3.0.0/src/openbench/config/loader.py +1180 -0
- colm_openbench-3.0.0/src/openbench/config/migration.py +532 -0
- colm_openbench-3.0.0/src/openbench/config/provenance.py +5 -0
- colm_openbench-3.0.0/src/openbench/config/resolver.py +412 -0
- colm_openbench-3.0.0/src/openbench/config/runtime_info.py +919 -0
- colm_openbench-3.0.0/src/openbench/config/schema.py +181 -0
- colm_openbench-3.0.0/src/openbench/config/user_settings.py +80 -0
- colm_openbench-3.0.0/src/openbench/core/__init__.py +46 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_basic.py +198 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_common.py +100 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_diagrams.py +12 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_diff.py +11 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_diff_grid.py +172 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_diff_plot.py +82 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_diff_station.py +264 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_distributions.py +472 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_heatmap.py +80 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_helpers.py +241 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_parallel.py +246 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_portrait.py +11 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_portrait_calculations.py +127 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_portrait_seasonal.py +461 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_relative.py +297 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_smpi.py +305 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_tail.py +411 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_target.py +279 -0
- colm_openbench-3.0.0/src/openbench/core/_comparison_taylor.py +397 -0
- colm_openbench-3.0.0/src/openbench/core/_visualization_bridge.py +23 -0
- colm_openbench-3.0.0/src/openbench/core/appendix_methods.py +318 -0
- colm_openbench-3.0.0/src/openbench/core/climatezone_groupby.py +528 -0
- colm_openbench-3.0.0/src/openbench/core/comparison.py +142 -0
- colm_openbench-3.0.0/src/openbench/core/evaluation.py +916 -0
- colm_openbench-3.0.0/src/openbench/core/landcover_groupby.py +870 -0
- colm_openbench-3.0.0/src/openbench/core/metrics.py +1526 -0
- colm_openbench-3.0.0/src/openbench/core/registry.py +194 -0
- colm_openbench-3.0.0/src/openbench/core/scores.py +254 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/Mod_Statistics.py +726 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/__init__.py +79 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/base.py +18 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_Basic.py +63 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_False_Discovery_Rate.py +120 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_anova.py +277 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_autocorrelation.py +47 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_correlation.py +40 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_covariance.py +19 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_diff.py +14 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_functional_response.py +96 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_hellinger_distance.py +92 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_mann_kendall_trend_test.py +179 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_partial_least_squares_regression.py +219 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_resample.py +26 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_rolling.py +24 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_standard_deviation.py +16 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_three_cornered_hat.py +217 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_variance.py +14 -0
- colm_openbench-3.0.0/src/openbench/core/statistics/stat_z_score.py +42 -0
- colm_openbench-3.0.0/src/openbench/data/__init__.py +1 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_base.py +12 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_config.py +495 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_grid.py +20 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_grid_core.py +300 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_grid_regrid.py +220 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_selection.py +554 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_station.py +12 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_station_core.py +407 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_station_extract.py +157 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_time.py +13 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_time_adjustments.py +146 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_time_core.py +259 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_time_integrity.py +227 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_transforms.py +271 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_utils.py +148 -0
- colm_openbench-3.0.0/src/openbench/data/_processing_yearly.py +252 -0
- colm_openbench-3.0.0/src/openbench/data/_system_resources.py +265 -0
- colm_openbench-3.0.0/src/openbench/data/cache.py +849 -0
- colm_openbench-3.0.0/src/openbench/data/climatology.py +514 -0
- colm_openbench-3.0.0/src/openbench/data/compute.py +258 -0
- colm_openbench-3.0.0/src/openbench/data/coordinates.py +218 -0
- colm_openbench-3.0.0/src/openbench/data/custom/CH4_FluxnetANN_filter.py +108 -0
- colm_openbench-3.0.0/src/openbench/data/custom/GEBA_filter.py +118 -0
- colm_openbench-3.0.0/src/openbench/data/custom/HydroWeb_filter.py +169 -0
- colm_openbench-3.0.0/src/openbench/data/custom/LAI_Yuan2011_filter.py +93 -0
- colm_openbench-3.0.0/src/openbench/data/custom/ResOpsUS_filter.py +97 -0
- colm_openbench-3.0.0/src/openbench/data/custom/__init__.py +88 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/ANOVA.yaml +32 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Basic.yaml +37 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/CZ_groupby_source.yaml +32 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Correlation.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Diff_Plot.yaml +37 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/False_Discovery_Rate.yaml +2 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Functional_Response.yaml +34 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/HeatMap_source.yaml +31 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Hellinger_Distance.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/IGBP_groupby_source.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Kernel_Density_Estimate.yaml +30 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Mann_Kendall_Trend_Test.yaml +38 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/PFT_groupby_source.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Parallel_Coordinates.yaml +29 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Partial_Least_Squares_Regression.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Portrait_Plot_seasonal.yaml +39 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/RadarMap.yaml +21 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Relative_Score.yaml +38 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Ridgeline_Plot.yaml +20 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Single_Model_Performance_Index.yaml +25 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Standard_Deviation.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Target_Diagram.yaml +26 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Taylor_Diagram.yaml +41 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Three_Cornered_Hat.yaml +32 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Whisker_Plot.yaml +54 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/Z_Score.yaml +32 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/__init__.py +9 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/figlib.yaml +39 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/make_geo_plot_index.yaml +35 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/make_stn_plot_index.yaml +33 -0
- colm_openbench-3.0.0/src/openbench/data/fignml/plot_stn.yaml +29 -0
- colm_openbench-3.0.0/src/openbench/data/processing.py +64 -0
- colm_openbench-3.0.0/src/openbench/data/registry/__init__.py +16 -0
- colm_openbench-3.0.0/src/openbench/data/registry/_filename_dates.py +123 -0
- colm_openbench-3.0.0/src/openbench/data/registry/converter.py +152 -0
- colm_openbench-3.0.0/src/openbench/data/registry/manager.py +1155 -0
- colm_openbench-3.0.0/src/openbench/data/registry/model_catalog.yaml +3562 -0
- colm_openbench-3.0.0/src/openbench/data/registry/overlay_audit.py +314 -0
- colm_openbench-3.0.0/src/openbench/data/registry/reference_catalog.yaml +3602 -0
- colm_openbench-3.0.0/src/openbench/data/registry/reference_profiles.yaml +1574 -0
- colm_openbench-3.0.0/src/openbench/data/registry/scanner.py +3465 -0
- colm_openbench-3.0.0/src/openbench/data/registry/schema.py +190 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/CH4_FluxnetANN.csv +2 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/GEBA.csv +2 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/GLEAM_Hybird.csv +91 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/LAI_Yuan2011.csv +3 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/ResOpsUS.csv +679 -0
- colm_openbench-3.0.0/src/openbench/data/registry/station_lists/Xu_et_al2025.csv +367 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/__about__.py +1 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/__init__.py +5 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/methods/__init__.py +3 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/methods/_shared.py +105 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/methods/conservative.py +650 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/methods/flox_reduce.py +179 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/methods/interp.py +52 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/regrid.py +314 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/regrid_wgs84.py +132 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/utils.py +454 -0
- colm_openbench-3.0.0/src/openbench/data/regrid/xesmf_cache.py +151 -0
- colm_openbench-3.0.0/src/openbench/data/sim_scanner.py +1738 -0
- colm_openbench-3.0.0/src/openbench/data/station_matcher.py +452 -0
- colm_openbench-3.0.0/src/openbench/data/station_missing.py +56 -0
- colm_openbench-3.0.0/src/openbench/data/station_scanner.py +591 -0
- colm_openbench-3.0.0/src/openbench/data/time_utils.py +384 -0
- colm_openbench-3.0.0/src/openbench/data/unit.py +319 -0
- colm_openbench-3.0.0/src/openbench/dataset/Climate_zone.nc +0 -0
- colm_openbench-3.0.0/src/openbench/dataset/IGBP.nc +0 -0
- colm_openbench-3.0.0/src/openbench/dataset/PFT.nc +0 -0
- colm_openbench-3.0.0/src/openbench/dataset/smoke/initial_test.tar.gz +0 -0
- colm_openbench-3.0.0/src/openbench/dataset/smoke/openbench-smoke.yaml +87 -0
- colm_openbench-3.0.0/src/openbench/gui/__init__.py +22 -0
- colm_openbench-3.0.0/src/openbench/gui/app.py +68 -0
- colm_openbench-3.0.0/src/openbench/gui/config_manager.py +1802 -0
- colm_openbench-3.0.0/src/openbench/gui/controller.py +467 -0
- colm_openbench-3.0.0/src/openbench/gui/data_validator.py +947 -0
- colm_openbench-3.0.0/src/openbench/gui/dialogs/__init__.py +4 -0
- colm_openbench-3.0.0/src/openbench/gui/dialogs/data_discovery.py +221 -0
- colm_openbench-3.0.0/src/openbench/gui/dialogs/scan_confirm.py +170 -0
- colm_openbench-3.0.0/src/openbench/gui/localization.py +552 -0
- colm_openbench-3.0.0/src/openbench/gui/main_window.py +1406 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/__init__.py +32 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/_scan_worker.py +572 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/base_page.py +129 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_comparisons.py +58 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_evaluation.py +143 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_general.py +998 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_metrics.py +57 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_preview.py +1061 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_ref_data.py +1204 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_registry.py +1305 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_run_monitor.py +811 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_runtime.py +1237 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_scores.py +57 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_sim_data.py +1627 -0
- colm_openbench-3.0.0/src/openbench/gui/pages/page_statistics.py +52 -0
- colm_openbench-3.0.0/src/openbench/gui/path_utils.py +873 -0
- colm_openbench-3.0.0/src/openbench/gui/progress_parser.py +224 -0
- colm_openbench-3.0.0/src/openbench/gui/remote_python.py +147 -0
- colm_openbench-3.0.0/src/openbench/gui/remote_registry.py +332 -0
- colm_openbench-3.0.0/src/openbench/gui/remote_runner.py +791 -0
- colm_openbench-3.0.0/src/openbench/gui/runner.py +601 -0
- colm_openbench-3.0.0/src/openbench/gui/styles/checkmark.png +0 -0
- colm_openbench-3.0.0/src/openbench/gui/styles/checkmark.svg +3 -0
- colm_openbench-3.0.0/src/openbench/gui/styles/openbench-logo.png +0 -0
- colm_openbench-3.0.0/src/openbench/gui/styles/theme.qss +273 -0
- colm_openbench-3.0.0/src/openbench/gui/validation.py +257 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/__init__.py +28 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/_ssh_worker.py +226 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/_task_worker.py +71 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/checkbox_group.py +173 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/model_definition_editor.py +376 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/nc_importer.py +362 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/no_scroll_widgets.py +31 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/path_completer.py +123 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/path_selector.py +258 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/progress_dashboard.py +363 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/remote_config.py +2696 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/sync_status.py +183 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/validation_dialog.py +284 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/variable_editor.py +323 -0
- colm_openbench-3.0.0/src/openbench/gui/widgets/yaml_preview.py +127 -0
- colm_openbench-3.0.0/src/openbench/remote/__init__.py +15 -0
- colm_openbench-3.0.0/src/openbench/remote/connections.py +158 -0
- colm_openbench-3.0.0/src/openbench/remote/credentials.py +297 -0
- colm_openbench-3.0.0/src/openbench/remote/ssh.py +1206 -0
- colm_openbench-3.0.0/src/openbench/remote/storage.py +222 -0
- colm_openbench-3.0.0/src/openbench/remote/sync.py +725 -0
- colm_openbench-3.0.0/src/openbench/runner/__init__.py +1 -0
- colm_openbench-3.0.0/src/openbench/runner/cache.py +202 -0
- colm_openbench-3.0.0/src/openbench/runner/cache_state.py +71 -0
- colm_openbench-3.0.0/src/openbench/runner/config_preflight.py +61 -0
- colm_openbench-3.0.0/src/openbench/runner/context.py +65 -0
- colm_openbench-3.0.0/src/openbench/runner/dask_runtime.py +307 -0
- colm_openbench-3.0.0/src/openbench/runner/evaluation_dispatch.py +154 -0
- colm_openbench-3.0.0/src/openbench/runner/hashing.py +589 -0
- colm_openbench-3.0.0/src/openbench/runner/local.py +453 -0
- colm_openbench-3.0.0/src/openbench/runner/masking.py +211 -0
- colm_openbench-3.0.0/src/openbench/runner/orchestration.py +498 -0
- colm_openbench-3.0.0/src/openbench/runner/pair_ref.py +143 -0
- colm_openbench-3.0.0/src/openbench/runner/postprocessing.py +419 -0
- colm_openbench-3.0.0/src/openbench/runner/preflight.py +470 -0
- colm_openbench-3.0.0/src/openbench/runner/preflight_facade.py +113 -0
- colm_openbench-3.0.0/src/openbench/runner/preprocessing.py +442 -0
- colm_openbench-3.0.0/src/openbench/runner/progress_events.py +51 -0
- colm_openbench-3.0.0/src/openbench/runner/task_execution.py +196 -0
- colm_openbench-3.0.0/src/openbench/runner/task_planning.py +114 -0
- colm_openbench-3.0.0/src/openbench/util/__init__.py +1 -0
- colm_openbench-3.0.0/src/openbench/util/converttype.py +45 -0
- colm_openbench-3.0.0/src/openbench/util/dataset_loader.py +732 -0
- colm_openbench-3.0.0/src/openbench/util/exceptions.py +387 -0
- colm_openbench-3.0.0/src/openbench/util/filenames.py +173 -0
- colm_openbench-3.0.0/src/openbench/util/interfaces.py +245 -0
- colm_openbench-3.0.0/src/openbench/util/logging_system.py +567 -0
- colm_openbench-3.0.0/src/openbench/util/names.py +197 -0
- colm_openbench-3.0.0/src/openbench/util/netcdf.py +249 -0
- colm_openbench-3.0.0/src/openbench/util/output.py +605 -0
- colm_openbench-3.0.0/src/openbench/util/parallel.py +768 -0
- colm_openbench-3.0.0/src/openbench/util/report.py +2339 -0
- colm_openbench-3.0.0/src/openbench/util/static_datasets.py +63 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_ANOVA.py +201 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Basic_Plot.py +884 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Correlation.py +131 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Diff_Plot.py +547 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Functional_Response.py +162 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Hellinger_Distance.py +177 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_LC_based_heat_map.py +567 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Mann_Kendall_Trend_Test.py +206 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Partial_Least_Squares_Regression.py +226 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Relative_Score.py +397 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Ridgeline_Plot.py +199 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Single_Model_Performance_Index.py +363 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Standard_Deviation.py +174 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Three_Cornered_Hat.py +229 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_Whisker_Plot.py +235 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_geo_plot_index.py +152 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_heatmap.py +196 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_kernel_density_estimate.py +206 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_parallel_coordinates.py +899 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_portrait_plot_seasonal.py +1363 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_radarmap.py +161 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_stn_plot_index.py +193 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_target_diagram.py +1826 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_taylor_diagram.py +2475 -0
- colm_openbench-3.0.0/src/openbench/visualization/Fig_toolbox.py +335 -0
- colm_openbench-3.0.0/src/openbench/visualization/Mod_Only_Drawing.py +15 -0
- colm_openbench-3.0.0/src/openbench/visualization/__init__.py +88 -0
- colm_openbench-3.0.0/src/openbench/visualization/_combinations.py +78 -0
- colm_openbench-3.0.0/src/openbench/visualization/_diagram_sampling.py +91 -0
- colm_openbench-3.0.0/src/openbench/visualization/_diagram_utils.py +234 -0
- colm_openbench-3.0.0/src/openbench/visualization/_downsample.py +122 -0
- colm_openbench-3.0.0/src/openbench/visualization/_figure_io.py +39 -0
- colm_openbench-3.0.0/src/openbench/visualization/_filenames.py +5 -0
- colm_openbench-3.0.0/src/openbench/visualization/_rc_isolation.py +72 -0
- colm_openbench-3.0.0/src/openbench/visualization/_sampling.py +71 -0
- colm_openbench-3.0.0/src/openbench/visualization/_validation.py +38 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/LICENSE +675 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/__init__.py +5 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/_version.py +2 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/cmaps.py +6281 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/cmaps.template +86 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormap.py +58 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/3gauss.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/3saw.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BkBlAqGrYeOrReViWh200.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlAqGrWh2YeOrReVi22.rgb +24 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlAqGrYeOrRe.rgb +102 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlAqGrYeOrReVi200.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlGrYeOrReVi200.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlRe.rgb +98 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlWhRe.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueDarkOrange18.rgb +25 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueDarkRed18.rgb +25 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueGreen14.rgb +21 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueRed.rgb +253 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueRedGray.rgb +254 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueWhiteOrangeRed.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BlueYellowRed.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/BrownBlue12.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/CBR_coldhot.rgb +13 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/CBR_drywet.rgb +13 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/CBR_set3.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/CBR_wet.rgb +13 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/Cat12.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/Copyright +6 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GHRSST_anomaly.rgb +44 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_cool.rgb +12 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_copper.rgb +52 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_drywet.rgb +62 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_gebco.rgb +72 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_globe.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_gray.rgb +12 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_haxby.rgb +34 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_hot.rgb +102 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_jet.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_nighttime.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_no_green.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_ocean.rgb +82 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_paired.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_panoply.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_polar.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_red2green.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_relief.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_relief_oceanonly.rgb +162 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_seis.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_split.rgb +42 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_topo.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_wysiwyg.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GMT_wysiwygcont.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GSFC_landsat_udf_density.rgb +13 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GrayWhiteGray.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GreenMagenta16.rgb +23 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/GreenYellow.rgb +253 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Accent.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Blues.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_BrBG.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_BuGn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_BuPu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Dark2.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_GnBu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Greens.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Greys.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_OrRd.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Oranges.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PRGn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Paired.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Pastel1.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Pastel2.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PiYG.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PuBu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PuBuGn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PuOr.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_PuRd.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Purples.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_RdBu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_RdGy.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_RdPu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_RdYlBu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_RdYlGn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Reds.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Set1.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Set2.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Set3.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_Spectral.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_StepSeq.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_YlGn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_YlGnBu.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_YlOrBr.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_YlOrRd.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_afmhot.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_autumn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_bone.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_brg.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_bwr.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_cool.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_coolwarm.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_copper.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_cubehelix.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_flag.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_earth.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_gray.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_heat.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_ncar.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_rainbow.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_stern.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gist_yarg.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gnuplot.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_gnuplot2.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_hot.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_hsv.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_jet.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_ocean.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_pink.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_prism.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_rainbow.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_s3pcpn.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_s3pcpn_l.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_seismic.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_spring.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_sstanom.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_summer.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_terrain.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_viridis.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/MPL_winter.rgb +130 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_banded.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_blu_red.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_blue_red.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_bright.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_gebco.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_jaisnd.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_jet.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_manga.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_rainbow2.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NCV_roullet.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NEO_div_vegetation_a.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NEO_div_vegetation_b.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NEO_div_vegetation_c.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NEO_modis_ndvi.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NMCRef.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NMCVel.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/NOC_ndvi.rgb +255 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/OceanLakeLandSnow.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_Gallet13.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_Lindaa06.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_Lindaa07.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_bhw3_22.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_es_landscape_79.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_feb_sunrise.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_foggy_sunrise.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/SVG_fs2006.rgb +222 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/StepSeq25.rgb +32 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/UKM_hadcrut.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/ViBlGrWhYeOrRe.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhBlGrYeRe.rgb +102 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhBlReWh.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhViBlGrYeOrRe.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhViBlGrYeOrReWh.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhiteBlue.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhiteBlueGreenYellowRed.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhiteGreen.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/WhiteYellowOrangeRed.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/amwg.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/amwg256.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/amwg_blueyellowred.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cb_9step.rgb +80 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cb_rainbow.rgb +243 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cb_rainbow_inv.rgb +243 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/circular_0.rgb +20 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/circular_1.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/circular_2.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cividis.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_algae.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_amp.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_balance.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_curl.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_deep.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_delta.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_dense.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_gray.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_haline.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_ice.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_matter.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_oxy.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_phase.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_solar.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_speed.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_tempo.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_thermal.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmocean_turbid.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmp_b2r.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmp_flux.rgb +24 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cmp_haxby.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cosam.rgb +12 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cosam12.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/cyclic.rgb +8 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/default.rgb +36 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/detail.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/draw_cmap.ncl +23 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/drought_severity.rgb +9 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/example.rgb +115 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/extrema.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/grads_default.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/grads_rainbow.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/gscyclic.rgb +8 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/gsdtol.rgb +33 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/gsltod.rgb +33 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/gui_default.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/helix.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/helix1.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/hlu_default.rgb +36 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/hotcold_18lev.rgb +25 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/hotcolr_19lev.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/hotres.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/lithology.rgb +215 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/matlab_hot.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/matlab_hsv.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/matlab_jet.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/matlab_lines.rgb +66 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/mch_default.rgb +21 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/ncl_default.rgb +257 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/ncview_default.rgb +256 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/nice_gfdl.rgb +227 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/nrl_sirkes.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/nrl_sirkes_nowhite.rgb +20 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/perc2_9lev.rgb +16 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/percent_11lev.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/posneg_1.rgb +21 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/posneg_2.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/prcp_1.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/prcp_2.rgb +14 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/prcp_3.rgb +25 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip2_15lev.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip2_17lev.rgb +24 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip3_16lev.rgb +23 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip4_11lev.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip4_diff_19lev.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip_11lev.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip_diff_12lev.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/precip_diff_1lev.rgb +8 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/psgcap.rgb +240 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/radar.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/radar_1.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/rainbow+gray.rgb +240 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/rainbow+white+gray.rgb +241 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/rainbow+white.rgb +240 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/rainbow.rgb +191 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/rh_19lev.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/seaice_1.rgb +15 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/seaice_2.rgb +16 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/so4_21.rgb +24 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/so4_23.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/spread_15lev.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/srip_reanalysis.rgb +21 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/sunshine_9lev.rgb +16 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/sunshine_diff_12lev.rgb +19 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/t2m_29lev.rgb +36 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbrAvg1.rgb +102 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbrStd1.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbrVar1.rgb +103 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbr_240-300.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbr_stdev_0-30.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/tbr_var_0-500.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/temp1.rgb +63 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/temp_19lev.rgb +26 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/temp_diff_18lev.rgb +25 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/temp_diff_1lev.rgb +8 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/testcmap.rgb +203 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/thelix.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/topo_15lev.rgb +22 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/uniform.rgb +175 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/vegetation_ClarkU.rgb +258 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/vegetation_modis.rgb +23 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/wgne15.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/wh-bl-gr-ye-re.rgb +202 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/wind_17lev.rgb +24 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/ncar_ncl/wxpEnIR.rgb +102 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/Carbone42.rgb +44 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/NMCRef.rgb +18 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/NMCVel2.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/NWSRef.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/NWSSPW.rgb +9 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/NWSVel.rgb +17 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/TopoGray.rgb +9 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/TwoClass.rgb +4 -0
- colm_openbench-3.0.0/src/openbench/visualization/cmaps/colormaps/self_defined/mask.rgb +4 -0
- colm_openbench-3.0.0/src/openbench/visualization/only_drawing.py +1903 -0
- colm_openbench-3.0.0/tests/__init__.py +1 -0
- colm_openbench-3.0.0/tests/conftest.py +62 -0
- colm_openbench-3.0.0/tests/gui_fakes.py +49 -0
- colm_openbench-3.0.0/tests/test_architecture_cleanup.py +207 -0
- colm_openbench-3.0.0/tests/test_architecture_cli.py +83 -0
- colm_openbench-3.0.0/tests/test_architecture_core.py +167 -0
- colm_openbench-3.0.0/tests/test_architecture_data.py +98 -0
- colm_openbench-3.0.0/tests/test_architecture_runner.py +160 -0
- colm_openbench-3.0.0/tests/test_audit_bugfixes.py +704 -0
- colm_openbench-3.0.0/tests/test_benchmark_script.py +36 -0
- colm_openbench-3.0.0/tests/test_build_artifacts.py +239 -0
- colm_openbench-3.0.0/tests/test_cable_support.py +81 -0
- colm_openbench-3.0.0/tests/test_cache_regressions.py +42 -0
- colm_openbench-3.0.0/tests/test_case_insensitive_names.py +216 -0
- colm_openbench-3.0.0/tests/test_cli_check_preflight.py +1193 -0
- colm_openbench-3.0.0/tests/test_cli_integration.py +227 -0
- colm_openbench-3.0.0/tests/test_cli_model_management.py +1086 -0
- colm_openbench-3.0.0/tests/test_cli_sim_scan.py +785 -0
- colm_openbench-3.0.0/tests/test_cli_stubs.py +6641 -0
- colm_openbench-3.0.0/tests/test_climatology_weighting.py +69 -0
- colm_openbench-3.0.0/tests/test_compute.py +166 -0
- colm_openbench-3.0.0/tests/test_config/__init__.py +1 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/full.yaml +48 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/invalid_years.yaml +15 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/minimal.yaml +16 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/missing_project.yaml +10 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/old_json/main.json +44 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/old_json/ref.json +10 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/old_json/ref_def/GLEAM.json +19 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/old_json/sim.json +9 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/old_json/sim_def/case1.json +24 -0
- colm_openbench-3.0.0/tests/test_config/fixtures/with_defaults.yaml +31 -0
- colm_openbench-3.0.0/tests/test_config/test_adapter.py +1078 -0
- colm_openbench-3.0.0/tests/test_config/test_adapter_namelists.py +555 -0
- colm_openbench-3.0.0/tests/test_config/test_loader.py +814 -0
- colm_openbench-3.0.0/tests/test_config/test_migration.py +572 -0
- colm_openbench-3.0.0/tests/test_config/test_schema.py +137 -0
- colm_openbench-3.0.0/tests/test_config/test_variable_aliases.py +116 -0
- colm_openbench-3.0.0/tests/test_converttype_precision.py +19 -0
- colm_openbench-3.0.0/tests/test_core/__init__.py +1 -0
- colm_openbench-3.0.0/tests/test_core/test_appendix_methods.py +111 -0
- colm_openbench-3.0.0/tests/test_core/test_appendix_metrics.py +196 -0
- colm_openbench-3.0.0/tests/test_core/test_appendix_registry.py +38 -0
- colm_openbench-3.0.0/tests/test_core/test_appendix_trend.py +85 -0
- colm_openbench-3.0.0/tests/test_core/test_metrics.py +424 -0
- colm_openbench-3.0.0/tests/test_core/test_scores.py +188 -0
- colm_openbench-3.0.0/tests/test_core/test_statistics.py +238 -0
- colm_openbench-3.0.0/tests/test_custom_filters.py +97 -0
- colm_openbench-3.0.0/tests/test_data_pipeline_validation.py +59 -0
- colm_openbench-3.0.0/tests/test_dead_code_cleanup.py +166 -0
- colm_openbench-3.0.0/tests/test_e3sm_land_support.py +82 -0
- colm_openbench-3.0.0/tests/test_ecland_support.py +95 -0
- colm_openbench-3.0.0/tests/test_flat_var_resolution.py +85 -0
- colm_openbench-3.0.0/tests/test_groupby_heatmap_layout.py +213 -0
- colm_openbench-3.0.0/tests/test_groupby_metadata.py +186 -0
- colm_openbench-3.0.0/tests/test_groupby_regressions.py +71 -0
- colm_openbench-3.0.0/tests/test_gui_async_lifecycle.py +521 -0
- colm_openbench-3.0.0/tests/test_gui_config_manager.py +690 -0
- colm_openbench-3.0.0/tests/test_gui_controller_paths.py +543 -0
- colm_openbench-3.0.0/tests/test_gui_data_discovery.py +49 -0
- colm_openbench-3.0.0/tests/test_gui_evaluation_runner.py +350 -0
- colm_openbench-3.0.0/tests/test_gui_general_confirmation.py +29 -0
- colm_openbench-3.0.0/tests/test_gui_legacy_cleanup.py +92 -0
- colm_openbench-3.0.0/tests/test_gui_localization.py +147 -0
- colm_openbench-3.0.0/tests/test_gui_page_preview_remote.py +846 -0
- colm_openbench-3.0.0/tests/test_gui_page_run_monitor_remote.py +448 -0
- colm_openbench-3.0.0/tests/test_gui_qapp_lifecycle.py +53 -0
- colm_openbench-3.0.0/tests/test_gui_remote_registry.py +556 -0
- colm_openbench-3.0.0/tests/test_gui_remote_scanner_workflow.py +1908 -0
- colm_openbench-3.0.0/tests/test_gui_runtime_paths.py +675 -0
- colm_openbench-3.0.0/tests/test_gui_save_preserves_fields.py +834 -0
- colm_openbench-3.0.0/tests/test_gui_scan_alignment_fixes.py +1015 -0
- colm_openbench-3.0.0/tests/test_gui_sim_data.py +1004 -0
- colm_openbench-3.0.0/tests/test_gui_variable_migration.py +176 -0
- colm_openbench-3.0.0/tests/test_gui_variable_selection.py +166 -0
- colm_openbench-3.0.0/tests/test_gui_wizard_order.py +22 -0
- colm_openbench-3.0.0/tests/test_lm4_support.py +84 -0
- colm_openbench-3.0.0/tests/test_metric_score_core_regressions.py +432 -0
- colm_openbench-3.0.0/tests/test_netcdf_lifecycle_atomic.py +434 -0
- colm_openbench-3.0.0/tests/test_no_file_path_regression.py +98 -0
- colm_openbench-3.0.0/tests/test_orchidee_support.py +128 -0
- colm_openbench-3.0.0/tests/test_output_manager.py +83 -0
- colm_openbench-3.0.0/tests/test_pair_ref_copy_on_write.py +183 -0
- colm_openbench-3.0.0/tests/test_parallel.py +38 -0
- colm_openbench-3.0.0/tests/test_performance_optimizations.py +576 -0
- colm_openbench-3.0.0/tests/test_processing_frequency_normalization.py +17 -0
- colm_openbench-3.0.0/tests/test_processing_registry_cache.py +671 -0
- colm_openbench-3.0.0/tests/test_processing_time_missing.py +60 -0
- colm_openbench-3.0.0/tests/test_processing_yearly_memory.py +139 -0
- colm_openbench-3.0.0/tests/test_progress_dashboard.py +217 -0
- colm_openbench-3.0.0/tests/test_progress_parser.py +233 -0
- colm_openbench-3.0.0/tests/test_registry/__init__.py +1 -0
- colm_openbench-3.0.0/tests/test_registry/test_converter.py +31 -0
- colm_openbench-3.0.0/tests/test_registry/test_manager.py +1269 -0
- colm_openbench-3.0.0/tests/test_registry/test_resolver.py +796 -0
- colm_openbench-3.0.0/tests/test_registry/test_scanner_registration.py +4432 -0
- colm_openbench-3.0.0/tests/test_registry/test_scanner_tim_res.py +201 -0
- colm_openbench-3.0.0/tests/test_registry/test_schema.py +106 -0
- colm_openbench-3.0.0/tests/test_registry/test_variable_aliases.py +140 -0
- colm_openbench-3.0.0/tests/test_registry_overlay_audit.py +125 -0
- colm_openbench-3.0.0/tests/test_registry_reference_regressions.py +265 -0
- colm_openbench-3.0.0/tests/test_regrid_weight_cache.py +648 -0
- colm_openbench-3.0.0/tests/test_release_metadata.py +57 -0
- colm_openbench-3.0.0/tests/test_remote_credentials.py +98 -0
- colm_openbench-3.0.0/tests/test_remote_file_browser.py +371 -0
- colm_openbench-3.0.0/tests/test_remote_install_worker.py +2395 -0
- colm_openbench-3.0.0/tests/test_remote_runner.py +624 -0
- colm_openbench-3.0.0/tests/test_remote_shell_quoting.py +199 -0
- colm_openbench-3.0.0/tests/test_remote_ssh.py +457 -0
- colm_openbench-3.0.0/tests/test_remote_storage.py +34 -0
- colm_openbench-3.0.0/tests/test_remote_sync.py +1057 -0
- colm_openbench-3.0.0/tests/test_report_groupby_paths.py +785 -0
- colm_openbench-3.0.0/tests/test_runner/__init__.py +0 -0
- colm_openbench-3.0.0/tests/test_runner/test_audit_regressions.py +180 -0
- colm_openbench-3.0.0/tests/test_runner/test_cache.py +420 -0
- colm_openbench-3.0.0/tests/test_runner/test_local.py +9347 -0
- colm_openbench-3.0.0/tests/test_science_audit_regressions.py +367 -0
- colm_openbench-3.0.0/tests/test_sim_scanner.py +885 -0
- colm_openbench-3.0.0/tests/test_smoke.py +133 -0
- colm_openbench-3.0.0/tests/test_smoke_cli.py +156 -0
- colm_openbench-3.0.0/tests/test_ssh_execute_stream.py +274 -0
- colm_openbench-3.0.0/tests/test_station_matcher.py +377 -0
- colm_openbench-3.0.0/tests/test_station_scanner.py +686 -0
- colm_openbench-3.0.0/tests/test_system_resources.py +75 -0
- colm_openbench-3.0.0/tests/test_tier_b_regressions.py +543 -0
- colm_openbench-3.0.0/tests/test_time_climatology_p1.py +96 -0
- colm_openbench-3.0.0/tests/test_time_utils.py +72 -0
- colm_openbench-3.0.0/tests/test_unit.py +281 -0
- colm_openbench-3.0.0/tests/test_visualization_combinations.py +47 -0
- colm_openbench-3.0.0/tests/test_visualization_diagram_sampling.py +155 -0
- colm_openbench-3.0.0/tests/test_visualization_downsample.py +180 -0
- colm_openbench-3.0.0/tests/test_visualization_failure_propagation.py +719 -0
- colm_openbench-3.0.0/tests/test_visualization_filenames.py +278 -0
- colm_openbench-3.0.0/tests/test_visualization_global_state.py +307 -0
- colm_openbench-3.0.0/tests/test_visualization_option_isolation.py +64 -0
- colm_openbench-3.0.0/tests/test_visualization_option_parsing.py +149 -0
- colm_openbench-3.0.0/tests/test_visualization_sampling.py +238 -0
- colm_openbench-3.0.0/tests/test_visualization_units.py +9 -0
- colm_openbench-3.0.0/tests/test_zip_safe_resources.py +218 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
*.egg-info/
|
|
6
|
+
*.egg
|
|
7
|
+
dist/
|
|
8
|
+
build/
|
|
9
|
+
.eggs/
|
|
10
|
+
|
|
11
|
+
# Virtual environments
|
|
12
|
+
.venv/
|
|
13
|
+
venv/
|
|
14
|
+
env/
|
|
15
|
+
|
|
16
|
+
# IDE
|
|
17
|
+
.vscode/
|
|
18
|
+
.idea/
|
|
19
|
+
*.swp
|
|
20
|
+
*.swo
|
|
21
|
+
|
|
22
|
+
# OS
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# Project
|
|
27
|
+
output/
|
|
28
|
+
output_station_smoke/
|
|
29
|
+
logs/
|
|
30
|
+
*.nc
|
|
31
|
+
*.nc4
|
|
32
|
+
# Exception: ship the standard classification masks (IGBP/PFT/Köppen) with the
|
|
33
|
+
# package. They are compressed integer masks (~1.1 MB total) consumed by the
|
|
34
|
+
# *_groupby evaluation paths via openbench.util.static_datasets. Users can still
|
|
35
|
+
# override them via $OPENBENCH_DATASET_DIR or ./dataset/.
|
|
36
|
+
!src/openbench/dataset/
|
|
37
|
+
!src/openbench/dataset/*.nc
|
|
38
|
+
cache/
|
|
39
|
+
.pytest_cache/
|
|
40
|
+
.ruff_cache/
|
|
41
|
+
htmlcov/
|
|
42
|
+
.coverage
|
|
43
|
+
|
|
44
|
+
# Registry runtime scratch (atomic-write backup + advisory lock files,
|
|
45
|
+
# created next to reference_catalog.yaml / model_catalog.yaml).
|
|
46
|
+
*.bak
|
|
47
|
+
*.lock
|
|
48
|
+
*.tmp
|
|
49
|
+
|
|
50
|
+
OpenBench-wei/
|
|
51
|
+
openbench-wizard/
|
|
52
|
+
bk/
|
|
53
|
+
|
|
54
|
+
test_data/
|
|
55
|
+
.worktrees/
|
|
56
|
+
|
|
57
|
+
# Local/generated tests and planning artifacts
|
|
58
|
+
docs/performance-benchmark.md
|
|
59
|
+
tests/manual/test_script_entrypoints.py
|
|
60
|
+
|
|
61
|
+
# Personal/local test configs
|
|
62
|
+
test_real.yaml
|
|
63
|
+
test_wei.yaml
|
|
64
|
+
test_wei2.yaml
|
|
65
|
+
test_wei_full.yaml
|
|
66
|
+
test_cross_dtype.yaml
|
|
67
|
+
test_river.yaml
|
|
68
|
+
test_lu_stn.yaml
|
|
69
|
+
openbench_full_options.yaml
|
|
70
|
+
outputs/
|
|
71
|
+
openbench_init_*.yaml
|
|
72
|
+
/test_*.yaml
|
|
73
|
+
|
|
74
|
+
docs/superpowers/
|
|
75
|
+
/培训课件
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [3.0.0] - 2026-09-11
|
|
4
|
+
|
|
5
|
+
First stable 3.0 release, including the main-branch fixes validated across Linux,
|
|
6
|
+
macOS and Windows on Python 3.10–3.12. The opt-in uncertainty-aware pipeline
|
|
7
|
+
remains on its separate development branch.
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
- Shared grid preprocessing no longer depends on which reference is evaluated
|
|
11
|
+
first; per-pair masked references survive cache reuse and post-processing errors.
|
|
12
|
+
- Statistics respect preprocessed units, finite observations and coordinate
|
|
13
|
+
alignment; ANOVA, PLSR and Three-Cornered Hat receive the correct source layout.
|
|
14
|
+
- Non-Gregorian monthly conversions, computed reference variables and mixed
|
|
15
|
+
flat/resolution-specific reference directories retain their intended data.
|
|
16
|
+
- Remote configuration changes apply atomically without retaining another
|
|
17
|
+
host's passwords; recursive deletes clear matching cached and pending files.
|
|
18
|
+
|
|
19
|
+
### Maintenance
|
|
20
|
+
- Remove obsolete processing scaffolding and consolidate calendar and saved
|
|
21
|
+
credential handling without removing public compatibility entry points.
|
|
22
|
+
- Share wheel/sdist resource checks between CI and publishing, require explicitly
|
|
23
|
+
selected artifacts to exist, and document fresh-build release verification.
|
|
24
|
+
- Remove redundant comments and duplicate test scaffolding while retaining
|
|
25
|
+
meaningful scientific documentation and deterministic regression coverage.
|
|
26
|
+
- Align the Conda recipe with the stable PyPI version and verify its dependency,
|
|
27
|
+
command-line and bundled-data installation contracts.
|
|
28
|
+
|
|
29
|
+
## [3.0.0b16] - 2026-08-31
|
|
30
|
+
|
|
31
|
+
Beta release over 3.0.0b15 for remote workflow reliability, expanded evaluation
|
|
32
|
+
methods, and complete output packaging.
|
|
33
|
+
|
|
34
|
+
### Added
|
|
35
|
+
- Evaluation-guide appendix metrics and methods, including deterministic,
|
|
36
|
+
categorical, uncertainty, trend, and distribution diagnostics.
|
|
37
|
+
- Live remote CPU and memory monitoring tied to the active OpenBench process.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- Index of Agreement is available through the metric workflow.
|
|
41
|
+
- Generated figures are published under the advertised top-level `figures/`
|
|
42
|
+
directory while existing metric, comparison, and report paths remain valid.
|
|
43
|
+
|
|
44
|
+
### Fixed
|
|
45
|
+
- Remote installation, Conda environment creation, SSH host selection, output
|
|
46
|
+
paths, project confirmation, and local/remote dataset discovery.
|
|
47
|
+
- Remote progress now waits for the real evaluation process across jump hosts
|
|
48
|
+
instead of reporting premature success or completion.
|
|
49
|
+
- Legacy flat reference layouts, CLM multi-stream file prefixes, and simulation
|
|
50
|
+
data scanning now preserve the files selected by the user.
|
|
51
|
+
- Appendix NetCDF execution, GUI/Qt CI stability, and repository formatting.
|
|
52
|
+
|
|
53
|
+
## [3.0.0b15] - 2026-08-26
|
|
54
|
+
|
|
55
|
+
Beta release over 3.0.0b14 for GUI/runtime reliability, truthful reporting,
|
|
56
|
+
station evaluation fixes, and preprocessing performance.
|
|
57
|
+
|
|
58
|
+
### Added
|
|
59
|
+
- Content-addressed xESMF weight caching to reuse identical regridding weights.
|
|
60
|
+
- GUI progress events and bounded report summaries for safer long-running local
|
|
61
|
+
and remote evaluations.
|
|
62
|
+
|
|
63
|
+
### Changed
|
|
64
|
+
- Local Dask evaluation avoids distributed NetCDF/HDF5 worker writes and keeps
|
|
65
|
+
scanned simulation case cards readable.
|
|
66
|
+
- Shared preprocessing, reference masking, MFM component work, and multi-model
|
|
67
|
+
comparisons reuse expensive intermediate work where results are equivalent.
|
|
68
|
+
|
|
69
|
+
### Fixed
|
|
70
|
+
- GUI local and remote workflows now fail truthfully instead of silently falling
|
|
71
|
+
back, stalling, or running on the wrong target.
|
|
72
|
+
- Reference and simulation scanning preserve requested datasets, station lists,
|
|
73
|
+
paths, and inline metadata more reliably.
|
|
74
|
+
- Time alignment, finite-observation masks, singleton conservative regrids, and
|
|
75
|
+
station missing-value handling no longer silently alter scientific results.
|
|
76
|
+
- Large NetCDF/CSV reports remain bounded and avoid fabricated or incomplete
|
|
77
|
+
summaries.
|
|
78
|
+
- Windows path normalization, environment discovery, CPU quota handling, and CI
|
|
79
|
+
formatting stability.
|
|
80
|
+
- Station evaluation process updates from PRs #167 and #170.
|
|
81
|
+
|
|
82
|
+
## [3.0.0b14] - 2026-08-22
|
|
83
|
+
|
|
84
|
+
Beta release over 3.0.0b13 for actionable GUI preflight diagnostics.
|
|
85
|
+
|
|
86
|
+
### Fixed
|
|
87
|
+
- GUI configuration-check failures now include the complete CLI check output,
|
|
88
|
+
so validation details are not hidden by the final summary lines.
|
|
89
|
+
|
|
90
|
+
## [3.0.0b13] - 2026-08-22
|
|
91
|
+
|
|
92
|
+
Beta release over 3.0.0b12 for safer configuration, registration, and GUI
|
|
93
|
+
workflows.
|
|
94
|
+
|
|
95
|
+
### Added
|
|
96
|
+
- Chinese/English GUI switching with immediate page retranslation.
|
|
97
|
+
- Back navigation throughout interactive CLI setup and registration wizards.
|
|
98
|
+
|
|
99
|
+
### Changed
|
|
100
|
+
- GUI evaluations now run the same CLI preflight check before execution.
|
|
101
|
+
- Reference rescans distinguish new and registered datasets, default to new
|
|
102
|
+
entries, and enrich only explicitly selected registered datasets.
|
|
103
|
+
- CLI registration accepts quoted whitespace-containing units in named
|
|
104
|
+
`key=value` variable specifications and provides actionable shell guidance.
|
|
105
|
+
|
|
106
|
+
### Fixed
|
|
107
|
+
- CLI and GUI preflight reject evaluations whose configured years do not
|
|
108
|
+
overlap the available data period.
|
|
109
|
+
- Reference rescans preserve manual catalog corrections and keep remote refresh
|
|
110
|
+
work responsive and narrowly targeted.
|
|
111
|
+
- Multi-step CLI back navigation retains previously entered values across
|
|
112
|
+
variables and empty intermediate steps.
|
|
113
|
+
- Cross-platform CI behavior for paths, generated artifacts, and GUI tests.
|
|
114
|
+
|
|
115
|
+
## [3.0.0b12] - 2026-08-18
|
|
116
|
+
|
|
117
|
+
Beta release over 3.0.0b11 for reliable generated station configuration.
|
|
118
|
+
|
|
119
|
+
### Fixed
|
|
120
|
+
- `openbench init` and `openbench sim scan` now write absolute station
|
|
121
|
+
`fulllist` paths so generated YAML works from any current directory.
|
|
122
|
+
|
|
123
|
+
## [3.0.0b11] - 2026-08-13
|
|
124
|
+
|
|
125
|
+
Beta release over 3.0.0b10 for GUI dataset discovery, registry coverage, and
|
|
126
|
+
statistical evaluation correctness.
|
|
127
|
+
|
|
128
|
+
### Added
|
|
129
|
+
- Expanded Crop reference catalog coverage and CoLM2024 model metadata.
|
|
130
|
+
- Run-manifest and configuration-key validation for more reproducible runs.
|
|
131
|
+
|
|
132
|
+
### Changed
|
|
133
|
+
- GUI simulation scans retain per-case grid/station metadata and prepare station
|
|
134
|
+
lists before local preview/export.
|
|
135
|
+
- SMPI remains available through its dedicated comparison workflow instead of
|
|
136
|
+
the single-value metric selector.
|
|
137
|
+
|
|
138
|
+
### Fixed
|
|
139
|
+
- GUI navigation now persists edits, registered reference paths are no longer
|
|
140
|
+
overwritten by scan roots, and simulation discovery follows the selected run.
|
|
141
|
+
- Reference station-list resolution, Streamflow catalog entries, units, and
|
|
142
|
+
registry behavior were corrected.
|
|
143
|
+
- Mann-Kendall handles tied short series, categorical kappa rejects continuous
|
|
144
|
+
inputs, and SMPI bootstrap intervals are consistent for NumPy and Dask data.
|
|
145
|
+
|
|
146
|
+
## [3.0.0b10] - 2026-07-18
|
|
147
|
+
|
|
148
|
+
Beta release over 3.0.0b9 for station-reference routing correctness.
|
|
149
|
+
|
|
150
|
+
### Changed
|
|
151
|
+
- Renamed the active configuration runtime module from `legacy_processors.py`
|
|
152
|
+
to `runtime_info.py` to reflect that it remains on the main execution path.
|
|
153
|
+
|
|
154
|
+
### Fixed
|
|
155
|
+
- Non-Streamflow station references no longer enter the discharge/CaMA-specific
|
|
156
|
+
`station_matching` engine.
|
|
157
|
+
- Reference scans remove stale non-Streamflow matching blocks and generate
|
|
158
|
+
portable station-list catalogs instead.
|
|
159
|
+
|
|
160
|
+
## [3.0.0b9] - 2026-07-16
|
|
161
|
+
|
|
162
|
+
Beta release over 3.0.0b8 for registry coverage and CI stability.
|
|
163
|
+
|
|
164
|
+
### Changed
|
|
165
|
+
- Station fulllists generated by scans are stored under `OPENBENCH_HOME`,
|
|
166
|
+
allowing shared reference roots to remain read-only.
|
|
167
|
+
- Expanded bundled model and reference metadata.
|
|
168
|
+
|
|
169
|
+
### Fixed
|
|
170
|
+
- Compute validation now accepts keyword arguments such as `isel(lake=0)`.
|
|
171
|
+
- Restored required station-matching metadata and removed incomplete generated
|
|
172
|
+
station catalog entries.
|
|
173
|
+
- Simulation scanning retains the TE `Albedo` compatibility key.
|
|
174
|
+
- NetCDF evaluation writes no longer retain lazy references to closed source
|
|
175
|
+
datasets.
|
|
176
|
+
- Ruff formatting for the FFT component metric.
|
|
177
|
+
|
|
178
|
+
## [3.0.0b8] - 2026-07-08
|
|
179
|
+
|
|
180
|
+
Patch release over 3.0.0b7 for model coverage, audit fixes, and CI stability.
|
|
181
|
+
|
|
182
|
+
### Added
|
|
183
|
+
- Bundled ECLand and LM4 model profiles and aliases.
|
|
184
|
+
|
|
185
|
+
### Fixed
|
|
186
|
+
- Station simulation scanning now loads merged NetCDF sources before writing the
|
|
187
|
+
target file, avoiding platform-sensitive HDF5/netCDF CI hangs.
|
|
188
|
+
- Hardened audit fixes for compute sandboxing, remote uploads, registry locking,
|
|
189
|
+
station lists, time decoding, station matching, and unit conversions.
|
|
190
|
+
|
|
191
|
+
## [3.0.0b7] - 2026-06-11
|
|
192
|
+
|
|
193
|
+
Patch release over 3.0.0b6 for GUI selection behavior.
|
|
194
|
+
|
|
195
|
+
### Fixed
|
|
196
|
+
- Multi-resolution reference selection now allows lower-frequency variants such
|
|
197
|
+
as LowRes/Month instead of forcing the highest-frequency available variant.
|
|
198
|
+
- Simulation dataset scanning no longer auto-selects every model-profile
|
|
199
|
+
variable or expands the user's Evaluation Variables selection in the preview.
|
|
200
|
+
|
|
201
|
+
## [3.0.0b6] - 2026-06-11
|
|
202
|
+
|
|
203
|
+
Patch release over 3.0.0b5 for GUI wizard flow alignment.
|
|
204
|
+
|
|
205
|
+
### Changed
|
|
206
|
+
- GUI setup now follows the CLI/config order: choose Evaluation Variables first,
|
|
207
|
+
then configure reference datasets and simulation datasets for those variables.
|
|
208
|
+
|
|
209
|
+
## [3.0.0b5] - 2026-06-11
|
|
210
|
+
|
|
211
|
+
Patch release over 3.0.0b4 for GUI reference selection and remote SSH hardening.
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
- Multi-resolution reference selection no longer crashes when the dialog is
|
|
215
|
+
populated from registry `ReferenceDataset` entries, which do not carry the
|
|
216
|
+
scan-only `file_count` field.
|
|
217
|
+
- SSH output streaming falls back to short polling when `select.select()`
|
|
218
|
+
rejects Paramiko-like channels on platforms such as Windows.
|
|
219
|
+
|
|
220
|
+
## [3.0.0b4] - 2026-06-11
|
|
221
|
+
|
|
222
|
+
Remote-workflow hardening release: the GUI's remote mode was reworked end to
|
|
223
|
+
end (responsive SSH layer + three review rounds over it).
|
|
224
|
+
|
|
225
|
+
### Fixed
|
|
226
|
+
- Conda activation on remote hosts uses the POSIX `.` command — the `source`
|
|
227
|
+
bashism broke every conda-env remote flow on hosts whose `/bin/sh` is
|
|
228
|
+
dash/ash (commands are wrapped in `sh -c` for csh/tcsh login shells)
|
|
229
|
+
- Remote paths starting with `~` (including the documented `~/OpenBench`
|
|
230
|
+
default) now expand to `$HOME` everywhere a path reaches the remote shell:
|
|
231
|
+
the evaluation run command, pip dependency step, conda create, the
|
|
232
|
+
OpenBench install check, the sync engine, scanners, validators, NML/model
|
|
233
|
+
editors and file browsers. Bare `shlex.quote` turned them into literal-`~`
|
|
234
|
+
paths that no remote shell resolves
|
|
235
|
+
- Remote dataset scanning trusts the inspection results shipped from the
|
|
236
|
+
remote host instead of coincidentally same-named local directories
|
|
237
|
+
(wrong-machine inspection on shared mounts), and station fulllists are
|
|
238
|
+
generated remotely for `stn` references
|
|
239
|
+
- A dropped SSH session is reported as "Connection Lost" instead of the
|
|
240
|
+
misleading "Remote directory not found"
|
|
241
|
+
- The remote scan bootstrap `expanduser()`s the checkout path so a plain-git
|
|
242
|
+
`~/OpenBench` install is importable even without the pip step
|
|
243
|
+
|
|
244
|
+
### Changed
|
|
245
|
+
- Every SSH call made from the GUI thread now routes through a responsive
|
|
246
|
+
worker layer: the window keeps painting during connects, scans and
|
|
247
|
+
installs; long installs stream output into Esc-guarded progress dialogs;
|
|
248
|
+
scans and installs are cancellable mid-command
|
|
249
|
+
- Remote installs run `pip install -e` for dependencies (the old
|
|
250
|
+
requirements.yml flow targeted a file that no longer exists)
|
|
251
|
+
- Browse start-path resolution and symlink-target classification each probe
|
|
252
|
+
the remote host in a single compound round trip (was up to N serial
|
|
253
|
+
round trips per click)
|
|
254
|
+
- The Runtime page's local git install/update streams through a worker
|
|
255
|
+
thread with a stoppable subprocess (no more event-loop pumping)
|
|
256
|
+
|
|
257
|
+
## [3.0.0b3] - 2026-06-09
|
|
258
|
+
|
|
259
|
+
### Changed
|
|
260
|
+
- `pip install colm-openbench` is now fully featured by default: statistics
|
|
261
|
+
(scikit-learn, statsmodels), plotting (seaborn), legacy migration (f90nml)
|
|
262
|
+
and HTML reports ship in the base install. Only `[gui]` (PySide6), `[remote]`
|
|
263
|
+
(paramiko) and `[report]` (xhtml2pdf — needs system cairo) remain optional;
|
|
264
|
+
`[all]` = gui + remote + report.
|
|
265
|
+
|
|
266
|
+
### Added
|
|
267
|
+
- Reference datasets: `Rodai2025_NPP` (station NPP) and lake stations
|
|
268
|
+
`G_REALM_LakeLevel`, `GLAST_LakeSurfaceWaterTemperature`, `ReaLSAT_LakeArea`
|
|
269
|
+
- 30-minute (half-hour) time-resolution detection
|
|
270
|
+
|
|
271
|
+
### Docs
|
|
272
|
+
- User's Guide (CN+EN): climatology added to the `tim_res` field table; a
|
|
273
|
+
multi-model `simulation` example; `timezone` flagged as not-yet-implemented;
|
|
274
|
+
default `io`/`dask` sub-blocks shown; detailed cases for unresolvable
|
|
275
|
+
reference profiles and `sim scan` model inference
|
|
276
|
+
|
|
277
|
+
## [3.0.0b2] - 2026-06-09
|
|
278
|
+
|
|
279
|
+
Bug-fix and hardening release over 3.0.0b1 (deep code review + full cross-platform CI).
|
|
280
|
+
|
|
281
|
+
### Fixed
|
|
282
|
+
- Target diagram plotted total RMSE on the uRMSD axis; now passes centered CRMSD so
|
|
283
|
+
points satisfy RMSD² = bias² + uRMSD² (with an invariant guard)
|
|
284
|
+
- `absolute_percent_bias` normalizes by `|Σo|` so a negative observed sum no longer yields a negative APB
|
|
285
|
+
- ANOVA default `analysis_type` corrected to `oneway` (was the non-accepted `one-way`)
|
|
286
|
+
- `br2` uses `|slope|` (Krause 2005), keeping it in `[0, r²]` for negative slopes
|
|
287
|
+
- SMPI grid path applies area weights and uses a consistent bootstrap dimension
|
|
288
|
+
- Taylor grid summary computes std/correlation/CRMSD over one pairwise finite mask
|
|
289
|
+
- NetCDF writes are serialized with a lock (netCDF4/HDF5 is not thread-safe) — fixes a segfault
|
|
290
|
+
- Registry catalog writes hold a cross-process lock; `delete_reference` writes a tombstone
|
|
291
|
+
- Config rejects non-mapping `project`/`evaluation`/`simulation` sections with a clean error
|
|
292
|
+
- Cross-platform path handling (POSIX paths in catalogs/configs; Windows file reads)
|
|
293
|
+
|
|
294
|
+
### Changed
|
|
295
|
+
- Version is a single source of truth (`__init__.__version__`, hatchling dynamic)
|
|
296
|
+
- The full test suite (84 files) now runs on CI across Linux/macOS/Windows
|
|
297
|
+
|
|
298
|
+
### Added
|
|
299
|
+
- 30-minute (half-hour) time-resolution detection
|
|
300
|
+
- Expanded reference dataset metadata; `CITATION.cff`
|
|
301
|
+
|
|
302
|
+
## [3.0.0b1] - 2026-06-07
|
|
303
|
+
|
|
304
|
+
First public beta of the 3.0 line. APIs and config schema may still change
|
|
305
|
+
before the 3.0.0 final release.
|
|
306
|
+
|
|
307
|
+
### Added
|
|
308
|
+
- Unified package structure (`src/openbench/`) merging OpenBench-wei and openbench-wizard
|
|
309
|
+
- Single YAML configuration file (`openbench.yaml`) replacing 4-6 file setup
|
|
310
|
+
- Data registry with 101 reference datasets (69 grid + 32 station)
|
|
311
|
+
- 22 model profiles (CoLM2024, CLM5, NoahMP5, ERA5-Land, …)
|
|
312
|
+
- Bundled IGBP / PFT / Köppen classification masks for group-by analysis
|
|
313
|
+
- CLI commands: `run`, `check`, `init`, `ref`, `sim`, `model`, `migrate`, `cache`, `gui`, `version`
|
|
314
|
+
- Interactive config generator (`openbench init`)
|
|
315
|
+
- Config migration tool (`openbench migrate`) for old JSON/NML formats
|
|
316
|
+
- `_defaults` merge support for simulation configs
|
|
317
|
+
- `!include` tag support in YAML configs
|
|
318
|
+
- Three time alignment strategies: intersection, per_pair, strict
|
|
319
|
+
- Config adapter bridging new and legacy evaluation engine formats
|
|
320
|
+
- SSH remote execution infrastructure (requires `openbench[remote]`)
|
|
321
|
+
- GUI wizard (requires `openbench[gui]`)
|
|
322
|
+
- Optional extras: `[gui]`, `[remote]`, `[report]`, `[all]`
|
|
323
|
+
- GitHub Actions CI (lint + test matrix)
|
|
324
|
+
- 70+ tests covering config, registry, metrics, scores, CLI
|
|
325
|
+
|
|
326
|
+
### Changed
|
|
327
|
+
- Build system: hatchling (was setuptools/manual)
|
|
328
|
+
- Config format: YAML only (JSON and Fortran NML deprecated)
|
|
329
|
+
- Package name: `colm-openbench` on PyPI
|
|
330
|
+
- Python requirement: >=3.10
|
|
331
|
+
|
|
332
|
+
### Migration
|
|
333
|
+
- Use `openbench migrate old-config.json -o openbench.yaml` to convert existing configs
|
|
334
|
+
- Evaluation results are numerically identical to v2.0
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023-2026 Zhongwang Wei, CoLM-SYSU
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|