From 2a89495f12efc08d80c6ea7d3506fb6aa7756bc6 Mon Sep 17 00:00:00 2001 From: "Carolyn.Maynard" Date: Tue, 16 Sep 2025 10:19:17 -0700 Subject: [PATCH 1/4] Remove catchment_id from string construction. Not available in method. --- src/forcing/NetCDFPerFeatureDataProvider.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forcing/NetCDFPerFeatureDataProvider.cpp b/src/forcing/NetCDFPerFeatureDataProvider.cpp index 2a202a9247..afa4c030a1 100644 --- a/src/forcing/NetCDFPerFeatureDataProvider.cpp +++ b/src/forcing/NetCDFPerFeatureDataProvider.cpp @@ -420,7 +420,7 @@ double NetCDFPerFeatureDataProvider::get_value(const CatchmentAggrDataSelector& catch (const std::runtime_error& e) { data_access::unit_conversion_exception uce(e.what()); - uce.provider_model_name = "NetCDFPerFeatureDataProvider " + catchment_id; + uce.provider_model_name = "NetCDFPerFeatureDataProvider"; uce.provider_bmi_var_name = selector.get_variable_name(); uce.provider_units = native_units; uce.unconverted_values.push_back(rvalue); From faae425438b9dcc1b065c66925f769cac921124b Mon Sep 17 00:00:00 2001 From: Phil Miller Date: Tue, 16 Sep 2025 10:22:24 -0700 Subject: [PATCH 2/4] NetCDF Provider: Reformat constructor initialization --- src/forcing/NetCDFPerFeatureDataProvider.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/forcing/NetCDFPerFeatureDataProvider.cpp b/src/forcing/NetCDFPerFeatureDataProvider.cpp index afa4c030a1..1c52c07552 100644 --- a/src/forcing/NetCDFPerFeatureDataProvider.cpp +++ b/src/forcing/NetCDFPerFeatureDataProvider.cpp @@ -38,9 +38,11 @@ void NetCDFPerFeatureDataProvider::cleanup_shared_providers() shared_providers.clear(); } -NetCDFPerFeatureDataProvider::NetCDFPerFeatureDataProvider(std::string input_path, time_t sim_start, time_t sim_end, utils::StreamHandler log_s) : log_stream(log_s), value_cache(20), - sim_start_date_time_epoch(sim_start), - sim_end_date_time_epoch(sim_end) +NetCDFPerFeatureDataProvider::NetCDFPerFeatureDataProvider(std::string input_path, time_t sim_start, time_t sim_end, utils::StreamHandler log_s) + : log_stream(log_s) + , value_cache(20) + , sim_start_date_time_epoch(sim_start) + , sim_end_date_time_epoch(sim_end) { //size_t sizep = 1073741824, nelemsp = 202481; //float preemptionp = 0.75; From 3d0b897b95acade45aaecac5c0db63f4b4b4a818 Mon Sep 17 00:00:00 2001 From: Phil Miller Date: Tue, 16 Sep 2025 10:22:46 -0700 Subject: [PATCH 3/4] NetCDF Provider: Store file path for later use in logging and error reporting --- include/forcing/NetCDFPerFeatureDataProvider.hpp | 2 +- src/forcing/NetCDFPerFeatureDataProvider.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/forcing/NetCDFPerFeatureDataProvider.hpp b/include/forcing/NetCDFPerFeatureDataProvider.hpp index 92ef771fff..b0b782f3f9 100644 --- a/include/forcing/NetCDFPerFeatureDataProvider.hpp +++ b/include/forcing/NetCDFPerFeatureDataProvider.hpp @@ -128,7 +128,7 @@ namespace data_access TimeUnit time_unit; // the unit that time was stored as in the file double time_stride; // the amount of time between stored time values utils::StreamHandler log_stream; - + std::string file_path; std::shared_ptr nc_file; diff --git a/src/forcing/NetCDFPerFeatureDataProvider.cpp b/src/forcing/NetCDFPerFeatureDataProvider.cpp index 1c52c07552..45ce2de210 100644 --- a/src/forcing/NetCDFPerFeatureDataProvider.cpp +++ b/src/forcing/NetCDFPerFeatureDataProvider.cpp @@ -40,6 +40,7 @@ void NetCDFPerFeatureDataProvider::cleanup_shared_providers() NetCDFPerFeatureDataProvider::NetCDFPerFeatureDataProvider(std::string input_path, time_t sim_start, time_t sim_end, utils::StreamHandler log_s) : log_stream(log_s) + , file_path(input_path) , value_cache(20) , sim_start_date_time_epoch(sim_start) , sim_end_date_time_epoch(sim_end) From 54eca657c6592acf5e91d5905ee87c45e6042afa Mon Sep 17 00:00:00 2001 From: Phil Miller Date: Tue, 16 Sep 2025 10:35:20 -0700 Subject: [PATCH 4/4] NetCDF Provider: Report file path in unit conversion exception --- src/forcing/NetCDFPerFeatureDataProvider.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/forcing/NetCDFPerFeatureDataProvider.cpp b/src/forcing/NetCDFPerFeatureDataProvider.cpp index 45ce2de210..f65784ff5c 100644 --- a/src/forcing/NetCDFPerFeatureDataProvider.cpp +++ b/src/forcing/NetCDFPerFeatureDataProvider.cpp @@ -423,7 +423,7 @@ double NetCDFPerFeatureDataProvider::get_value(const CatchmentAggrDataSelector& catch (const std::runtime_error& e) { data_access::unit_conversion_exception uce(e.what()); - uce.provider_model_name = "NetCDFPerFeatureDataProvider"; + uce.provider_model_name = "NetCDFPerFeatureDataProvider(" + file_path + ")"; uce.provider_bmi_var_name = selector.get_variable_name(); uce.provider_units = native_units; uce.unconverted_values.push_back(rvalue);