From cd1dda6f8fa5250ce4ae93a0f9aec08e7f536cae Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Fri, 17 Sep 2021 17:54:37 +1000 Subject: [PATCH 01/23] inicial changes to support wgs84 --- .../dnaimportwrapper/dnaimportwrapper.cpp | 10 +- dynadjust/dynadjust/dnareftran/CMakeLists.txt | 1 + dynadjust/dynadjust/dnareftran/dnareftran.cpp | 31 ++++ dynadjust/dynadjust/dnareftran/dnareftran.hpp | 7 + .../dnareftranwrapper/dnareftranwrapper.cpp | 56 +++++- .../include/config/dnaoptions-interface.hpp | 2 + dynadjust/include/config/dnaoptions.hpp | 6 +- dynadjust/include/io/dnaiofrx.cpp | 159 ++++++++++++++++++ dynadjust/include/io/dnaiofrx.hpp | 81 +++++++++ dynadjust/include/io/dnaiotpb.cpp | 4 +- 10 files changed, 348 insertions(+), 9 deletions(-) create mode 100644 dynadjust/include/io/dnaiofrx.cpp create mode 100644 dynadjust/include/io/dnaiofrx.hpp diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp index 724583e0..fec3937c 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp @@ -1288,6 +1288,12 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } + + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + // start "total" time + cpu_timer time; + + // Import discontinuity file and apply discontinuities // Due to the structure and format of SINEX files, it is essential that // discontinuities be parsed prior to reading any SINEX files. @@ -1337,10 +1343,6 @@ int main(int argc, char* argv[]) } } - /////////////////////////////////////////////////////////////////////////////////////////////////////////// - // start "total" time - cpu_timer time; - // Import network information based on a segmentation block? if (p.i.import_block) { diff --git a/dynadjust/dynadjust/dnareftran/CMakeLists.txt b/dynadjust/dynadjust/dnareftran/CMakeLists.txt index 05ecc2d1..0070487f 100644 --- a/dynadjust/dynadjust/dnareftran/CMakeLists.txt +++ b/dynadjust/dynadjust/dnareftran/CMakeLists.txt @@ -11,6 +11,7 @@ add_library (${PROJECT_NAME} SHARED ${CMAKE_SOURCE_DIR}/include/io/dnaiobst.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiodna.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiotpb.cpp + ${CMAKE_SOURCE_DIR}/include/io/dnaiofrx.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnaangle.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnacoordinate.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnadirection.cpp diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 0058a2b5..0de4293f 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -250,6 +250,37 @@ void dna_reftran::CalculateRotations() } +void dna_reftran::LoadFrameSubstitutions(const string& frxfileName) +{ + dna_io_frx frx; + stringstream ss; + ss << "LoadFrameSubstitutions(): An error was encountered when loading frame substition information." << endl; + + try { + + // Load frame substitution information. Throws runtime_error on failure. + frx.load_frx_file(frxfileName, frame_substitutions_); + //sort(frame_substitutions_.begin(), frame_substitutions_.end()); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + try { + ApplyFrameSubstitutions(); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } +} + +void dna_reftran::ApplyFrameSubstitutions() +{ + +} + void dna_reftran::LoadBinaryStationFile(const string& bstfileName) { try { diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.hpp b/dynadjust/dynadjust/dnareftran/dnareftran.hpp index 057ff315..f63bb645 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.hpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.hpp @@ -44,6 +44,7 @@ using namespace boost::posix_time; using namespace boost::filesystem; #include +#include #include #include #include @@ -131,6 +132,8 @@ class dna_reftran { void LoadTectonicPlateParameters(const string& pltfileName, const string& pmmfileName); + void LoadFrameSubstitutions(const string& frxfileName); + inline void InitialiseSettings(const project_settings& p) {projectSettings_ = p;} private: @@ -193,6 +196,8 @@ class dna_reftran { void CalculateRotations(); + void ApplyFrameSubstitutions(); + //double m_dPercentComplete; // percentage of bytes read from file int m_iBytesRead; // bytes read from file UINT32 m_stnsTransformed; @@ -216,6 +221,8 @@ class dna_reftran { v_plate_motion_eulers plate_motion_eulers_; // Euler parameters corresponding to each plate v_plate_motion_cartesians plate_motion_cartesians_; // Helmert parameters computed from Euler parameters + v_frame_substitutions frame_substitutions_; // Reference frame substitutions + v_string_uint32_pair vplateMap_; // Plate Map index sorted on plate ID std::ofstream* rft_file; diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp index ca147f4c..3bb109e5 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp @@ -57,6 +57,9 @@ void PrintOutputFileHeaderInfo(std::ofstream* f_out, const string& out_file, pro *f_out << setw(PRINT_VAR_PAD) << left << "Plate pole parameter file: " << p->r.tpp_file << endl; } + if (p->r.apply_frame_substitutions > 0) + *f_out << setw(PRINT_VAR_PAD) << left << "Frame substitutions file:" << p->r.frx_file << endl; + if (p->i.export_dynaml) { if (p->i.export_single_xml_file) @@ -156,6 +159,22 @@ int ParseCommandLineOptions(const int& argc, char* argv[], const variables_map& return EXIT_FAILURE; } } + + // Import frame substitutions file and apply substitutions + // Note that substitutions are handled on import, not in + // reftran + if (vm.count(FRAME_SUBSTITUTIONS_FILE)) + { + if (!exists(p.r.frx_file)) + { + cout << endl << "- Error: "; + cout << endl << "frame substitutions file " << endl << " "; + cout << p.r.frx_file << " does not exist." << endl << endl; + return EXIT_FAILURE; + } + + p.r.apply_frame_substitutions = 1; + } p.g.project_file = formPath(p.g.output_folder, p.g.network_name, "dnaproj"); p.r.rft_file = formPath(p.g.output_folder, p.g.network_name, "rft"); @@ -283,6 +302,8 @@ int main(int argc, char* argv[]) "Target reference frame for all stations and datum-dependent measurements.") (EPOCH_E, value(&p.r.epoch), "Projected date for the transformed stations and measurements. arg is a dot delimited string \"dd.mm.yyyy\", or \"today\" if today's date is required. If no date is supplied, the reference epoch of the supplied reference frame will be used.") + (FRAME_SUBSTITUTIONS_FILE_X, value(&p.r.frx_file), + "Reference frame substitutions file. This file provides the frame substitutions required to handle frames for which there are no direct parameters such as WGS84.") (TECTONIC_PLATE_MODEL_OPTION, value(&p.r.plate_model_option), string("Plate motion model option.\n" " 0: Assume all stations are on the Australian plate (default)\n" @@ -467,6 +488,9 @@ int main(int argc, char* argv[]) cout << setw(PRINT_VAR_PAD) << left << " Plate pole parameter file: " << p.r.tpp_file << endl; } + if (p.r.apply_frame_substitutions > 0) + cout << setw(PRINT_VAR_PAD) << left << " Frame substitutions file:" << p.r.frx_file << endl; + // Export options if (p.i.export_dynaml) { @@ -495,11 +519,11 @@ int main(int argc, char* argv[]) dna_reftran refTran(p, &rft_file); stringstream ss_msg; + // Load plate boundary and euler pole information if (vm.count(TECTONIC_PLATE_MODEL_OPTION)) { ss_msg << "+ Loading global tectonic plate boundaries and plate motion information... "; - // Load plate boundary and euler pole information if (!p.g.quiet) cout << ss_msg.str(); rft_file << ss_msg.str(); @@ -524,6 +548,36 @@ int main(int argc, char* argv[]) rft_file << endl << "+ Done." << endl << endl; } + // Load frame substitution information + if (vm.count(FRAME_SUBSTITUTIONS_FILE)) + { + ss_msg.str(""); + ss_msg << "+ Loading frame substitution information... "; + + if (!p.g.quiet) + cout << ss_msg.str(); + rft_file << ss_msg.str(); + + try + { + refTran.LoadFrameSubstitutions(p.r.frx_file); + } + catch (const runtime_error& e) { + cout << endl << "- Error: " << e.what() << endl; + rft_file << endl << "- Error: " << e.what() << endl; + rft_file.close(); + return EXIT_FAILURE; + } + + if (!p.g.quiet) + cout << "done." << endl; + + if (p.g.verbose == 0) + rft_file << "done." << endl; + else + rft_file << endl << "+ Done." << endl << endl; + } + ss_msg.str(""); ss_msg << "+ Transforming stations and measurements... "; if (!p.g.quiet) diff --git a/dynadjust/include/config/dnaoptions-interface.hpp b/dynadjust/include/config/dnaoptions-interface.hpp index 9c13a673..496c0477 100644 --- a/dynadjust/include/config/dnaoptions-interface.hpp +++ b/dynadjust/include/config/dnaoptions-interface.hpp @@ -173,6 +173,8 @@ const char* const TECTONIC_PLATE_BDY_FILE_B = "plate-boundary-file,b"; const char* const TECTONIC_PLATE_POLE_FILE = "plate-pole-file"; const char* const TECTONIC_PLATE_POLE_FILE_M = "plate-pole-file,m"; const char* const TECTONIC_PLATE_MODEL_OPTION = "plate-model-option"; +const char* const FRAME_SUBSTITUTIONS_FILE = "frame-subs-file"; +const char* const FRAME_SUBSTITUTIONS_FILE_X = "frame-subs-file,x"; const char* const VSCALE = "v-scale"; const char* const PSCALE = "p-scale"; diff --git a/dynadjust/include/config/dnaoptions.hpp b/dynadjust/include/config/dnaoptions.hpp index 197abe78..8a6c998f 100644 --- a/dynadjust/include/config/dnaoptions.hpp +++ b/dynadjust/include/config/dnaoptions.hpp @@ -299,8 +299,8 @@ struct reftran_settings : private boost::equality_comparable { reftran_settings() : rft_file(""), bst_file(""), bms_file("") , reference_frame(DEFAULT_DATUM), epoch("") - , tpb_file(""), tpp_file("") - , plate_model_option(0) + , tpb_file(""), tpp_file(""), frx_file("") + , plate_model_option(0), apply_frame_substitutions(0) , command_line_arguments("") {} private: @@ -320,7 +320,9 @@ struct reftran_settings : private boost::equality_comparable { string epoch; // Epoch string tpb_file; // Tectonic plate boundary file string tpp_file; // Tectonic plate pole file + string frx_file; // Frame substitutions file UINT16 plate_model_option; // Informs reftran which plate model option to use + UINT16 apply_frame_substitutions; // Apply reference frame substitutions found in frx file string command_line_arguments; }; diff --git a/dynadjust/include/io/dnaiofrx.cpp b/dynadjust/include/io/dnaiofrx.cpp new file mode 100644 index 00000000..09b3266b --- /dev/null +++ b/dynadjust/include/io/dnaiofrx.cpp @@ -0,0 +1,159 @@ +//============================================================================ +// Name : dnaiofrx.cpp +// Author : Roger Fraser +// Contributors : +// Version : 1.00 +// Copyright : Copyright 2017 Geoscience Australia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http ://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Description : Reference frame substitutions file +//============================================================================ + +#include +#include +#include + +namespace dynadjust { +namespace iostreams { + + +void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs) +{ + // Frame substitutions are as follows. + // + // frame epsg substitute epsg alignment from-epoch to-epoch description X Y Z PPM R1 R2 R3 + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- + // wgs84 8888 itrf1990 4912 01.01.1984 01.01.1987 01.01.1994 wgs84 (transit) 0.060 -0.517 -0.223 -0.011 0.0183 -0.0003 0.0070 + // wgs84 9053 itrf1991 4913 01.01.1991 02.01.1994 28.09.1996 wgs84 (G730) + // + + + std::ifstream frx_file; + stringstream ss; + ss << "load_frx_file(): An error was encountered when opening " << frx_filename << "." << endl; + + try { + // open ascii frame substitutions file. Throws runtime_error on failure. + file_opener(frx_file, frx_filename, ios::in, ascii, true); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (...) { + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + ss.str(""); + ss << "load_frx_file(): An error was encountered when reading from " << frx_filename << "." << endl; + + string frx_record; + + frame_substitutions frx; + boost::gregorian::date today(day_clock::local_day()); + + try { + + frame_subs.clear(); + + while (!frx_file.eof()) // while EOF not found + { + // get the plate identifier + getline(frx_file, frx_record); + + // blank or whitespace? + if (trimstr(frx_record).empty()) + continue; + + // Ignore lines with comments + if (frx_record.compare(0, 1, "#") == 0) + continue; + + // Ignore lines with comments + if (frx_record.compare(0, 3, "---") == 0) + continue; + + // frame name + frx.frame_name = trimstr(frx_record.substr(0, 12)); + + // frame epsg + frx.frame_epsg = val_uint(trimstr(frx_record.substr(12, 6))); + + // substitute + frx.substitute_name = trimstr(frx_record.substr(18, 12)); + + // substitute epsg + frx.substitute_epsg = val_uint(trimstr(frx_record.substr(30, 6))); + + // alignment date + frx.alignment_epoch = dateFromString(trimstr(frx_record.substr(36, 16))); + + // from date + frx.from_epoch = dateFromString(trimstr(frx_record.substr(52, 16))); + + // to date + if (trimstr(frx_record.substr(68, 16)).empty()) + frx.to_epoch = day_clock::local_day() + years(100); + else + frx.to_epoch = dateFromString(trimstr(frx_record.substr(68, 16))); + + // description + if (frx_record.length() > 84) + frx.frame_desc = trimstr(frx_record.substr(84, 22)); + + if (frx_record.length() < 106) + continue; + + // parameters + frx.parameters_[0] = DoubleFromString(trimstr(frx_record.substr(106, 10))); + frx.parameters_[1] = DoubleFromString(trimstr(frx_record.substr(116, 10))); + frx.parameters_[2] = DoubleFromString(trimstr(frx_record.substr(126, 10))); + frx.parameters_[3] = DoubleFromString(trimstr(frx_record.substr(136, 10))); + frx.parameters_[4] = DoubleFromString(trimstr(frx_record.substr(146, 10))); + frx.parameters_[5] = DoubleFromString(trimstr(frx_record.substr(156, 10))); + frx.parameters_[6] = DoubleFromString(trimstr(frx_record.substr(166, 10))); + + frame_subs.push_back(frx); + } + + frx_file.close(); + } + catch (const ios_base::failure& f) { + if (frx_file.eof()) + { + frx_file.close(); + return; + } + ss << f.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (...) { + if (frx_file.eof()) + { + frx_file.close(); + return; + } + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + return; +} + + +} // dnaiostreams +} // dynadjust diff --git a/dynadjust/include/io/dnaiofrx.hpp b/dynadjust/include/io/dnaiofrx.hpp new file mode 100644 index 00000000..3b74e810 --- /dev/null +++ b/dynadjust/include/io/dnaiofrx.hpp @@ -0,0 +1,81 @@ +//============================================================================ +// Name : dnaiofrx.hpp +// Author : Roger Fraser +// Contributors : +// Version : 1.00 +// Copyright : Copyright 2017 Geoscience Australia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http ://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Description : Reference frame substitutions file +//============================================================================ + +#ifndef DNAIOFRX_H_ +#define DNAIOFRX_H_ + +#if defined(_MSC_VER) + #if defined(LIST_INCLUDES_ON_BUILD) + #pragma message(" " __FILE__) + #endif +#endif + +#include +#include +#include + +namespace dynadjust { +namespace iostreams { + +///////////////////////////////////////////////////////////// +// Custom type to manage frame substitutions +template +struct frame_substitutions_t +{ + T1 frame_name; // frame name + T2 frame_epsg; // frame epsg code + T1 frame_desc; // frame description + T1 substitute_name; // substitution frame name + T2 substitute_epsg; // substitution frame epsg code + boost::gregorian::date alignment_epoch; // substitution alignment epoch + boost::gregorian::date from_epoch; // start date of substitution + boost::gregorian::date to_epoch; // end date of substitution + T3 parameters_[7]; // transformation parameters (if any) +}; + +typedef frame_substitutions_t frame_substitutions; +typedef vector v_frame_substitutions; +typedef v_frame_substitutions::iterator it_frame_substitutions; +///////////////////////////////////////////////////////////// + +class dna_io_frx : public dna_io_base +{ +public: + dna_io_frx(void) {}; + dna_io_frx(const dna_io_frx&) {}; + virtual ~dna_io_frx(void) {}; + + dna_io_frx& operator=(const dna_io_frx& rhs); + + void load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs); + + +protected: + +}; + + + +} // namespace measurements +} // namespace dynadjust + +#endif diff --git a/dynadjust/include/io/dnaiotpb.cpp b/dynadjust/include/io/dnaiotpb.cpp index 08167e20..920d9a82 100644 --- a/dynadjust/include/io/dnaiotpb.cpp +++ b/dynadjust/include/io/dnaiotpb.cpp @@ -66,7 +66,7 @@ void dna_io_tpb::load_tpb_file(const string& tpb_filename, v_string_v_doubledoub ss << "load_tpb_file(): An error was encountered when opening " << tpb_filename << "." << endl; try { - // open binary stations file. Throws runtime_error on failure. + // open ascii plate boundaries file. Throws runtime_error on failure. file_opener(tpb_file, tpb_filename, ios::in, ascii, true); } catch (const runtime_error& e) { @@ -169,7 +169,7 @@ void dna_io_tpb::load_tpp_file(const string& tpp_filename, v_plate_motion_eulers ss << "load_tpp_file(): An error was encountered when opening " << tpp_filename << "." << endl; try { - // open binary stations file. Throws runtime_error on failure. + // open ascii pole parameters file. Throws runtime_error on failure. file_opener(tpp_file, tpp_filename, ios::in, ascii, true); } catch (const runtime_error& e) { From 5ef9c7ec3d209e460000fed2985ae742ca1a2b75 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 7 Oct 2021 15:04:20 +1100 Subject: [PATCH 02/23] Update vcxproj files to use Intel OneAPI MKL headers and libraries --- dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj | 1 + dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj | 1 + dynadjust/dynadjust/dnageoid/dnageoid.vcxproj | 1 + dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj | 1 + dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj | 1 + dynadjust/dynadjust/dnaimport/dnaimport.vcxproj | 1 + dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj | 1 + dynadjust/dynadjust/dnaplot/dnaplot.vcxproj | 1 + dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj | 1 + dynadjust/dynadjust/dnareftran/dnareftran.vcxproj | 1 + dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj | 1 + dynadjust/dynadjust/dnasegment/dnasegment.vcxproj | 1 + dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj | 1 + dynadjust/dynadjust/driver/driver.vcxproj | 1 + dynadjust/dynadjust/dynadjust/dynadjust.vcxproj | 1 + dynadjust/dynadjust/metadata/metadata.vcxproj | 1 + 16 files changed, 16 insertions(+) diff --git a/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj b/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj index 5f365c48..0296d79d 100644 --- a/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj +++ b/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj @@ -59,6 +59,7 @@ Parallel v141 false + Parallel diff --git a/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj b/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj index cde51cd5..a95ef48d 100644 --- a/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj b/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj index 233aeecc..baf24cb6 100644 --- a/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj +++ b/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj b/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj index 17a601c0..89e66320 100644 --- a/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj +++ b/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj @@ -68,6 +68,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj b/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj index c31119c4..a855d832 100644 --- a/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj +++ b/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj @@ -66,6 +66,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj b/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj index 1dee7d72..902242e9 100644 --- a/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj +++ b/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj index de247ad5..bf815106 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj b/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj index 859b825e..51f17a67 100644 --- a/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj +++ b/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj b/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj index 77d8a705..29f5549f 100644 --- a/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj index c5e5d71b..6dbab57a 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj index 0ed4d7ce..4ec595b5 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj b/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj index b0e42606..60fff8ab 100644 --- a/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj +++ b/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj b/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj index 2f468f60..0f9e3435 100644 --- a/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj +++ b/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/driver/driver.vcxproj b/dynadjust/dynadjust/driver/driver.vcxproj index ee9e0c53..3f042172 100644 --- a/dynadjust/dynadjust/driver/driver.vcxproj +++ b/dynadjust/dynadjust/driver/driver.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj b/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj index e44ed617..030b5035 100644 --- a/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj +++ b/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj @@ -58,6 +58,7 @@ true Parallel v141 + Parallel diff --git a/dynadjust/dynadjust/metadata/metadata.vcxproj b/dynadjust/dynadjust/metadata/metadata.vcxproj index af3deb9d..70123717 100644 --- a/dynadjust/dynadjust/metadata/metadata.vcxproj +++ b/dynadjust/dynadjust/metadata/metadata.vcxproj @@ -59,6 +59,7 @@ true Parallel v141 + Parallel From 842fa9d05f86c3057cb573226c06afd9f4f5d723 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Mon, 31 Jan 2022 10:25:12 +1100 Subject: [PATCH 03/23] Update vcxproj files to use Intel OneAPI MKL headers and libraries --- dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj | 3 +++ dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj | 3 +++ dynadjust/dynadjust/dnageoid/dnageoid.vcxproj | 3 +++ dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj | 3 +++ dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj | 3 +++ dynadjust/dynadjust/dnaimport/dnaimport.vcxproj | 3 +++ dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj | 3 +++ dynadjust/dynadjust/dnaplot/dnaplot.vcxproj | 3 +++ dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj | 3 +++ dynadjust/dynadjust/dnareftran/dnareftran.vcxproj | 3 +++ .../dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj | 3 +++ dynadjust/dynadjust/dnasegment/dnasegment.vcxproj | 3 +++ .../dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj | 3 +++ dynadjust/dynadjust/driver/driver.vcxproj | 3 +++ dynadjust/dynadjust/dynadjust/dynadjust.vcxproj | 3 +++ dynadjust/dynadjust/metadata/metadata.vcxproj | 3 +++ 16 files changed, 48 insertions(+) diff --git a/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj b/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj index 0296d79d..a2218d93 100644 --- a/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj +++ b/dynadjust/dynadjust/dnaadjust/dnaadjust.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj b/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj index a95ef48d..a8c1b6e8 100644 --- a/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaadjustwrapper/dnaadjustwrapper.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj b/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj index baf24cb6..d82b2ea4 100644 --- a/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj +++ b/dynadjust/dynadjust/dnageoid/dnageoid.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj b/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj index 89e66320..f9788508 100644 --- a/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj +++ b/dynadjust/dynadjust/dnageoidint/dnageoidint.vcxproj @@ -41,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +50,7 @@ true Parallel v141 + Parallel Application @@ -59,6 +61,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj b/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj index a855d832..e8f5c750 100644 --- a/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj +++ b/dynadjust/dynadjust/dnageoidwrapper/dnageoidwrapper.vcxproj @@ -40,6 +40,7 @@ true Parallel v141 + Parallel Application @@ -48,6 +49,7 @@ true Parallel v141 + Parallel Application @@ -57,6 +59,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj b/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj index 902242e9..070d104c 100644 --- a/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj +++ b/dynadjust/dynadjust/dnaimport/dnaimport.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj index bf815106..5771f4cc 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj b/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj index 51f17a67..0112aa58 100644 --- a/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj +++ b/dynadjust/dynadjust/dnaplot/dnaplot.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj b/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj index 29f5549f..b43c555e 100644 --- a/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj +++ b/dynadjust/dynadjust/dnaplotwrapper/dnaplotwrapper.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj index 6dbab57a..405194e4 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj index 4ec595b5..a1abd7ed 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj b/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj index 60fff8ab..203ab83d 100644 --- a/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj +++ b/dynadjust/dynadjust/dnasegment/dnasegment.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -40,6 +41,7 @@ true Parallel v141 + Parallel DynamicLibrary @@ -49,6 +51,7 @@ true Parallel v141 + Parallel DynamicLibrary diff --git a/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj b/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj index 0f9e3435..1b293fa7 100644 --- a/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj +++ b/dynadjust/dynadjust/dnasegmentwrapper/dnasegmentwrapper.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/driver/driver.vcxproj b/dynadjust/dynadjust/driver/driver.vcxproj index 3f042172..b18d3b3d 100644 --- a/dynadjust/dynadjust/driver/driver.vcxproj +++ b/dynadjust/dynadjust/driver/driver.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj b/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj index 030b5035..cd94122e 100644 --- a/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj +++ b/dynadjust/dynadjust/dynadjust/dynadjust.vcxproj @@ -32,6 +32,7 @@ true Parallel v141 + Parallel Application @@ -40,6 +41,7 @@ true Parallel v141 + Parallel Application @@ -49,6 +51,7 @@ true Parallel v141 + Parallel Application diff --git a/dynadjust/dynadjust/metadata/metadata.vcxproj b/dynadjust/dynadjust/metadata/metadata.vcxproj index 70123717..1062e886 100644 --- a/dynadjust/dynadjust/metadata/metadata.vcxproj +++ b/dynadjust/dynadjust/metadata/metadata.vcxproj @@ -33,6 +33,7 @@ true Parallel v141 + Parallel Application @@ -41,6 +42,7 @@ true Parallel v141 + Parallel Application @@ -50,6 +52,7 @@ true Parallel v141 + Parallel Application From ffae543a292c63ebd30c8a78a69ef9e81ef7955d Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Fri, 17 Sep 2021 17:54:37 +1000 Subject: [PATCH 04/23] inicial changes to support wgs84 --- .../dnaimportwrapper/dnaimportwrapper.cpp | 10 +- dynadjust/dynadjust/dnareftran/CMakeLists.txt | 1 + dynadjust/dynadjust/dnareftran/dnareftran.cpp | 31 ++++ dynadjust/dynadjust/dnareftran/dnareftran.hpp | 7 + .../dnareftranwrapper/dnareftranwrapper.cpp | 56 +++++- .../include/config/dnaoptions-interface.hpp | 2 + dynadjust/include/config/dnaoptions.hpp | 6 +- dynadjust/include/io/dnaiofrx.cpp | 159 ++++++++++++++++++ dynadjust/include/io/dnaiofrx.hpp | 81 +++++++++ dynadjust/include/io/dnaiotpb.cpp | 4 +- 10 files changed, 348 insertions(+), 9 deletions(-) create mode 100644 dynadjust/include/io/dnaiofrx.cpp create mode 100644 dynadjust/include/io/dnaiofrx.hpp diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp index 724583e0..fec3937c 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp @@ -1288,6 +1288,12 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } + + /////////////////////////////////////////////////////////////////////////////////////////////////////////// + // start "total" time + cpu_timer time; + + // Import discontinuity file and apply discontinuities // Due to the structure and format of SINEX files, it is essential that // discontinuities be parsed prior to reading any SINEX files. @@ -1337,10 +1343,6 @@ int main(int argc, char* argv[]) } } - /////////////////////////////////////////////////////////////////////////////////////////////////////////// - // start "total" time - cpu_timer time; - // Import network information based on a segmentation block? if (p.i.import_block) { diff --git a/dynadjust/dynadjust/dnareftran/CMakeLists.txt b/dynadjust/dynadjust/dnareftran/CMakeLists.txt index 05ecc2d1..0070487f 100644 --- a/dynadjust/dynadjust/dnareftran/CMakeLists.txt +++ b/dynadjust/dynadjust/dnareftran/CMakeLists.txt @@ -11,6 +11,7 @@ add_library (${PROJECT_NAME} SHARED ${CMAKE_SOURCE_DIR}/include/io/dnaiobst.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiodna.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiotpb.cpp + ${CMAKE_SOURCE_DIR}/include/io/dnaiofrx.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnaangle.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnacoordinate.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnadirection.cpp diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 0058a2b5..0de4293f 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -250,6 +250,37 @@ void dna_reftran::CalculateRotations() } +void dna_reftran::LoadFrameSubstitutions(const string& frxfileName) +{ + dna_io_frx frx; + stringstream ss; + ss << "LoadFrameSubstitutions(): An error was encountered when loading frame substition information." << endl; + + try { + + // Load frame substitution information. Throws runtime_error on failure. + frx.load_frx_file(frxfileName, frame_substitutions_); + //sort(frame_substitutions_.begin(), frame_substitutions_.end()); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + try { + ApplyFrameSubstitutions(); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } +} + +void dna_reftran::ApplyFrameSubstitutions() +{ + +} + void dna_reftran::LoadBinaryStationFile(const string& bstfileName) { try { diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.hpp b/dynadjust/dynadjust/dnareftran/dnareftran.hpp index 057ff315..f63bb645 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.hpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.hpp @@ -44,6 +44,7 @@ using namespace boost::posix_time; using namespace boost::filesystem; #include +#include #include #include #include @@ -131,6 +132,8 @@ class dna_reftran { void LoadTectonicPlateParameters(const string& pltfileName, const string& pmmfileName); + void LoadFrameSubstitutions(const string& frxfileName); + inline void InitialiseSettings(const project_settings& p) {projectSettings_ = p;} private: @@ -193,6 +196,8 @@ class dna_reftran { void CalculateRotations(); + void ApplyFrameSubstitutions(); + //double m_dPercentComplete; // percentage of bytes read from file int m_iBytesRead; // bytes read from file UINT32 m_stnsTransformed; @@ -216,6 +221,8 @@ class dna_reftran { v_plate_motion_eulers plate_motion_eulers_; // Euler parameters corresponding to each plate v_plate_motion_cartesians plate_motion_cartesians_; // Helmert parameters computed from Euler parameters + v_frame_substitutions frame_substitutions_; // Reference frame substitutions + v_string_uint32_pair vplateMap_; // Plate Map index sorted on plate ID std::ofstream* rft_file; diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp index ca147f4c..3bb109e5 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp @@ -57,6 +57,9 @@ void PrintOutputFileHeaderInfo(std::ofstream* f_out, const string& out_file, pro *f_out << setw(PRINT_VAR_PAD) << left << "Plate pole parameter file: " << p->r.tpp_file << endl; } + if (p->r.apply_frame_substitutions > 0) + *f_out << setw(PRINT_VAR_PAD) << left << "Frame substitutions file:" << p->r.frx_file << endl; + if (p->i.export_dynaml) { if (p->i.export_single_xml_file) @@ -156,6 +159,22 @@ int ParseCommandLineOptions(const int& argc, char* argv[], const variables_map& return EXIT_FAILURE; } } + + // Import frame substitutions file and apply substitutions + // Note that substitutions are handled on import, not in + // reftran + if (vm.count(FRAME_SUBSTITUTIONS_FILE)) + { + if (!exists(p.r.frx_file)) + { + cout << endl << "- Error: "; + cout << endl << "frame substitutions file " << endl << " "; + cout << p.r.frx_file << " does not exist." << endl << endl; + return EXIT_FAILURE; + } + + p.r.apply_frame_substitutions = 1; + } p.g.project_file = formPath(p.g.output_folder, p.g.network_name, "dnaproj"); p.r.rft_file = formPath(p.g.output_folder, p.g.network_name, "rft"); @@ -283,6 +302,8 @@ int main(int argc, char* argv[]) "Target reference frame for all stations and datum-dependent measurements.") (EPOCH_E, value(&p.r.epoch), "Projected date for the transformed stations and measurements. arg is a dot delimited string \"dd.mm.yyyy\", or \"today\" if today's date is required. If no date is supplied, the reference epoch of the supplied reference frame will be used.") + (FRAME_SUBSTITUTIONS_FILE_X, value(&p.r.frx_file), + "Reference frame substitutions file. This file provides the frame substitutions required to handle frames for which there are no direct parameters such as WGS84.") (TECTONIC_PLATE_MODEL_OPTION, value(&p.r.plate_model_option), string("Plate motion model option.\n" " 0: Assume all stations are on the Australian plate (default)\n" @@ -467,6 +488,9 @@ int main(int argc, char* argv[]) cout << setw(PRINT_VAR_PAD) << left << " Plate pole parameter file: " << p.r.tpp_file << endl; } + if (p.r.apply_frame_substitutions > 0) + cout << setw(PRINT_VAR_PAD) << left << " Frame substitutions file:" << p.r.frx_file << endl; + // Export options if (p.i.export_dynaml) { @@ -495,11 +519,11 @@ int main(int argc, char* argv[]) dna_reftran refTran(p, &rft_file); stringstream ss_msg; + // Load plate boundary and euler pole information if (vm.count(TECTONIC_PLATE_MODEL_OPTION)) { ss_msg << "+ Loading global tectonic plate boundaries and plate motion information... "; - // Load plate boundary and euler pole information if (!p.g.quiet) cout << ss_msg.str(); rft_file << ss_msg.str(); @@ -524,6 +548,36 @@ int main(int argc, char* argv[]) rft_file << endl << "+ Done." << endl << endl; } + // Load frame substitution information + if (vm.count(FRAME_SUBSTITUTIONS_FILE)) + { + ss_msg.str(""); + ss_msg << "+ Loading frame substitution information... "; + + if (!p.g.quiet) + cout << ss_msg.str(); + rft_file << ss_msg.str(); + + try + { + refTran.LoadFrameSubstitutions(p.r.frx_file); + } + catch (const runtime_error& e) { + cout << endl << "- Error: " << e.what() << endl; + rft_file << endl << "- Error: " << e.what() << endl; + rft_file.close(); + return EXIT_FAILURE; + } + + if (!p.g.quiet) + cout << "done." << endl; + + if (p.g.verbose == 0) + rft_file << "done." << endl; + else + rft_file << endl << "+ Done." << endl << endl; + } + ss_msg.str(""); ss_msg << "+ Transforming stations and measurements... "; if (!p.g.quiet) diff --git a/dynadjust/include/config/dnaoptions-interface.hpp b/dynadjust/include/config/dnaoptions-interface.hpp index 9c13a673..496c0477 100644 --- a/dynadjust/include/config/dnaoptions-interface.hpp +++ b/dynadjust/include/config/dnaoptions-interface.hpp @@ -173,6 +173,8 @@ const char* const TECTONIC_PLATE_BDY_FILE_B = "plate-boundary-file,b"; const char* const TECTONIC_PLATE_POLE_FILE = "plate-pole-file"; const char* const TECTONIC_PLATE_POLE_FILE_M = "plate-pole-file,m"; const char* const TECTONIC_PLATE_MODEL_OPTION = "plate-model-option"; +const char* const FRAME_SUBSTITUTIONS_FILE = "frame-subs-file"; +const char* const FRAME_SUBSTITUTIONS_FILE_X = "frame-subs-file,x"; const char* const VSCALE = "v-scale"; const char* const PSCALE = "p-scale"; diff --git a/dynadjust/include/config/dnaoptions.hpp b/dynadjust/include/config/dnaoptions.hpp index 197abe78..8a6c998f 100644 --- a/dynadjust/include/config/dnaoptions.hpp +++ b/dynadjust/include/config/dnaoptions.hpp @@ -299,8 +299,8 @@ struct reftran_settings : private boost::equality_comparable { reftran_settings() : rft_file(""), bst_file(""), bms_file("") , reference_frame(DEFAULT_DATUM), epoch("") - , tpb_file(""), tpp_file("") - , plate_model_option(0) + , tpb_file(""), tpp_file(""), frx_file("") + , plate_model_option(0), apply_frame_substitutions(0) , command_line_arguments("") {} private: @@ -320,7 +320,9 @@ struct reftran_settings : private boost::equality_comparable { string epoch; // Epoch string tpb_file; // Tectonic plate boundary file string tpp_file; // Tectonic plate pole file + string frx_file; // Frame substitutions file UINT16 plate_model_option; // Informs reftran which plate model option to use + UINT16 apply_frame_substitutions; // Apply reference frame substitutions found in frx file string command_line_arguments; }; diff --git a/dynadjust/include/io/dnaiofrx.cpp b/dynadjust/include/io/dnaiofrx.cpp new file mode 100644 index 00000000..09b3266b --- /dev/null +++ b/dynadjust/include/io/dnaiofrx.cpp @@ -0,0 +1,159 @@ +//============================================================================ +// Name : dnaiofrx.cpp +// Author : Roger Fraser +// Contributors : +// Version : 1.00 +// Copyright : Copyright 2017 Geoscience Australia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http ://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Description : Reference frame substitutions file +//============================================================================ + +#include +#include +#include + +namespace dynadjust { +namespace iostreams { + + +void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs) +{ + // Frame substitutions are as follows. + // + // frame epsg substitute epsg alignment from-epoch to-epoch description X Y Z PPM R1 R2 R3 + // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- + // wgs84 8888 itrf1990 4912 01.01.1984 01.01.1987 01.01.1994 wgs84 (transit) 0.060 -0.517 -0.223 -0.011 0.0183 -0.0003 0.0070 + // wgs84 9053 itrf1991 4913 01.01.1991 02.01.1994 28.09.1996 wgs84 (G730) + // + + + std::ifstream frx_file; + stringstream ss; + ss << "load_frx_file(): An error was encountered when opening " << frx_filename << "." << endl; + + try { + // open ascii frame substitutions file. Throws runtime_error on failure. + file_opener(frx_file, frx_filename, ios::in, ascii, true); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (...) { + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + ss.str(""); + ss << "load_frx_file(): An error was encountered when reading from " << frx_filename << "." << endl; + + string frx_record; + + frame_substitutions frx; + boost::gregorian::date today(day_clock::local_day()); + + try { + + frame_subs.clear(); + + while (!frx_file.eof()) // while EOF not found + { + // get the plate identifier + getline(frx_file, frx_record); + + // blank or whitespace? + if (trimstr(frx_record).empty()) + continue; + + // Ignore lines with comments + if (frx_record.compare(0, 1, "#") == 0) + continue; + + // Ignore lines with comments + if (frx_record.compare(0, 3, "---") == 0) + continue; + + // frame name + frx.frame_name = trimstr(frx_record.substr(0, 12)); + + // frame epsg + frx.frame_epsg = val_uint(trimstr(frx_record.substr(12, 6))); + + // substitute + frx.substitute_name = trimstr(frx_record.substr(18, 12)); + + // substitute epsg + frx.substitute_epsg = val_uint(trimstr(frx_record.substr(30, 6))); + + // alignment date + frx.alignment_epoch = dateFromString(trimstr(frx_record.substr(36, 16))); + + // from date + frx.from_epoch = dateFromString(trimstr(frx_record.substr(52, 16))); + + // to date + if (trimstr(frx_record.substr(68, 16)).empty()) + frx.to_epoch = day_clock::local_day() + years(100); + else + frx.to_epoch = dateFromString(trimstr(frx_record.substr(68, 16))); + + // description + if (frx_record.length() > 84) + frx.frame_desc = trimstr(frx_record.substr(84, 22)); + + if (frx_record.length() < 106) + continue; + + // parameters + frx.parameters_[0] = DoubleFromString(trimstr(frx_record.substr(106, 10))); + frx.parameters_[1] = DoubleFromString(trimstr(frx_record.substr(116, 10))); + frx.parameters_[2] = DoubleFromString(trimstr(frx_record.substr(126, 10))); + frx.parameters_[3] = DoubleFromString(trimstr(frx_record.substr(136, 10))); + frx.parameters_[4] = DoubleFromString(trimstr(frx_record.substr(146, 10))); + frx.parameters_[5] = DoubleFromString(trimstr(frx_record.substr(156, 10))); + frx.parameters_[6] = DoubleFromString(trimstr(frx_record.substr(166, 10))); + + frame_subs.push_back(frx); + } + + frx_file.close(); + } + catch (const ios_base::failure& f) { + if (frx_file.eof()) + { + frx_file.close(); + return; + } + ss << f.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (const runtime_error& e) { + ss << e.what(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + catch (...) { + if (frx_file.eof()) + { + frx_file.close(); + return; + } + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + return; +} + + +} // dnaiostreams +} // dynadjust diff --git a/dynadjust/include/io/dnaiofrx.hpp b/dynadjust/include/io/dnaiofrx.hpp new file mode 100644 index 00000000..3b74e810 --- /dev/null +++ b/dynadjust/include/io/dnaiofrx.hpp @@ -0,0 +1,81 @@ +//============================================================================ +// Name : dnaiofrx.hpp +// Author : Roger Fraser +// Contributors : +// Version : 1.00 +// Copyright : Copyright 2017 Geoscience Australia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http ://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Description : Reference frame substitutions file +//============================================================================ + +#ifndef DNAIOFRX_H_ +#define DNAIOFRX_H_ + +#if defined(_MSC_VER) + #if defined(LIST_INCLUDES_ON_BUILD) + #pragma message(" " __FILE__) + #endif +#endif + +#include +#include +#include + +namespace dynadjust { +namespace iostreams { + +///////////////////////////////////////////////////////////// +// Custom type to manage frame substitutions +template +struct frame_substitutions_t +{ + T1 frame_name; // frame name + T2 frame_epsg; // frame epsg code + T1 frame_desc; // frame description + T1 substitute_name; // substitution frame name + T2 substitute_epsg; // substitution frame epsg code + boost::gregorian::date alignment_epoch; // substitution alignment epoch + boost::gregorian::date from_epoch; // start date of substitution + boost::gregorian::date to_epoch; // end date of substitution + T3 parameters_[7]; // transformation parameters (if any) +}; + +typedef frame_substitutions_t frame_substitutions; +typedef vector v_frame_substitutions; +typedef v_frame_substitutions::iterator it_frame_substitutions; +///////////////////////////////////////////////////////////// + +class dna_io_frx : public dna_io_base +{ +public: + dna_io_frx(void) {}; + dna_io_frx(const dna_io_frx&) {}; + virtual ~dna_io_frx(void) {}; + + dna_io_frx& operator=(const dna_io_frx& rhs); + + void load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs); + + +protected: + +}; + + + +} // namespace measurements +} // namespace dynadjust + +#endif diff --git a/dynadjust/include/io/dnaiotpb.cpp b/dynadjust/include/io/dnaiotpb.cpp index 08167e20..920d9a82 100644 --- a/dynadjust/include/io/dnaiotpb.cpp +++ b/dynadjust/include/io/dnaiotpb.cpp @@ -66,7 +66,7 @@ void dna_io_tpb::load_tpb_file(const string& tpb_filename, v_string_v_doubledoub ss << "load_tpb_file(): An error was encountered when opening " << tpb_filename << "." << endl; try { - // open binary stations file. Throws runtime_error on failure. + // open ascii plate boundaries file. Throws runtime_error on failure. file_opener(tpb_file, tpb_filename, ios::in, ascii, true); } catch (const runtime_error& e) { @@ -169,7 +169,7 @@ void dna_io_tpb::load_tpp_file(const string& tpp_filename, v_plate_motion_eulers ss << "load_tpp_file(): An error was encountered when opening " << tpp_filename << "." << endl; try { - // open binary stations file. Throws runtime_error on failure. + // open ascii pole parameters file. Throws runtime_error on failure. file_opener(tpp_file, tpp_filename, ios::in, ascii, true); } catch (const runtime_error& e) { From a981848c0a773ae2ae172f3629f03ab08aa35981 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 3 Feb 2022 01:21:24 +1100 Subject: [PATCH 05/23] Further changes to support wgs84 and MWE --- .../dnaimportwrapper.vcxproj.user | 4 +- dynadjust/dynadjust/dnareftran/dnareftran.cpp | 262 +++++++++++++++++- dynadjust/dynadjust/dnareftran/dnareftran.hpp | 9 +- .../dynadjust/dnareftran/dnareftran.vcxproj | 1 + .../dnareftran/dnareftran.vcxproj.filters | 3 + .../dnareftranwrapper.vcxproj.user | 4 +- dynadjust/include/exception/dnaexception.hpp | 3 +- .../include/functions/dnatransparamfuncs.hpp | 244 +++++++++++++++- dynadjust/include/io/dnaiofrx.cpp | 123 +++++++- dynadjust/include/io/dnaiofrx.hpp | 64 ++++- .../measurement_types/dnameasurement.cpp | 2 +- .../include/parameters/dnaconsts-datums.hpp | 64 +++-- dynadjust/include/parameters/dnaepsg.hpp | 241 ++++++++++++---- 13 files changed, 911 insertions(+), 113 deletions(-) diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user index 6cf19850..ba376a09 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user @@ -1,8 +1,8 @@  - -n ps2 vic2ex.simult.adj.stn pseudo-driver-file-2.msr --simulate --geo geoidef.geo --export-dna - $(DIST)_git_issues\print-ignored-msrs + -n 09139 09139.stn 09139.msr -r wgs84 + $(DIST)_git_issues\wgs84 WindowsLocalDebugger diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 0de4293f..801a0bf4 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -54,12 +54,18 @@ void dna_reftran::TransformBinaryFiles(const string& bstFile, const string& bmsF // load the binary station file into memory LoadBinaryStationFile(bstFile); + if (projectSettings_.r.apply_frame_substitutions) + ApplyStationFrameSubstitutions(); + if (projectSettings_.r.plate_model_option == 1) IdentifyStationPlate(); // load the binary measurement file into memory LoadBinaryMeasurementFile(bmsFile); + if (projectSettings_.r.apply_frame_substitutions) + ApplyMeasurementFrameSubstitutions(); + datumTo_.SetDatumFromName(newFrame, newEpoch); // 2. Transform measurements first (because pre-transformed station @@ -157,7 +163,8 @@ void dna_reftran::LoadTectonicPlateParameters(const string& pltfileName, const s { dna_io_tpb tpb; stringstream ss; - ss << "LoadTectonicPlateParameters(): An error was encountered when loading tectonic plate information." << endl; + ss << "LoadTectonicPlateParameters(): An error was encountered when loading" << endl << + " tectonic plate information." << endl; projectSettings_.r.plate_model_option = 1; @@ -254,13 +261,15 @@ void dna_reftran::LoadFrameSubstitutions(const string& frxfileName) { dna_io_frx frx; stringstream ss; - ss << "LoadFrameSubstitutions(): An error was encountered when loading frame substition information." << endl; + ss << "LoadFrameSubstitutions(): An error was encountered when loading" << endl << + " frame substitution information." << endl; try { // Load frame substitution information. Throws runtime_error on failure. frx.load_frx_file(frxfileName, frame_substitutions_); - //sort(frame_substitutions_.begin(), frame_substitutions_.end()); + sort(frame_substitutions_.begin(), frame_substitutions_.end(), + CompareSubstitutionByEpoch()); } catch (const runtime_error& e) { ss << e.what(); @@ -268,18 +277,206 @@ void dna_reftran::LoadFrameSubstitutions(const string& frxfileName) } try { - ApplyFrameSubstitutions(); + ValidateFrameSubstitutions(); } - catch (const runtime_error& e) { - ss << e.what(); + catch (runtime_error& rft) { + ss << rft.what(); throw boost::enable_current_exception(runtime_error(ss.str())); } } + +void dna_reftran::ValidateFrameSubstitutions() +{ + // check the validity of the from/to dates and that there are no overlapping + // periods for which two substitutions may apply + // this function assumes the frame_substitutions_ vector has been sorted on + // date (see LoadFrameSubstitutions) + + it_frame_substitutions this_sub, next_sub; + stringstream ss, the_header, the_record, next_record; + + the_header << " " << + setw(BLOCK) << left << "Frame name" << + setw(ZONE) << left << "epsg" << + setw(BLOCK) << left << "Substitution" << + setw(ZONE) << left << "epsg" << + setw(BLOCK) << right << "From epoch" << + setw(BLOCK) << right << "To epoch" << endl; + the_header << " " << + string(BLOCK + ZONE + BLOCK + ZONE + BLOCK + BLOCK, '-') << endl; -void dna_reftran::ApplyFrameSubstitutions() + for (this_sub = frame_substitutions_.begin(); + this_sub != frame_substitutions_.end(); ++this_sub) + { + next_sub = this_sub + 1; + + the_record.str(""); + the_record << " " << + setw(BLOCK) << left << this_sub->frame_name << + setw(ZONE) << left << this_sub->frame_epsg << + setw(BLOCK) << left << this_sub->substitute_name << + setw(ZONE) << left << this_sub->substitute_epsg << + setw(BLOCK) << right << stringFromDate(this_sub->from_epoch) << + setw(BLOCK) << right << stringFromDate(this_sub->to_epoch) << endl; + + // invalid from/to dates? + if (this_sub->from_epoch >= this_sub->to_epoch) + { + ss.str(""); + ss << + " The 'from' epoch cannot be later than the 'to' epoch in the" << endl << + " frame substitution record: " << endl << + the_header.str() << + the_record.str(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + if (next_sub == frame_substitutions_.end()) + break; + + next_record.str(""); + next_record << " " << + setw(BLOCK) << left << next_sub->frame_name << + setw(ZONE) << left << next_sub->frame_epsg << + setw(BLOCK) << left << next_sub->substitute_name << + setw(ZONE) << left << next_sub->substitute_epsg << + setw(BLOCK) << right << stringFromDate(next_sub->from_epoch) << + setw(BLOCK) << right << stringFromDate(next_sub->to_epoch) << endl; + + // invalid from/to dates? + if (next_sub->from_epoch >= next_sub->to_epoch) + { + ss.str(""); + ss << + " The 'from' epoch cannot be later than the 'to' epoch in the" << endl << + " frame substitution record: " << endl << + the_header.str() << + next_record.str(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + // do we have valid, non-overlapping substitute periods? + if (this_sub->to_epoch < next_sub->from_epoch) + continue; + + + // if this point is reached, there is something wrong + ss.str(""); + ss << + " The first substitution period cannot overlap the next" << endl << + " substitution period: " << endl << + the_header.str() << + the_record.str() << + next_record.str(); + throw boost::enable_current_exception(runtime_error(ss.str())); + } + + // Okay, the substitutions appear valid. Print to log file + UINT32 j(0); + if (projectSettings_.g.verbose > 1) + { + j = (BLOCK * 5) + (ZONE * 2) + HEADER_25; + *rft_file << endl << endl << "Reference frame substitutions" << endl << + string(j, '-') << endl << endl; + *rft_file << + setw(BLOCK) << left << "Frame name" << + setw(ZONE) << left << "epsg" << + setw(BLOCK) << left << "Substitute" << + setw(ZONE) << left << "epsg" << + setw(BLOCK) << right << "Ref epoch" << + setw(BLOCK) << right << "From epoch" << + setw(BLOCK) << right << "To epoch" << + setw(HEADER_25) << left << " Comment" << endl; + *rft_file << string(j, '-'); + *rft_file << endl; + + for (it_frame_substitutions s = frame_substitutions_.begin(); + s != frame_substitutions_.end(); ++s) + { + *rft_file << + setw(BLOCK) << left << s->frame_name << + setw(ZONE) << left << s->frame_epsg << + setw(BLOCK) << left << s->substitute_name << + setw(ZONE) << left << s->substitute_epsg << + setw(BLOCK) << right << stringFromDate(s->alignment_epoch) << + setw(BLOCK) << right << stringFromDate(s->from_epoch) << + setw(BLOCK) << right << stringFromDate(s->to_epoch) << + " " << setw(HEADER_25) << left << s->frame_desc << endl; + } + + *rft_file << string(j, '-'); + *rft_file << endl << endl; + } +} + +void dna_reftran::ApplyStationFrameSubstitutions() { + // loop through binary station records and replace occurrences of + // the frame to be replaced with a substitute + it_vstn_t stn_it; + string epsgSubstitute; + for (stn_it = bstBinaryRecords_.begin(); stn_it != bstBinaryRecords_.end(); ++stn_it) + { + if (IsolateandApplySubstitute(stn_it->epsgCode, stn_it->epoch, epsgSubstitute)) + strcpy(stn_it->epsgCode, epsgSubstitute.c_str()); + } } + +void dna_reftran::ApplyMeasurementFrameSubstitutions() +{ + // loop through binary station records and replace occurrences of + // the frame to be replaced with a substitute + it_vmsr_t msr_it; + string epsgSubstitute; + for (msr_it = bmsBinaryRecords_.begin(); msr_it != bmsBinaryRecords_.end(); ++msr_it) + { + if (IsolateandApplySubstitute(msr_it->epsgCode, msr_it->epoch, epsgSubstitute)) + strcpy(msr_it->epsgCode, epsgSubstitute.c_str()); + } +} + + +bool dna_reftran::IsolateandApplySubstitute(const string& epsgCode, const string& stnEpoch, string& epsgSubstitute) +{ + it_frame_substitutions _it_subst = frame_substitutions_.begin(); + + string frame; + frame = datumFromEpsgCode(LongFromString(epsgCode)); + + // first, find the first occurrence of the substitute in frame_substitutions_ + if ((_it_subst = binary_search_substitution( + _it_subst, + frame_substitutions_.end(), + frame)) == frame_substitutions_.end()) + { + // Frame not found in substitutions + return false; + } + + boost::gregorian::date epoch = dateFromString(stnEpoch); + + epsgSubstitute = ""; + + while (_it_subst != frame_substitutions_.end()) + { + if (epoch >= _it_subst->from_epoch && + epoch <= _it_subst->to_epoch) + { + epsgSubstitute = _it_subst->substitute_name; + break; + } + _it_subst++; + } + + if (epsgSubstitute.empty()) + return false; + + epsgSubstitute = epsgStringFromName(epsgSubstitute); + + return true; +} + void dna_reftran::LoadBinaryStationFile(const string& bstfileName) { @@ -810,6 +1007,9 @@ void dna_reftran::TransformFrames_WithoutPlateMotionModel(it_vstn_t& stn_it, con case REFTRAN_DIRECT_PARAMS_UNAVAILABLE: TransformFrames_Join(stn_it, coordinates, coordinates_mod, datumFrom, datumTo, transformParameters, transType); break; + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + throw RefTranException(rft.what(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; default: throw RefTranException(rft.what()); } @@ -1215,7 +1415,27 @@ void dna_reftran::TransformStationRecords(const string& newFrame, const string& throw RefTranException(e.what()); } catch (const RefTranException& e) { - throw RefTranException(e.what()); + + switch (e.exception_type()) + { + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + { + stringstream throw_msg; + throw_msg << e.what() << endl << + " When transforming from or to WGS84, please ensure that a reference" << endl << + " frame substitutions (*.frx) file with ITRF substitutes for WGS84 at" << endl << + " for specific epochs has been provided using the" << endl << + " --" << FRAME_SUBSTITUTIONS_FILE << " option." << endl; + throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; + } + default: + throw RefTranException(e.what()); + break; + } + + + } } @@ -1351,14 +1571,36 @@ void dna_reftran::TransformMeasurementRecords(const string& newFrame, const stri throw RefTranException(error_msg.str()); } catch (const RefTranException& e) { + stringstream error_msg; - error_msg << e.what() << endl << + error_msg << endl << " - Measurement type: " << measurement_name(msr_it->measType) << endl << " - From: " << bstBinaryRecords_.at(msr_it->station1).stationName << endl << " - To: " << bstBinaryRecords_.at(msr_it->station2).stationName << endl << " - Frame and epoch: " << datumFromEpsgString(msr_it->epsgCode) << " @ " << msr_it->epoch << endl; - throw RefTranException(error_msg.str()); + + switch (e.exception_type()) + { + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + { + stringstream throw_msg; + throw_msg << e.what() << error_msg.str() << endl << + " When transforming from or to WGS84, please ensure that a reference" << endl << + " frame substitutions (*.frx) file with ITRF substitutes for WGS84 at" << endl << + " for specific epochs has been provided using the" << endl << + " --" << FRAME_SUBSTITUTIONS_FILE << " option." << endl; + throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; + } + default: + { + stringstream throw_msg; + throw_msg << e.what() << error_msg.str(); + throw RefTranException(throw_msg.str()); + break; + } + } } } diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.hpp b/dynadjust/dynadjust/dnareftran/dnareftran.hpp index f63bb645..69ed3827 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.hpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.hpp @@ -54,13 +54,16 @@ using namespace boost::filesystem; #include #include #include +#include #include + #include #include #include #include #include #include + #include #include #include @@ -196,7 +199,11 @@ class dna_reftran { void CalculateRotations(); - void ApplyFrameSubstitutions(); + void ValidateFrameSubstitutions(); + void ApplyStationFrameSubstitutions(); + void ApplyMeasurementFrameSubstitutions(); + + bool IsolateandApplySubstitute(const string& epsgCode, const string& epoch, string& epsgSubstitute); //double m_dPercentComplete; // percentage of bytes read from file int m_iBytesRead; // bytes read from file diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj index 98d8d9dd..2dae0bb2 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj @@ -228,6 +228,7 @@ + diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters index 1941b846..9fb27952 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters @@ -164,5 +164,8 @@ Source Files + + Source Files + \ No newline at end of file diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user index 100fb792..38060cd4 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user @@ -11,8 +11,8 @@ WindowsLocalDebugger - VIG19107 -r itrf2008 -e 05.05.2050 --plate-model-option 1 -b ./tectonic-plates/pb2002_plates.dig -m ./tectonic-plates/pb2002_poles.dat - $(dist)\ + 09139 -r gda94 --frame-subs .\wgs84-itrf-substitutions.frx --verb 2 + $(dist)\_git_issues\wgs84 WindowsLocalDebugger diff --git a/dynadjust/include/exception/dnaexception.hpp b/dynadjust/include/exception/dnaexception.hpp index 0ecbf14c..4bc928d2 100644 --- a/dynadjust/include/exception/dnaexception.hpp +++ b/dynadjust/include/exception/dnaexception.hpp @@ -73,7 +73,8 @@ typedef enum _REFTRAN_STATUS_ { REFTRAN_ERROR = 1, REFTRAN_EXCEPTION_RAISED = 2, REFTRAN_DIRECT_PARAMS_UNAVAILABLE = 3, - REFTRAN_TRANS_ON_PLATE_REQUIRED = 4 + REFTRAN_TRANS_ON_PLATE_REQUIRED = 4, + REFTRAN_WGS84_TRANS_UNSUPPORTED = 5 } REFTRAN_STATUS; using namespace std; diff --git a/dynadjust/include/functions/dnatransparamfuncs.hpp b/dynadjust/include/functions/dnatransparamfuncs.hpp index 51e17520..b17d2c1c 100644 --- a/dynadjust/include/functions/dnatransparamfuncs.hpp +++ b/dynadjust/include/functions/dnatransparamfuncs.hpp @@ -160,6 +160,20 @@ void determineGDA94Parameters(transformation_parameter_set& tParam) // GDA94-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineGDA94Parameters(): ")); } @@ -269,6 +283,20 @@ void determineGDA2020Parameters(transformation_parameter_set& tParam) // GDA2020-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineGDA2020Parameters(): ")); } @@ -355,6 +383,20 @@ void determineITRF1988Parameters(transformation_parameter_set& tParam) // ITRF1988-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1988Parameters(): ")); } @@ -440,6 +482,20 @@ void determineITRF1989Parameters(transformation_parameter_set& tParam) // ITRF1989-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1989Parameters(): ")); } @@ -525,6 +581,20 @@ void determineITRF1990Parameters(transformation_parameter_set& tParam) // ITRF1990-to-IWGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1990Parameters(): ")); } @@ -610,6 +680,20 @@ void determineITRF1991Parameters(transformation_parameter_set& tParam) // ITRF1991-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1991Parameters(): ")); } @@ -695,6 +779,20 @@ void determineITRF1992Parameters(transformation_parameter_set& tParam) // ITRF1992-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1992Parameters(): ")); } @@ -780,6 +878,20 @@ void determineITRF1993Parameters(transformation_parameter_set& tParam) // ITRF1993-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1993Parameters(): ")); } @@ -865,6 +977,20 @@ void determineITRF1994Parameters(transformation_parameter_set& tParam) // ITRF1994-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1994Parameters(): ")); } @@ -958,6 +1084,20 @@ void determineITRF1996Parameters(transformation_parameter_set& tParam) // ITRF1996-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1996Parameters(): ")); } @@ -1051,6 +1191,20 @@ void determineITRF1997Parameters(transformation_parameter_set& tParam) // ITRF1997-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF1997Parameters(): ")); } @@ -1177,6 +1331,20 @@ void determineITRF2000Parameters(transformation_parameter_set& tParam) // ITRF2000-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF2000Parameters(): ")); } @@ -1265,9 +1433,23 @@ void determineITRF2005Parameters(transformation_parameter_set& tParam) tParam.paramDirection_ = __paramReverse__; tParam.reverse(); break; - // WGS84 + // ITRF2005-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF2005Parameters(): ")); } @@ -1390,6 +1572,20 @@ void determineITRF2008Parameters(transformation_parameter_set& tParam) // ITRF2008-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF2008Parameters(): ")); } @@ -1511,6 +1707,20 @@ void determineITRF2014Parameters(transformation_parameter_set& tParam) // ITRF2014-to-WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: default: throw boost::enable_current_exception(runtime_error("determineITRF2014Parameters(): ")); } @@ -1637,21 +1847,35 @@ void determineHelmertParameters(transformation_parameter_set& tParam) // WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + throw RefTranException("Transformation parameters from and to WGS84 are unavailable.", + REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; default: - stringstream ss; - ss << "determineHelmertParameters(): Parameters for " << - datumFromEpsgCode(tParam.from_to_.first) << endl; - ss << " have not been defined yet." << endl; - throw boost::enable_current_exception(runtime_error(ss.str())); + throw boost::enable_current_exception(runtime_error("")); } } catch (runtime_error& e) { stringstream ss; - ss << e.what() << - datumFromEpsgCode(tParam.from_to_.first) << " <-> " << - datumFromEpsgCode(tParam.from_to_.second) << " parameters" << endl; - ss << " have not been defined yet." << endl; + ss << + "determineHelmertParameters(): Parameters for" << + " transforming between " << datumFromEpsgCode(tParam.from_to_.first) << " and " << + datumFromEpsgCode(tParam.from_to_.second) << endl << + " have not been defined yet." << endl << e.what(); throw boost::enable_current_exception(runtime_error(ss.str())); } } diff --git a/dynadjust/include/io/dnaiofrx.cpp b/dynadjust/include/io/dnaiofrx.cpp index 09b3266b..9fd67350 100644 --- a/dynadjust/include/io/dnaiofrx.cpp +++ b/dynadjust/include/io/dnaiofrx.cpp @@ -58,11 +58,46 @@ void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions ss.str(""); ss << "load_frx_file(): An error was encountered when reading from " << frx_filename << "." << endl; - string frx_record; + string frx_record, version, type, param; frame_substitutions frx; boost::gregorian::date today(day_clock::local_day()); + // read header + getline(frx_file, frx_record); + frx_record = trimstr(frx_record); + + // Attempt to get the file's version + try { + if (iequals("!#=DNA", frx_record.substr(0, 6))) + version = trimstr(frx_record.substr(6, 6)); + + // Attempt to get the file's type + try { + type = trimstr(frx_record.substr(12, 3)); + } + catch (const runtime_error& e) { + stringstream ssError; + ssError << "- Error: File type has not been provided in the header" << endl << + frx_record << endl << e.what() << endl; + throw boost::enable_current_exception(runtime_error(ssError.str())); + } + + // Station file + if (!iequals(type, "frx")) + { + stringstream ssError; + ssError << "- Error: A FRX file type was expected in the header" << endl << + frx_record << endl; + throw boost::enable_current_exception(runtime_error(ssError.str())); + } + } + catch (const runtime_error& e) { + throw boost::enable_current_exception(runtime_error(e.what())); + } + + double parameters[7]; + try { frame_subs.clear(); @@ -71,6 +106,7 @@ void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions { // get the plate identifier getline(frx_file, frx_record); + frx_record = trimstr(frx_record); // blank or whitespace? if (trimstr(frx_record).empty()) @@ -84,14 +120,18 @@ void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions if (frx_record.compare(0, 3, "---") == 0) continue; + frx.initialise(); + // frame name frx.frame_name = trimstr(frx_record.substr(0, 12)); + str_toupper(frx.frame_name); // frame epsg frx.frame_epsg = val_uint(trimstr(frx_record.substr(12, 6))); // substitute frx.substitute_name = trimstr(frx_record.substr(18, 12)); + str_toupper(frx.substitute_name); // substitute epsg frx.substitute_epsg = val_uint(trimstr(frx_record.substr(30, 6))); @@ -112,19 +152,74 @@ void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions if (frx_record.length() > 84) frx.frame_desc = trimstr(frx_record.substr(84, 22)); - if (frx_record.length() < 106) - continue; - - // parameters - frx.parameters_[0] = DoubleFromString(trimstr(frx_record.substr(106, 10))); - frx.parameters_[1] = DoubleFromString(trimstr(frx_record.substr(116, 10))); - frx.parameters_[2] = DoubleFromString(trimstr(frx_record.substr(126, 10))); - frx.parameters_[3] = DoubleFromString(trimstr(frx_record.substr(136, 10))); - frx.parameters_[4] = DoubleFromString(trimstr(frx_record.substr(146, 10))); - frx.parameters_[5] = DoubleFromString(trimstr(frx_record.substr(156, 10))); - frx.parameters_[6] = DoubleFromString(trimstr(frx_record.substr(166, 10))); - - frame_subs.push_back(frx); + if (frx_record.length() < 106) + { + // no parameters, just direct substitution + frame_subs.push_back(frx); + continue; + } + + // initialise and extract parameters, if any + memset(parameters, '\0', sizeof(parameters)); + + // X + if (frx_record.length() > 106) + { + param = trimstr(frx_record.substr(106, 10)); + if (!param.empty()) + parameters[0] = DoubleFromString(param); + } + + // Y + if (frx_record.length() > 116) + { + param = trimstr(frx_record.substr(116, 10)); + if (!param.empty()) + parameters[1] = DoubleFromString(param); + } + + // Z + if (frx_record.length() > 126) + { + param = trimstr(frx_record.substr(126, 10)); + if (!param.empty()) + parameters[2] = DoubleFromString(param); + } + + // PPM + if (frx_record.length() > 136) + { + param = trimstr(frx_record.substr(136, 10)); + if (!param.empty()) + parameters[3] = DoubleFromString(param); + } + + // R1 + if (frx_record.length() > 146) + { + param = trimstr(frx_record.substr(146, 10)); + if (!param.empty()) + parameters[4] = DoubleFromString(param); + } + + // R2 + if (frx_record.length() > 156) + { + param = trimstr(frx_record.substr(156, 10)); + if (!param.empty()) + parameters[5] = DoubleFromString(param); + } + + // R3 + if (frx_record.length() > 166) + { + param = trimstr(frx_record.substr(166, 10)); + if (!param.empty()) + parameters[6] = DoubleFromString(param); + } + + memcpy(frx.parameters_, parameters, sizeof(frx.parameters_)); + frame_subs.push_back(frx); } frx_file.close(); diff --git a/dynadjust/include/io/dnaiofrx.hpp b/dynadjust/include/io/dnaiofrx.hpp index 3b74e810..9a541fa3 100644 --- a/dynadjust/include/io/dnaiofrx.hpp +++ b/dynadjust/include/io/dnaiofrx.hpp @@ -41,6 +41,26 @@ namespace iostreams { template struct frame_substitutions_t { + //frame_substitutions_t() + // : frame_name(""), frame_epsg(0), frame_desc("") + // , substitute_name(""), substitute_epsg(0) + // , alignment_epoch(date_time::min_date_time), from_epoch(date_time::min_date_time), to_epoch(date_time::min_date_time) + //{ + // memset(parameters_, '\0', sizeof(parameters_)); + //} + + void initialise() { + frame_name = ""; + frame_epsg = 0; + frame_desc = ""; + substitute_name = ""; + substitute_epsg = 0; + //alignment_epoch = date_time::min_date_time; + //from_epoch = date_time::min_date_time; + //to_epoch = date_time::min_date_time; + memset(parameters_, '\0', sizeof(parameters_)); + } + T1 frame_name; // frame name T2 frame_epsg; // frame epsg code T1 frame_desc; // frame description @@ -52,9 +72,51 @@ struct frame_substitutions_t T3 parameters_[7]; // transformation parameters (if any) }; -typedef frame_substitutions_t frame_substitutions; +typedef frame_substitutions_t frame_substitutions; typedef vector v_frame_substitutions; typedef v_frame_substitutions::iterator it_frame_substitutions; + +// Used to sort site tuples by WGS84 starting epoch +template +class CompareSubstitutionByEpoch { +public: + bool operator()(const T& left, const T& right) { + // if the starting epochs are equal + if (left.from_epoch == right.from_epoch) + // sort on ending epochs + return left.to_epoch < right.to_epoch; + // sort on starting epoch + return left.from_epoch < right.from_epoch; + } +}; + +template +struct CompareSubstituteOnEPSG +{ + //public: + bool operator()(const T& lhs, const S& rhs) const { + return pair_firstless(lhs.frame_name, rhs); + } + bool operator()(const S& lhs, const T& rhs) const { + return pair_firstless(lhs, rhs.frame_name); + } + //private: + bool pair_firstless(const S& s1, const S& s2) const { + return s1 < s2; + } +}; + + +// tweak the binary search so it returns the iterator of the object found +template +T binary_search_substitution(T begin, T end, S value) +{ + T i = lower_bound(begin, end, value, CompareSubstituteOnEPSG()); + if (i != end && i->frame_name == value) + return i; + else + return end; +} ///////////////////////////////////////////////////////////// class dna_io_frx : public dna_io_base diff --git a/dynadjust/include/measurement_types/dnameasurement.cpp b/dynadjust/include/measurement_types/dnameasurement.cpp index 6dfdd670..fbcef801 100644 --- a/dynadjust/include/measurement_types/dnameasurement.cpp +++ b/dynadjust/include/measurement_types/dnameasurement.cpp @@ -355,7 +355,7 @@ void CDnaCovariance::WriteBinaryMsr(std::ofstream *binary_stream, PUINT32 msrInd measRecord.clusterID = m_lclusterID; sprintf(measRecord.epsgCode, "%s", epsgCode.substr(0, STN_EPSG_WIDTH).c_str()); - sprintf(measRecord.epoch, "%s", epoch.substr(0, STN_EPSG_WIDTH).c_str()); + sprintf(measRecord.epoch, "%s", epoch.substr(0, STN_EPOCH_WIDTH).c_str()); // X measRecord.measStart = xCov; diff --git a/dynadjust/include/parameters/dnaconsts-datums.hpp b/dynadjust/include/parameters/dnaconsts-datums.hpp index 993b9e04..48edd6b1 100644 --- a/dynadjust/include/parameters/dnaconsts-datums.hpp +++ b/dynadjust/include/parameters/dnaconsts-datums.hpp @@ -62,8 +62,23 @@ const UINT16 ITRF1989_i_xyz = 4331; const UINT16 ITRF1989_i = 4911; const UINT16 ITRF1988_i_xyz = 4330; const UINT16 ITRF1988_i = 4910; -const UINT16 WGS84_i_xyz = 4328; -const UINT16 WGS84_i = 4978; + +const UINT16 WGS84_i_xyz = 4978; // geocentric +const UINT16 WGS84_i = 4326; // geodetic +const UINT16 WGS84_transit_i_xyz = 7815; // geocentric +const UINT16 WGS84_transit_i = 8888; // geodetic +const UINT16 WGS84_G730_i_xyz = 7656; // geocentric +const UINT16 WGS84_G730_i = 9053; // geodetic +const UINT16 WGS84_G873_i_xyz = 7658; // geocentric +const UINT16 WGS84_G873_i = 9054; // geodetic +const UINT16 WGS84_G1150_i_xyz = 7660; // geocentric +const UINT16 WGS84_G1150_i = 9055; // geodetic +const UINT16 WGS84_G1674_i_xyz = 7662; // geocentric +const UINT16 WGS84_G1674_i = 9056; // geodetic +const UINT16 WGS84_G1762_i_xyz = 7664; // geocentric +const UINT16 WGS84_G1762_i = 9057; // geodetic +const UINT16 WGS84_G2139_i_xyz = 9753; // geocentric +const UINT16 WGS84_G2139_i = 9754; // geodetic const char* const AGD66_c = "4202"; const char* const AGD84_c = "4203"; @@ -85,7 +100,15 @@ const char* const ITRF1991_c = "4913"; const char* const ITRF1990_c = "4912"; const char* const ITRF1989_c = "4911"; const char* const ITRF1988_c = "4910"; -const char* const WGS84_c = "4978"; + +const char* const WGS84_c = "4978"; +const char* const WGS84_transit_c = "7815"; +const char* const WGS84_G730_c = "7656"; +const char* const WGS84_G873_c = "7658"; +const char* const WGS84_G1150_c = "7660"; +const char* const WGS84_G1674_c = "7662"; +const char* const WGS84_G1762_c = "7664"; +const char* const WGS84_G2139_c = "9753"; const char* const AGD66_epoch = "1.1.1966"; const char* const AGD84_epoch = "1.1.1984"; @@ -105,46 +128,53 @@ const char* const ITRF1990_epoch = "1.1.1990"; const char* const ITRF1989_epoch = "1.1.1989"; const char* const ITRF1988_epoch = "1.1.1988"; +// epochs for WGS84 are not the reference epoch, but rather, +// the starting date from which the respective WGS realisation +// was in use +const char* const WGS84_transit_epoch = "01.01.1987"; +const char* const WGS84_G730_epoch = "02.01.1994"; +const char* const WGS84_G873_epoch = "29.09.1996"; +const char* const WGS84_G1150_epoch = "20.01.2002"; +const char* const WGS84_G1674_epoch = "07.05.2012"; +const char* const WGS84_G1762_epoch = "16.10.2013"; +const char* const WGS84_G2139_epoch = "03.01.2021"; + const char* const AGD66_s = "AGD66"; const char* const AGD84_s = "AGD84"; const char* const GDA94_s = "GDA94"; -const char* const GDA94_s_3ddeg = "GDA94 (3D deg)"; -const char* const GDA94_s_3d = "GDA94 (3D)"; const char* const GDA2020_s = "GDA2020"; const char* const ITRF2014_s = "ITRF2014"; const char* const ITRF2008_s = "ITRF2008"; const char* const ITRF2005_s = "ITRF2005"; -const char* const ITRF2000_s_xyz = "ITRF2000 (geocentric)"; const char* const ITRF2000_s = "ITRF2000"; -const char* const ITRF1997_s_xyz = "ITRF1997 (geocentric)"; const char* const ITRF1997_s = "ITRF1997"; const char* const ITRF1997_s_brief = "ITRF97"; -const char* const ITRF1996_s_xyz = "ITRF1996 (geocentric)"; const char* const ITRF1996_s = "ITRF1996"; const char* const ITRF1996_s_brief = "ITRF96"; -const char* const ITRF1994_s_xyz = "ITRF1994 (geocentric)"; const char* const ITRF1994_s = "ITRF1994"; const char* const ITRF1994_s_brief = "ITRF94"; -const char* const ITRF1993_s_xyz = "ITRF1993 (geocentric)"; const char* const ITRF1993_s = "ITRF1993"; const char* const ITRF1993_s_brief = "ITRF93"; -const char* const ITRF1992_s_xyz = "ITRF1992 (geocentric)"; const char* const ITRF1992_s = "ITRF1992"; const char* const ITRF1992_s_brief = "ITRF92"; -const char* const ITRF1991_s_xyz = "ITRF1991 (geocentric)"; const char* const ITRF1991_s = "ITRF1991"; const char* const ITRF1991_s_brief = "ITRF91"; -const char* const ITRF1990_s_xyz = "ITRF1990 (geocentric)"; const char* const ITRF1990_s = "ITRF1990"; const char* const ITRF1990_s_brief = "ITRF90"; -const char* const ITRF1989_s_xyz = "ITRF1989 (geocentric)"; const char* const ITRF1989_s = "ITRF1989"; const char* const ITRF1989_s_brief = "ITRF89"; -const char* const ITRF1988_s_xyz = "ITRF1988 (geocentric)"; const char* const ITRF1988_s = "ITRF1988"; const char* const ITRF1988_s_brief = "ITRF88"; -const char* const WGS84_s_xyz = "WGS84 (geocentric)"; -const char* const WGS84_s = "WGS84"; + +const char* const WGS84_s = "WGS84"; +const char* const WGS84_transit_s = "WGS84 (transit)"; +const char* const WGS84_G730_s = "WGS84 (G730)"; +const char* const WGS84_G873_s = "WGS84 (G873)"; +const char* const WGS84_G1150_s = "WGS84 (G1150)"; +const char* const WGS84_G1674_s = "WGS84 (G1674)"; +const char* const WGS84_G1762_s = "WGS84 (G1762)"; +const char* const WGS84_G2139_s = "WGS84 (G2139)"; + #endif // DNACONSTS_DATUMS_HPP diff --git a/dynadjust/include/parameters/dnaepsg.hpp b/dynadjust/include/parameters/dnaepsg.hpp index 1e94f8da..a88da8bc 100644 --- a/dynadjust/include/parameters/dnaepsg.hpp +++ b/dynadjust/include/parameters/dnaepsg.hpp @@ -124,10 +124,7 @@ U epsgCodeFromName(const S& datumName) if (iequals(datumName, AGD84_s)) return AGD84_i; if (iequals(datumName, GDA94_s)) - return GDA94_i_2d; // geographic 2D (lat, long) - if (iequals(datumName, GDA94_s_3ddeg) || - iequals(datumName, GDA94_s_3d)) - return GDA94_i; // geographic 3D (lat, long, height) + return GDA94_i; if (iequals(datumName, GDA2020_s)) return GDA2020_i; if (iequals(datumName, ITRF2014_s)) @@ -136,39 +133,42 @@ U epsgCodeFromName(const S& datumName) return ITRF2008_i; if (iequals(datumName, ITRF2005_s)) return ITRF2005_i; - if (iequals(datumName, ITRF2000_s) || iequals(datumName, ITRF2000_s_xyz)) + if (iequals(datumName, ITRF2000_s)) return ITRF2000_i; - if (iequals(datumName, ITRF1997_s) || iequals(datumName, ITRF1997_s_xyz) || - iequals(datumName, ITRF1997_s_brief)) + if (iequals(datumName, ITRF1997_s) || iequals(datumName, ITRF1997_s_brief)) return ITRF1997_i; - if (iequals(datumName, ITRF1996_s) || iequals(datumName, ITRF1996_s_xyz) || - iequals(datumName, ITRF1996_s_brief)) + if (iequals(datumName, ITRF1996_s) || iequals(datumName, ITRF1996_s_brief)) return ITRF1996_i; - if (iequals(datumName, ITRF1994_s) || iequals(datumName, ITRF1994_s_xyz) || - iequals(datumName, ITRF1994_s_brief)) + if (iequals(datumName, ITRF1994_s) || iequals(datumName, ITRF1994_s_brief)) return ITRF1994_i; - if (iequals(datumName, ITRF1993_s) || iequals(datumName, ITRF1993_s_xyz) || - iequals(datumName, ITRF1993_s_brief)) + if (iequals(datumName, ITRF1993_s) || iequals(datumName, ITRF1993_s_brief)) return ITRF1993_i; - if (iequals(datumName, ITRF1992_s) || iequals(datumName, ITRF1992_s_xyz) || - iequals(datumName, ITRF1992_s_brief)) + if (iequals(datumName, ITRF1992_s) || iequals(datumName, ITRF1992_s_brief)) return ITRF1992_i; - if (iequals(datumName, ITRF1991_s) || iequals(datumName, ITRF1991_s_xyz) || - iequals(datumName, ITRF1991_s_brief)) + if (iequals(datumName, ITRF1991_s) || iequals(datumName, ITRF1991_s_brief)) return ITRF1991_i; - if (iequals(datumName, ITRF1990_s) || iequals(datumName, ITRF1990_s_xyz) || - iequals(datumName, ITRF1990_s_brief)) + if (iequals(datumName, ITRF1990_s) || iequals(datumName, ITRF1990_s_brief)) return ITRF1990_i; - if (iequals(datumName, ITRF1989_s) || iequals(datumName, ITRF1989_s_xyz) || - iequals(datumName, ITRF1989_s_brief)) + if (iequals(datumName, ITRF1989_s) || iequals(datumName, ITRF1989_s_brief)) return ITRF1989_i; - if (iequals(datumName, ITRF1988_s) || iequals(datumName, ITRF1988_s_xyz) || - iequals(datumName, ITRF1988_s_brief)) + if (iequals(datumName, ITRF1988_s) || iequals(datumName, ITRF1988_s_brief)) return ITRF1988_i; - - // WGS84 constantly changes - //if (iequals(datumName, WGS84_s) || iequals(datumName, WGS84_s_xyz)) - // return WGS84_i; + if (iequals(datumName, WGS84_s)) + return WGS84_i; + if (iequals(datumName, WGS84_transit_s)) + return WGS84_transit_i; + if (iequals(datumName, WGS84_G730_s)) + return WGS84_G730_i; + if (iequals(datumName, WGS84_G873_s)) + return WGS84_G873_i; + if (iequals(datumName, WGS84_G1150_s)) + return WGS84_G1150_i; + if (iequals(datumName, WGS84_G1674_s)) + return WGS84_G1674_i; + if (iequals(datumName, WGS84_G1762_s)) + return WGS84_G1762_i; + if (iequals(datumName, WGS84_G2139_s)) + return WGS84_G2139_i; stringstream ss; ss << "epsgCodeFromName: " << datumName << " is not yet supported." << endl; @@ -225,6 +225,22 @@ S epsgStringFromName(const S& datumName) return ITRF1989_c; case ITRF1988_i: return ITRF1988_c; + case WGS84_i: + return WGS84_c; + case WGS84_transit_i: + return WGS84_transit_c; + case WGS84_G730_i: + return WGS84_G730_c; + case WGS84_G873_i: + return WGS84_G873_c; + case WGS84_G1150_i: + return WGS84_G1150_c; + case WGS84_G1674_i: + return WGS84_G1674_c; + case WGS84_G1762_i: + return WGS84_G1762_c; + case WGS84_G2139_i: + return WGS84_G2139_c; } stringstream ss; @@ -276,15 +292,25 @@ bool isEpsgDatumStatic(const U& epsgCode) case ITRF2000_i: case ITRF2008_i: case ITRF2014_i: - return false; - // WGS84 constantly changes case WGS84_i_xyz: case WGS84_i: - ss << "spheroidFromEpsgCode: EPSG code " << epsgCode << " is not supported. Please specify a compatible ITRF version." << endl; - throw boost::enable_current_exception(runtime_error(ss.str())); - break; + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return false; default: - ss << "spheroidFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "isEpsgDatumStatic: EPSG code " << epsgCode << " is not yet supported." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } return false; @@ -427,9 +453,29 @@ string referenceepochFromEpsgCode(const U& epsgCode) return ITRF2008_epoch; case ITRF2014_i: return ITRF2014_epoch; - // WGS84 constantly changes + case WGS84_transit_i_xyz: + case WGS84_transit_i: + return WGS84_transit_epoch; + case WGS84_G730_i_xyz: + case WGS84_G730_i: + return WGS84_G730_epoch; + case WGS84_G873_i_xyz: + case WGS84_G873_i: + return WGS84_G873_epoch; + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + return WGS84_G1150_epoch; + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + return WGS84_G1674_epoch; + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + return WGS84_G1762_epoch; case WGS84_i_xyz: - case WGS84_i: + case WGS84_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return WGS84_G2139_epoch; default: stringstream ss; ss << "referenceepochFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; @@ -499,9 +545,30 @@ S datumFromEpsgCode(const U& epsgCode) return ITRF2008_s; case ITRF2014_i: return ITRF2014_s; - // WGS84 constantly changes case WGS84_i_xyz: case WGS84_i: + return WGS84_s; + case WGS84_transit_i_xyz: + case WGS84_transit_i: + return WGS84_transit_s; + case WGS84_G730_i_xyz: + case WGS84_G730_i: + return WGS84_G730_s; + case WGS84_G873_i_xyz: + case WGS84_G873_i: + return WGS84_G873_s; + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + return WGS84_G1150_s; + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + return WGS84_G1674_s; + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + return WGS84_G1762_s; + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return WGS84_G2139_s; default: stringstream ss; ss << "datumFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; @@ -526,55 +593,68 @@ bool validateEpsgCode(const U& epsgCode) case AGD66_i: // AGD84 case AGD84_i: - // GDA94 + // GDA94 case GDA94_i_xyz: case GDA94_i_2d: case GDA94_i: - // GDA2020 + // GDA2020 case GDA2020_i_xyz: case GDA2020_i_2d: case GDA2020_i: - // ITRF1988 + // ITRF1988 case ITRF1988_i_xyz: case ITRF1988_i: - // ITRF1989 + // ITRF1989 case ITRF1989_i_xyz: case ITRF1989_i: - // ITRF1990 + // ITRF1990 case ITRF1990_i_xyz: case ITRF1990_i: - // ITRF1991 + // ITRF1991 case ITRF1991_i_xyz: case ITRF1991_i: - // ITRF1992 + // ITRF1992 case ITRF1992_i_xyz: case ITRF1992_i: - // ITRF1993 + // ITRF1993 case ITRF1993_i_xyz: case ITRF1993_i: - // ITRF1994 + // ITRF1994 case ITRF1994_i_xyz: case ITRF1994_i: - // ITRF1996 + // ITRF1996 case ITRF1996_i_xyz: case ITRF1996_i: - // ITRF1997 + // ITRF1997 case ITRF1997_i_xyz: case ITRF1997_i: - // ITRF2000 + // ITRF2000 case ITRF2000_i_xyz: case ITRF2000_i: - // ITRF2005 + // ITRF2005 case ITRF2005_i: - // ITRF2008 + // ITRF2008 case ITRF2014_i: - // ITRF2014 + // ITRF2014 case ITRF2008_i: - return true; - - // WGS84 constantly changes + // WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return true; default: stringstream ss; ss << "validateEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; @@ -583,6 +663,59 @@ bool validateEpsgCode(const U& epsgCode) return false; } +template +bool isEpsgCodeWGS84(const U& epsgCode) +{ + switch (epsgCode) + { + // WGS84 + case WGS84_i_xyz: + case WGS84_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return true; + default: + return false; + } + return false; +} + +template +bool isDatumNameWGS84(const U& datumName) +{ + + if (iequals(datumName, WGS84_s)) + return true; + if (iequals(datumName, WGS84_transit_s)) + return true; + if (iequals(datumName, WGS84_G730_s)) + return true; + if (iequals(datumName, WGS84_G873_s)) + return true; + if (iequals(datumName, WGS84_G1150_s)) + return true; + if (iequals(datumName, WGS84_G1674_s)) + return true; + if (iequals(datumName, WGS84_G1762_s)) + return true; + if (iequals(datumName, WGS84_G2139_s)) + return true; + + return false; +} + } // namespace epsg } // namespace dynadjust From 8b3e592348bc863888881664a163d8d1daa78f84 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 3 Feb 2022 08:40:19 +1100 Subject: [PATCH 06/23] [skip-ci] Add sample WGS84 frame substitutions file --- sampleData/wgs84-itrf-substitutions.frx | 46 +++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 sampleData/wgs84-itrf-substitutions.frx diff --git a/sampleData/wgs84-itrf-substitutions.frx b/sampleData/wgs84-itrf-substitutions.frx new file mode 100644 index 00000000..dcb2f97a --- /dev/null +++ b/sampleData/wgs84-itrf-substitutions.frx @@ -0,0 +1,46 @@ +!#=DNA 3.01 FRX +# WGS84 substitutions +# +# In general the ITRS (and its realizations ITRFyy) are identical to WGS84 +# at one meter level. +# +# Meanwhile there are two types of WGS84 realizations: +# +# - New realizations of WGS84 based on GPS data, such as WGS84(G730, G873, +# G1150 and G1674). These new WGS84 realizations are coincident with ITRF at +# about 10-centimeter level. For these realizations there are no official +# transformation parameters. This means that one can consider that ITRF +# coordinates are also expressed in WGS84 at 10 cm level. However, the most +# recent G1674 realization adopted ITRF2008 coordinates for more than half of +# the reference stations and velocities of nearby sites for the others. Thus, +# ITRF2008 and WGS84(G1674) are likely to agree at the centimeter level, +# yielding conventional 0-transformation parameters. +# +# For more information about WGS84 realizations, see: +# . U.S. National Imagery and Mapping Agency, "Department of Defense World +# Geodetic System 1984 -- Its Definition and Relationships with Local Geodetic +# Systems." NIMA Technical Report 8350.2 3rd release, St. Louis, MO, 23 June +# 2004. http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html +# . Wong R., C. M. Rollins and C. F. Minter (2012) Recent Updates to the WGS 84 +# Reference Frame, Proceedings of the 25th International Technical Meeting +# of the Satellite Divison of the Institution of Navigation (ION GNSS 2012), +# p1164-1172. +# +# - old realization based on U.S. Navy Navigation Satellite System, +# commonly known as DOPPLER Transit, and provided station coordinates +# with accuracies of about one meter. With respect to this realization +# we published, some years ago, transformation parameters between +# ITRF90 and this Doppler realized system: +# +# Parameters from ITRF90 to WGS84-Doppler taken from ftp://itrf-ftp.ign.fr/pub/itrf/WGS84.TXT +# See https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84 for the latest version +# +# frame epsg substitute epsg alignment from-epoch to-epoch description X Y Z PPM R1 R2 R3 +#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- +wgs84 7815 itrf1990 4912 01.01.1984 01.01.1987 01.01.1994 wgs84 (transit) 0.060 -0.517 -0.223 -0.011 0.0183 -0.0003 0.0070 +wgs84 7656 itrf1991 4913 01.01.1991 02.01.1994 28.09.1996 wgs84 (G730) +wgs84 7658 itrf1994 4916 01.01.1994 29.09.1996 19.01.2002 wgs84 (G873) +wgs84 7660 itrf2000 4919 01.01.2001 20.01.2002 06.05.2012 wgs84 (G1150) +wgs84 7662 itrf2008 5332 01.01.2005 07.05.2012 15.10.2013 wgs84 (G1674) +wgs84 7664 itrf2008 5332 01.01.2005 16.10.2013 02.01.2021 wgs84 (G1762) +wgs84 9753 itrf2014 7789 01.01.2010 03.01.2021 wgs84 (G2139) From e2b590d4bbd353bd9604f8cb6fff4bba811cef4c Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 3 Feb 2022 09:01:50 +1100 Subject: [PATCH 07/23] Comment on how to handle no 'do' date --- dynadjust/include/io/dnaiofrx.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dynadjust/include/io/dnaiofrx.cpp b/dynadjust/include/io/dnaiofrx.cpp index 9fd67350..aa3813fc 100644 --- a/dynadjust/include/io/dnaiofrx.cpp +++ b/dynadjust/include/io/dnaiofrx.cpp @@ -144,7 +144,9 @@ void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions // to date if (trimstr(frx_record.substr(68, 16)).empty()) - frx.to_epoch = day_clock::local_day() + years(100); + // No date supplied? + // Set a date 100 years into the future + frx.to_epoch = day_clock::local_day() + years(100); else frx.to_epoch = dateFromString(trimstr(frx_record.substr(68, 16))); From a680b12d306d248ee9a126652ba7242db1e3459a Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 17 Feb 2022 21:10:36 +1100 Subject: [PATCH 08/23] Further changes to handle WGS84 --- dynadjust/dynadjust/dnaimport/dnainterop.cpp | 14 +- .../dnaimportwrapper.vcxproj.user | 2 +- dynadjust/dynadjust/dnareftran/CMakeLists.txt | 1 - dynadjust/dynadjust/dnareftran/dnareftran.cpp | 259 ++++------ dynadjust/dynadjust/dnareftran/dnareftran.hpp | 17 +- .../dynadjust/dnareftran/dnareftran.vcxproj | 3 +- .../dnareftran/dnareftran.vcxproj.filters | 5 +- .../dnareftranwrapper/dnareftranwrapper.cpp | 54 --- .../dnareftranwrapper.vcxproj.user | 2 +- .../include/config/dnaoptions-interface.hpp | 2 - dynadjust/include/config/dnaoptions.hpp | 6 +- .../include/functions/dnatransparamfuncs.hpp | 48 ++ dynadjust/include/io/dnaiofrx.cpp | 256 ---------- dynadjust/include/io/dnaiofrx.hpp | 143 ------ .../include/parameters/dnaconsts-datums.hpp | 152 +++--- .../parameters/dnadatumprojectionparam.hpp | 4 + dynadjust/include/parameters/dnaepsg.hpp | 194 ++++---- .../parameters/dnaframesubstitutions.hpp | 442 ++++++++++++++++++ 18 files changed, 797 insertions(+), 807 deletions(-) delete mode 100644 dynadjust/include/io/dnaiofrx.cpp delete mode 100644 dynadjust/include/io/dnaiofrx.hpp create mode 100644 dynadjust/include/parameters/dnaframesubstitutions.hpp diff --git a/dynadjust/dynadjust/dnaimport/dnainterop.cpp b/dynadjust/dynadjust/dnaimport/dnainterop.cpp index 4f317c73..ab5fade4 100644 --- a/dynadjust/dynadjust/dnaimport/dnainterop.cpp +++ b/dynadjust/dynadjust/dnaimport/dnainterop.cpp @@ -1196,7 +1196,7 @@ void dna_import::ParseDNA(const string& fileName, vdnaStnPtr* vStations, PUINT32 import_file_mutex.unlock(); } catch (const runtime_error& e) { - SignalExceptionParse(static_cast(e.what()), 0); + throw XMLInteropException(e.what(), 0); } // Station file @@ -1221,14 +1221,14 @@ void dna_import::ParseDNA(const string& fileName, vdnaStnPtr* vStations, PUINT32 } stringstream ss; ss << "ParseDNA(): An ios_base failure was encountered when attempting to read stations file " << fileName << "." << endl << " " << f.what(); - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } catch (const XMLInteropException& f) { stringstream ss; ss << " - line " << m_lineNo; ss << ", column " << m_columnNo << endl; ss << " - " << f.what(); - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } catch (...) { if (ifsInputFILE_->eof()) @@ -1239,7 +1239,7 @@ void dna_import::ParseDNA(const string& fileName, vdnaStnPtr* vStations, PUINT32 } stringstream ss; ss << "ParseDNA(): An error was encountered when attempting to read stations file " << fileName << "."; - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } } else if (idt == msr_data || @@ -1263,14 +1263,14 @@ void dna_import::ParseDNA(const string& fileName, vdnaStnPtr* vStations, PUINT32 } stringstream ss; ss << "ParseDNA(): An ios_base failure was encountered when attempting to read measurements file " << fileName << "." << endl << " " << f.what(); - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } catch (const XMLInteropException& f) { stringstream ss; ss << endl << " - line " << m_lineNo; ss << ", column " << m_columnNo << endl; ss << " - " << f.what(); - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } catch (...) { if (ifsInputFILE_->eof()) @@ -1283,7 +1283,7 @@ void dna_import::ParseDNA(const string& fileName, vdnaStnPtr* vStations, PUINT32 ss << "ParseDNA(): An error was encountered when attempting to read measurements file " << fileName << "." << endl; ss << " - line " << m_lineNo; ss << ", column " << m_columnNo << endl; - SignalExceptionParse(ss.str(), 0); + throw XMLInteropException(ss.str(), 0); } } } diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user index ba376a09..010785c7 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.vcxproj.user @@ -1,7 +1,7 @@  - -n 09139 09139.stn 09139.msr -r wgs84 + -n 09139test 09139.stn 09139.msr --export-dna -r "WGS84 (G730)" $(DIST)_git_issues\wgs84 WindowsLocalDebugger diff --git a/dynadjust/dynadjust/dnareftran/CMakeLists.txt b/dynadjust/dynadjust/dnareftran/CMakeLists.txt index 0070487f..05ecc2d1 100644 --- a/dynadjust/dynadjust/dnareftran/CMakeLists.txt +++ b/dynadjust/dynadjust/dnareftran/CMakeLists.txt @@ -11,7 +11,6 @@ add_library (${PROJECT_NAME} SHARED ${CMAKE_SOURCE_DIR}/include/io/dnaiobst.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiodna.cpp ${CMAKE_SOURCE_DIR}/include/io/dnaiotpb.cpp - ${CMAKE_SOURCE_DIR}/include/io/dnaiofrx.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnaangle.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnacoordinate.cpp ${CMAKE_SOURCE_DIR}/include/measurement_types/dnadirection.cpp diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 801a0bf4..df06802d 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -36,8 +36,20 @@ dna_reftran::dna_reftran() #endif #endif rft_file = 0; + + LoadWGS84FrameSubstitutions(); } +dna_reftran::dna_reftran(const project_settings& p, std::ofstream* f_out) +{ + InitialiseSettings(p); + // reftran log file pointer + rft_file = f_out; + + LoadWGS84FrameSubstitutions(); +} + + dna_reftran::~dna_reftran() { @@ -54,8 +66,8 @@ void dna_reftran::TransformBinaryFiles(const string& bstFile, const string& bmsF // load the binary station file into memory LoadBinaryStationFile(bstFile); - if (projectSettings_.r.apply_frame_substitutions) - ApplyStationFrameSubstitutions(); + // Identify and apply any substitutions for WGS84 in the list of stations + ApplyStationFrameSubstitutions(); if (projectSettings_.r.plate_model_option == 1) IdentifyStationPlate(); @@ -63,8 +75,8 @@ void dna_reftran::TransformBinaryFiles(const string& bstFile, const string& bmsF // load the binary measurement file into memory LoadBinaryMeasurementFile(bmsFile); - if (projectSettings_.r.apply_frame_substitutions) - ApplyMeasurementFrameSubstitutions(); + // Identify and apply any substitutions for WGS84 in the list of measurements + ApplyMeasurementFrameSubstitutions(); datumTo_.SetDatumFromName(newFrame, newEpoch); @@ -257,157 +269,60 @@ void dna_reftran::CalculateRotations() } -void dna_reftran::LoadFrameSubstitutions(const string& frxfileName) +// Load substitutions for WGS84 and WGS84 (...) +void dna_reftran::LoadWGS84FrameSubstitutions() { - dna_io_frx frx; - stringstream ss; - ss << "LoadFrameSubstitutions(): An error was encountered when loading" << endl << - " frame substitution information." << endl; - - try { - - // Load frame substitution information. Throws runtime_error on failure. - frx.load_frx_file(frxfileName, frame_substitutions_); - sort(frame_substitutions_.begin(), frame_substitutions_.end(), - CompareSubstitutionByEpoch()); - } - catch (const runtime_error& e) { - ss << e.what(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - - try { - ValidateFrameSubstitutions(); - } - catch (runtime_error& rft) { - ss << rft.what(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } -} + frameSubsPtr frameSubstitution; -void dna_reftran::ValidateFrameSubstitutions() -{ - // check the validity of the from/to dates and that there are no overlapping - // periods for which two substitutions may apply - // this function assumes the frame_substitutions_ vector has been sorted on - // date (see LoadFrameSubstitutions) - - it_frame_substitutions this_sub, next_sub; - stringstream ss, the_header, the_record, next_record; - - the_header << " " << - setw(BLOCK) << left << "Frame name" << - setw(ZONE) << left << "epsg" << - setw(BLOCK) << left << "Substitution" << - setw(ZONE) << left << "epsg" << - setw(BLOCK) << right << "From epoch" << - setw(BLOCK) << right << "To epoch" << endl; - the_header << " " << - string(BLOCK + ZONE + BLOCK + ZONE + BLOCK + BLOCK, '-') << endl; + _frameSubstitutions.clear(); - for (this_sub = frame_substitutions_.begin(); - this_sub != frame_substitutions_.end(); ++this_sub) - { - next_sub = this_sub + 1; - - the_record.str(""); - the_record << " " << - setw(BLOCK) << left << this_sub->frame_name << - setw(ZONE) << left << this_sub->frame_epsg << - setw(BLOCK) << left << this_sub->substitute_name << - setw(ZONE) << left << this_sub->substitute_epsg << - setw(BLOCK) << right << stringFromDate(this_sub->from_epoch) << - setw(BLOCK) << right << stringFromDate(this_sub->to_epoch) << endl; - - // invalid from/to dates? - if (this_sub->from_epoch >= this_sub->to_epoch) - { - ss.str(""); - ss << - " The 'from' epoch cannot be later than the 'to' epoch in the" << endl << - " frame substitution record: " << endl << - the_header.str() << - the_record.str(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } + // WGS84 (transit) and WGS84 to ITRF90 + frameSubstitution.reset(new WGS84_TRANSIT_ITRF90); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF90); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G730) and WGS84 to ITRF91 + frameSubstitution.reset(new WGS84_G730_ITRF91); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF91); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G873) and WGS84 to ITRF94 + frameSubstitution.reset(new WGS84_G873_ITRF94); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF94); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G1150) and WGS84 to ITRF2000 + frameSubstitution.reset(new WGS84_G1150_ITRF2000); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF2000); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G1674) and WGS84 to ITRF2008 + frameSubstitution.reset(new WGS84_G1674_ITRF2008); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF2008_1); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G1762) and WGS84 to ITRF2008 + frameSubstitution.reset(new WGS84_G1762_ITRF2008); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF2008_2); + _frameSubstitutions.push_back(frameSubstitution); + + // WGS84 (G2139) and WGS84 to ITRF2014 + frameSubstitution.reset(new WGS84_G2139_ITRF2014); + _frameSubstitutions.push_back(frameSubstitution); + frameSubstitution.reset(new WGS84_ITRF2014); + _frameSubstitutions.push_back(frameSubstitution); + + sort(_frameSubstitutions.begin(), _frameSubstitutions.end(), + CompareSubstituteOnFrameName< frame_substitutions_t, string>()); - if (next_sub == frame_substitutions_.end()) - break; - - next_record.str(""); - next_record << " " << - setw(BLOCK) << left << next_sub->frame_name << - setw(ZONE) << left << next_sub->frame_epsg << - setw(BLOCK) << left << next_sub->substitute_name << - setw(ZONE) << left << next_sub->substitute_epsg << - setw(BLOCK) << right << stringFromDate(next_sub->from_epoch) << - setw(BLOCK) << right << stringFromDate(next_sub->to_epoch) << endl; - - // invalid from/to dates? - if (next_sub->from_epoch >= next_sub->to_epoch) - { - ss.str(""); - ss << - " The 'from' epoch cannot be later than the 'to' epoch in the" << endl << - " frame substitution record: " << endl << - the_header.str() << - next_record.str(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - - // do we have valid, non-overlapping substitute periods? - if (this_sub->to_epoch < next_sub->from_epoch) - continue; - - - // if this point is reached, there is something wrong - ss.str(""); - ss << - " The first substitution period cannot overlap the next" << endl << - " substitution period: " << endl << - the_header.str() << - the_record.str() << - next_record.str(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - - // Okay, the substitutions appear valid. Print to log file - UINT32 j(0); - if (projectSettings_.g.verbose > 1) - { - j = (BLOCK * 5) + (ZONE * 2) + HEADER_25; - *rft_file << endl << endl << "Reference frame substitutions" << endl << - string(j, '-') << endl << endl; - *rft_file << - setw(BLOCK) << left << "Frame name" << - setw(ZONE) << left << "epsg" << - setw(BLOCK) << left << "Substitute" << - setw(ZONE) << left << "epsg" << - setw(BLOCK) << right << "Ref epoch" << - setw(BLOCK) << right << "From epoch" << - setw(BLOCK) << right << "To epoch" << - setw(HEADER_25) << left << " Comment" << endl; - *rft_file << string(j, '-'); - *rft_file << endl; - - for (it_frame_substitutions s = frame_substitutions_.begin(); - s != frame_substitutions_.end(); ++s) - { - *rft_file << - setw(BLOCK) << left << s->frame_name << - setw(ZONE) << left << s->frame_epsg << - setw(BLOCK) << left << s->substitute_name << - setw(ZONE) << left << s->substitute_epsg << - setw(BLOCK) << right << stringFromDate(s->alignment_epoch) << - setw(BLOCK) << right << stringFromDate(s->from_epoch) << - setw(BLOCK) << right << stringFromDate(s->to_epoch) << - " " << setw(HEADER_25) << left << s->frame_desc << endl; - } - - *rft_file << string(j, '-'); - *rft_file << endl << endl; - } } + void dna_reftran::ApplyStationFrameSubstitutions() { @@ -439,35 +354,41 @@ void dna_reftran::ApplyMeasurementFrameSubstitutions() bool dna_reftran::IsolateandApplySubstitute(const string& epsgCode, const string& stnEpoch, string& epsgSubstitute) { - it_frame_substitutions _it_subst = frame_substitutions_.begin(); + _it_vframesubptr _it_subst = _frameSubstitutions.begin(); string frame; frame = datumFromEpsgCode(LongFromString(epsgCode)); - // first, find the first occurrence of the substitute in frame_substitutions_ + // first, find the first occurrence of the substitute in _frameSubstitutions if ((_it_subst = binary_search_substitution( _it_subst, - frame_substitutions_.end(), - frame)) == frame_substitutions_.end()) + _frameSubstitutions.end(), + frame)) == _frameSubstitutions.end()) { // Frame not found in substitutions return false; } - boost::gregorian::date epoch = dateFromString(stnEpoch); - epsgSubstitute = ""; - while (_it_subst != frame_substitutions_.end()) + if (isDatumWGSEnsemble(epsgCode)) { - if (epoch >= _it_subst->from_epoch && - epoch <= _it_subst->to_epoch) + // In this case, use the epoch to identify the correct substitution + boost::gregorian::date epoch = dateFromString(stnEpoch); + + while (_it_subst != _frameSubstitutions.end()) { - epsgSubstitute = _it_subst->substitute_name; - break; + if (epoch >= _it_subst->get()->getFromEpoch() && + epoch <= _it_subst->get()->getToEpoch()) + { + epsgSubstitute = _it_subst->get()->getSubstituteName(); + break; + } + _it_subst++; } - _it_subst++; } + else + epsgSubstitute = _it_subst->get()->getSubstituteName(); if (epsgSubstitute.empty()) return false; @@ -1422,10 +1343,9 @@ void dna_reftran::TransformStationRecords(const string& newFrame, const string& { stringstream throw_msg; throw_msg << e.what() << endl << - " When transforming from or to WGS84, please ensure that a reference" << endl << - " frame substitutions (*.frx) file with ITRF substitutes for WGS84 at" << endl << - " for specific epochs has been provided using the" << endl << - " --" << FRAME_SUBSTITUTIONS_FILE << " option." << endl; + " When transforming from or to WGS 84, please ensure that \"WGS84\" or" << endl << + " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\")" << endl << + " has been provided in the station and measurement files." << endl; throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); break; } @@ -1586,10 +1506,9 @@ void dna_reftran::TransformMeasurementRecords(const string& newFrame, const stri { stringstream throw_msg; throw_msg << e.what() << error_msg.str() << endl << - " When transforming from or to WGS84, please ensure that a reference" << endl << - " frame substitutions (*.frx) file with ITRF substitutes for WGS84 at" << endl << - " for specific epochs has been provided using the" << endl << - " --" << FRAME_SUBSTITUTIONS_FILE << " option." << endl; + " When transforming from or to WGS 84, please ensure that \"WGS84\" or" << endl << + " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\")" << endl << + " has been provided in the station and measurement files." << endl; throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); break; } diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.hpp b/dynadjust/dynadjust/dnareftran/dnareftran.hpp index 69ed3827..5df3d33e 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.hpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.hpp @@ -44,7 +44,6 @@ using namespace boost::posix_time; using namespace boost::filesystem; #include -#include #include #include #include @@ -70,6 +69,8 @@ using namespace boost::filesystem; #include #include #include +#include + #include #include #include @@ -82,6 +83,7 @@ using namespace dynadjust::datum_parameters; using namespace dynadjust::pmm_parameters; using namespace dynadjust::math; using namespace dynadjust::geometries; +using namespace dynadjust::frame_substitutions; namespace dynadjust { namespace referenceframe { @@ -95,11 +97,7 @@ class dna_reftran { public: dna_reftran(); - dna_reftran(const project_settings& p, std::ofstream* f_out) { - InitialiseSettings(p); - // reftran log file pointer - rft_file = f_out; - } + dna_reftran(const project_settings& p, std::ofstream* f_out); virtual ~dna_reftran(); private: @@ -135,7 +133,8 @@ class dna_reftran { void LoadTectonicPlateParameters(const string& pltfileName, const string& pmmfileName); - void LoadFrameSubstitutions(const string& frxfileName); + //void LoadFrameSubstitutions(const string& frxfileName); + void LoadWGS84FrameSubstitutions(); inline void InitialiseSettings(const project_settings& p) {projectSettings_ = p;} @@ -199,7 +198,7 @@ class dna_reftran { void CalculateRotations(); - void ValidateFrameSubstitutions(); + //void ValidateFrameSubstitutions(); void ApplyStationFrameSubstitutions(); void ApplyMeasurementFrameSubstitutions(); @@ -228,7 +227,7 @@ class dna_reftran { v_plate_motion_eulers plate_motion_eulers_; // Euler parameters corresponding to each plate v_plate_motion_cartesians plate_motion_cartesians_; // Helmert parameters computed from Euler parameters - v_frame_substitutions frame_substitutions_; // Reference frame substitutions + vframeSubsPtr _frameSubstitutions; // Reference frame substitutions v_string_uint32_pair vplateMap_; // Plate Map index sorted on plate ID diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj index 2dae0bb2..1c0a1de5 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj @@ -201,7 +201,6 @@ - @@ -217,6 +216,7 @@ + @@ -228,7 +228,6 @@ - diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters index 9fb27952..bb5fe468 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters +++ b/dynadjust/dynadjust/dnareftran/dnareftran.vcxproj.filters @@ -87,7 +87,7 @@ Header Files - + Header Files @@ -164,8 +164,5 @@ Source Files - - Source Files - \ No newline at end of file diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp index 3bb109e5..253e5866 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp @@ -57,9 +57,6 @@ void PrintOutputFileHeaderInfo(std::ofstream* f_out, const string& out_file, pro *f_out << setw(PRINT_VAR_PAD) << left << "Plate pole parameter file: " << p->r.tpp_file << endl; } - if (p->r.apply_frame_substitutions > 0) - *f_out << setw(PRINT_VAR_PAD) << left << "Frame substitutions file:" << p->r.frx_file << endl; - if (p->i.export_dynaml) { if (p->i.export_single_xml_file) @@ -160,22 +157,6 @@ int ParseCommandLineOptions(const int& argc, char* argv[], const variables_map& } } - // Import frame substitutions file and apply substitutions - // Note that substitutions are handled on import, not in - // reftran - if (vm.count(FRAME_SUBSTITUTIONS_FILE)) - { - if (!exists(p.r.frx_file)) - { - cout << endl << "- Error: "; - cout << endl << "frame substitutions file " << endl << " "; - cout << p.r.frx_file << " does not exist." << endl << endl; - return EXIT_FAILURE; - } - - p.r.apply_frame_substitutions = 1; - } - p.g.project_file = formPath(p.g.output_folder, p.g.network_name, "dnaproj"); p.r.rft_file = formPath(p.g.output_folder, p.g.network_name, "rft"); @@ -302,8 +283,6 @@ int main(int argc, char* argv[]) "Target reference frame for all stations and datum-dependent measurements.") (EPOCH_E, value(&p.r.epoch), "Projected date for the transformed stations and measurements. arg is a dot delimited string \"dd.mm.yyyy\", or \"today\" if today's date is required. If no date is supplied, the reference epoch of the supplied reference frame will be used.") - (FRAME_SUBSTITUTIONS_FILE_X, value(&p.r.frx_file), - "Reference frame substitutions file. This file provides the frame substitutions required to handle frames for which there are no direct parameters such as WGS84.") (TECTONIC_PLATE_MODEL_OPTION, value(&p.r.plate_model_option), string("Plate motion model option.\n" " 0: Assume all stations are on the Australian plate (default)\n" @@ -488,9 +467,6 @@ int main(int argc, char* argv[]) cout << setw(PRINT_VAR_PAD) << left << " Plate pole parameter file: " << p.r.tpp_file << endl; } - if (p.r.apply_frame_substitutions > 0) - cout << setw(PRINT_VAR_PAD) << left << " Frame substitutions file:" << p.r.frx_file << endl; - // Export options if (p.i.export_dynaml) { @@ -548,36 +524,6 @@ int main(int argc, char* argv[]) rft_file << endl << "+ Done." << endl << endl; } - // Load frame substitution information - if (vm.count(FRAME_SUBSTITUTIONS_FILE)) - { - ss_msg.str(""); - ss_msg << "+ Loading frame substitution information... "; - - if (!p.g.quiet) - cout << ss_msg.str(); - rft_file << ss_msg.str(); - - try - { - refTran.LoadFrameSubstitutions(p.r.frx_file); - } - catch (const runtime_error& e) { - cout << endl << "- Error: " << e.what() << endl; - rft_file << endl << "- Error: " << e.what() << endl; - rft_file.close(); - return EXIT_FAILURE; - } - - if (!p.g.quiet) - cout << "done." << endl; - - if (p.g.verbose == 0) - rft_file << "done." << endl; - else - rft_file << endl << "+ Done." << endl << endl; - } - ss_msg.str(""); ss_msg << "+ Transforming stations and measurements... "; if (!p.g.quiet) diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user index 38060cd4..432e4a9e 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.vcxproj.user @@ -11,7 +11,7 @@ WindowsLocalDebugger - 09139 -r gda94 --frame-subs .\wgs84-itrf-substitutions.frx --verb 2 + 09139 -r gda94 --verb 2 $(dist)\_git_issues\wgs84 WindowsLocalDebugger diff --git a/dynadjust/include/config/dnaoptions-interface.hpp b/dynadjust/include/config/dnaoptions-interface.hpp index 496c0477..9c13a673 100644 --- a/dynadjust/include/config/dnaoptions-interface.hpp +++ b/dynadjust/include/config/dnaoptions-interface.hpp @@ -173,8 +173,6 @@ const char* const TECTONIC_PLATE_BDY_FILE_B = "plate-boundary-file,b"; const char* const TECTONIC_PLATE_POLE_FILE = "plate-pole-file"; const char* const TECTONIC_PLATE_POLE_FILE_M = "plate-pole-file,m"; const char* const TECTONIC_PLATE_MODEL_OPTION = "plate-model-option"; -const char* const FRAME_SUBSTITUTIONS_FILE = "frame-subs-file"; -const char* const FRAME_SUBSTITUTIONS_FILE_X = "frame-subs-file,x"; const char* const VSCALE = "v-scale"; const char* const PSCALE = "p-scale"; diff --git a/dynadjust/include/config/dnaoptions.hpp b/dynadjust/include/config/dnaoptions.hpp index 8a6c998f..197abe78 100644 --- a/dynadjust/include/config/dnaoptions.hpp +++ b/dynadjust/include/config/dnaoptions.hpp @@ -299,8 +299,8 @@ struct reftran_settings : private boost::equality_comparable { reftran_settings() : rft_file(""), bst_file(""), bms_file("") , reference_frame(DEFAULT_DATUM), epoch("") - , tpb_file(""), tpp_file(""), frx_file("") - , plate_model_option(0), apply_frame_substitutions(0) + , tpb_file(""), tpp_file("") + , plate_model_option(0) , command_line_arguments("") {} private: @@ -320,9 +320,7 @@ struct reftran_settings : private boost::equality_comparable { string epoch; // Epoch string tpb_file; // Tectonic plate boundary file string tpp_file; // Tectonic plate pole file - string frx_file; // Frame substitutions file UINT16 plate_model_option; // Informs reftran which plate model option to use - UINT16 apply_frame_substitutions; // Apply reference frame substitutions found in frx file string command_line_arguments; }; diff --git a/dynadjust/include/functions/dnatransparamfuncs.hpp b/dynadjust/include/functions/dnatransparamfuncs.hpp index b17d2c1c..6a314b2e 100644 --- a/dynadjust/include/functions/dnatransparamfuncs.hpp +++ b/dynadjust/include/functions/dnatransparamfuncs.hpp @@ -134,6 +134,7 @@ void determineGDA94Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA94-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: memcpy(&tParam.parameters_, ITRF2005_GDA94::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2005_GDA94::reference_epoch; @@ -142,6 +143,7 @@ void determineGDA94Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA94-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_GDA94::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_GDA94::reference_epoch; @@ -150,6 +152,7 @@ void determineGDA94Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA94-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_GDA94::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_GDA94::reference_epoch; @@ -257,6 +260,7 @@ void determineGDA2020Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA2020-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: memcpy(&tParam.parameters_, ITRF2005_GDA2020::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2005_GDA2020::reference_epoch; @@ -265,6 +269,7 @@ void determineGDA2020Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA2020-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_GDA2020::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_GDA2020::reference_epoch; @@ -273,6 +278,7 @@ void determineGDA2020Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // GDA2020-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_GDA2020::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_GDA2020::reference_epoch; @@ -344,6 +350,7 @@ void determineITRF1988Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1988-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -365,6 +372,7 @@ void determineITRF1988Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1988-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1988::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1988::reference_epoch; @@ -373,6 +381,7 @@ void determineITRF1988Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1988-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1988::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1988::reference_epoch; @@ -443,6 +452,7 @@ void determineITRF1989Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1989-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -464,6 +474,7 @@ void determineITRF1989Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1989-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1989::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1989::reference_epoch; @@ -472,6 +483,7 @@ void determineITRF1989Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1989-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1989::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1989::reference_epoch; @@ -542,6 +554,7 @@ void determineITRF1990Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1990-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -563,6 +576,7 @@ void determineITRF1990Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1990-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1990::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1990::reference_epoch; @@ -571,6 +585,7 @@ void determineITRF1990Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1990-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1990::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1990::reference_epoch; @@ -641,6 +656,7 @@ void determineITRF1991Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1991-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -662,6 +678,7 @@ void determineITRF1991Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1991-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1991::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1991::reference_epoch; @@ -670,6 +687,7 @@ void determineITRF1991Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1991-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1991::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1991::reference_epoch; @@ -740,6 +758,7 @@ void determineITRF1992Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1992-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -761,6 +780,7 @@ void determineITRF1992Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1992-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1992::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1992::reference_epoch; @@ -769,6 +789,7 @@ void determineITRF1992Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1992-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1992::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1992::reference_epoch; @@ -839,6 +860,7 @@ void determineITRF1993Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1993-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -860,6 +882,7 @@ void determineITRF1993Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1993-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1993::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1993::reference_epoch; @@ -868,6 +891,7 @@ void determineITRF1993Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1993-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1993::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1993::reference_epoch; @@ -938,6 +962,7 @@ void determineITRF1994Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1994-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -959,6 +984,7 @@ void determineITRF1994Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1994-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1994::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1994::reference_epoch; @@ -967,6 +993,7 @@ void determineITRF1994Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1994-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1994::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1994::reference_epoch; @@ -1045,6 +1072,7 @@ void determineITRF1996Parameters(transformation_parameter_set& tParam) case ITRF1997_i_xyz: case ITRF1997_i: // ITRF1996-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -1066,6 +1094,7 @@ void determineITRF1996Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1996-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1996::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1996::reference_epoch; @@ -1074,6 +1103,7 @@ void determineITRF1996Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1996-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1996::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1996::reference_epoch; @@ -1152,6 +1182,7 @@ void determineITRF1997Parameters(transformation_parameter_set& tParam) case ITRF1996_i_xyz: case ITRF1996_i: // ITRF1997-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // No direct parameters exist! throw RefTranException(message_parameters_undefined(tParam.from_to_.first, tParam.from_to_.second), @@ -1173,6 +1204,7 @@ void determineITRF1997Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1997-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF1997::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF1997::reference_epoch; @@ -1181,6 +1213,7 @@ void determineITRF1997Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF1997-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF1997::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF1997::reference_epoch; @@ -1305,6 +1338,7 @@ void determineITRF2000Parameters(transformation_parameter_set& tParam) throw RefTranException("A transformation between different epochs on the same frame is required.", REFTRAN_TRANS_ON_PLATE_REQUIRED); // ITRF2000-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: memcpy(&tParam.parameters_, ITRF2005_ITRF2000::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2005_ITRF2000::reference_epoch; @@ -1313,6 +1347,7 @@ void determineITRF2000Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF2000-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF2000::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF2000::reference_epoch; @@ -1321,6 +1356,7 @@ void determineITRF2000Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF2000-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF2000::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF2000::reference_epoch; @@ -1412,12 +1448,14 @@ void determineITRF2005Parameters(transformation_parameter_set& tParam) tParam.reference_frame_ = ITRF2005_ITRF2000::reference_frame; break; // ITRF2005-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // not a transformation of frame, but a shift in epoch only // Not defined yet - requires interpolation from the ITRF2005 velocity model throw RefTranException("A transformation between different epochs on the same frame is required.", REFTRAN_TRANS_ON_PLATE_REQUIRED); // ITRF2005-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2008_ITRF2005::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF2005::reference_epoch; @@ -1426,6 +1464,7 @@ void determineITRF2005Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF2005-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF2005::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF2005::reference_epoch; @@ -1550,12 +1589,14 @@ void determineITRF2008Parameters(transformation_parameter_set& tParam) tParam.reference_frame_ = ITRF2008_ITRF2000::reference_frame; break; // ITRF2008-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: memcpy(&tParam.parameters_, ITRF2008_ITRF2005::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2008_ITRF2005::reference_epoch; tParam.reference_frame_ = ITRF2008_ITRF2005::reference_frame; break; // ITRF2008-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: memcpy(&tParam.parameters_, ITRF2014_ITRF2008::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF2008::reference_epoch; @@ -1564,6 +1605,7 @@ void determineITRF2008Parameters(transformation_parameter_set& tParam) tParam.reverse(); break; // ITRF2008-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: // not a transformation of frame, but a shift in epoch only // Not defined yet - requires interpolation from the ITRF2008 velocity model @@ -1687,18 +1729,21 @@ void determineITRF2014Parameters(transformation_parameter_set& tParam) tParam.reference_frame_ = ITRF2014_ITRF2005::reference_frame; break; // ITRF2014-to-ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: memcpy(&tParam.parameters_, ITRF2014_ITRF2005::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF2005::reference_epoch; tParam.reference_frame_ = ITRF2014_ITRF2005::reference_frame; break; // ITRF2014-to-ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: memcpy(&tParam.parameters_, ITRF2014_ITRF2008::transformationParameters, sizeof(double) * 14); tParam.reference_epoch_ = ITRF2014_ITRF2008::reference_epoch; tParam.reference_frame_ = ITRF2014_ITRF2008::reference_frame; break; // ITRF2014-to-ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: // not a transformation of frame, but a shift in epoch only // Not defined yet - requires interpolation from the ITRF2014 velocity model @@ -1833,14 +1878,17 @@ void determineHelmertParameters(transformation_parameter_set& tParam) determineITRF2000Parameters(tParam); break; // ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: determineITRF2005Parameters(tParam); break; // ITRF2008 + case ITRF2008_i_xyz: case ITRF2008_i: determineITRF2008Parameters(tParam); break; // ITRF2014 + case ITRF2014_i_xyz: case ITRF2014_i: determineITRF2014Parameters(tParam); break; diff --git a/dynadjust/include/io/dnaiofrx.cpp b/dynadjust/include/io/dnaiofrx.cpp deleted file mode 100644 index aa3813fc..00000000 --- a/dynadjust/include/io/dnaiofrx.cpp +++ /dev/null @@ -1,256 +0,0 @@ -//============================================================================ -// Name : dnaiofrx.cpp -// Author : Roger Fraser -// Contributors : -// Version : 1.00 -// Copyright : Copyright 2017 Geoscience Australia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http ://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Description : Reference frame substitutions file -//============================================================================ - -#include -#include -#include - -namespace dynadjust { -namespace iostreams { - - -void dna_io_frx::load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs) -{ - // Frame substitutions are as follows. - // - // frame epsg substitute epsg alignment from-epoch to-epoch description X Y Z PPM R1 R2 R3 - // ---------------------------------------------------------------------------------------------------------------------------------------------------------------- - // wgs84 8888 itrf1990 4912 01.01.1984 01.01.1987 01.01.1994 wgs84 (transit) 0.060 -0.517 -0.223 -0.011 0.0183 -0.0003 0.0070 - // wgs84 9053 itrf1991 4913 01.01.1991 02.01.1994 28.09.1996 wgs84 (G730) - // - - - std::ifstream frx_file; - stringstream ss; - ss << "load_frx_file(): An error was encountered when opening " << frx_filename << "." << endl; - - try { - // open ascii frame substitutions file. Throws runtime_error on failure. - file_opener(frx_file, frx_filename, ios::in, ascii, true); - } - catch (const runtime_error& e) { - ss << e.what(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - catch (...) { - throw boost::enable_current_exception(runtime_error(ss.str())); - } - - ss.str(""); - ss << "load_frx_file(): An error was encountered when reading from " << frx_filename << "." << endl; - - string frx_record, version, type, param; - - frame_substitutions frx; - boost::gregorian::date today(day_clock::local_day()); - - // read header - getline(frx_file, frx_record); - frx_record = trimstr(frx_record); - - // Attempt to get the file's version - try { - if (iequals("!#=DNA", frx_record.substr(0, 6))) - version = trimstr(frx_record.substr(6, 6)); - - // Attempt to get the file's type - try { - type = trimstr(frx_record.substr(12, 3)); - } - catch (const runtime_error& e) { - stringstream ssError; - ssError << "- Error: File type has not been provided in the header" << endl << - frx_record << endl << e.what() << endl; - throw boost::enable_current_exception(runtime_error(ssError.str())); - } - - // Station file - if (!iequals(type, "frx")) - { - stringstream ssError; - ssError << "- Error: A FRX file type was expected in the header" << endl << - frx_record << endl; - throw boost::enable_current_exception(runtime_error(ssError.str())); - } - } - catch (const runtime_error& e) { - throw boost::enable_current_exception(runtime_error(e.what())); - } - - double parameters[7]; - - try { - - frame_subs.clear(); - - while (!frx_file.eof()) // while EOF not found - { - // get the plate identifier - getline(frx_file, frx_record); - frx_record = trimstr(frx_record); - - // blank or whitespace? - if (trimstr(frx_record).empty()) - continue; - - // Ignore lines with comments - if (frx_record.compare(0, 1, "#") == 0) - continue; - - // Ignore lines with comments - if (frx_record.compare(0, 3, "---") == 0) - continue; - - frx.initialise(); - - // frame name - frx.frame_name = trimstr(frx_record.substr(0, 12)); - str_toupper(frx.frame_name); - - // frame epsg - frx.frame_epsg = val_uint(trimstr(frx_record.substr(12, 6))); - - // substitute - frx.substitute_name = trimstr(frx_record.substr(18, 12)); - str_toupper(frx.substitute_name); - - // substitute epsg - frx.substitute_epsg = val_uint(trimstr(frx_record.substr(30, 6))); - - // alignment date - frx.alignment_epoch = dateFromString(trimstr(frx_record.substr(36, 16))); - - // from date - frx.from_epoch = dateFromString(trimstr(frx_record.substr(52, 16))); - - // to date - if (trimstr(frx_record.substr(68, 16)).empty()) - // No date supplied? - // Set a date 100 years into the future - frx.to_epoch = day_clock::local_day() + years(100); - else - frx.to_epoch = dateFromString(trimstr(frx_record.substr(68, 16))); - - // description - if (frx_record.length() > 84) - frx.frame_desc = trimstr(frx_record.substr(84, 22)); - - if (frx_record.length() < 106) - { - // no parameters, just direct substitution - frame_subs.push_back(frx); - continue; - } - - // initialise and extract parameters, if any - memset(parameters, '\0', sizeof(parameters)); - - // X - if (frx_record.length() > 106) - { - param = trimstr(frx_record.substr(106, 10)); - if (!param.empty()) - parameters[0] = DoubleFromString(param); - } - - // Y - if (frx_record.length() > 116) - { - param = trimstr(frx_record.substr(116, 10)); - if (!param.empty()) - parameters[1] = DoubleFromString(param); - } - - // Z - if (frx_record.length() > 126) - { - param = trimstr(frx_record.substr(126, 10)); - if (!param.empty()) - parameters[2] = DoubleFromString(param); - } - - // PPM - if (frx_record.length() > 136) - { - param = trimstr(frx_record.substr(136, 10)); - if (!param.empty()) - parameters[3] = DoubleFromString(param); - } - - // R1 - if (frx_record.length() > 146) - { - param = trimstr(frx_record.substr(146, 10)); - if (!param.empty()) - parameters[4] = DoubleFromString(param); - } - - // R2 - if (frx_record.length() > 156) - { - param = trimstr(frx_record.substr(156, 10)); - if (!param.empty()) - parameters[5] = DoubleFromString(param); - } - - // R3 - if (frx_record.length() > 166) - { - param = trimstr(frx_record.substr(166, 10)); - if (!param.empty()) - parameters[6] = DoubleFromString(param); - } - - memcpy(frx.parameters_, parameters, sizeof(frx.parameters_)); - frame_subs.push_back(frx); - } - - frx_file.close(); - } - catch (const ios_base::failure& f) { - if (frx_file.eof()) - { - frx_file.close(); - return; - } - ss << f.what(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - catch (const runtime_error& e) { - ss << e.what(); - throw boost::enable_current_exception(runtime_error(ss.str())); - } - catch (...) { - if (frx_file.eof()) - { - frx_file.close(); - return; - } - throw boost::enable_current_exception(runtime_error(ss.str())); - } - - return; -} - - -} // dnaiostreams -} // dynadjust diff --git a/dynadjust/include/io/dnaiofrx.hpp b/dynadjust/include/io/dnaiofrx.hpp deleted file mode 100644 index 9a541fa3..00000000 --- a/dynadjust/include/io/dnaiofrx.hpp +++ /dev/null @@ -1,143 +0,0 @@ -//============================================================================ -// Name : dnaiofrx.hpp -// Author : Roger Fraser -// Contributors : -// Version : 1.00 -// Copyright : Copyright 2017 Geoscience Australia -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http ://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -// Description : Reference frame substitutions file -//============================================================================ - -#ifndef DNAIOFRX_H_ -#define DNAIOFRX_H_ - -#if defined(_MSC_VER) - #if defined(LIST_INCLUDES_ON_BUILD) - #pragma message(" " __FILE__) - #endif -#endif - -#include -#include -#include - -namespace dynadjust { -namespace iostreams { - -///////////////////////////////////////////////////////////// -// Custom type to manage frame substitutions -template -struct frame_substitutions_t -{ - //frame_substitutions_t() - // : frame_name(""), frame_epsg(0), frame_desc("") - // , substitute_name(""), substitute_epsg(0) - // , alignment_epoch(date_time::min_date_time), from_epoch(date_time::min_date_time), to_epoch(date_time::min_date_time) - //{ - // memset(parameters_, '\0', sizeof(parameters_)); - //} - - void initialise() { - frame_name = ""; - frame_epsg = 0; - frame_desc = ""; - substitute_name = ""; - substitute_epsg = 0; - //alignment_epoch = date_time::min_date_time; - //from_epoch = date_time::min_date_time; - //to_epoch = date_time::min_date_time; - memset(parameters_, '\0', sizeof(parameters_)); - } - - T1 frame_name; // frame name - T2 frame_epsg; // frame epsg code - T1 frame_desc; // frame description - T1 substitute_name; // substitution frame name - T2 substitute_epsg; // substitution frame epsg code - boost::gregorian::date alignment_epoch; // substitution alignment epoch - boost::gregorian::date from_epoch; // start date of substitution - boost::gregorian::date to_epoch; // end date of substitution - T3 parameters_[7]; // transformation parameters (if any) -}; - -typedef frame_substitutions_t frame_substitutions; -typedef vector v_frame_substitutions; -typedef v_frame_substitutions::iterator it_frame_substitutions; - -// Used to sort site tuples by WGS84 starting epoch -template -class CompareSubstitutionByEpoch { -public: - bool operator()(const T& left, const T& right) { - // if the starting epochs are equal - if (left.from_epoch == right.from_epoch) - // sort on ending epochs - return left.to_epoch < right.to_epoch; - // sort on starting epoch - return left.from_epoch < right.from_epoch; - } -}; - -template -struct CompareSubstituteOnEPSG -{ - //public: - bool operator()(const T& lhs, const S& rhs) const { - return pair_firstless(lhs.frame_name, rhs); - } - bool operator()(const S& lhs, const T& rhs) const { - return pair_firstless(lhs, rhs.frame_name); - } - //private: - bool pair_firstless(const S& s1, const S& s2) const { - return s1 < s2; - } -}; - - -// tweak the binary search so it returns the iterator of the object found -template -T binary_search_substitution(T begin, T end, S value) -{ - T i = lower_bound(begin, end, value, CompareSubstituteOnEPSG()); - if (i != end && i->frame_name == value) - return i; - else - return end; -} -///////////////////////////////////////////////////////////// - -class dna_io_frx : public dna_io_base -{ -public: - dna_io_frx(void) {}; - dna_io_frx(const dna_io_frx&) {}; - virtual ~dna_io_frx(void) {}; - - dna_io_frx& operator=(const dna_io_frx& rhs); - - void load_frx_file(const string& frx_filename, v_frame_substitutions& frame_subs); - - -protected: - -}; - - - -} // namespace measurements -} // namespace dynadjust - -#endif diff --git a/dynadjust/include/parameters/dnaconsts-datums.hpp b/dynadjust/include/parameters/dnaconsts-datums.hpp index 48edd6b1..828569dc 100644 --- a/dynadjust/include/parameters/dnaconsts-datums.hpp +++ b/dynadjust/include/parameters/dnaconsts-datums.hpp @@ -33,75 +33,88 @@ const UINT16 AGD66_i = 4202; const UINT16 AGD84_i = 4203; -const UINT16 GDA94_i_2d = 4283; // geographic 2D -const UINT16 GDA94_i_xyz = 4938; // geocentric -const UINT16 GDA94_i = 4939; // geographic 3D -const UINT16 GDA2020_i_2d = 7844; // geographic 2D -const UINT16 GDA2020_i_xyz = 7842; // geocentric -const UINT16 GDA2020_i = 7843; // geographic 3D -const UINT16 ITRF2014_i = 7789; -const UINT16 ITRF2008_i = 5332; -const UINT16 ITRF2005_i = 4896; -const UINT16 ITRF2000_i_xyz = 4385; -const UINT16 ITRF2000_i = 4919; -const UINT16 ITRF1997_i_xyz = 4338; -const UINT16 ITRF1997_i = 4918; -const UINT16 ITRF1996_i_xyz = 4337; -const UINT16 ITRF1996_i = 4917; -const UINT16 ITRF1994_i_xyz = 4336; -const UINT16 ITRF1994_i = 4916; -const UINT16 ITRF1993_i_xyz = 4335; -const UINT16 ITRF1993_i = 4915; -const UINT16 ITRF1992_i_xyz = 4334; -const UINT16 ITRF1992_i = 4914; -const UINT16 ITRF1991_i_xyz = 4333; -const UINT16 ITRF1991_i = 4913; -const UINT16 ITRF1990_i_xyz = 4332; -const UINT16 ITRF1990_i = 4912; -const UINT16 ITRF1989_i_xyz = 4331; -const UINT16 ITRF1989_i = 4911; -const UINT16 ITRF1988_i_xyz = 4330; -const UINT16 ITRF1988_i = 4910; - -const UINT16 WGS84_i_xyz = 4978; // geocentric -const UINT16 WGS84_i = 4326; // geodetic -const UINT16 WGS84_transit_i_xyz = 7815; // geocentric -const UINT16 WGS84_transit_i = 8888; // geodetic -const UINT16 WGS84_G730_i_xyz = 7656; // geocentric -const UINT16 WGS84_G730_i = 9053; // geodetic -const UINT16 WGS84_G873_i_xyz = 7658; // geocentric -const UINT16 WGS84_G873_i = 9054; // geodetic -const UINT16 WGS84_G1150_i_xyz = 7660; // geocentric -const UINT16 WGS84_G1150_i = 9055; // geodetic -const UINT16 WGS84_G1674_i_xyz = 7662; // geocentric -const UINT16 WGS84_G1674_i = 9056; // geodetic -const UINT16 WGS84_G1762_i_xyz = 7664; // geocentric -const UINT16 WGS84_G1762_i = 9057; // geodetic -const UINT16 WGS84_G2139_i_xyz = 9753; // geocentric -const UINT16 WGS84_G2139_i = 9754; // geodetic - -const char* const AGD66_c = "4202"; -const char* const AGD84_c = "4203"; -const char* const GDA94_c = "4283"; -const char* const GDA94_c_xyz = "4939"; -const char* const GDA2020_c_2d = "7844"; -const char* const GDA2020_c_xyz = "7842"; -const char* const GDA2020_c = "7843"; -const char* const ITRF2014_c = "7789"; -const char* const ITRF2008_c = "5332"; -const char* const ITRF2005_c = "4896"; -const char* const ITRF2000_c = "4919"; -const char* const ITRF1997_c = "4918"; -const char* const ITRF1996_c = "4917"; -const char* const ITRF1994_c = "4916"; -const char* const ITRF1993_c = "4915"; -const char* const ITRF1992_c = "4914"; -const char* const ITRF1991_c = "4913"; -const char* const ITRF1990_c = "4912"; -const char* const ITRF1989_c = "4911"; -const char* const ITRF1988_c = "4910"; - -const char* const WGS84_c = "4978"; + +const UINT16 GDA94_i_2d = 4283; // LatLon +const UINT16 GDA94_i_xyz = 4938; // XYZ +const UINT16 GDA94_i = 4939; // LatLonEht + +const UINT16 GDA2020_i_xyz = 7842; // XYZ +const UINT16 GDA2020_i = 7843; // LatLonEht +const UINT16 GDA2020_i_2d = 7844; // LatLon + +const UINT16 ITRF2014_i_xyz = 7789; // XYZ +const UINT16 ITRF2014_i = 7912; // LatLonEht +const UINT16 ITRF2008_i_xyz = 5332; // XYZ +const UINT16 ITRF2008_i = 7911; // LatLonEht +const UINT16 ITRF2005_i_xyz = 4896; // XYZ +const UINT16 ITRF2005_i = 7910; // LatLonEht +const UINT16 ITRF2000_i_xyz = 4919; // XYZ +const UINT16 ITRF2000_i = 7909; // LatLonEht +const UINT16 ITRF1988_i_xyz = 4910; // XYZ +const UINT16 ITRF1988_i = 7900; // LatLonEht +const UINT16 ITRF1989_i_xyz = 4911; // XYZ +const UINT16 ITRF1989_i = 7901; // LatLonEht +const UINT16 ITRF1990_i_xyz = 4912; // XYZ +const UINT16 ITRF1990_i = 7902; // LatLonEht +const UINT16 ITRF1991_i_xyz = 4913; // XYZ +const UINT16 ITRF1991_i = 7903; // LatLonEht +const UINT16 ITRF1992_i_xyz = 4914; // XYZ +const UINT16 ITRF1992_i = 7904; // LatLonEht +const UINT16 ITRF1993_i_xyz = 4915; // XYZ +const UINT16 ITRF1993_i = 7905; // LatLonEht +const UINT16 ITRF1994_i_xyz = 4916; // XYZ +const UINT16 ITRF1994_i = 7906; // LatLonEht +const UINT16 ITRF1996_i_xyz = 4917; // XYZ +const UINT16 ITRF1996_i = 7907; // LatLonEht +const UINT16 ITRF1997_i_xyz = 4918; // XYZ +const UINT16 ITRF1997_i = 7908; // LatLonEht + +const UINT16 WGS84_transit_i = 7816; // LatLonEht +const UINT16 WGS84_transit_i_xyz = 7815; // XYZ +const UINT16 WGS84_G730_i = 7657; // LatLonEht +const UINT16 WGS84_G730_i_xyz = 7656; // XYZ +const UINT16 WGS84_G873_i = 7659; // LatLonEht +const UINT16 WGS84_G873_i_xyz = 7658; // XYZ +const UINT16 WGS84_G1150_i = 7661; // LatLonEht +const UINT16 WGS84_G1150_i_xyz = 7660; // XYZ +const UINT16 WGS84_G1674_i = 7663; // LatLonEht +const UINT16 WGS84_G1674_i_xyz = 7662; // XYZ +const UINT16 WGS84_G1762_i = 7665; // LatLonEht +const UINT16 WGS84_G1762_i_xyz = 7664; // XYZ +const UINT16 WGS84_G2139_i = 9754; // LatLonEht +const UINT16 WGS84_G2139_i_xyz = 9753; // XYZ +const UINT16 WGS84_i = 4979; // LatLonEht ensemble +const UINT16 WGS84_i_xyz = 4978; // XYZ ensemble +const UINT16 WGS84_ensemble_i = 6326; // WGS84 ensemble + + +const char* const AGD66_c = "4202"; +const char* const AGD84_c = "4203"; +const char* const GDA94_c_xyz = "4938"; +const char* const GDA94_c = "4939"; +const char* const GDA94_c_2d = "4283"; +const char* const GDA2020_c_xyz = "7842"; +const char* const GDA2020_c = "7843"; +const char* const GDA2020_c_2d = "7844"; + +// epsg strings for ITRF provide XYZ definition only +const char* const ITRF2014_c = "7789"; +const char* const ITRF2008_c = "5332"; +const char* const ITRF2005_c = "4896"; +const char* const ITRF2000_c = "4919"; +const char* const ITRF1997_c = "4918"; +const char* const ITRF1996_c = "4917"; +const char* const ITRF1994_c = "4916"; +const char* const ITRF1993_c = "4915"; +const char* const ITRF1992_c = "4914"; +const char* const ITRF1991_c = "4913"; +const char* const ITRF1990_c = "4912"; +const char* const ITRF1989_c = "4911"; +const char* const ITRF1988_c = "4910"; + +// epsg strings for WGS84 provide XYZ definition only +const char* const WGS84_c = "4978"; +const char* const WGS84_ensemble_c = "6326"; const char* const WGS84_transit_c = "7815"; const char* const WGS84_G730_c = "7656"; const char* const WGS84_G873_c = "7658"; @@ -167,6 +180,7 @@ const char* const ITRF1988_s = "ITRF1988"; const char* const ITRF1988_s_brief = "ITRF88"; const char* const WGS84_s = "WGS84"; +const char* const WGS84_ensemble_s = "WGS84 (ensemble)"; const char* const WGS84_transit_s = "WGS84 (transit)"; const char* const WGS84_G730_s = "WGS84 (G730)"; const char* const WGS84_G873_s = "WGS84 (G873)"; diff --git a/dynadjust/include/parameters/dnadatumprojectionparam.hpp b/dynadjust/include/parameters/dnadatumprojectionparam.hpp index 02f466a3..46930a32 100644 --- a/dynadjust/include/parameters/dnadatumprojectionparam.hpp +++ b/dynadjust/include/parameters/dnadatumprojectionparam.hpp @@ -39,6 +39,10 @@ using namespace std; const double GRS80_a = 6378137.0; // Semi major axis (a) const double GRS80_inv_f = 298.257222101; // Inverse flattening (1/f) +// WGS84 parameters +const double WGS84_a = 6378137.0; // Semi major axis (a) +const double WGS84_inv_f = 298.25722360; // Inverse flattening (1/f) + // ANS parameters const double ANS_a = 6378160.0; // Semi major axis (a) const double ANS_inv_f = 298.25; // Inverse flattening (1/f) diff --git a/dynadjust/include/parameters/dnaepsg.hpp b/dynadjust/include/parameters/dnaepsg.hpp index a88da8bc..02de6d99 100644 --- a/dynadjust/include/parameters/dnaepsg.hpp +++ b/dynadjust/include/parameters/dnaepsg.hpp @@ -124,51 +124,51 @@ U epsgCodeFromName(const S& datumName) if (iequals(datumName, AGD84_s)) return AGD84_i; if (iequals(datumName, GDA94_s)) - return GDA94_i; + return GDA94_i_xyz; if (iequals(datumName, GDA2020_s)) - return GDA2020_i; + return GDA2020_i_xyz; if (iequals(datumName, ITRF2014_s)) - return ITRF2014_i; + return ITRF2014_i_xyz; if (iequals(datumName, ITRF2008_s)) - return ITRF2008_i; + return ITRF2008_i_xyz; if (iequals(datumName, ITRF2005_s)) - return ITRF2005_i; + return ITRF2005_i_xyz; if (iequals(datumName, ITRF2000_s)) - return ITRF2000_i; + return ITRF2000_i_xyz; if (iequals(datumName, ITRF1997_s) || iequals(datumName, ITRF1997_s_brief)) - return ITRF1997_i; + return ITRF1997_i_xyz; if (iequals(datumName, ITRF1996_s) || iequals(datumName, ITRF1996_s_brief)) - return ITRF1996_i; + return ITRF1996_i_xyz; if (iequals(datumName, ITRF1994_s) || iequals(datumName, ITRF1994_s_brief)) - return ITRF1994_i; + return ITRF1994_i_xyz; if (iequals(datumName, ITRF1993_s) || iequals(datumName, ITRF1993_s_brief)) - return ITRF1993_i; + return ITRF1993_i_xyz; if (iequals(datumName, ITRF1992_s) || iequals(datumName, ITRF1992_s_brief)) - return ITRF1992_i; + return ITRF1992_i_xyz; if (iequals(datumName, ITRF1991_s) || iequals(datumName, ITRF1991_s_brief)) - return ITRF1991_i; + return ITRF1991_i_xyz; if (iequals(datumName, ITRF1990_s) || iequals(datumName, ITRF1990_s_brief)) - return ITRF1990_i; + return ITRF1990_i_xyz; if (iequals(datumName, ITRF1989_s) || iequals(datumName, ITRF1989_s_brief)) - return ITRF1989_i; + return ITRF1989_i_xyz; if (iequals(datumName, ITRF1988_s) || iequals(datumName, ITRF1988_s_brief)) - return ITRF1988_i; - if (iequals(datumName, WGS84_s)) - return WGS84_i; + return ITRF1988_i_xyz; + if (iequals(datumName, WGS84_s) || iequals(datumName, WGS84_ensemble_s)) + return WGS84_i_xyz; if (iequals(datumName, WGS84_transit_s)) - return WGS84_transit_i; + return WGS84_transit_i_xyz; if (iequals(datumName, WGS84_G730_s)) - return WGS84_G730_i; + return WGS84_G730_i_xyz; if (iequals(datumName, WGS84_G873_s)) - return WGS84_G873_i; + return WGS84_G873_i_xyz; if (iequals(datumName, WGS84_G1150_s)) - return WGS84_G1150_i; + return WGS84_G1150_i_xyz; if (iequals(datumName, WGS84_G1674_s)) - return WGS84_G1674_i; + return WGS84_G1674_i_xyz; if (iequals(datumName, WGS84_G1762_s)) - return WGS84_G1762_i; + return WGS84_G1762_i_xyz; if (iequals(datumName, WGS84_G2139_s)) - return WGS84_G2139_i; + return WGS84_G2139_i_xyz; stringstream ss; ss << "epsgCodeFromName: " << datumName << " is not yet supported." << endl; @@ -182,6 +182,8 @@ S epsgStringFromName(const S& datumName) // epsgCodeFromname throws on bad datumName UINT32 epsgCode = epsgCodeFromName(datumName); + // get string form of epsg code + // Reduce all forms(2D / 3D geographic and geocentric) to geocentric switch (epsgCode) { case AGD66_i: @@ -190,56 +192,77 @@ S epsgStringFromName(const S& datumName) return AGD84_c; case GDA94_i: case GDA94_i_2d: - return GDA94_c; case GDA94_i_xyz: - return GDA94_c_xyz; + return GDA94_c; case GDA2020_i: - return GDA2020_c; case GDA2020_i_2d: - return GDA2020_c_2d; case GDA2020_i_xyz: - return GDA2020_c_xyz; + return GDA2020_c; + // ITRF case ITRF2014_i: + case ITRF2014_i_xyz: return ITRF2014_c; case ITRF2008_i: + case ITRF2008_i_xyz: return ITRF2008_c; case ITRF2005_i: + case ITRF2005_i_xyz: return ITRF2005_c; case ITRF2000_i: + case ITRF2000_i_xyz: return ITRF2000_c; case ITRF1997_i: + case ITRF1997_i_xyz: return ITRF1997_c; case ITRF1996_i: + case ITRF1996_i_xyz: return ITRF1996_c; case ITRF1994_i: + case ITRF1994_i_xyz: return ITRF1994_c; case ITRF1993_i: + case ITRF1993_i_xyz: return ITRF1993_c; case ITRF1992_i: + case ITRF1992_i_xyz: return ITRF1992_c; case ITRF1991_i: + case ITRF1991_i_xyz: return ITRF1991_c; case ITRF1990_i: + case ITRF1990_i_xyz: return ITRF1990_c; case ITRF1989_i: + case ITRF1989_i_xyz: return ITRF1989_c; case ITRF1988_i: + case ITRF1988_i_xyz: return ITRF1988_c; + // WGS84 case WGS84_i: + case WGS84_i_xyz: + case WGS84_ensemble_i: return WGS84_c; case WGS84_transit_i: + case WGS84_transit_i_xyz: return WGS84_transit_c; case WGS84_G730_i: + case WGS84_G730_i_xyz: return WGS84_G730_c; case WGS84_G873_i: + case WGS84_G873_i_xyz: return WGS84_G873_c; case WGS84_G1150_i: + case WGS84_G1150_i_xyz: return WGS84_G1150_c; case WGS84_G1674_i: + case WGS84_G1674_i_xyz: return WGS84_G1674_c; case WGS84_G1762_i: + case WGS84_G1762_i_xyz: return WGS84_G1762_c; case WGS84_G2139_i: + case WGS84_G2139_i_xyz: return WGS84_G2139_c; } @@ -270,30 +293,34 @@ bool isEpsgDatumStatic(const U& epsgCode) return true; // ITRF.... case ITRF1988_i_xyz: - case ITRF1989_i_xyz: - case ITRF1990_i_xyz: - case ITRF1991_i_xyz: - case ITRF1992_i_xyz: - case ITRF1993_i_xyz: - case ITRF1994_i_xyz: - case ITRF1996_i_xyz: - case ITRF1997_i_xyz: - case ITRF2000_i_xyz: - case ITRF2005_i: case ITRF1988_i: + case ITRF1989_i_xyz: case ITRF1989_i: + case ITRF1990_i_xyz: case ITRF1990_i: + case ITRF1991_i_xyz: case ITRF1991_i: + case ITRF1992_i_xyz: case ITRF1992_i: + case ITRF1993_i_xyz: case ITRF1993_i: + case ITRF1994_i_xyz: case ITRF1994_i: + case ITRF1996_i_xyz: case ITRF1996_i: + case ITRF1997_i_xyz: case ITRF1997_i: + case ITRF2000_i_xyz: case ITRF2000_i: + case ITRF2005_i: + case ITRF2005_i_xyz: case ITRF2008_i: + case ITRF2008_i_xyz: case ITRF2014_i: + case ITRF2014_i_xyz: case WGS84_i_xyz: case WGS84_i: + case WGS84_ensemble_i: case WGS84_transit_i_xyz: case WGS84_transit_i: case WGS84_G730_i_xyz: @@ -347,27 +374,30 @@ void spheroidFromEpsgCode(const U& epsgCode, epsg_spheroid& ellipsoid) case GDA2020_i: // ITRF.... case ITRF1988_i_xyz: - case ITRF1989_i_xyz: - case ITRF1990_i_xyz: - case ITRF1991_i_xyz: - case ITRF1992_i_xyz: - case ITRF1993_i_xyz: - case ITRF1994_i_xyz: - case ITRF1996_i_xyz: - case ITRF1997_i_xyz: - case ITRF2000_i_xyz: - case ITRF2005_i: case ITRF1988_i: + case ITRF1989_i_xyz: case ITRF1989_i: + case ITRF1990_i_xyz: case ITRF1990_i: + case ITRF1991_i_xyz: case ITRF1991_i: + case ITRF1992_i_xyz: case ITRF1992_i: + case ITRF1993_i_xyz: case ITRF1993_i: + case ITRF1994_i_xyz: case ITRF1994_i: + case ITRF1996_i_xyz: case ITRF1996_i: + case ITRF1997_i_xyz: case ITRF1997_i: + case ITRF2000_i_xyz: case ITRF2000_i: + case ITRF2005_i_xyz: + case ITRF2005_i: + case ITRF2008_i_xyz: case ITRF2008_i: + case ITRF2014_i_xyz: case ITRF2014_i: // authority ellipsoid.authority_.first = "EPSG"; @@ -378,15 +408,30 @@ void spheroidFromEpsgCode(const U& epsgCode, epsg_spheroid& ellipsoid) ellipsoid.semi_major_ = GRS80_a; break; // WGS84 + case WGS84_transit_i: + case WGS84_transit_i_xyz: + case WGS84_G730_i: + case WGS84_G730_i_xyz: + case WGS84_G873_i: + case WGS84_G873_i_xyz: + case WGS84_G1150_i: + case WGS84_G1150_i_xyz: + case WGS84_G1674_i: + case WGS84_G1674_i_xyz: + case WGS84_G1762_i: + case WGS84_G1762_i_xyz: + case WGS84_G2139_i: + case WGS84_G2139_i_xyz: + case WGS84_ensemble_i: case WGS84_i_xyz: case WGS84_i: // authority ellipsoid.authority_.first = "EPSG"; ellipsoid.authority_.second = "7030"; // ellipsoid params - ellipsoid.inv_flattening_ = 298.25722360; + ellipsoid.inv_flattening_ = WGS84_inv_f; ellipsoid.name_ = "WGS 84"; - ellipsoid.semi_major_ = 6378137.0; + ellipsoid.semi_major_ = WGS84_a; break; default: stringstream ss; @@ -539,10 +584,13 @@ S datumFromEpsgCode(const U& epsgCode) case ITRF2000_i_xyz: case ITRF2000_i: return ITRF2000_s; + case ITRF2005_i_xyz: case ITRF2005_i: return ITRF2005_s; + case ITRF2008_i_xyz: case ITRF2008_i: return ITRF2008_s; + case ITRF2014_i_xyz: case ITRF2014_i: return ITRF2014_s; case WGS84_i_xyz: @@ -632,14 +680,18 @@ bool validateEpsgCode(const U& epsgCode) case ITRF2000_i_xyz: case ITRF2000_i: // ITRF2005 + case ITRF2005_i_xyz: case ITRF2005_i: // ITRF2008 - case ITRF2014_i: - // ITRF2014 + case ITRF2008_i_xyz: case ITRF2008_i: + // ITRF2014 + case ITRF2014_i_xyz: + case ITRF2014_i: // WGS84 case WGS84_i_xyz: case WGS84_i: + case WGS84_ensemble_i: case WGS84_transit_i_xyz: case WGS84_transit_i: case WGS84_G730_i_xyz: @@ -664,27 +716,14 @@ bool validateEpsgCode(const U& epsgCode) } template -bool isEpsgCodeWGS84(const U& epsgCode) +bool isEpsgWGSEnsemble(const U& epsgCode) { switch (epsgCode) { // WGS84 case WGS84_i_xyz: case WGS84_i: - case WGS84_transit_i_xyz: - case WGS84_transit_i: - case WGS84_G730_i_xyz: - case WGS84_G730_i: - case WGS84_G873_i_xyz: - case WGS84_G873_i: - case WGS84_G1150_i_xyz: - case WGS84_G1150_i: - case WGS84_G1674_i_xyz: - case WGS84_G1674_i: - case WGS84_G1762_i_xyz: - case WGS84_G1762_i: - case WGS84_G2139_i_xyz: - case WGS84_G2139_i: + case WGS84_ensemble_i: return true; default: return false; @@ -693,24 +732,11 @@ bool isEpsgCodeWGS84(const U& epsgCode) } template -bool isDatumNameWGS84(const U& datumName) -{ - +bool isDatumWGSEnsemble(const U& datumName) +{ if (iequals(datumName, WGS84_s)) return true; - if (iequals(datumName, WGS84_transit_s)) - return true; - if (iequals(datumName, WGS84_G730_s)) - return true; - if (iequals(datumName, WGS84_G873_s)) - return true; - if (iequals(datumName, WGS84_G1150_s)) - return true; - if (iequals(datumName, WGS84_G1674_s)) - return true; - if (iequals(datumName, WGS84_G1762_s)) - return true; - if (iequals(datumName, WGS84_G2139_s)) + if (iequals(datumName, WGS84_ensemble_s)) return true; return false; diff --git a/dynadjust/include/parameters/dnaframesubstitutions.hpp b/dynadjust/include/parameters/dnaframesubstitutions.hpp new file mode 100644 index 00000000..72f783a4 --- /dev/null +++ b/dynadjust/include/parameters/dnaframesubstitutions.hpp @@ -0,0 +1,442 @@ +//============================================================================ +// Name : dnaframesubstitutions.hpp +// Author : Roger Fraser +// Contributors : +// Version : 1.00 +// Copyright : Copyright 2017 Geoscience Australia +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http ://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +// +// Description : Reference frame substitutions file +//============================================================================ + +#ifndef DNAIOFRX_H_ +#define DNAIOFRX_H_ + +#if defined(_MSC_VER) + #if defined(LIST_INCLUDES_ON_BUILD) + #pragma message(" " __FILE__) + #endif +#endif + +#include +#include +#include +#include + +namespace dynadjust { +namespace frame_substitutions { + +///////////////////////////////////////////////////////////// +// Custom type to manage frame substitutions +template +class frame_substitutions_t +{ +public: + frame_substitutions_t() { + frame_name = WGS84_s; + frame_epsg = WGS84_i_xyz; + frame_desc = ""; + substitute_name = ITRF2014_s; + substitute_epsg = ITRF2014_i_xyz; + + parameters_[0] = 0.0; + parameters_[1] = 0.0; + parameters_[2] = 0.0; + parameters_[3] = 0.0; + parameters_[4] = 0.0; + parameters_[5] = 0.0; + parameters_[6] = 0.0; + } + + const boost::gregorian::date getFromEpoch() const { return from_epoch; } + const boost::gregorian::date getToEpoch() const { return to_epoch; } + const T1 getFrameName() const { return frame_name; } + const T1 getSubstituteName() const { return substitute_name; } + +protected: + T1 frame_name; // frame name + T2 frame_epsg; // frame epsg code + T1 frame_desc; // frame description + T1 substitute_name; // substitution frame name + T2 substitute_epsg; // substitution frame epsg code + boost::gregorian::date from_epoch; // start date of substitution + boost::gregorian::date to_epoch; // end date of substitution + T3 parameters_[7]; // transformation parameters (if any) +}; + +typedef frame_substitutions_t frame_substitutions; + +typedef boost::shared_ptr< frame_substitutions_t > frameSubsPtr; +typedef vector vframeSubsPtr, *pvframeSubsPtr; +typedef vframeSubsPtr::iterator _it_vframesubptr; + + +// WGS84 (Transit) to ITRF90 +template +class WGS84_TRANSIT_ITRF90 : public frame_substitutions_t +{ +public: + WGS84_TRANSIT_ITRF90() + { + frame_substitutions::frame_name = WGS84_transit_s; + frame_substitutions::frame_epsg = WGS84_transit_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1990_s_brief; + frame_substitutions::substitute_epsg = ITRF1990_i_xyz; + + frame_substitutions::parameters_[0] = 0.060; + frame_substitutions::parameters_[1] = -0.517; + frame_substitutions::parameters_[2] = -0.223; + frame_substitutions::parameters_[3] = -0.011; + frame_substitutions::parameters_[4] = 0.0183; + frame_substitutions::parameters_[5] = -0.0003; + frame_substitutions::parameters_[6] = 0.0070; + + frame_substitutions::from_epoch = dateFromString("01.01.1987"); + frame_substitutions::to_epoch = dateFromString("01.01.1994"); + + }; + ~WGS84_TRANSIT_ITRF90() {} +}; + + +// WGS84 to ITRF90 +template +class WGS84_ITRF90 : public frame_substitutions_t +{ +public: + WGS84_ITRF90() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1990_s_brief; + frame_substitutions::substitute_epsg = ITRF1990_i_xyz; + + frame_substitutions::parameters_[0] = 0.060; + frame_substitutions::parameters_[1] = -0.517; + frame_substitutions::parameters_[2] = -0.223; + frame_substitutions::parameters_[3] = -0.011; + frame_substitutions::parameters_[4] = 0.0183; + frame_substitutions::parameters_[5] = -0.0003; + frame_substitutions::parameters_[6] = 0.0070; + + frame_substitutions::from_epoch = dateFromString("01.01.1987"); + frame_substitutions::to_epoch = dateFromString("01.01.1994"); + + }; + ~WGS84_ITRF90() {} +}; + + +// WGS84 (G730) to ITRF91 +template +class WGS84_G730_ITRF91 : public frame_substitutions_t +{ +public: + WGS84_G730_ITRF91() + { + frame_substitutions::frame_name = WGS84_G730_s; + frame_substitutions::frame_epsg = WGS84_G730_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1991_s_brief; + frame_substitutions::substitute_epsg = ITRF1991_i_xyz; + + frame_substitutions::from_epoch = dateFromString("02.01.1994"); + frame_substitutions::to_epoch = dateFromString("28.09.1996"); + + }; + virtual ~WGS84_G730_ITRF91() {} +}; + + +// WGS84 to ITRF91 +template +class WGS84_ITRF91 : public frame_substitutions_t +{ +public: + WGS84_ITRF91() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1991_s_brief; + frame_substitutions::substitute_epsg = ITRF1991_i_xyz; + + frame_substitutions::from_epoch = dateFromString("02.01.1994"); + frame_substitutions::to_epoch = dateFromString("28.09.1996"); + + }; + virtual ~WGS84_ITRF91() {} +}; + + +// WGS84 (G873) to ITRF94 +template +class WGS84_G873_ITRF94 : public frame_substitutions_t +{ +public: + WGS84_G873_ITRF94() + { + frame_substitutions::frame_name = WGS84_G873_s; + frame_substitutions::frame_epsg = WGS84_G873_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1994_s_brief; + frame_substitutions::substitute_epsg = ITRF1994_i_xyz; + + frame_substitutions::from_epoch = dateFromString("29.09.1996"); + frame_substitutions::to_epoch = dateFromString("19.01.2002"); + + }; + virtual ~WGS84_G873_ITRF94() {} +}; + +// WGS84 to ITRF94 +template +class WGS84_ITRF94 : public frame_substitutions_t +{ +public: + WGS84_ITRF94() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF1994_s_brief; + frame_substitutions::substitute_epsg = ITRF1994_i_xyz; + + frame_substitutions::from_epoch = dateFromString("29.09.1996"); + frame_substitutions::to_epoch = dateFromString("19.01.2002"); + + }; + virtual ~WGS84_ITRF94() {} +}; + +// WGS84 (G1150) to ITRF2000 +template +class WGS84_G1150_ITRF2000 : public frame_substitutions_t +{ +public: + WGS84_G1150_ITRF2000() + { + frame_substitutions::frame_name = WGS84_G1150_s; + frame_substitutions::frame_epsg = WGS84_G1150_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2000_s; + frame_substitutions::substitute_epsg = ITRF2000_i_xyz; + + frame_substitutions::from_epoch = dateFromString("20.01.2002"); + frame_substitutions::to_epoch = dateFromString("06.05.2012"); + + }; + virtual ~WGS84_G1150_ITRF2000() {} +}; + +// WGS84 to ITRF2000 +template +class WGS84_ITRF2000 : public frame_substitutions_t +{ +public: + WGS84_ITRF2000() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2000_s; + frame_substitutions::substitute_epsg = ITRF2000_i_xyz; + + frame_substitutions::from_epoch = dateFromString("20.01.2002"); + frame_substitutions::to_epoch = dateFromString("06.05.2012"); + + }; + virtual ~WGS84_ITRF2000() {} +}; + +// WGS84 (G1674) to ITRF2008 +template +class WGS84_G1674_ITRF2008 : public frame_substitutions_t +{ +public: + WGS84_G1674_ITRF2008() + { + frame_substitutions::frame_name = WGS84_G1674_s; + frame_substitutions::frame_epsg = WGS84_G1674_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2008_s; + frame_substitutions::substitute_epsg = ITRF2008_i_xyz; + + frame_substitutions::from_epoch = dateFromString("07.05.2012"); + frame_substitutions::to_epoch = dateFromString("15.10.2013"); + + }; + virtual ~WGS84_G1674_ITRF2008() {} +}; + +// WGS84 to ITRF2008 +template +class WGS84_ITRF2008_1 : public frame_substitutions_t +{ +public: + WGS84_ITRF2008_1() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2008_s; + frame_substitutions::substitute_epsg = ITRF2008_i_xyz; + + frame_substitutions::from_epoch = dateFromString("07.05.2012"); + frame_substitutions::to_epoch = dateFromString("15.10.2013"); + + }; + virtual ~WGS84_ITRF2008_1() {} +}; + +// WGS84 (G1762) to ITRF2008 +template +class WGS84_G1762_ITRF2008 : public frame_substitutions_t +{ +public: + WGS84_G1762_ITRF2008() + { + frame_substitutions::frame_name = WGS84_G1762_s; + frame_substitutions::frame_epsg = WGS84_G1762_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2008_s; + frame_substitutions::substitute_epsg = ITRF2008_i_xyz; + + frame_substitutions::from_epoch = dateFromString("16.10.2013"); + frame_substitutions::to_epoch = dateFromString("02.01.2021"); + + }; + virtual ~WGS84_G1762_ITRF2008() {} +}; + +// WGS84 to ITRF2008 +template +class WGS84_ITRF2008_2 : public frame_substitutions_t +{ +public: + WGS84_ITRF2008_2() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2008_s; + frame_substitutions::substitute_epsg = ITRF2008_i_xyz; + + frame_substitutions::from_epoch = dateFromString("16.10.2013"); + frame_substitutions::to_epoch = dateFromString("02.01.2021"); + + }; + virtual ~WGS84_ITRF2008_2() {} +}; + +// WGS84 (G2139) to ITRF2014 +template +class WGS84_G2139_ITRF2014 : public frame_substitutions_t +{ +public: + WGS84_G2139_ITRF2014() + { + frame_substitutions::frame_name = WGS84_G2139_s; + frame_substitutions::frame_epsg = WGS84_G2139_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2014_s; + frame_substitutions::substitute_epsg = ITRF2014_i_xyz; + + frame_substitutions::from_epoch = dateFromString("02.01.2021"); + frame_substitutions::to_epoch = day_clock::local_day() + years(100); + + }; + virtual ~WGS84_G2139_ITRF2014() {} +}; + +// WGS84 to ITRF2014 +template +class WGS84_ITRF2014 : public frame_substitutions_t +{ +public: + WGS84_ITRF2014() + { + frame_substitutions::frame_name = WGS84_s; + frame_substitutions::frame_epsg = WGS84_i_xyz; + frame_substitutions::frame_desc = ""; + frame_substitutions::substitute_name = ITRF2014_s; + frame_substitutions::substitute_epsg = ITRF2014_i_xyz; + + frame_substitutions::from_epoch = dateFromString("02.01.2021"); + frame_substitutions::to_epoch = day_clock::local_day() + years(100); + + }; + virtual ~WGS84_ITRF2014() {} +}; + + +// FUNCTIONS + +// Used to sort site tuples by WGS84 starting epoch +template +class CompareSubstitutionByEpoch { +public: + bool operator()(const T& left, const T& right) { + // if the starting epochs are equal + if (left.from_epoch == right.from_epoch) + // sort on ending epochs + return left.to_epoch < right.to_epoch; + // sort on starting epoch + return left.from_epoch < right.from_epoch; + } +}; + +template +struct CompareSubstituteOnFrameName +{ + //public: + bool operator()(const boost::shared_ptr& lhs, const boost::shared_ptr& rhs) const { + if (lhs->getFrameName() == rhs->getFrameName()) + return lhs->getFromEpoch() < rhs->getFromEpoch(); + return pair_firstless(lhs->getFrameName(), rhs->getFrameName()); + } + bool operator()(const boost::shared_ptr& lhs, const S& rhs) const { + return pair_firstless(lhs->getFrameName(), rhs); + } + bool operator()(const S& lhs, const boost::shared_ptr& rhs) const { + return pair_firstless(lhs, rhs->getFrameName()); + } + //private: + bool pair_firstless(const S& s1, const S& s2) const { + return s1 < s2; + } +}; + + +// tweak the binary search so it returns the iterator of the object found +template +T binary_search_substitution(T begin, T end, S value) +{ + T i = lower_bound(begin, end, value, CompareSubstituteOnFrameName< frame_substitutions_t , string>()); + if (i != end && i->get()->getFrameName() == value) + return i; + else + return end; +} +///////////////////////////////////////////////////////////// + + + + +} // namespace frame_substitutions +} // namespace dynadjust + +#endif From c7b1a2fb1d0470f78ac950d8985070297dd81e4a Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Thu, 17 Feb 2022 21:12:47 +1100 Subject: [PATCH 09/23] Remove frame substitutions file --- sampleData/wgs84-itrf-substitutions.frx | 46 ------------------------- 1 file changed, 46 deletions(-) delete mode 100644 sampleData/wgs84-itrf-substitutions.frx diff --git a/sampleData/wgs84-itrf-substitutions.frx b/sampleData/wgs84-itrf-substitutions.frx deleted file mode 100644 index dcb2f97a..00000000 --- a/sampleData/wgs84-itrf-substitutions.frx +++ /dev/null @@ -1,46 +0,0 @@ -!#=DNA 3.01 FRX -# WGS84 substitutions -# -# In general the ITRS (and its realizations ITRFyy) are identical to WGS84 -# at one meter level. -# -# Meanwhile there are two types of WGS84 realizations: -# -# - New realizations of WGS84 based on GPS data, such as WGS84(G730, G873, -# G1150 and G1674). These new WGS84 realizations are coincident with ITRF at -# about 10-centimeter level. For these realizations there are no official -# transformation parameters. This means that one can consider that ITRF -# coordinates are also expressed in WGS84 at 10 cm level. However, the most -# recent G1674 realization adopted ITRF2008 coordinates for more than half of -# the reference stations and velocities of nearby sites for the others. Thus, -# ITRF2008 and WGS84(G1674) are likely to agree at the centimeter level, -# yielding conventional 0-transformation parameters. -# -# For more information about WGS84 realizations, see: -# . U.S. National Imagery and Mapping Agency, "Department of Defense World -# Geodetic System 1984 -- Its Definition and Relationships with Local Geodetic -# Systems." NIMA Technical Report 8350.2 3rd release, St. Louis, MO, 23 June -# 2004. http://earth-info.nga.mil/GandG/publications/tr8350.2/tr8350_2.html -# . Wong R., C. M. Rollins and C. F. Minter (2012) Recent Updates to the WGS 84 -# Reference Frame, Proceedings of the 25th International Technical Meeting -# of the Satellite Divison of the Institution of Navigation (ION GNSS 2012), -# p1164-1172. -# -# - old realization based on U.S. Navy Navigation Satellite System, -# commonly known as DOPPLER Transit, and provided station coordinates -# with accuracies of about one meter. With respect to this realization -# we published, some years ago, transformation parameters between -# ITRF90 and this Doppler realized system: -# -# Parameters from ITRF90 to WGS84-Doppler taken from ftp://itrf-ftp.ign.fr/pub/itrf/WGS84.TXT -# See https://earth-info.nga.mil/index.php?dir=wgs84&action=wgs84 for the latest version -# -# frame epsg substitute epsg alignment from-epoch to-epoch description X Y Z PPM R1 R2 R3 -#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -wgs84 7815 itrf1990 4912 01.01.1984 01.01.1987 01.01.1994 wgs84 (transit) 0.060 -0.517 -0.223 -0.011 0.0183 -0.0003 0.0070 -wgs84 7656 itrf1991 4913 01.01.1991 02.01.1994 28.09.1996 wgs84 (G730) -wgs84 7658 itrf1994 4916 01.01.1994 29.09.1996 19.01.2002 wgs84 (G873) -wgs84 7660 itrf2000 4919 01.01.2001 20.01.2002 06.05.2012 wgs84 (G1150) -wgs84 7662 itrf2008 5332 01.01.2005 07.05.2012 15.10.2013 wgs84 (G1674) -wgs84 7664 itrf2008 5332 01.01.2005 16.10.2013 02.01.2021 wgs84 (G1762) -wgs84 9753 itrf2014 7789 01.01.2010 03.01.2021 wgs84 (G2139) From 08da0421b62b8cd6f316f6ddaed64f1b9d33cd12 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Fri, 18 Feb 2022 16:29:51 +1100 Subject: [PATCH 10/23] Add WGS 84 aliases for WGS84 --- .../include/parameters/dnaconsts-datums.hpp | 25 +++++++++---- dynadjust/include/parameters/dnaepsg.hpp | 37 +++++++++++++------ 2 files changed, 43 insertions(+), 19 deletions(-) diff --git a/dynadjust/include/parameters/dnaconsts-datums.hpp b/dynadjust/include/parameters/dnaconsts-datums.hpp index 828569dc..1d75d09a 100644 --- a/dynadjust/include/parameters/dnaconsts-datums.hpp +++ b/dynadjust/include/parameters/dnaconsts-datums.hpp @@ -179,16 +179,25 @@ const char* const ITRF1989_s_brief = "ITRF89"; const char* const ITRF1988_s = "ITRF1988"; const char* const ITRF1988_s_brief = "ITRF88"; +// The vague and ambiguous WGS84 frame that some refer to an ensemble! const char* const WGS84_s = "WGS84"; +const char* const WGS84_alias_s = "WGS 84"; const char* const WGS84_ensemble_s = "WGS84 (ensemble)"; -const char* const WGS84_transit_s = "WGS84 (transit)"; -const char* const WGS84_G730_s = "WGS84 (G730)"; -const char* const WGS84_G873_s = "WGS84 (G873)"; -const char* const WGS84_G1150_s = "WGS84 (G1150)"; -const char* const WGS84_G1674_s = "WGS84 (G1674)"; -const char* const WGS84_G1762_s = "WGS84 (G1762)"; -const char* const WGS84_G2139_s = "WGS84 (G2139)"; - +// The specific realisations of WGS84 +const char* const WGS84_transit_s = "WGS84 (transit)"; +const char* const WGS84_transit_alias_s = "WGS 84 (transit)"; +const char* const WGS84_G730_s = "WGS84 (G730)"; +const char* const WGS84_G730_alias_s = "WGS 84 (G730)"; +const char* const WGS84_G873_s = "WGS84 (G873)"; +const char* const WGS84_G873_alias_s = "WGS 84 (G873)"; +const char* const WGS84_G1150_s = "WGS84 (G1150)"; +const char* const WGS84_G1150_alias_s = "WGS 84 (G1150)"; +const char* const WGS84_G1674_s = "WGS84 (G1674)"; +const char* const WGS84_G1674_alias_s = "WGS 84 (G1674)"; +const char* const WGS84_G1762_s = "WGS84 (G1762)"; +const char* const WGS84_G1762_alias_s = "WGS 84 (G1762)"; +const char* const WGS84_G2139_s = "WGS84 (G2139)"; +const char* const WGS84_G2139_alias_s = "WGS 84 (G2139)"; #endif // DNACONSTS_DATUMS_HPP diff --git a/dynadjust/include/parameters/dnaepsg.hpp b/dynadjust/include/parameters/dnaepsg.hpp index 02de6d99..fea4df23 100644 --- a/dynadjust/include/parameters/dnaepsg.hpp +++ b/dynadjust/include/parameters/dnaepsg.hpp @@ -127,6 +127,7 @@ U epsgCodeFromName(const S& datumName) return GDA94_i_xyz; if (iequals(datumName, GDA2020_s)) return GDA2020_i_xyz; + // ITRF if (iequals(datumName, ITRF2014_s)) return ITRF2014_i_xyz; if (iequals(datumName, ITRF2008_s)) @@ -153,21 +154,31 @@ U epsgCodeFromName(const S& datumName) return ITRF1989_i_xyz; if (iequals(datumName, ITRF1988_s) || iequals(datumName, ITRF1988_s_brief)) return ITRF1988_i_xyz; - if (iequals(datumName, WGS84_s) || iequals(datumName, WGS84_ensemble_s)) + // WGS84 + if (iequals(datumName, WGS84_s) || + iequals(datumName, WGS84_ensemble_s) || + iequals(datumName, WGS84_alias_s)) return WGS84_i_xyz; - if (iequals(datumName, WGS84_transit_s)) + if (iequals(datumName, WGS84_transit_s) || + iequals(datumName, WGS84_transit_alias_s)) return WGS84_transit_i_xyz; - if (iequals(datumName, WGS84_G730_s)) + if (iequals(datumName, WGS84_G730_s) || + iequals(datumName, WGS84_G730_alias_s)) return WGS84_G730_i_xyz; - if (iequals(datumName, WGS84_G873_s)) + if (iequals(datumName, WGS84_G873_s) || + iequals(datumName, WGS84_G873_alias_s)) return WGS84_G873_i_xyz; - if (iequals(datumName, WGS84_G1150_s)) + if (iequals(datumName, WGS84_G1150_s) || + iequals(datumName, WGS84_G1150_alias_s)) return WGS84_G1150_i_xyz; - if (iequals(datumName, WGS84_G1674_s)) + if (iequals(datumName, WGS84_G1674_s) || + iequals(datumName, WGS84_G1674_alias_s)) return WGS84_G1674_i_xyz; - if (iequals(datumName, WGS84_G1762_s)) + if (iequals(datumName, WGS84_G1762_s) || + iequals(datumName, WGS84_G1762_alias_s)) return WGS84_G1762_i_xyz; - if (iequals(datumName, WGS84_G2139_s)) + if (iequals(datumName, WGS84_G2139_s) || + iequals(datumName, WGS84_G2139_alias_s)) return WGS84_G2139_i_xyz; stringstream ss; @@ -492,12 +503,16 @@ string referenceepochFromEpsgCode(const U& epsgCode) case ITRF2000_i_xyz: case ITRF2000_i: return ITRF2000_epoch; + case ITRF2005_i_xyz: case ITRF2005_i: return ITRF2005_epoch; + case ITRF2008_i_xyz: case ITRF2008_i: return ITRF2008_epoch; + case ITRF2014_i_xyz: case ITRF2014_i: return ITRF2014_epoch; + // WGS84 case WGS84_transit_i_xyz: case WGS84_transit_i: return WGS84_transit_epoch; @@ -734,9 +749,9 @@ bool isEpsgWGSEnsemble(const U& epsgCode) template bool isDatumWGSEnsemble(const U& datumName) { - if (iequals(datumName, WGS84_s)) - return true; - if (iequals(datumName, WGS84_ensemble_s)) + if (iequals(datumName, WGS84_s) || + iequals(datumName, WGS84_alias_s) || + iequals(datumName, WGS84_ensemble_s)) return true; return false; From ff76ccd38ffcafea6b6036ec497e55292c233209 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Mon, 21 Feb 2022 10:27:47 +1100 Subject: [PATCH 11/23] Add functionality to log reference frame substitutions --- dynadjust/dynadjust/dnareftran/dnareftran.cpp | 95 +++++++++++++++++++ dynadjust/dynadjust/dnareftran/dnareftran.hpp | 4 +- 2 files changed, 98 insertions(+), 1 deletion(-) diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index df06802d..6f3e26c6 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -323,6 +323,71 @@ void dna_reftran::LoadWGS84FrameSubstitutions() } +void dna_reftran::LogFrameSubstitutions(vector& substitutions, const string& type) +{ + // Sort, count and remove duplicates + vector::iterator _it_sub_1, _it_sub_2, _it_sub_newend; + UINT32 i(0); + vUINT32 subs; + + // sort + sort(substitutions.begin(), substitutions.end()); + + // count unique pairs + for (_it_sub_1 = substitutions.begin(); + _it_sub_1 != substitutions.end();) + { + subs.push_back(1); + for (_it_sub_2 = _it_sub_1 + 1; _it_sub_2 != substitutions.end(); ++_it_sub_2) + { + if (*_it_sub_1 == *_it_sub_2) + { + subs.at(i)++; + ++_it_sub_1; + } + else + break; + } + i++; + if (_it_sub_2 == substitutions.end()) + break; + _it_sub_1 = _it_sub_2; + } + + // remove duplicates + _it_sub_newend = unique(substitutions.begin(), substitutions.end()); + UINT32 subs_count = _it_sub_newend - substitutions.begin(); + if (_it_sub_newend != substitutions.end()) + substitutions.resize(_it_sub_newend - substitutions.begin()); + + if (subs.size() != substitutions.size()) + // something went wrong + return; + + // print + vUINT32::iterator _it_subs = subs.begin(); + stringstream ss1, ss2; + ss1 << type << " reference frame substitutions"; + ss2 << "(" << subs_count << ")"; + + *rft_file << endl << endl << + setw(PRINT_VAL_PAD) << left << ss1.str() << + setw(NUMERIC_WIDTH) << right << ss2.str() << endl; + *rft_file << string(PRINT_VAL_PAD + NUMERIC_WIDTH, '-') << endl; + + for_each( + substitutions.begin(), + substitutions.end(), + [this, &_it_subs](string_string_pair& substitution) { + *rft_file << setw(BLOCK) << left << substitution.first << + " --> " << + setw(BLOCK) << substitution.second << + setw(HEADER_20) << right << *(_it_subs++) << endl; + } + ); + +} + void dna_reftran::ApplyStationFrameSubstitutions() { @@ -330,12 +395,26 @@ void dna_reftran::ApplyStationFrameSubstitutions() // the frame to be replaced with a substitute it_vstn_t stn_it; string epsgSubstitute; + + _v_stn_substitutions.clear(); + for (stn_it = bstBinaryRecords_.begin(); stn_it != bstBinaryRecords_.end(); ++stn_it) { if (IsolateandApplySubstitute(stn_it->epsgCode, stn_it->epoch, epsgSubstitute)) + { + _v_stn_substitutions.push_back(string_string_pair( + datumFromEpsgString(string(stn_it->epsgCode)), + datumFromEpsgString(epsgSubstitute))); strcpy(stn_it->epsgCode, epsgSubstitute.c_str()); + } } + if (_v_stn_substitutions.empty()) + return; + if (projectSettings_.g.verbose < 2) + return; + + LogFrameSubstitutions(_v_stn_substitutions, "Station"); } void dna_reftran::ApplyMeasurementFrameSubstitutions() @@ -344,11 +423,27 @@ void dna_reftran::ApplyMeasurementFrameSubstitutions() // the frame to be replaced with a substitute it_vmsr_t msr_it; string epsgSubstitute; + + _v_msr_substitutions.clear(); + for (msr_it = bmsBinaryRecords_.begin(); msr_it != bmsBinaryRecords_.end(); ++msr_it) { if (IsolateandApplySubstitute(msr_it->epsgCode, msr_it->epoch, epsgSubstitute)) + { + if (msr_it->measStart == xMeas) + _v_msr_substitutions.push_back(string_string_pair( + datumFromEpsgString(string(msr_it->epsgCode)), + datumFromEpsgString(epsgSubstitute))); strcpy(msr_it->epsgCode, epsgSubstitute.c_str()); + } } + + if (_v_msr_substitutions.empty()) + return; + if (projectSettings_.g.verbose < 2) + return; + + LogFrameSubstitutions(_v_msr_substitutions, "Measurement"); } diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.hpp b/dynadjust/dynadjust/dnareftran/dnareftran.hpp index 5df3d33e..58c03cd2 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.hpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.hpp @@ -198,7 +198,7 @@ class dna_reftran { void CalculateRotations(); - //void ValidateFrameSubstitutions(); + void LogFrameSubstitutions(vector& substitutions, const string& type); void ApplyStationFrameSubstitutions(); void ApplyMeasurementFrameSubstitutions(); @@ -228,6 +228,8 @@ class dna_reftran { v_plate_motion_cartesians plate_motion_cartesians_; // Helmert parameters computed from Euler parameters vframeSubsPtr _frameSubstitutions; // Reference frame substitutions + vector _v_stn_substitutions; // station substitutions made + vector _v_msr_substitutions; // station substitutions made v_string_uint32_pair vplateMap_; // Plate Map index sorted on plate ID From 9071a3696f228772a8a227b93045872f4c501723 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Wed, 2 Mar 2022 22:23:24 +1100 Subject: [PATCH 12/23] Further changes to support handling wgs84 --- dynadjust/dynadjust/dnaadjust/dnaadjust.cpp | 3 + dynadjust/dynadjust/dnaimport/dnainterop.cpp | 41 ++++++++++-- .../dnaimportwrapper/dnaimportwrapper.cpp | 26 +++++++- dynadjust/dynadjust/dnareftran/dnareftran.cpp | 36 ++++++---- .../dnareftranwrapper/dnareftranwrapper.cpp | 5 ++ .../functions/dnatemplatedatetimefuncs.hpp | 14 ++++ dynadjust/include/io/dnaiosnx.hpp | 4 +- dynadjust/include/io/dnaiosnxread.cpp | 2 +- dynadjust/include/parameters/dnadatum.cpp | 13 +++- dynadjust/include/parameters/dnaepsg.hpp | 65 ++++++++++++++++--- 10 files changed, 175 insertions(+), 34 deletions(-) diff --git a/dynadjust/dynadjust/dnaadjust/dnaadjust.cpp b/dynadjust/dynadjust/dnaadjust/dnaadjust.cpp index e9336000..e0b43757 100644 --- a/dynadjust/dynadjust/dnaadjust/dnaadjust.cpp +++ b/dynadjust/dynadjust/dnaadjust/dnaadjust.cpp @@ -13942,6 +13942,9 @@ void dna_adjust::SetDefaultReferenceFrame() // * If dnareftran has been run, every station and measurement record will // have been transformed to the one frame and epoch. These reference frame // records will be consistent with the bst/bms_meta. + // * If the user has not specified an epoch with WGS84, then the epoch will + // be set to "time immemorial" being 01.01.1900. Any occurrence of this will + // cause output to be set to an empty string (""). try { // Load binary stations data. Throws runtime_error on failure. dna_io_bst bst; diff --git a/dynadjust/dynadjust/dnaimport/dnainterop.cpp b/dynadjust/dynadjust/dnaimport/dnainterop.cpp index ab5fade4..75666e77 100644 --- a/dynadjust/dynadjust/dnaimport/dnainterop.cpp +++ b/dynadjust/dynadjust/dnaimport/dnainterop.cpp @@ -193,6 +193,9 @@ void dna_import::UpdateEpoch(const vifm_t* vinput_file_meta) // Do nothing return; + if (dateFromString(epoch) == timeImmemorial()) + epoch = ""; + m_strProjectDefaultEpoch = epoch; // Set default epoch @@ -223,6 +226,9 @@ void dna_import::InitialiseDatum(const string& reference_frame) m_strProjectDefaultEpsg = datum_.GetEpsgCode_s(); m_strProjectDefaultEpoch = datum_.GetEpoch_s(); + if (datum_.GetEpoch() == timeImmemorial()) + m_strProjectDefaultEpoch = ""; + // Update binary file meta // Note: the following rule applies each time a new file is loaded: // * This method (InitialiseDatum) is called (from dnaimportwrapper) before any files are loaded @@ -1312,7 +1318,6 @@ void dna_import::ParseDNASTN(vdnaStnPtr* vStations, PUINT32 stnCount, string* su try { getline((*ifsInputFILE_), sBuf); - stn_ptr.reset(new CDnaStation(datum_.GetName(), datum_.GetEpoch_s())); } catch (...) { if (ifsInputFILE_->eof()) @@ -1342,6 +1347,9 @@ void dna_import::ParseDNASTN(vdnaStnPtr* vStations, PUINT32 stnCount, string* su if (sBuf.compare(0, 1, "*") == 0) continue; + // initialise new station + stn_ptr.reset(new CDnaStation(datum_.GetName(), datum_.GetEpoch_s())); + stn_ptr->SetfileOrder(g_fileOrder++); // name @@ -1953,7 +1961,17 @@ void dna_import::ParseDNAMSRGPSBaselines(string& sBuf, dnaMsrPtr& msr_ptr, bool // Get the epoch from the file tmp = ParseEpochValue(sBuf, "ParseDNAMSRGPSBaselines"); - if (!tmp.empty()) + if (tmp.empty()) + { + if (isEpsgWGS84Ensemble(epsgCodeFromName(msr_ptr->GetReferenceFrame()))) + { + // Set the cluster epoch + msr_ptr->SetEpoch(""); + // Set the baseline epoch + bslTmp.SetEpoch(""); + } + } + else { // Set the cluster epoch msr_ptr->SetEpoch(tmp); @@ -2176,7 +2194,17 @@ void dna_import::ParseDNAMSRGPSPoints(string& sBuf, dnaMsrPtr& msr_ptr, bool ign // Get the epoch from the file tmp = ParseEpochValue(sBuf, "ParseDNAMSRGPSPoints"); - if (!tmp.empty()) + if (tmp.empty()) + { + if (isEpsgWGS84Ensemble(epsgCodeFromName(msr_ptr->GetReferenceFrame()))) + { + // Set the cluster epoch + msr_ptr->SetEpoch(""); + // Set the baseline epoch + pntTmp.SetEpoch(""); + } + } + else { // Set the cluster epoch msr_ptr->SetEpoch(tmp); @@ -2389,6 +2417,7 @@ string dna_import::ParseAngularValue(const string& sBuf, const string& calling_f { string parsed_value, tmp; double d; + UINT32 u; // degrees value try { @@ -2402,10 +2431,10 @@ string dna_import::ParseAngularValue(const string& sBuf, const string& calling_f // minutes value try { tmp = trimstr(sBuf.substr(dml_.msr_ang_m, dmw_.msr_ang_m)); - d = DoubleFromString(tmp); - if (d < 10 && tmp.at(0) != '0') + u = LongFromString(tmp); + if (u < 10) parsed_value.append("0"); - parsed_value.append(tmp); + parsed_value.append(StringFromT(u)); } catch (...) { SignalExceptionParseDNA(calling_function + "(): Could not extract minutes value from the record: ", diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp index fec3937c..6e233c1d 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp @@ -735,6 +735,9 @@ int ImportDataFiles(dna_import& parserDynaML, vdnaStnPtr* vStations, vdnaMsrPtr* // UINT32 stnCount(0), msrCount(0), clusterID(0); + // obtain the project reference frame + string epsgCode(epsgStringFromName(p.i.reference_frame)); + size_t pos = string::npos; size_t strlen_arg = 0; for_each(p.i.input_files.begin(), p.i.input_files.end(), @@ -857,7 +860,6 @@ int ImportDataFiles(dna_import& parserDynaML, vdnaStnPtr* vStations, vdnaMsrPtr* // Produce a warning if the input file's default reference frame // is different to the project reference frame - string epsgCode(epsgStringFromName(p.i.reference_frame)); string inputFileEpsg; try { inputFileEpsg = datumFromEpsgString(input_file_meta.epsgCode); @@ -870,7 +872,6 @@ int ImportDataFiles(dna_import& parserDynaML, vdnaStnPtr* vStations, vdnaMsrPtr* { stringstream ssEpsgWarning; - ssEpsgWarning << "- Warning: Input file reference frame (" << inputFileEpsg << ") does not match the " << endl << " default reference frame."; if (!p.g.quiet) @@ -1288,6 +1289,27 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } + // obtain the project reference frame + UINT32 epsgCode(epsgCodeFromName(p.i.reference_frame)); + + // Produce a warning if an ensemble is set as the default reference frame + if (isEpsgWGS84Ensemble(epsgCode)) + { + stringstream ssEnsembleWarning; + ssEnsembleWarning << + "- Warning: The reference frame (" << p.i.reference_frame << ") set for this project is assumed to" << endl << + " mean the \"World Geodetic System 1984 (WGS 84) ensemble\". The WGS 84 ensemble" << endl << + " represents a generic collection of more precisely defined WGS 84 (Gxxxx)" << endl << + " realisations, is generally suitable for low accuracy (metre level) positioning" << endl << + " and web mapping applications, and does not provide for precise transformations" << endl << + " to other well known reference frames. To achieve optimum reliability in" << endl << + " adjustment results using data on WGS 84, please refer to \"Configuring import" << endl << + " options\" in the DynAdjust User's Guide." << endl; + if (!p.g.quiet) + cout << ssEnsembleWarning.str() << endl; + imp_file << ssEnsembleWarning.str() << endl; + } + /////////////////////////////////////////////////////////////////////////////////////////////////////////// // start "total" time diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 6f3e26c6..96515363 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -466,8 +466,17 @@ bool dna_reftran::IsolateandApplySubstitute(const string& epsgCode, const string epsgSubstitute = ""; - if (isDatumWGSEnsemble(epsgCode)) + if (isEpsgStringWGS84Ensemble(epsgCode)) { + if (stnEpoch.empty()) + { + stringstream throw_msg; + throw_msg << endl << + " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" in" << endl << + " the station and measurement files has been provided with an epoch." << endl; + throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + } + // In this case, use the epoch to identify the correct substitution boost::gregorian::date epoch = dateFromString(stnEpoch); @@ -1432,25 +1441,28 @@ void dna_reftran::TransformStationRecords(const string& newFrame, const string& } catch (const RefTranException& e) { + stringstream error_msg; + error_msg << endl << + " - Station: " << stn_it->stationName << endl << + " - Frame and epoch: " << datumFromEpsgString(stn_it->epsgCode) << " @ " << + stn_it->epoch << endl; + switch (e.exception_type()) { case REFTRAN_WGS84_TRANS_UNSUPPORTED: { stringstream throw_msg; - throw_msg << e.what() << endl << - " When transforming from or to WGS 84, please ensure that \"WGS84\" or" << endl << - " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\")" << endl << - " has been provided in the station and measurement files." << endl; + throw_msg << e.what() << error_msg.str() << endl << + " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" or" << endl << + " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\") in the" << endl << + " station and measurement files has been provided with an epoch." << endl; throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); break; } default: throw RefTranException(e.what()); break; - } - - - + } } } @@ -1601,9 +1613,9 @@ void dna_reftran::TransformMeasurementRecords(const string& newFrame, const stri { stringstream throw_msg; throw_msg << e.what() << error_msg.str() << endl << - " When transforming from or to WGS 84, please ensure that \"WGS84\" or" << endl << - " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\")" << endl << - " has been provided in the station and measurement files." << endl; + " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" or" << endl << + " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\") in the" << endl << + " station and measurement files has been provided with an epoch." << endl; throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); break; } diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp index 253e5866..b2db671d 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp @@ -545,6 +545,11 @@ int main(int argc, char* argv[]) return EXIT_FAILURE; } catch (const RefTranException& e) { + switch (e.exception_type()) + { + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + break; + } cout << endl << "- Error: " << e.what() << endl; rft_file << endl << "- Error: " << e.what() << endl; rft_file.close(); diff --git a/dynadjust/include/functions/dnatemplatedatetimefuncs.hpp b/dynadjust/include/functions/dnatemplatedatetimefuncs.hpp index 45042adc..abc407dc 100644 --- a/dynadjust/include/functions/dnatemplatedatetimefuncs.hpp +++ b/dynadjust/include/functions/dnatemplatedatetimefuncs.hpp @@ -35,6 +35,8 @@ #include #include +const UINT32 TIME_IMMEMORIAL = 1900; + using namespace std; using namespace boost::timer; using namespace boost::posix_time; @@ -192,6 +194,18 @@ T ymdToDate(const U& year, const U& month, const U& day) return date(year, month, day); } +template +T timeImmemorial() +{ + return T(TIME_IMMEMORIAL, 1, 1); +} + +template +bool isTimeImmemorial(const T& theDate) +{ + return theDate < T(TIME_IMMEMORIAL, 1, 2); +} + // cumulative days in a year required for determining decimal year template struct _cumulative_days_in_year_ diff --git a/dynadjust/include/io/dnaiosnx.hpp b/dynadjust/include/io/dnaiosnx.hpp index e800df39..c3ea471e 100644 --- a/dynadjust/include/io/dnaiosnx.hpp +++ b/dynadjust/include/io/dnaiosnx.hpp @@ -52,8 +52,6 @@ typedef enum _SINEX_WARN_TYPE_ } SINEX_WARN_TYPE; -const UINT32 DISCONT_TIME_IMMEMORIAL = 1900; - ///////////////////////////////////////////////////////////// // Custom struct to manage occurrences of a station in a SINEX file //T1 file_index; @@ -135,7 +133,7 @@ struct discontinuity_tuple_t discontinuity_tuple_t() : file_index(0), solution_id(0), site_name("") - , date_start(date(DISCONT_TIME_IMMEMORIAL, 1, 1)), date_end(date(DISCONT_TIME_IMMEMORIAL, 1, 1)), discontinuity_exists(false) {} + , date_start(date(TIME_IMMEMORIAL, 1, 1)), date_end(date(TIME_IMMEMORIAL, 1, 1)), discontinuity_exists(false) {} discontinuity_tuple_t(const T1& index, const T1& solution, const T2& name, const T3& from, const T3& to, const T4& discontinuity) : file_index(index), solution_id(solution), site_name(name) diff --git a/dynadjust/include/io/dnaiosnxread.cpp b/dynadjust/include/io/dnaiosnxread.cpp index 618819be..0a6a3b23 100644 --- a/dynadjust/include/io/dnaiosnxread.cpp +++ b/dynadjust/include/io/dnaiosnxread.cpp @@ -218,7 +218,7 @@ stringstream dna_io_snx::parse_date_from_string(const string& date_str, DATE_FOR { case date_from: // Set a date before the advent of GPS - date_ss << "001 " << DISCONT_TIME_IMMEMORIAL; + date_ss << "001 " << TIME_IMMEMORIAL; return date_ss; case date_to: // Set a date 100 years into the future diff --git a/dynadjust/include/parameters/dnadatum.cpp b/dynadjust/include/parameters/dnadatum.cpp index c2048f62..65514382 100644 --- a/dynadjust/include/parameters/dnadatum.cpp +++ b/dynadjust/include/parameters/dnadatum.cpp @@ -120,9 +120,13 @@ void CDnaDatum::initialiseDatumFromEpsgCode() datumName_ = datumFromEpsgCode(epsgCode_); } -// returns dd.mm.yyyy +// returns: +// - dd.mm.yyyy for datums that have a reference epoch +// - "" for ensembles that do not have an epoch string CDnaDatum::GetEpoch_s() const { + if (isEpsgWGS84Ensemble(epsgCode_)) + return ""; return stringFromDate(epoch_); } @@ -167,7 +171,12 @@ void CDnaDatum::SetEpoch(const string& epoch) { // Parse epoch if (epoch.empty()) - epoch_ = dateFromString(referenceepochFromEpsgCode(epsgCode_)); + { + if (isEpsgWGS84Ensemble(epsgCode_)) + epoch_ = timeImmemorial(); + else + epoch_ = dateFromString(referenceepochFromEpsgCode(epsgCode_)); + } else epoch_ = dateFromString(epoch); } diff --git a/dynadjust/include/parameters/dnaepsg.hpp b/dynadjust/include/parameters/dnaepsg.hpp index fea4df23..14ccb9ef 100644 --- a/dynadjust/include/parameters/dnaepsg.hpp +++ b/dynadjust/include/parameters/dnaepsg.hpp @@ -301,6 +301,10 @@ bool isEpsgDatumStatic(const U& epsgCode) case GDA2020_i_xyz: case GDA2020_i_2d: case GDA2020_i: + // WGS84 ensemble + case WGS84_i_xyz: + case WGS84_i: + case WGS84_ensemble_i: return true; // ITRF.... case ITRF1988_i_xyz: @@ -329,9 +333,7 @@ bool isEpsgDatumStatic(const U& epsgCode) case ITRF2008_i_xyz: case ITRF2014_i: case ITRF2014_i_xyz: - case WGS84_i_xyz: - case WGS84_i: - case WGS84_ensemble_i: + // WGS84 @ epoch case WGS84_transit_i_xyz: case WGS84_transit_i: case WGS84_G730_i_xyz: @@ -731,7 +733,7 @@ bool validateEpsgCode(const U& epsgCode) } template -bool isEpsgWGSEnsemble(const U& epsgCode) +bool isEpsgWGS84Ensemble(const U& epsgCode) { switch (epsgCode) { @@ -747,16 +749,63 @@ bool isEpsgWGSEnsemble(const U& epsgCode) } template -bool isDatumWGSEnsemble(const U& datumName) +bool isEpsgStringWGS84Ensemble(const U& epsgString) { - if (iequals(datumName, WGS84_s) || - iequals(datumName, WGS84_alias_s) || - iequals(datumName, WGS84_ensemble_s)) + if (iequals(epsgString, WGS84_c) || + iequals(epsgString, WGS84_ensemble_c)) + return true; + + return false; +} + +template +bool isEpsgWGS84(const U& epsgCode) +{ + switch (epsgCode) + { + // WGS84 + case WGS84_i_xyz: + case WGS84_i: + case WGS84_ensemble_i: + case WGS84_transit_i_xyz: + case WGS84_transit_i: + case WGS84_G730_i_xyz: + case WGS84_G730_i: + case WGS84_G873_i_xyz: + case WGS84_G873_i: + case WGS84_G1150_i_xyz: + case WGS84_G1150_i: + case WGS84_G1674_i_xyz: + case WGS84_G1674_i: + case WGS84_G1762_i_xyz: + case WGS84_G1762_i: + case WGS84_G2139_i_xyz: + case WGS84_G2139_i: + return true; + default: + return false; + } + return false; +} + +template +bool isEpsgStringWGS84(const U& epsgString) +{ + if (iequals(epsgString, WGS84_c) || + iequals(epsgString, WGS84_ensemble_c) || + iequals(epsgString, WGS84_transit_c) || + iequals(epsgString, WGS84_G730_c) || + iequals(epsgString, WGS84_G873_c) || + iequals(epsgString, WGS84_G1150_c) || + iequals(epsgString, WGS84_G1674_c) || + iequals(epsgString, WGS84_G1762_c) || + iequals(epsgString, WGS84_G2139_c)) return true; return false; } + } // namespace epsg } // namespace dynadjust From d229f100a78e8c1e7d1e1516d572d81b90a106d3 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Mon, 7 Mar 2022 21:27:15 +1100 Subject: [PATCH 13/23] Further changes to support WGS84 --- .../dnaimportwrapper/dnaimportwrapper.cpp | 37 ++--- dynadjust/dynadjust/dnareftran/dnareftran.cpp | 146 +++++++++++------- .../dnareftranwrapper/dnareftranwrapper.cpp | 4 +- .../include/functions/dnatransparamfuncs.hpp | 12 +- dynadjust/include/parameters/dnaepsg.hpp | 12 +- 5 files changed, 117 insertions(+), 94 deletions(-) diff --git a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp index 6e233c1d..6f55598d 100644 --- a/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp +++ b/dynadjust/dynadjust/dnaimportwrapper/dnaimportwrapper.cpp @@ -1292,25 +1292,6 @@ int main(int argc, char* argv[]) // obtain the project reference frame UINT32 epsgCode(epsgCodeFromName(p.i.reference_frame)); - // Produce a warning if an ensemble is set as the default reference frame - if (isEpsgWGS84Ensemble(epsgCode)) - { - stringstream ssEnsembleWarning; - ssEnsembleWarning << - "- Warning: The reference frame (" << p.i.reference_frame << ") set for this project is assumed to" << endl << - " mean the \"World Geodetic System 1984 (WGS 84) ensemble\". The WGS 84 ensemble" << endl << - " represents a generic collection of more precisely defined WGS 84 (Gxxxx)" << endl << - " realisations, is generally suitable for low accuracy (metre level) positioning" << endl << - " and web mapping applications, and does not provide for precise transformations" << endl << - " to other well known reference frames. To achieve optimum reliability in" << endl << - " adjustment results using data on WGS 84, please refer to \"Configuring import" << endl << - " options\" in the DynAdjust User's Guide." << endl; - if (!p.g.quiet) - cout << ssEnsembleWarning.str() << endl; - imp_file << ssEnsembleWarning.str() << endl; - } - - /////////////////////////////////////////////////////////////////////////////////////////////////////////// // start "total" time cpu_timer time; @@ -2400,7 +2381,23 @@ int main(int argc, char* argv[]) { cout << "- Warning: some files were not parsed - please read the log file for more details." << endl; imp_file << "- Warning: some files were not parsed - please read the log file for more details." << endl; - } + } + + // Produce a warning if an ensemble is set as the default reference frame + if (isEpsgWGS84Ensemble(epsgCode)) + { + stringstream ssEnsembleWarning; + ssEnsembleWarning << endl << + "- Warning: The '" << p.i.reference_frame << "' reference frame set for this project refers to the" << endl << + " \"World Geodetic System 1984 (WGS 84) ensemble\". The WGS 84 ensemble is" << endl << + " only suitable for low accuracy (metre level) positioning and does not" << endl << + " provide for precise transformations to other well-known reference frames." << endl << + " To achieve reliable adjustment results from data on WGS 84, please refer" << endl << + " to \"Configuring import options\" in the DynAdjust User's Guide." << endl; + if (!p.g.quiet) + cout << ssEnsembleWarning.str(); + imp_file << ssEnsembleWarning.str(); + } milliseconds elapsed_time(milliseconds(time.elapsed().wall/MILLI_TO_NANO)); string time_message = formatedElapsedTime(&elapsed_time, "+ Total file handling process took "); diff --git a/dynadjust/dynadjust/dnareftran/dnareftran.cpp b/dynadjust/dynadjust/dnareftran/dnareftran.cpp index 96515363..a6d5c619 100644 --- a/dynadjust/dynadjust/dnareftran/dnareftran.cpp +++ b/dynadjust/dynadjust/dnareftran/dnareftran.cpp @@ -400,12 +400,36 @@ void dna_reftran::ApplyStationFrameSubstitutions() for (stn_it = bstBinaryRecords_.begin(); stn_it != bstBinaryRecords_.end(); ++stn_it) { - if (IsolateandApplySubstitute(stn_it->epsgCode, stn_it->epoch, epsgSubstitute)) + try { + if (IsolateandApplySubstitute(stn_it->epsgCode, stn_it->epoch, epsgSubstitute)) + { + _v_stn_substitutions.push_back(string_string_pair( + datumFromEpsgString(string(stn_it->epsgCode)), + datumFromEpsgString(epsgSubstitute))); + strcpy(stn_it->epsgCode, epsgSubstitute.c_str()); + } + } + catch (const RefTranException& e) { - _v_stn_substitutions.push_back(string_string_pair( - datumFromEpsgString(string(stn_it->epsgCode)), - datumFromEpsgString(epsgSubstitute))); - strcpy(stn_it->epsgCode, epsgSubstitute.c_str()); + stringstream error_msg; + error_msg << endl << + " - Station: " << stn_it->stationName << endl << + " - Frame and epoch: " << datumFromEpsgString(stn_it->epsgCode) << + " (no epoch)" << endl; + + switch (e.exception_type()) + { + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + { + stringstream throw_msg; + throw_msg << e.what() << error_msg.str() << endl; + throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; + } + default: + throw RefTranException(e.what()); + break; + } } } @@ -428,13 +452,39 @@ void dna_reftran::ApplyMeasurementFrameSubstitutions() for (msr_it = bmsBinaryRecords_.begin(); msr_it != bmsBinaryRecords_.end(); ++msr_it) { - if (IsolateandApplySubstitute(msr_it->epsgCode, msr_it->epoch, epsgSubstitute)) + try { + if (IsolateandApplySubstitute(msr_it->epsgCode, msr_it->epoch, epsgSubstitute)) + { + if (msr_it->measStart == xMeas) + _v_msr_substitutions.push_back(string_string_pair( + datumFromEpsgString(string(msr_it->epsgCode)), + datumFromEpsgString(epsgSubstitute))); + strcpy(msr_it->epsgCode, epsgSubstitute.c_str()); + } + } + catch (const RefTranException& e) { - if (msr_it->measStart == xMeas) - _v_msr_substitutions.push_back(string_string_pair( - datumFromEpsgString(string(msr_it->epsgCode)), - datumFromEpsgString(epsgSubstitute))); - strcpy(msr_it->epsgCode, epsgSubstitute.c_str()); + stringstream error_msg; + error_msg << endl << + " - Measurement type: " << measurement_name(msr_it->measType) << endl << + " - From: " << bstBinaryRecords_.at(msr_it->station1).stationName << endl << + " - To: " << bstBinaryRecords_.at(msr_it->station2).stationName << endl << + " - Frame and epoch: " << datumFromEpsgString(msr_it->epsgCode) << + " (no epoch)" << endl; + + switch (e.exception_type()) + { + case REFTRAN_WGS84_TRANS_UNSUPPORTED: + { + stringstream throw_msg; + throw_msg << e.what() << error_msg.str() << endl; + throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); + break; + } + default: + throw RefTranException(e.what()); + break; + } } } @@ -471,9 +521,12 @@ bool dna_reftran::IsolateandApplySubstitute(const string& epsgCode, const string if (stnEpoch.empty()) { stringstream throw_msg; - throw_msg << endl << - " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" in" << endl << - " the station and measurement files has been provided with an epoch." << endl; + throw_msg << " Cannot perform a reference frame substitution for data on '" << frame << "'" << endl << + " without a valid epoch. '" << frame << "' refers to the \"World Geodetic System 1984" << endl << + " (WGS 84) ensemble\". When transforming stations and measurements from the" << endl << + " WGS 84 ensemble, each record must be accompanied with an epoch. Refer to" << endl << + " the DynAdjust User's Guide (\"Configuring import options\") for information" << endl << + " on how to achieve reliable transformation results using WGS 84." << endl; throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); } @@ -1436,33 +1489,24 @@ void dna_reftran::TransformStationRecords(const string& newFrame, const string& m_stnsTransformed++; } } - catch (const runtime_error& e) { + catch (const runtime_error& e) + { + stringstream error_msg; + error_msg << e.what() << endl << + " - Station: " << stn_it->stationName << endl << + " - Frame and epoch: " << datumFromEpsgString(stn_it->epsgCode) << " @ " << + stn_it->epoch << endl; throw RefTranException(e.what()); } - catch (const RefTranException& e) { - + catch (const RefTranException& e) + { stringstream error_msg; - error_msg << endl << + error_msg << e.what() << endl << " - Station: " << stn_it->stationName << endl << " - Frame and epoch: " << datumFromEpsgString(stn_it->epsgCode) << " @ " << - stn_it->epoch << endl; - - switch (e.exception_type()) - { - case REFTRAN_WGS84_TRANS_UNSUPPORTED: - { - stringstream throw_msg; - throw_msg << e.what() << error_msg.str() << endl << - " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" or" << endl << - " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\") in the" << endl << - " station and measurement files has been provided with an epoch." << endl; - throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); - break; - } - default: - throw RefTranException(e.what()); - break; - } + stn_it->epoch << endl; + throw RefTranException(e.what()); + } } @@ -1587,7 +1631,8 @@ void dna_reftran::TransformMeasurementRecords(const string& newFrame, const stri transformationPerformed_ = true; } } - catch (const runtime_error& e) { + catch (const runtime_error& e) + { stringstream error_msg; error_msg << e.what() << endl << " - Measurement type: " << measurement_name(msr_it->measType) << endl << @@ -1597,36 +1642,17 @@ void dna_reftran::TransformMeasurementRecords(const string& newFrame, const stri msr_it->epoch << endl; throw RefTranException(error_msg.str()); } - catch (const RefTranException& e) { - + catch (const RefTranException& e) + { stringstream error_msg; - error_msg << endl << + error_msg << e.what() << endl << " - Measurement type: " << measurement_name(msr_it->measType) << endl << " - From: " << bstBinaryRecords_.at(msr_it->station1).stationName << endl << " - To: " << bstBinaryRecords_.at(msr_it->station2).stationName << endl << " - Frame and epoch: " << datumFromEpsgString(msr_it->epsgCode) << " @ " << msr_it->epoch << endl; - switch (e.exception_type()) - { - case REFTRAN_WGS84_TRANS_UNSUPPORTED: - { - stringstream throw_msg; - throw_msg << e.what() << error_msg.str() << endl << - " When transforming from or to WGS 84, please ensure that \"" << WGS84_s << "\" or" << endl << - " one of the known WGS 84 realisations (e.g. \"" << WGS84_G1762_s << "\") in the" << endl << - " station and measurement files has been provided with an epoch." << endl; - throw RefTranException(throw_msg.str(), REFTRAN_WGS84_TRANS_UNSUPPORTED); - break; - } - default: - { - stringstream throw_msg; - throw_msg << e.what() << error_msg.str(); - throw RefTranException(throw_msg.str()); - break; - } - } + throw RefTranException(error_msg.str()); } } diff --git a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp index b2db671d..349604b6 100644 --- a/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp +++ b/dynadjust/dynadjust/dnareftranwrapper/dnareftranwrapper.cpp @@ -550,8 +550,8 @@ int main(int argc, char* argv[]) case REFTRAN_WGS84_TRANS_UNSUPPORTED: break; } - cout << endl << "- Error: " << e.what() << endl; - rft_file << endl << "- Error: " << e.what() << endl; + cout << endl << endl << "- Error: " << e.what() << endl; + rft_file << endl << endl << "- Error: " << e.what() << endl; rft_file.close(); return EXIT_FAILURE; } diff --git a/dynadjust/include/functions/dnatransparamfuncs.hpp b/dynadjust/include/functions/dnatransparamfuncs.hpp index 6a314b2e..17151dd7 100644 --- a/dynadjust/include/functions/dnatransparamfuncs.hpp +++ b/dynadjust/include/functions/dnatransparamfuncs.hpp @@ -1909,7 +1909,7 @@ void determineHelmertParameters(transformation_parameter_set& tParam) case WGS84_G1762_i: case WGS84_G2139_i_xyz: case WGS84_G2139_i: - throw RefTranException("Transformation parameters from and to WGS84 are unavailable.", + throw RefTranException("Transformation parameters from WGS 84 are unavailable.", REFTRAN_WGS84_TRANS_UNSUPPORTED); break; default: @@ -1919,11 +1919,11 @@ void determineHelmertParameters(transformation_parameter_set& tParam) catch (runtime_error& e) { stringstream ss; - ss << - "determineHelmertParameters(): Parameters for" << - " transforming between " << datumFromEpsgCode(tParam.from_to_.first) << " and " << - datumFromEpsgCode(tParam.from_to_.second) << endl << - " have not been defined yet." << endl << e.what(); + ss << "determineHelmertParameters():" << endl << + " " << e.what() << " Parameters for transforming between" << endl << + " " << datumFromEpsgCode(tParam.from_to_.first) << " and " << + datumFromEpsgCode(tParam.from_to_.second) << + " have not been defined yet." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } } diff --git a/dynadjust/include/parameters/dnaepsg.hpp b/dynadjust/include/parameters/dnaepsg.hpp index 14ccb9ef..7e2e9862 100644 --- a/dynadjust/include/parameters/dnaepsg.hpp +++ b/dynadjust/include/parameters/dnaepsg.hpp @@ -182,7 +182,7 @@ U epsgCodeFromName(const S& datumName) return WGS84_G2139_i_xyz; stringstream ss; - ss << "epsgCodeFromName: " << datumName << " is not yet supported." << endl; + ss << "epsgCodeFromName: " << datumName << " is not a supported reference frame label." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } @@ -350,7 +350,7 @@ bool isEpsgDatumStatic(const U& epsgCode) case WGS84_G2139_i: return false; default: - ss << "isEpsgDatumStatic: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "isEpsgDatumStatic: EPSG code " << epsgCode << " is not a supported EPSG code." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } return false; @@ -448,7 +448,7 @@ void spheroidFromEpsgCode(const U& epsgCode, epsg_spheroid& ellipsoid) break; default: stringstream ss; - ss << "spheroidFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "spheroidFromEpsgCode: EPSG code " << epsgCode << " is not a supported EPSG code." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } } @@ -540,7 +540,7 @@ string referenceepochFromEpsgCode(const U& epsgCode) return WGS84_G2139_epoch; default: stringstream ss; - ss << "referenceepochFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "referenceepochFromEpsgCode: EPSG code " << epsgCode << " is not a supported EPSG code." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } return ""; @@ -636,7 +636,7 @@ S datumFromEpsgCode(const U& epsgCode) return WGS84_G2139_s; default: stringstream ss; - ss << "datumFromEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "datumFromEpsgCode: EPSG code " << epsgCode << " is not a supported EPSG code." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } return ""; @@ -726,7 +726,7 @@ bool validateEpsgCode(const U& epsgCode) return true; default: stringstream ss; - ss << "validateEpsgCode: EPSG code " << epsgCode << " is not yet supported." << endl; + ss << "validateEpsgCode: EPSG code " << epsgCode << " is not a supported EPSG code." << endl; throw boost::enable_current_exception(runtime_error(ss.str())); } return false; From d755f747c3496c7960e3b9a50d11d2d07c181a67 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Mon, 7 Mar 2022 23:47:24 +1100 Subject: [PATCH 14/23] Return a valid epoch with WGS84 ensemble if supplied --- dynadjust/include/parameters/dnadatum.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynadjust/include/parameters/dnadatum.cpp b/dynadjust/include/parameters/dnadatum.cpp index 65514382..946b8077 100644 --- a/dynadjust/include/parameters/dnadatum.cpp +++ b/dynadjust/include/parameters/dnadatum.cpp @@ -125,7 +125,7 @@ void CDnaDatum::initialiseDatumFromEpsgCode() // - "" for ensembles that do not have an epoch string CDnaDatum::GetEpoch_s() const { - if (isEpsgWGS84Ensemble(epsgCode_)) + if (isEpsgWGS84Ensemble(epsgCode_) && isTimeImmemorial(epoch_)) return ""; return stringFromDate(epoch_); } From 0739e2d8ceef2ba5ac36b0e1f3ea0d40115611fd Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Mon, 7 Mar 2022 23:52:36 +1100 Subject: [PATCH 15/23] Reorder member initialisation --- dynadjust/include/measurement_types/dnameasurement.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dynadjust/include/measurement_types/dnameasurement.cpp b/dynadjust/include/measurement_types/dnameasurement.cpp index fbcef801..0937e6aa 100644 --- a/dynadjust/include/measurement_types/dnameasurement.cpp +++ b/dynadjust/include/measurement_types/dnameasurement.cpp @@ -469,8 +469,8 @@ CDnaMeasurement::CDnaMeasurement() , m_measAdjPrec(0) , m_residualPrec(0) , m_preAdjCorr(0) - , m_epoch("") , m_epsgCode(DEFAULT_EPSG_S) + , m_epoch("") , m_databaseIdSet(false) { } From 55717256e5769d6b5ca143079739c7c3049e1017 Mon Sep 17 00:00:00 2001 From: rogerfraser Date: Tue, 8 Mar 2022 00:20:13 +1100 Subject: [PATCH 16/23] Update Users Guide with WGS84 support --- resources/DynAdjust Users Guide.pdf | Bin 5320256 -> 5332506 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/resources/DynAdjust Users Guide.pdf b/resources/DynAdjust Users Guide.pdf index 0cf463d10808c93d3b2a42e5c85c0ae2c02e40e2..1bb3e417286627ffe3648e0e3907228feb01cc18 100644 GIT binary patch delta 440221 zcmX`RV~j3L(=|HQ9^1BU+qP}n*O+^3+qP|Mk8RsN_xpUwNjmAS^|MlI^-5LsZw-TF zc8`G6hry*aWb;!c)xjYE4$?^TDdX)ni2Dn>Bw>#lF|`70B1 zXF*j+Qg<^1rrz^#Re))vBr1Cn%&CrQ$Z=0Nu@z%!pqU~cEkk1gMwb#BMP)-b zfMY9g6^)CmQc_54CO)2?=`ay_1%g*%fXB0?=>lm@`4YnrUg9!f2(o7v0yR#gYZ6-Q z36TrVg6#r3mwEvMj(DZ&ft=xM&0vmn%QS(w=8i>61?e4i3MZQtBZ6eDjGSTA$bpg+ zrAc9!9S=wkdCmmj;sj-3PRtN7WhEyTOD9C7S5Utsp~yu?Z;z@g1OHM@WfDBmYHAYF zL=FZeX6_nU2?hMC){5dmghxF=nc%gqCtDyj6-Iru6l@Oxcp^f@fqZVo8u2+72lx|9 zWFUhCxwOO*uhbp5$gAdRq-eequSIV}lQbOSnHghIJ;9)ssyLK+ruzO zQ9`Z6H$zotNLead`-7Q68%zX!N+?k8w;~nf6MECs&u=9TfQ*Z08oF93mKs+uuVv!} zXC57G^LYCJWE=!Imcn-Q7pk1i+HxK-F4%ei0$wGS7k1n9*nJIp%m4n-mfKdcEwb6y*w)f)X;F<3F{R@jz=fgUe0nn>Ula-i#`zr*>4ScX{5!X@7Uk< zRh_1~Y&_RB-k3{JGO?vT4R|N(uV;RlOe>{p!oz$3t};v7Hr3Q}V@OD1iv_Y4Yv;lg zk%Sj^XEr`C1Yz$*fFCM)Syuf#YD*uu5=X~V6KrYo1_5=QXm);&ZofY&JkRUftyCHm zGptW>H-1emQva(=hI zK7{80$sm&-1)~i7sjuG*$F1^6R}-nWuItvo*AsyW^nkS5j4pWEX}h+~zb4TUGc2Zf z)b<+7?v7*6PbW(_oj<-fcejos?E*{85XSrnG2PQJFu!cf; z2Tb4%^Pldbn0Rqj^+!1d4R$B?eE3)_w;g>F<|nD{HHWe17ZQG4znwN+D$i5+;4WhT zlJ`Pw9dldt51 zPu)*VFzzGx{>cJw*2k5{l|Bb22`90(Zj7mq=m@uZir%c+!J<1jra8nC#v-q!DxD^W=(;BQ@eN~ z-?!^BJP195C0v7ssSmi8<-QxZIH9<>ydT01f=rEC4)pohgQ*CHbCgkpYW4s{mLgccYAUB#r8P=K93KO$q7er)XSy?Ner@!wXYV&# zNQ<00d??{~IPY%~WIm5S*@P~tD6k%HUsw)GW7@0$F2O%x#=xC?8vSnwml|9sX-srN zC{1Z7u#mv4X-bY#R7o?~EKub4(+>2%T&+n^ICy|Ga1#1^9%9ds-B98B466bu%ivq2 z3BklvU@5qE)MAkN5>hiqy@R;-OT%&~z+YLQ+5^+(-&#sj+tQTMc~PCb2&+Xyv0ivO z$|%GtC4+uN%EU%N?>NM;FeA*rP+qVUqw^8$Fky=nAr=gz6nfE zIV6A>c%hva%ph8jH&MbruH_{0p+N}rEJ&3Zv4ZHm^-!i%AgWQo{ECjOWZ zw51^-z>P5Xf5fM{5yJwnvRLQC0-0FO@X0_Urlu)He*Ul&1OYpbBi$^+patmHBAQ{J zjSxSX5n@Kqr`<<^2XdgoPMAYv-uLqqk=+26*%f0<6dA$(LYWD2%yKykar%Nl9dnMY z!4@BaJY!pqfj?kIjD@1JfP%d)F~-Nq#1_xT$&{PSoO9$2AQP;zcdTf_a$t1U;e@yjP5uIGf1V!3PGI z=jY#jn&jt0p`O5ki|zfV=7Dqth%hi=gCdlann!?yHTN4hP*A)OMMWsfsFKh?p|Elt zD3n1UEoL^K&(s~=g{-)njfE@~?((Zbc|Ctryao~PS9^D$;Ms>xSE;5RXHMk7E=2i9 z+vCY*eFtjo&O}?avaELbM>Mwg!Bl`-_Q^9JAFz!*WOpxAx~tZPnD#z$2idaCrjnho znC>W!&Sqn#=!;n4v_QPmLs12zKu&kVTEaJ$ zrCRRkdT{H|S8I-lYLuf>r)!!Y4loRe2j=R1kDl_$8~tuPhC@iEVf=?$fdP1;pqd5n;!seFBU$skeRu9LIxva?AIrO1q z)x_F6^P#u?qUhS#N4r@cDTD(sm(g|6VaU2tTZgFlFdO9dljg&y!lHnNP~(%9n&O-> z6kuu?;ih*)|KT2NDkQ@%YlG3cP&d=9zLoeMN}|N~2l!X<-;g5&%QL;h$$y5{-0Hq3 zoqTT}pX@yu`@6Ik#ns+A0bJHIT^nN`(ct?VU2#5eC^mP^u$JwA#biOe5RRTEMkDFk zHrcQ!KLmv|p51YiPwWU(C>A6p@Cna-9WV4jmH0##B>L1)_CMGB4t-^FrxxFb)+b%x zuP;xT02MD+-?kwZZJgY3Q+aYi2Kibjb=4BYx9@3bQ4HSq-%Xd#Bp7~kKT7ux3AfNb z6UBLM##Nt>3=EiK`lMnS78tjEeT2nb6$hdomFRMEE#EO+&H!u)_**F%&Vo9*Ymu}% zfgy_RVIxUJ+#fZ(P_nQ=aJ`cB7tLBi~FYl?Q9Cl?pT z**fxwMv}>I%6n33-Iar|Wj);)y4cr|A37TpvnueNo5|%5OZg!1otxiGXIr?JL*`V(apB-#!`$wc8PcLg*@qw-=f;h zUG9qM^<{PphK+Q?aTn;1fKPAvMA8BcN|GNTIxu4r5(pI_MR`GfkP+4IR%2_7uA!t& zZ*^G$EkYcH$cKfW7SsqSJs|S_w#SABHUhz1&to;$XZBo*j8)C zr7)g4*n6f`FrUejG)cH?uph&9%IM4eLe?^}-z|0!t%DD{e4;`Q%FYU$=^i%5dv?+o+}OhVQ{9y&u$`Pnfg5}G&208~s& z-tT12*q#@|dsZTx_$bKYd84k-J4A#!A$Tz=j2Y4-RyXO8*5i69c9PyC(|TFDZdu(i z=)F6|Yz|z#RaZKS@F_c%mupMjZLK^y`|bX#lRh1LpGsL``**jk`iw-m!{%}&5wSAV z4W)}oHxIHaDv%x`!<(wtiZ>Q^ifZL$=eVI}BLR|EMDzb8u?dD)9vPVFe_4!ClXKam zMeP05I8*l`7Z0GFxTvsNG~JN0_(*6CZ-or1movcnBED+=?fnyt%X26)202Xsd37_? zlx|-2*SrlSb7l24>7dk_SzJm+Cv}^lsgm4H$J}g0QYWZns`qpiFn!!?>h)^F@pfKa zo%J=9zZDJK=it$)vXu9F8wJ48CooyC9hFvAgG6muKsKIa=9pA?CkA9ckhkqmeTTy% zCD|t5w}<1>woTnX5o6rDPIHi_x1|TtGoJK7)yvm9O;Mfhza7ndhX}#WtgVqdST|B; z$=Z|uDnQv)p7HyNvK0B^dzj6L+uXaWn6J7&Ao-IV(HhOh3X%-4%>c9)SNdmA`nnH_ z;ZhY}5%e2C0SXc#Hf(}pEE?`j4dl%EqPHqG?pP~c{#aN2Stvc|XCFc|-c?tGEzHUV z*GHJRhM0Iz#0m3QC)xLj&F2q&R$p1@E#F7)0d+7qXD7 zs1H%R4mIR|Wt)Wf?!^&_w3+Ya5iPHqX<|ew9n9$5h?nYO1OQ}sYfAhdR7IVIs+6;m z5h^~}UzU!02y5-XXG(ZV$lVp=g_#seq-tAW*p7}35(}^6p&HJ1&8Svc_UI7rRuNf4 zh!SxsJps`pGvc24j_v*1ts2IX97Hwu!XPm}$KwYHvUPX^@e1xG%5n{okU%%M*BUl8 zshB7yrhjN-#Q*?!kwZ3KcZ-7?csf5Una@fSJ$8N`#sG`L+GX@Ce(%lEb3c<8?()&h zy)MbZK-S1mhx_eE$eh@Bfu})CJ9Ucp#VqHt7iza5&7h<9KF|!;LWL{93)Pg*vcND= zBaekDv#}kj{ z8gEO!wKj3}3Pr=+_%C>o_J~qa12bw;p-`-MumA zA4`wrYY^soK}+C1iQLaO3^bTHF`CuVn!Wu2Y&@s`Q|>EnPSIM@%y2HP{(8?U$CO6h zTp*9rRfogptZ9e&?uHB07qruL$MwMkbGC2m9`5Xb>xp1UwTBRrtOX)5je%M6s8V+Z z;HT|N=Vx}}G$R_(?1sD=(F!Q#+zWnsonv&(L-yel>&ALm!$6)+9o%8Dvkhr zZqpEkmnJ&MQ>=<+egj+#eVeU0xF(DZ_zX+ymzQNONOR5>VjLHda9oOrI1CQRP;arY z@YxS0BE`{u*V>$QeCqFwrEbI@uV$JyfDjT{!^2B!aIAVJ_q&kF`+nv@pIJgGT$!-o zfi+DcaAp;0?0IE`J<05E@2>~Y0Ui>=ZhV@~qxDSOPRUZnJbpuCg$dfXM}MvhvHWXD zgFrpd_WW)2;8um)qe%Mn!ZikVQJu`!UHm{3Va~7|YW<9^xrgi#0NbBU zwSSS%cF7oC2#2{?S3#;$Jdm?;kg)68hIMmH=jwti!|_6C#{{er?WN<3v2k`bT+e|i z;7+~rrSq+gdLk2UHKuw!$S3hv%SNO9y{1N}kl-^TctUA>8%PzzvSVh)X`y>NZY9z# zr}JW;e_}jcRq5T3Ffuex>vhkO0R+zbNLXW!M`1fKu%Q?S18Pcrg*KT=T3t0wh7w|5 z)l;0Xl_T)2lg=ov)b@3u5!2r}3CTY{?0Z%zV(?XA;B&I!ZLhhx3bF2SOb~gMLRR;G zGHn|Pdm`0^eQe4?OrKo_1d5A-3DSMgFO z?NW1aN&bFt!zN^Ffty7*I`KsT8iZJfO1%&P?`AJrmObId$`KkGOXe53^d}qrxtbQn zRMlhOg#*U(oh-Mm6J@)Tt?-N<^p&F|ji6A1wBb z4}oV|vpw2~4O9FYzzR|yGuYw}hDWwW5>Z}-d48eT3#iy59FEAjd^ya7+#u!4l@B1dQ7&1Eg)^YEL0xmL`cR~Jwf@UME|lF&UBt?r zg|^c>B?$u6gQ{fFV?6K)cH3zi;?}J3owd?+CQNRIG#nudz}rBr37bXlZe@|E`eZKY zoAKe1g@sy$T=>D2i_G0r>94xk>!4FB;Jp=MFe=x_YC8i1NjoNYnu6C7TvBQ=@yJ?j)A>-uQRFvSQK60;r`Nv^>*)b)(kW#mzrl_u=#{XZ9?@gnG;Vr^l@D*ejWY z-UXW-yxP+b;6ae527=I++K~u=0v;u&H_m^XVJ<6)*v@%6&=q1dML{R=Wga$ZleiJ8VP z{%C?qRR%dD&u7Hhe<*se)u(y4-*%FJ9r`Y8l79>WK%ov}>4L(JYO{pJKUGW8x_P*F z11aa;_vL6Ewj|#nTCJGD-L8-u4bLzf zS@Bb>6=lDtS782Wk5~Ec75*LcWlwu}r#z?<%b>e&vq@`F zQMtPsu48>QK%GHk(U6C!fJ>>#7l$&%Jy=j!7D#qaU&Gd_L+q0@oktvkz=ygAeyr~s3oG2Bt%pK#%L z(<`lkr{747;WpUN+k0a%_7CDlI1xX%E6_-zO!O={rkuz&8DOVg<63ke{@ zP;c;8P53&#gVCsVXG1BP)=2;=MxY_nrz~JuXRd-qd+={fraXg{RH)e5E!n$rFVdW{ zZ7Umw%Lp^MKI-^I z?gB1-M~u7!nd{uAJ+%u~U*@{dw}~h(Jv|2Z?JuU*kDi9^2BYqh2R*zBIi@3o3XpciowniQ9&5%?dLv!e=UVm#Te?}*YcQsM8hdnM;XatpC>oO6v7 zixeO}aCjg@BIH;(EI843vZ>>PkpRHuy!2XXd!-@%T6{Y|%K~f58n?mK&02PvVVweV zITjHDYAb2yCFc@c#>&E^tQHolA1m6Sy$ZJlMtJjHmA93h_-nx1vD-NG%1>s98JrcxRx!CrVilWFSG07lW#uJPl)6q*EO^c?IF4m@8>uc|()YCU<)mfGoOQ`H$B9 zGyx+zg7C-^5j1(hH5IJ(F$l^8=^>#+v|?&JA)`++EseEmFAOmmGZ2vfH~Uyko}D)I zPh8R8Z&xHR88)Z?b3+{){53BNyDnzXX7lWHqp}gHQ<1bk9 zd7Eib3fH0XZaI}+Zzm$va4kyRS@?&b@!f9<71_UJw;*M{2RnU>ATsPrQmJvsS9^l4@qFgJxSnGfYicERG3wlQD=oDq9fcE)XpC zFI2J7*5e@IUDYG+gM80>b+T76qSgeFSu6`9`A9qtSyM&agVlz~yTNlus3Lj~U+UQu zN9vHW-A;=a5hkW$PqNvUCvPRWW~IC7YggOcl7B)<*mcs2`x;;&oM5bSe#57}w@aw3 z9?`wl{EDO)ODe!)drBqRF9Tuk1XM&ffV*$g5t_tR5C4PnKf#H3#Z(81bW&<~8Fm?q z;L@9SPIoTNX&R5ltV?SKzilB~GZX8*ko#PYQa%6}=ms^^a#}^52a_eu5tE!;Rh^E^Dpq;m4N3I|IrpN8eF!>0H(6ugz23cU|%M10$?$&OCi*)o1G3Q1|5TAes+E^`o?Fv5yIeQzt z@m!4|W!2e74;zL9j&Y>KwWY_xO_%YxApd^WET@qzNV)T94#3tfSmH?gw+;gSNZK`7vGRL~2IA3loSd9#^*?6YvLr6T>nBzrmgw*T z8VZlb+WzLSd*cn-n%BLuCiRVx1H{HqmmF1Oee}>Vj)Kf&bHEH*Mxqk+{^bN0cQR8z z%Ko_+)9B!~R%*GNqEG3#ni$s@k}mV0YmFQwD5D~scG{3xLQaEI!pue>`^mYTeIs_z z#ZmkSxn9Ve2n)IpsS&PhX8yR1AK~o&QzoSz-|duu)K+Hq2MsbI>5;&-_s_6IJ$1yb z^#InpM3U1uJ3u2-#WDNwKC|g7xw)X4Zs`gLd#S6`TjV-guoh>xeY{y18Giy+#a`gE zxJ}E}i0rk|8t8)k+b#2!|DPy$;~H3F7z){pCdc$MTJq&~z`oW(R4fT1I~X@j32@-a zIsPnc#zFYLln0(a(pbUND0y{{dJm!^3oCX$y1RxmG2qX5lv;4{W?$F#Re%aJ_m2t6 zrhWhqx~q!Z1>(uy7yIjKhtL=M4yBXGV4PuNRe&VyH<86&I$;oWd9nrai~9Yn9MY}n zBjmcGn#=9)2gKp9OMJNat8cno)Nh&`!S11jdKCN)rxk9S908B^4d!<{K{B%uopvkK z2<*l%F8Sg@D*ZQHRN<1OY>yJ;m{Zbi8<*MAq9pw9hQs^;QnoY3jOYA!($oYVj)-6( zWrhhVG}7g)39MkFf{)AG?Cm$`n4s}`Qo|Wa68a=(TB9=vRg=f$6DS}kh9E;VvLcPo z5FSxmXe+{0VgRYsqn>`;^3_m_p$R$_tRtPeNYZcu&cD+RN=9!M`8w(j-;0TsJ_%AL z7SShsxegL4njI5K+wTsff`OK9@JmnA^!bNyP8=~U?*YGt?jn`E?RbH2F^cl9lHuC0 zW_Q5ItutGvf&EH++$cc%8hM+>mkD{PYWnV(2)Gf~l#}rR8Y?cZ#`d}u*rW$eY1%+j zWq{2@D-F9(pRZ@)DrcCq&;rj~rcvrUij%%J_^! zKekH2146-DNJ^lTXen;F%c1!8kt0OBMTw8~g9op;my|M>339;E#56Aj0;t+_OhOw7 z)G$@lm}DRzNqmkle93I&Ccg^4BgDk@+>Mb;)5(#kYjIxvSk}Lk)x7Xd$*ftKwiT=O z(9Yv*WF70>3phPtYN*)I=&HsbgyfVCHo>Lf*b)~D!&^~E737bQ($lf*%{Owxz%Irk zZ#fN=U!-T1xGQB0F%kje1sIti*mt$x2)PI%8WoM>BwN&3{s6&ajpH*yw%g&T>5KdL zVPdlD8o9pYbM*@}9CH8tGjEEY1Vf z{SYA`w(fmxg^}qFgpKZ>6f>8(hKcS@|B`3g^GuBr@Ve#*;t3*0Je_?5b0l1SuE zvCV)q0x|_sE?ePn6J7 zn-G^-b3t}xG0`{1I(a{)YY9H4QTeWa1^iBafzI_hYW`z6S`zUx`v0+se6Hj**!T{Id@0cZLP&(qN@p+jsJFbx|F5rbup(!PT`5Bw1%9B$#mjz`A zz_6>n%lyWC@DO~s9|3ar2_N#f>pxdJG^>hv3@>VL((aAZWiq0ah^;bcb2qBE6WcLc zMyMTfKqJViLv9R(XJG6GF!#A*0{fj*{iWqla6a7L3J_Q4;4pKHTJyp;7cwx+m575* zXFsMF8QN1fl*1XyT$3uVZ=ZeY8iZ)68dYjvhl~jfH!{O~2@wBlV*VqH+0>ZIw(3T} zj$66!i+VX&cu??_BuO#dtVBkfvXgOBAd2aSSsACq(YYYk7$-Lk$fmUC5oe1jssl48Bq9h9E98g9*fXRhr8Y;;ut7xISCL*R%>nF_Xh-uiCh&;UTSEx|R@oBhsZf~Ulu0z1)pBg& z*Ogf#Qq@j37%V?&5+aL5R=Y_QeSMlX(RX|(ty-vD)>4>TEA^!x3*9Rrcu=8PJm>rE zCwnehTSmfS+VtW1>;yJ&oJv*`^Z#82#Z6j?b!L6EEx`u-nuB;dh&ljid)fS{Xb@~P zi*}<`)u&zrqf2;kMc+%ihv$Q>^t)r~pxC@e+i>jy=kOQ~nSkt3_4G z+M-E1tML7Zkiht25wU_+I7>0o#W;PsxwPoEmra;f$2Spc%<*r&ek=0;jf&Q1*w%5s^wXA#%~qO zh#SRC=B`qIt_EiOy{JziG9|C!tLZLew@ae?5K5;pvNfZBA_N8h4h6X+ZHEc=OnAFI zmhY7TFs4X0_$ui_Sv9d$+m|uSzp`BIin2J>R8F+nz-)M=3G z{01iNkEd|(#AsAi_Wuc%JiC<~)+G&fyxzj?(0mB075fg$T4A9Ap~|1muq(6^z~QFm zZ>?T8kuVteE)kw>nJT9cdsBW3R_m!)7glHo_}t2k2OH$fhSpnu$-zLYT`H=QKMG$Z zEfQ=jM0h31O!p24srk0dE%3f%bDpZeatoEHXyHie)<#z zSWGbl7b2%rG}68^IU;NQ&E!MOP?-SM%C3khuh?y&BO-w=gFpIqIZdMW@NbCxQd^hs zVu*4dpDWlwSkn2o>(;=g6wISjX8;V&u%mDU%>MCejb7uNh&PbUdAp}9w0nX=^di$b|9Kw6#yqn1(n(D0eGQi*C1$dd` z&mfuht9)~i9KB9x3Uh)y@v0)UWsW)NEqFJaRNIPSP;?C;e>2SH5ji_-Scl6B->a~(9VbLZgI zApw0}J8X|&#t+Q=ay#5;nzHx>ZLKqP{O_|uO(NM60<6h7WHDkw-uVcCOK|po1pyOu z(bi~FS)~*!x7kA`w_~Y*pkdm5zBDyRQE^gPsnt9oXL}r<_I>lh*RP=0&ngIBet0=O zoWp{ngW-dtYDfDph2$dCqe1k80ym)3T+ZTqjXM!V)cZB~IqIUWXOP%C-?U?XzL4uo z0k`&n0>BUHyGbNhEW5yM3@V z>4)*}t!84`K0`*tGMeaQ*tq7Bod-;EO)EN+Qoag~t}E`UD$?^itf&cx-`M)@ugyyj z#Y1%*=k3ze4VrSAXtk(M2mf5isNq3xyrR%7L+RnBebtwa@Q51x5~*Gm z0_Ed*4M*RVIW~Tv6&rD!1FSoAVvAdO-61f3>c@Tl>F_ zUBI#Sg!?8Z`t~VJbMb5>=3lUO+0Fyk*9uOq$S(F2{dr{C29X46cklR~%-cq~AQk(U5dS7ne z_<@EeIl|y^6v>k!d=JJjQX24WbF0UKaj4a})|CoB;S*Pfs<${Dj=BdAYfv27m|5yfhnB{#C*P6g)DB|bi zT1`3d`9@7&!(YrU&D&zn+X-o341ha|gxSn)Dm8@33cP+_HRn;QvAQE9%9+-yQENS= zW^+PJDe!taZ2Y5GgA(j!%nHwes2N6!?g&zDVtgtivrIAXyX-z1w%(Ub!Wma^YB-?Uw1#Wn3?HFG~fm2vUz@**$O)Yuc_Al;>9B;W;j}~?q-r_F z1veG8(@>Q*WV{BI?E=y{0VMD7ImTOVT;W}J|3e^69W4U~^hK0rHxUDfVK*xg!Nh=4Q^cM9Px#W?w#NKXav zlfTqU(I5gT#*o+GF+A6A@ITqjDEK7aY-^QF{_AvRFw4Or^-A1U16Z*I2np7|U8nOC zc~76fj;P$6zUN|{=$vk3S(y)Yf6}Hv|NLgZiolPzOqCgzZi~bJ zthP=3#8Xwpt93dwHp!Y}T9|PsT0amb887KUJTtR1-p|X3s1MdK508IaJS`%CJDNUTSW=}J2Mw9{W ziEf1zLm+v01ol|SVMPTkk1@`P!VJt$%~L(C+bFvP980G(i?#de#?w791g%DP-q0!b z!QjW5#)3!jSG(0|WFdi+uNI^&Rk0O?+>1*V1J6cZ5agx%YJ_9d(_zQ})4HF@;G! z9m9^#yr&7ilP=3KM9y^8hi5(GUW9R%>8(9mWzneS@(X32Bo4Eu;|K-5_mzUBmt9_n zBBr*sOn1Zrz1zT8RgTy%}d?L&u_K+`@*9Kf-&RzFe; z>S{xMNRzLjx0VW5tS0fQP}M%~>Gf{({IVTxp#M8f;!}l}m)DG)`8qps_QjYrJ<}}q zM2_E0+ZGcomQqzju0@c$_a4AJpGUaWM)wWH3zX&zcp574FZwEELGDDEIzZB}<4WO* z1+CpF0~h#7%m zXu>7p#`Y1g@~e505t%I>JFLm4dOUK35vSM8cvRsXId)2MTKrR&2;FvD%(3~czAEc#CvH#Xvw;-Wi^Ax9~Sk|gOX zpRZ=+pBqY1(U<6Q`$sYlh&l^X72k_cQ;mR&H1eB(QN7Pp+XuRPE1dJ&8-D!=M)dKm z*dffnL4$QZ(K0=_0CCs#GzI z01D6QdMc1+JZs~;Je%TL7~IDL14fEarU{0rvA+Rh!=JnIt1={z78o4n`)tGvfTH>P)Qz z&d^w#e`1gL+0|$K9Ue&qFYWt>*YPiuuKOiflX82L?|X~Ff0DXnRQBuN7NLDtOR&vC zJ&oUsNt@VP3fZYTd83(X-hE#P3hmsCJtw!{ycbkmY|(pw2da0I`&be zU&Mw-b*7h;hE1&`g-dOTe44~%QM{5@W&j(68(GJA$gbfbjQ1!7vpRo;%be?^7Jcig ztDf%lF56}G*LI)K@zrqk|G-B;%m7e?WITmd^4n4i^-m^@#J|y5?Ht$tn!JWdsn&KK z!;-M#8k;C6e(Uh|S*xrb0%!|#Ct0)xKnrkv#g`k2)4qQSZd;Q71r`{U*kAi)Qf{ZU z9qu})rLdf{T9GZeBttmt`u)e!(aHYLw$_*lqB%;hW>~DHSkFS3fKXTrGuc20W>i&e zD2FB1Ygd5Z^HrZiXgleDCPnstvtU4v&Za$X2a?~a#vRiHXt>)UI3xNU*$$W_(9p{e zc^H!A@q~Cp5t1pF;}3t?nurjM%th?dHKdL8#`egPX~TsoS~%r#JP28l;i7IiQ5t=- z;yU3Gsx}eET{vaea3JTa4YH()n-plqM-rC8ajHDw{t5MWFLL>DZ7oFUkqO`gJ$nBtRrjEOeT@uSH&Z}~)iLR(51lk6is>%h5mH+kk?K1VdstG}TBz~8i4B}; zIj;t_xM5d=%aR$;Dy?{7q6$Y{O|PZc62@c=kNDAo++5#hRwHC{v#LG6@`a6RsM)u| zn5V1ja%d?1oe9>&kFBa@uLo!}RAU~sOhW|wZ+tbl9taSVWivX(`piYf zyD}{o+CF&pfvLHn{(%BQw+u51l)uu+^-?0quchkyjLY~V#bKziu2EFJyD3-ml9tLZ zaz)a?C5Mp2DV)Lj)?^(v@bRhj_)D|#+urz7wnG15FZrE zy^=P$nj#}ns5slgN&tXEkaWJhS|UBl3foE){ebPnR_crK^@v!e7cO!g8YU0Xlvy?G z<*Bgg=alwyn-P;bKblBN+TQ%ty&1Y$K4U%l;4u4#-2xr*W8w9sO?`S7dtiJw+cGVMtPHmQJ69DwIa|)hzO-$`A9+|}o z^T2Sy8Et`5xS*Osaf9Iq;|pUA&S!_8Fter=bimG-S<;KRU}a9t>xTV52!6)RvR1?e zFY|Ijd4 zu>An<^6n1&zrNdjzvo{Ec@$k1;Z+EqRrWyV-!}+d0ynvRML#2UCs*9vHgqsAMh&<) zvN>|Zx?hb=DV?&!FYduhX?@#Zi3Z742jz~7i<9%>IjWFm}ujN)?x>bTs_U)VI-(C%*rM7Wqf zB29Y>6>m1Z(-+=6I)um_;RK!lVo(L~DcC>(*<%y18>6W8oTw`KYLM>Q_txP1dWeBl zsE!b$vZfLW>2bvJmMK&5GhXcAKA9-#fO5ys!bNJ0OscGUoTN3?AWHC8+Zmt)Ozi4p zjAZea*h!xN>U8bVp*jfzb1Q^8jf>FDj}V&u&x&vas5BR)t>(iw{^`?$GvI#zOUAde z^${(-W|ipQhdA<@{IP`I?b5SIGpg9ry)&rTn?b&dH=tZC;FWUJtT$KLW(DI-Q zrKuY#Ort?hw}}$wE?jZ>bPXV~7G4C*f10Am-I=aFewrC{NIiT2+I53Qx8<~kxLwy3 zLR=qDe6qn?D~=H-V<4;lW!>B`c{v9{!?brqW-Cg;k=(a5o4^BmZY39P&MAH3&*1`1 zg07IlO+c~INKehexS~KpO<6c*FdgKvkKO$Z8hA<$D`4P5zsEV8<(ko%kcy7Or_b*7 zbJ_C%a(?+Q4S?q^@O@lY(5LG#d~j{u{`Pf$Xt@~jpKOf{Ed#QqmYV$1KRCKH%2p-g z=m-C;u7CebJ;yoJD%8CiUA$#q>EqMa@}#FZx<0QpZS=5C=gH=fQ1140a%cCfAGYM* zk4)A3bp1N}wQ)VE?Z)4p<2?Lsay;2T|0^t9==pz#7;A85hCPHgggJyeWC7!_AS2uy zKhw+7To2GBBu*vv945}t%tdEOScfVdmS*EMYP>?b3rjfOBLf;eO8%l>*fu768ZZta z*gd-fP1_ouvV&$*GyR`O2#CMsjVGDw^kpE~R;pnUv;`&9*HQtZ0_v~f7_iQIr1tV7 z#M+1F@i=%I$;nxTFn3IbbM!=$E6XlRc!^!z>I774(gx*4`^#RGu7)ZYq=oj-8)~(z zam}Z@s9&zPQyBiq(u)n_5G2to1XJNkO=vXVm6e$vhp^P_N9!>SK&!$!>mIO^nLmTD zj4$M1F!V%Ebd2igLbega_Qz3Ia`5}l5fv=CMgdmc!65a?k=oWCpt7tR_@GgrmOk0 zB%pSNOSU=?CARGvEP9wP?|%Ip=f2MUE`0_cJ!r^kL!_k)B%0NmV$o_r$fW-7iAU>& zoBrq$FJUxqh9`11!)F5Z--RhWh6vyetIr}DRXO~ZpXb2~V*-UEvexdEz4@pTJ4W+g z6udE$!gR*zCwcfp6tfi0Do?QZ{|BlL_yi)j3ShO_)Sie{7kWSfUjIm{`5avjZ%_Mt zdpE|KmZomtEI~7KCwwaI#6!9{-ldS|pCDr$w?dnMwO&!kMicVPQaA5!!ri z^AqS~Aw$;Zlvw7IuPo&MK|djLc8axAwCUa(mN>X~n228122d`CtA&{hJMd1eHY3XYsU zeNvfDKpjWL>!;b#Y!Y(6NueBigO1JhIqI?V;0()C`A^c5@D^7z=;b(F5_97G>m@a5 z=wFfWL=1U&5WGC6&+hd0yhEY91%6^s7NRt%%h6l1GKkuR-t9H<>#^=1<4Qgc{;JCLJ3cTEn&Aw~IoN#8 zVJ#bW9znwm{L&huc?GvmNEX<1v=qe)YwC-}Hr4hPwOb1$%IiZ7SqR99?&8hN935Ry zY}=EU5zri%IocZ!0f2k7Ki6T*lA6wtlDwZVfSJ;q-h`-<3>v_b`k(GVNUxI`p9KKB zX`aRg%E%8P&u+xfp&D6e)dBXXxb%hjssfX;MV~mc+r%sFI#SK?1+s=qhE0W>Fd430 zZsk$GtbI27j-$ilQn7KQ;?eV*8UMU>Mpvh3Q`Xa)0^2(UVC@0z+;Tde|J+ONz_we|?{ zL}0bO(EI~QBd{)DBdb;3jI=DKU#JyKzz9Z!_(3FnmZl*!_`S|EYxizd1XTfY6Jmn2Bg=5dAr?oGU-=J@EATMO%-5uF8{G#};ZEv;9+_n-KA?dTKvH zo2UF4qWzgbkLG%cHjcaAnnV8w^pwk^iD=q=adXgd&oBd##^;q1n(c{4bSA#A5zAPA zndB|F1vGAcJ>ZF#BemaM7Sqc?O_eR?O)7)Yqv)qxQ7YrV!{JzFp168VWQF;7MIuzdT`-W zxKJ5=YRlp^4SX(jDZ=DTL%!dmap;EG`G65c+gM86VKh{&a~D!z?gV1;`aa)h8#8*F zt=evasILoDL{<^r_FjF+boePEm!$g~2HcCUn2IZ8q~EWX>kwh|U=}%B{}=p!Id4vk zfpRBPNn{RqM!|!5kgXD zyP{ofbx~61ud7a#0%kSOt)(`9{>t#Q63IC_cC%4+DGXP4P>hW%J9ob!d?nU<#>PP; z(f^HuqOqI_xJ_>S{h>0c#{JNkpO(!-dxD3muFjse;*!Qs7RE6$6P)yqf>Ziz?QCpV zB%fMgAAramF5-_ObW*{GSe;OKDWfM-GB#b?(9URtC`ng%`&!{K__BU~VOPg@b!jp* zM$@wLZf6eY?|!(t!pUP>jBsr+qq-Y=I-}+TET(fRpRlYF8{2eDE zc!kA$PGqn@R5;c>kkq|xF@%|&ku{sWDXMITQ(X$GYBLxdozYQ$bLyEl$7lX%j?6qW z57>2H0(g3;CQ8pkufjG*sV*pEe40aJ7GJfa8nivJ%lbZFk4_N5zA)pE%xHKq=kBFC zcSRfr-@MmZ#N#Qt1)t0o@<7Er1?7+H3w!>R4mseJIL9yKPJbBx~AzUDaiOvFcPpP((Ltz@3r&;4P!~ zdui@FwO{6|{dVI|%HSj8nI9QXe5C7wu&r`qw$RVTmM_7L_A+TM$cYE!Ve=Z?y2dl@ zZlruTZ<^b1mYGII&XeFuH8Ls*>-(T^+7a&c+QD>(X^N82vruJ3F4RqN@9ei2qsBz7mg8O(TE8dUObv?F}HBRSU9uJ z7G~}*@N`;9E=D8 zPCcC0h!+Fd6!yLQ?71`FZmuu$A~UV=EumP#>)GY>r_GG#k=XB;ahE<(X)t+b^LYcnt-7l& z(}$Ko(|Sl#(ntQ=%B&=;i!TJye5m#;)&~^cf13eu2Zmc>dobL!&}N1-JdU> z?qJrT-$v7U4F^>%DZ zJ5QZ$eIS8Cb}&i7$cJpL2<{@HD2fTMZ>C~@E~JH>K36Gw-MlA_v;4snsd3X*9*Q8z z=;z{pv5_INY3kXl6_tL(x^^pP8&=MDS-IvPtMeqJuX(GMiu(0MtCb#=eXP6+FS}qp zUbs50f}$%1V-UCRhe;Z@h&#=*RRWfFVIr!+0%{2uBA_yyC0^$TGhfiIua`jy2Pp{UT3c`1 zHWYrB0|EgheLyQ>K$~~-+J%PE|~~01wslG^zH)5 z03=bsB?N@ipf?Do_h+@<*(K%yf*^uXu^8gT zB3(v+TZ#bG=^}`6c$3F@GM(u42o3wwP8aLtJNi#Lf9RkvnZ&uWb9o2L@W)IG$WXse zkCE^`o(x86VE?%-1f1}_vV+-tW*?cF*)%VOzd}MsPDXDAx%qLNuWlvy(&btNbh-?} z{Vp_$+UC~YfDns9Bv*#3X&7`70gOf^a=1jUWou&fuq5mjo`6g&TEj{4QfAC7gUmvbs2vIA9SVM@gg^*V9`orHh zS1ZAKpd4ydNJ-V5N>$}&@6veO3?>M^1PBkr+=nFF&8yO_@jFlBNp@#*pmF7RNjS3+ zOoN%Lw1Fpq=t-Q2P{(4NIfO&2P)cX={aW?KQ)d9_Z8 z>)Faz$Y3^|r+szqb`Ap+q-NXZ=CjGCIjZN=6atB)o-Llg&-2;&*;(B0gJhV2X*xX9 z*RE!myKe^f`FONBLys81n3YTFPeKisf5+tu@majZ?RPOp01>*bD72|4L_43Nh(RL! z$MA2I#SBVn2U8V~lB|lkdd5<2?kwd-s-Rqyl$#MtxsfU;FYXM%Ya0o#KYqGcAA8@h zY5g#Uu<`IOO+gV}Uu|2ku6rdq7$Um;JGA$~5U;C*S51T@uh6YOZ{EUDn*uwAf9j!^ zRiXE~*U{iEunh;pG#S{yTd!q}{w)&qusMC<0-t{3EzwSagjE4~7ksn%?do(p$kC~l zJdXmos>oMx8@a=sWTJB#>rAJkTCu6p)JE&Z*~IE8h92psiN9c{h`vnd$WEy@uk8O1 zU6!QD?R=RM79mW-w3Zsyv7z-7f1a%V7%>MPMqr|f6QYMsm5Y9Jry^=-o+=YlP14k* zs7~JGQugd^3`LPit;woJMYZ$hxz?uq=d9FZSIchHGqR>< zD|8?!w4RA2A&B^R)wfW)LnrmC@pUqc*iSz42-2TkvG?BhR?RQ3-kJIp2`|;ey$}00 z0EDdUFLm)*R78e|wWV1EnjPa+6}bS;_%)Ta zk9R4V`}o0+Nj&&(p5;E)7y^`3_MPS016#lB9PxCf%SmsDA_Bj@;{8BYL>nuD1BTa% zw+nzDPl|{t)~=MCoyb9qmk+uFAFQN< zAD@o0!AyzoUA(resE6v62Aod6%z#qGxzg4+qx zd6envdWjN$x=^!GKWNpavb0nyN7`>y7#La1POl7|y{& zRGAmTkL7`5bcioQ5c4F}~C%Czyr z7{DHW=+XG8x^1%FZELk5j?mjV5R3LBg&mEQ)$X%@uI;xIBPczs-&!1l5q?}ViTio7 zsP}}P+isrAihS5hxC8dfATN#vef=jFd!tTIq$z3jIekMzq+%Wv@{+O(G?5S6$@b?Ldb&neUT(9;vahN{s#@4l0ph) zZe(+lw&)I*d0XUaI2?r{dNC^Qu1QpMvB$tN?0YQHTwcR~2G#8FxjUie5PkW+D zxJH0Op5NRyxcr4at9rMny)Twk1ajX{}kBueaT0C~1iI^i6 z9VRV_t1%3DK;;&1HIQ(NVWfrP7Wi8qS3{-IxEinR!(`*G-pAG0iFLf&d7mramvsvP zKMbrd%xl)zO@*@nFjkkq3jrm6*7nEr$tO4X`FJ!~6j`v&upzP_GiD4sI6Ez2u^q5f$qg%!3*`dmfvuBiZK8Y!G^OSOzbM+X`0(@Ds4l_j z+rz1DfPv*~njL@PJsPzf&? z;r{ny`2ueTN(~KPrNiHs;tT;A0{rEd{tN*$f3T%--%}7I_sc_1!M9?ApFc>jF`M@V z`K*}5_yiP(XAk!;pC4ghsQ%(>szdzmp>)q*icX|`VYrJ1f&71qT z4=;~z&a`t}``humSGS+t|Cq*Xw%!mefei%1V+B9EeZU~W1nGSLSP*ZZf8;0uYosV= zf1%DRwO<4(^B$g8>J;WvH2EH0DtM~kse_S?0((AD8P}%yDGux*AHRQn@~Lz4?02RNAhlyIz^v+tl8s(l&Lqslw*t z?X2s?HXGYOtB^f4&B$a@tJvVMvLR$De=pH2+mQ4%@P&>HPT*c5p&f&NM##Itmm23x6CSpwsmgQ;M@hzT4~pj3df+`0S37lO+VyU3#%4>_JZ4L%oy440S@HdqK4xZT89F1-c27h{-5+m0g zXP}_xjhFbiZyuW(5)_IPRrs4Ye=BYX+uhf|Y#y5$qPE95H`YpNabk?bl9#dr-#j)o zMD1`iQcLcJX%a>#&G_?4(ic+czs4(UIwP1EL1PlEFze`re|2h^gH ztF2+#+~*0Rc9(=SWe^BK&{kSoF`K(QLClVt9b$qx_BR`1!4j0s9iAX!Be6~lM`sRX z3@5zA9{T3~j=Lig#Ni_6j>JIVg!>wMsAY5h%W(iKJS-ETfDy5U7tw6)e#6tn83MD6 zea#WV*ADG#-F(%sL{dvve+tYE-p1C@(Dr##7^Oxrb8IM}Ll7r=bTk*+P#JXdY8xhm z171Tz+uNqVx$wDg0BVJF&Jhsg(czqpgY69p*?%%lX{(&Pl5B1qLg?#pb4qV79jmf0%Go@rgNxA1Pg_ zYx88AQwgewm0+Dg^suvtEQ5Bff!W*@Q-OP-b5(bA0aOIfy2L)~_J>B*W3~KroJOT& zR$oK2z4NQq@@T&>AFM9|gxAN1b1{y_K?Iym9iDh(-)jvLb^FtisN9w~96=fv9W038 zYeo0E{ozQ3`xTGVe?0{O1Q=0ll{GrC{pkoe0fGXJOm{3A1aMuX6WgCiMBSEuMki|R zNO{-L^zEruZ^#p4hB#|*Mce~q@lQPPX1z>7dr;3>!y z+7xsO*T;Pdm&zi~GA+;QEYIpJ&+07CqAXvEvM;u6TbL!q(c6X>{2e95+IMKbK|Y$J zvo^?Cfy1=OO?@q%^&R?eu64yAi=(Nv#u@G!o*g=HqO^#Z#^7gB%Udrj*1kj2OVk!E z8X*x+u(Q`oe~Y#6&=9HKGf3iSg^V`X-%(tweTSw<1vk@6YbKVEI^vux#AH9R|P_b4z*9EMFiMRSow zJUi^K7JYUl@W3g95VTI%_Di9Z>JELrO)Zb_wnRa|dukT-0bj$j!+LHF{-*T!UQOl_ zWzeV*^ff&4zigH-EouL+G4V0j><2Se`4z@0AI4aJZW^&iCi)+2fG)o@K&OwT>^z(J zc=qn`f9&1k*}KQHcaLZ99=A!^uZ+J<%HFS6CU@7VLZ^z^kIA#?GI;Fe%G9M(*KA5OJ{18te>x%@?m3=fYlPDn2sxQ- zV4krhV;b9Zu~dQzcAFrVAwciSWYk(bc473{arD{g z=K-AD;Sm60^;PB2jDjW%&pANbT3+p3Q9wSW7HZ=6`dkQ~44!`?!I-i!suI%7f z>fV!pPsC*ff8HqqXacV|9e??CXF_di5~Jd9yhZ%ky~p#~i8#(qyocqqi_<|V5#snt z;ssT-NjJvt-c(Tf0c*uMV8_x5E4;B!UVuxIe4-3 zxI6zvDrciS5}t?ZLT2EG;wX`omx{}+ZAMiR2!K4K!-)+x+Ly`LCdvOqVX^7SMsWVZ z7!PtB={}*ZnqN5t2;LN}eqEG&hAe5@a_TEZw#LW~VWd+qG8ey)T*s#eQSpit1yb*| zt|c-He_{Z!l|f!+vPtZR=}ptX4mt+thT^C|-l@GKo2W1hFkGt*seiWBM)zO#rIWf% z4!4#UOx&m&G0&p!X;J`Vy~;Y40}$Nj&cG&9?c@$oxnNoPW}iQ7$qsvNTDzf9+XiGyGj9kD04<^EWaJ4E%$ai7?t!YGrg#ueqV=*xw=^o0d5cbZog!|<@* zhewcwr!E?J>ZUR*ecg~#H!_Z+U7kjE-f9Dbp*9#w$o@Fgtt%L%^FL&ez`%_R;No|A ze=p-v18aX@3o1@`#;zsY58I#em@-;#ib~dMXH;fV&+C!(=o$4O#x!8Wio9VD>yw@$ z=x5+z)kWiB)lKbTecJM{dOCc(|MNz#djofOK`tT3goQZDBklFz9>N%0ui`Q{Ne6?Nld` z229v@L4rNPzdylGw&<0q!jQ<9ES ztkU}cvOMk2_Dkdb?xEy*RBy)jrz!|}Vl<%t#U|a#BGZ{zXPI_L>G<|erIC-je+t)~ z6NIL2mJV;$$GyB%KMP=7m)YvR8V$xr)F`rYEg!=S~m%+A5GRU zpkg3Hycsd6>vA-7+N9Pga{P*vOR ztFXSlwAoK+2vGX6vUq}~woot!e_%g<)28u8n>U$uQQJ>Fg8r5NSA-@()d#-AwT9xXbm@@G{I|m|ovZjj4-EX({ z04J9_C_93h_dV3{r8J$V$>4?SU(#s~!Q=sz&5P6`J1#mdGfAKt zw+TcM+$pmAf55}%r-j}mExa}@XT|Gn8CQh?l(}ha3*9Vj6RY%7rAspFAC*vg!J(Vr zmnIqkJAZ_bi7+|9{51)q`zS1{Ba^!-SNvidTlMP%gG_zIFY@GiP*2H}l}L=c=ByQQUe5@ql*_ zw*M%ZhI|Jlb4z<*)SgWLChHaScM)`x2f5XZ++xC0UI5s zqdUyOCq%gIAnJZv1Ye3wYkB{F5OEo%OVO7R8vz*t6i=5d8v!CjrBn5m0N4);gV5j$ z4soj+=(>|scV$Bt)w1Yw7{z9Ng6gRlo^zuret)cL~O+gJYr zySYkRldV~PH3nON!Ek`D&gXRS^g;z77{xdyAl-mSAQ3Yl1x8pz zAkD!F&PT~4cu!yd`oJn=Dq?VM@{x8y$QXx-b*A12RKdDv%<+xENnzVVf4>uhkSK&1 z^XSERmSi{Vh!eP|%GMQ?^`!AEH~S#$=*H&8I{%tv>rZXBXWOOdOFAQ?IqFPE$Q(F7H4IW^ieXBTkn-q|U+n4*n0vIjgs0$#CJj z6uEIVKc&X5nvFH=GA|wIa2@Ns| zFHB`_XLM*FGBz@oK?w&bf5lsEZxqQ9{_bDVAMZY-r>nZEUn1)y+l0$WiG(nbk|1>2 z^KCdQ;6?VLaQ{9}_3ju9q!;WSA_3bw+tc+-RrOOZJy6u*f}>b7{)zaj)p4>fDL9F2 z19F;@4cKKO8$?&suGHcv1iL?pBZ^`pb;KncVT38d?M^JHsm;S3f2pdCs-qI^TE;&$ znea@GDcG->9kUc0MaQwUU&XOfyQToC5i)XeoJ+fw9alEMxwshAo*`EksT$-GT#Rfh z7jjV=mckB?YxuA{Q(h8a$YGbB_~u}Kj8qZtp15w6uxY{V`Fu{$KXM7v+br5H@X zqAp2nqvVpBT1B!;IYb*32S|`1QeCQ0Fo_1((X=c|E_1Xy04ST%F^Vp0Fc~T?r3X}P*nnIXzyNXo-z%~`UgxEY8MkN+* z*Vu;kpc=6%_Ds8K_oo_&fosBZQuWLdG+t3>2!1b>-ze6 z0560W)1RlGrnBeNz8pD)~}Zk}!2 z^vHd;UH$TE?ZwCM-48z;;m^ZC6!EYl_7eFBje%o)hQZ*vK9qV-6rU3d#X5Tb>?!$3 z=>xgZE12`W-2IcZ2boTekDG+)~30 z#2pkDm)o`f&&!)4KVMzGUj57nHUj}^@-XLnK)L$*e+2}eHm19^Qz$;iufsz!ev2jX zY)n+x8?}NLeXaDZ{00ODmMQOHNc9ncu?J(ce_lR9q|sM!?kys-7h=QLAz~V5soNbc z#!ASdwEBcx4bj{O?pR9w5-8aG7a5!)ARqx0@C{;c7X~i?gUmdZWxJ#U&8`u1Pr033&O^c ze`cXt`3uk>g<1d(EQ2%*{wllgk$lP8fpfBmjY9GX{EFPomjD}4@u*q4Fc#Q0T)`Qr zbWj)ohSgGHnN=6Y0^5cWjV=G>jBUdPi#(FvE(}=!MuKai+H0SvjY0J(mo5rj0EL1y zkoF_v^oSflBVg9rg^?D35sft*m*lM_f4~|nkL;pYV7oGSJfiSnY*Qlp%*ac+D9QpT z$hZsA8GedtnmKxu^j#QrJPZP%qwWJ~gcj^LAc>9K=dJ}PoscY|y0qpI*urq3PAYw? z&;le%8BT#(mm~CH^*WN)5)a^5fJF(pk5;%v1e;o0AXU#r`ZyM#QRo6myu~(Ze>o~y zG87NQwgq^UU=OLr8K4kr(+R4<(vK>%0Fx3SM;8mW>~pYANkP! z<5?d_E$a4hEI_6OL0&-VD9)REAS2V*k8iX9o1$`J3$KEd2i7SWLAM`R=nk1a!cr0V zgL~?xzyIT(&T3Z#%mOv%T-?>$e^;+w{O`%yCTDO*V7dQfH=S)>ZLZJXtS;7Wf6J5A zcDug5a=iQcr+3>Q&$p}X+A2z1IGP@BuD0zdA6p|88Bd${7&?aa8j1#xM~~g~Z2fNQUfi|alhw=h5s+VPf7e&r8*5-T zv1X#1&D-mX_06uS*{=O{{p;oGbo0(NtAgRYHN*?*&StMCt7|M`UCsR(%`t8uzje6{ zR%>$a2e(&v9>jSd^FZf8ng@9vlzCA11D#jad1akf)_G-}SJrvua(iVKp|glG&(T?y z&a%=hE6uXfEGx~j%DiBje?_Eu!F2o6EGx|-(kvp+BJwOE&m!_HBF`)5dF4E>oadGE zymH>H{9?@J&Fn*RS$B+T8HmD2IUQzH9+-jbQOKT80~iF_&T4$xC$fSOYPP`OnGcgG$Ke<(z9Q`?(Hj?JLTTO4epp6he@F;!9IP7_fhT~W z`sq3Aa0FR>QtO08>=6LU2ygx5oYQa+$r|sml?nl5l`>*tJ%Az)M}aM&;9jaoj7tP6 zBMwPpc}?dUY2Y&qbVbvOzpZ{eru0?BYfk$}k3Z?O!gOc0c>_~c-1 zFZczalC1|CJ;Nzef32B7+PYtvDpHCB;_g}G)Q<;&4?BjAh$1Be6N9$3i(xoxt5z@e z(f}&>0LIc}t=c|_;k2z#K(_Kos!vEQ6k$|i>Vg=~+lpEdTf-?)>uIQM)^2TdI)Vy}vT1e;xq$y?s52&1_hf6Gt(@c1DJqadqWYXtl3 zW5~m;VP|W>VmT;N?ED>}G<`D=dqpJpA?gvS;v?I6pZNaP7#_b+^MJG2Ni2vMb~cNo zyBo_-{qXQ52%-@Tg`%kS+TfXXP~4~N;o(adITb>*#S4OHn zb7`bmh+NDl18P5f(C{D@QGNw2?Hr3J0+m{1?V}hTKTvI;7;lFaT#;lcN`cysVKh8| zL{7f7eytd?Lo93+>2o&?C+~+h88zuHwJP?~F9NCb5e(m-b|A8Q&Dajk?1kds zyM^G{`0NgH+aUxawX|jl;%MylD9*-bch>nQjqQLNm0&xtD%~E%+4#)Lx^^iGwm@n{``2+8slVEL<3JO-{fV=WQY$;VvDfTx&u&_t57kN^_)J{bCd_` zIqEm|x_c`?KI3Td;f@x+#?j)}I9mMnj`rcP>PLJ1?)hu`4;TA0KHS#+&qsZree_fN z?2bwAW1s&5`7bbcld%V?GU35N+05v#25r#o z*Iad9A8s5obeUBRJ7PHogmo4^7ZbKIx~X95RPD_F*RtWj`MU-(8aOh>U*XE-OjR-GjxW?Suy%&1L#8<>(6 z*BBd&qOyoIf*ojod#pbl15-g3_l-^=oZ!%mb$3*vV_+nYNR8em6hP>N8o>cYLuvFj z30a~>pAeHxvC-QEs)4B+!Je&N;5~PC>`wH8FFx_kAcuIED}y{aSIUqg!%%pKq3{kv z8V%ESob0SeE5t}tdY#P3Us`u&c;~U@_t>ru4)ed&{ZTA`p+?gBpK=CmIwX-)FB>Q; z?&d}6dvwP~M|FqpxMs@kwENqe*ZS{=kK66lAG+?MUw!B|Uq4;i)%xPcN2}$%uh)gz z1|XVEK)=f_);55Ae6U)dKYzB1e!Wqxy4SDXoOZAN(*1RPF<&nJGp|#Qm-EZ7o5kkk z3d${(^X+PX-JLF${g;!~`qO;dZFFouZa-a4@K)e?SM-yHtCtKEL`#JK%eQ)Xy%WK% zUYiRLJ);QJn_L{d%=Z^v$NNQBrK=Dg(5>u&f9K|I3>=Wx^{Z18xVldAv){BnnkQpA zqV#OzETisZ5-s=d)ndX6LJuBi)(Q*x!s}NZhawefc*N{?`qDEj2wHN8HiA)yjFz+`V5JT} z+EtE%3!J^sFmy+z{tA5rxCGw(ieJ)Xu>KBVy! zpG@OXZYVkpe4b=Vt`_uiQj&hkMnX;|puB`hOA%ctH+{U9pr*V`MQx()Az`RPMp8sq zh3Xf_$lr0xJ)Fffr6K{vKI{L>aid5;wI9;`ii|U5Jp(B{pibHY-%%(17yI#xl9#c; z0u;Bb(E?Tke9YT+1}$dhut&u()>76Rfa} z!V;<#TK_y1w*@rYHKTZ?v?N7|GXXP5SbJbvg>_4=QPuvqCCs-a88RzL3hUWIH_1-r z(ZX31^QQZwQ9P`$;npJT4lE^_wD4f9npT{#-+VL#j zpl1RtFp91h2((`RIhvk8CJxx~*V$LDktndv9-Q;i{ zVAeGSfB3{$rmob8+A8Zt-cp<*+Qs2?(j+X{(=&IS=NEK=!%dpAsW>TUVpO{E&^H5S z`oJ0uxF+4D@e1?d+LH`DiNzb0f_W3Dv2=mRvf%=$!E<_8J@}ni6SBgK8K5#dai|D- zhZ3XrY~ce}!))Iv>gz9+{NjcRcv_41CnSFee*{$FB29ujo(G}tUSDL5z()FqUltgY zNOv@U$ zQ@36^(qb7}P&aVF1`i1^%fK8p))jO>$4N~0v?1^IXe|@TdW!XW@@YLAJKE4FTvVB} ze>YD`w@;uf05FqQCa6?7>N+(^H`v|1mE{AK&Ws1OLNYDIwsrt64k=Pq2x#pH6atfr zzt-ztDPzudB+I>PYK1`P1PcBg&sL|m*>g^aKxGEgP#LZ3M3@4<8pBg6orFn3RxEPJ znp4Pnjo&=WLI{9Yyi7zirn)zcnE)B)e=`m%t`+oLj|9j?5*&+A&Sf=R5(X>Vi1csq zC_$5mH}v+oCD%#&LO&nV?Gk*Ca-cwS!U!419cJ%h+bj|kfw`n-ChWWOJ?g1jXo z2s>hCueq>+*|apR!cgM&l3~{eL_u}x){?H=DYnpBQa`pqHiBB%k3Snai!pDMf3xkw z9##D?*$oEEM`>|0uoyVrhw3{vVcIRQX6`q>a%0PK&zlCpO9#dXXXy*qv}s0c8E7bq z8TfnXnugIPh3;|5cxm8n;Fly#kUGt zQtkm>cCMplbzGe71!|jRBAW~trIOL?xIf`CQ%boYrEB%qFit1rN1<=xe{`D5o~Cc| zF45F_FGf_X)wq0ZElUH?cM{04f1slVKCt@d36B>)2)hTUr%n(2W|_`$;NUGh0z&=yCRl2^=HGV9C5r_ zdEJsMCZ+VuoZiFuD!hUn*n6q5s}V_q%f)L26DppGOpkV%LrRB~v6rKRilhfwzNJeL zLc>vaueKDm)^J&YB@QKr2*t>IO^78@LIy7l6SHqXYQ@zJaE*$de?-CiZfd|h6JEtw zT?r=+SLYN*E6Kzj-o;kio%JJT^sjYuMxSWR0kx4MBlK1grIZ%{q)DE-KbyfZX)cIT zBKtxqvCYRk)Tv`e$#Oq0hAOYTK)DEgki#vpn&S1%1FHy;BA(#HBRc=>TzM9Ix$=Z^ z<$1QwmCuMHnsVhpf1C4NbGkgwW^gir8u15&kOmL^tjx^zyH@Q?!*r!~oIdzO+CN!| ziuu+mvqX%u&2i9?Df($ZhDJcAJ+nST3+29+Q1m)+2#scQ{ct-$G<)&~k>F_fp1MXB z9#MRRH17>z4cmc$Xkfa-RHtYco&QT#`$vQy^`i~#Kd|C82ZvH*uOLpP>82oQJJFFk47i2WF z8)9!@^TSxne=7%e|KyGy>dWp#YP$Bg>hY`B158%mwcus<`~q`5{)hR2XUV)d_D|l} z68oIUsw}sYx?7FF6@vnPC3w$sVU^=@DCnj!7w0QGQ*#Kh?)jOcGpfJGI2^sIDkYug zB@1M9{%q%Xpy9+d^A}>tX3m4chzoy( zge%Lm2XP%W+f}T|1Cx@MoQo{?;$BnddD@!qsti->2Q$4?@#Gu(=n*oc^qj3ihZyit z`rM7J5bviyRwPsK;q%TnIP_ldLbd!C#>&paW&dK%#svydFdd2t%iultnG7S8Kg-`d zmRSOPf1Uo8Mca}U8kwc6&<6RkLXJ5EQT{H_TDdeE)yV7vzo(6!W!rq4AgkCq{L7I) zxg*_Ah7uosd;HTz*KQia*DNHqNh&NBHVNyKO+q$tiaNevKzQffT?Zy?J6j zFG5vW(A^KtUxlR$B|~;Pi&a3>KA3jwMoZoUf7*U==&GXss%#w6XMEq{Jez{K=D+wT z4wT>g^7)GxER}7gAYO9IxvFId4s7wR+@n?r70wq6IiC$o^x@+V|8mpdKVs%d*mt>i zHXOU-;3NZq9r++(k20H6vWov9F(;VfINE{3h43WbrA5Kpjl%`g4|gyA3%!3OvkGNy zlO>f8w}9RPSuFwgm)Z*hp?}044@AWgM1RF-gWo<|kYol$%mAf-j<6o*y4SSymK9@; zVUOS~9wUp7Tt(5@@6XEbr*ALMSNQ}Gc|c9>oKd^k(Rp_CkDpPy+y2!`_Sq(6%sN0Y zLEDaPf_y^8WDH}D88_t7%%a9U`>+-=1`Ieh{~ux98jNmCILiYc>VNf$%D$AntlXV< zeDwSh_PUWMzi)-xz-{AQ8|Z+bThv$q1#T2UW6UGnqQ>AxT#sVLAX1ImB8hcGL#B$+ ztp<%-!)r6K=!j!k{sRO0p;>m_#kgw|`tp#+@x@Og_Lx`IZJI zS_*PJ;v0|c=w$F>s%^S?euRULUx7jUr`))JJfBiCJ z*WYseBm9-n_xVA_yS#sKz<8MjW516G^IIV(5JmRYzT8sj+5bA#JURa7A-{%z`&?h@ zXTOBd%}=*~10KbNP?NFf69PFomvM#x69Y3eHJ3pN2P%JDTXWks7Jm1y;3GY2BLoQE z`W81$#ye@Jn|OA2rtNfS39`7ANQI=5_}}k2H~=pal~|H} zoh{Z>Os{`M%ug)?6xYc_NCgYytXW}&4x;k*S8{eTaK1V zYFh5|ebvyeZ@HUab63AhcMH>r-SRK|*S1*|ns)ui!#`o^x7=reOlW!P>teI7U|rDC z^W0TgY^hYKC!CvJGg3HAeMwd6@_+lP##(ycY3_f8p7cUhm8#hFt%PwuDn%{owIUvs zTEJ9Wp74Z8H8OF2)6L&*(x;~^f1=LKYH?Op2)$lrO-5pxH;leZpVSd|K*$e{sVzoU zc)xqTeA<^Z3+P2lKrvxE4e~S9WciUwbOi)cMiJ>X0|3;Agk(6b0ojdOGMv_{w?X7^ z$$Wnq3RFp0nv^WI+UPSMm~lYj$Ac+`k(+IIh>}}e!#^boCk)+U*8oPmIZJ}T@)iN} zlBD6yxZ(amtyHP29V^&f5bC$LOXwefqVF8HNqw#$K7p_4>`n+6r~J}=IbJ9a%TMmk~DL8 zZeYeW6{}Bs6A&sQwB8b+k7D6IT*rUDYdR9fSW@}&W=KbTPck0Mm*_~$lBj8@zLHoW z2HA;Vc+pdA1%PA_fEKMU!Ty7|566M=#I$BV4mv>!iQurc!-I-1S-mD|N{>=4il;oQ zY=f?$#0|u{!{Z}4MlcwhA|Mt*lptl*oH{)NE9U_zYONB{F~^F?)qaQYL@s~%7>r5E z^msH{jO7D=rWsn#jW3(5GW`M_29T!3n?7!iVh>hI21D_o8nilmp0H=#`Ou!xmPO#+ zo31)U;Z!;>A-(b52mUQH?$CI#LG=qHi$Et{y~H4WQbCf!s8`QcK1+GjTAr6y=9 z<9sN2STj<^L@E0CpbZQKYFS~0YtEGloGRY@^7_V<0I{Fn-%#~CMYD$h_x$sFqEUo^mLKnb`RTty*yp=F zvX3Jd!}vz^Q<_(Aqr{28o;?k&3>b$v;X~*)3eFFj_k{sM^L?=Bw*7yga3QF8jl-bq z0a1g0AbU6wh2ka*9Yl6mNsY#&0WFANlMi@_jpK-11q%)r8Nj=FCQ4dWMghP`6}3*O zs%P<0>nmDzoxB`bS#OpA2H-Zo<;*ZqGwNrwaZ{wrJ89Ek#QXW7<7n!AuE@R(+^Jw>7Rt4M!C&6Bfq7IkFGH5j6JQ zILQ$8-Yis4psMy;JDYl)*0yBk)OAf^Y~`toHn3_o=sswni(-o+(L&{Mz$7F>y)3Pj zKacy{A)XwH99n1}05$L4;CQcv2Y};tC4n$w>!6oqNNYf1wlaT1Uyz3S;jH!TKPGm3|S=PfvXN8BRedIcG*BB zGXT;u#hr|vRYepHwodFg?KQD^LC-$C0hbV_wD%P5x-f}1_yWkV4OPPmObJ#JH*8OI zy;E?eT@x-G+qR8~ZD*2+ZJQJOiEU48+qP}nw)yA%_FwyKpWO#tU9DQxz3$c5MJ6E0 zj$2`o9h|BPVDEuD2v9cwUTpFLDq(WQg+)Aj=W$%!{+9v+X~(|Tx_Lug|JW-!VvB%l zb_dmt&ewAvdy=k$putmwVURyiQ&Op;qpPGc{r1v&1GJ{&^5AgQfa#nA?cf%)hFOT2<(PH{Xp2~|E9z^1Qbi)XhI*QOwlL(h`)#u<=C zWB!h%S(CrSM%;)i<+UHs_(8n_G5(@@Igf1%g;0`_fJ5J}5flfRM7<>SJO*N8SI$(_Q*!ON1u(>FQsFqzdqvDC+3X=V*d-8&$@k!-` zu})hsK4XMLOtc)}G(??L-}bhwVYKo?PYl9vg7C0Tm{lLh9ZPhdu=1LxWxET&aoP6@ zRDdkPsV7R@-V^-nG(vD{cmqK|DW?4-CP3;B6tKa`sX{T_URCb^dnM3CHeTW%s0Moi zFo-w!lmFc#`_s1}0rjMwL;pS>k+VBNB3m}JnlY7LjqF2+Kzkw$WXNXptEX~J8|b#S z;^7*d>G}c&SKUZ*GX0{uCt({XzI#0*YyDWjQ3XIf)}7{xuX#g8SN%0{<`86?rqak2 zNq9aIsP7jG2q3kB#5o`F6(Reej=p#Y;OXv+Q2fbP$Y-g&LGXci|C%;HdiqB>8J+0z z{2mpy#glo0#_huJ%)ZT!&*LriP7OMQch1bDEUIm1W~SCTB}l3wCmKIEi?-+q9CBU0 zm1u#r$b%c9z@!{lV}x8kID_yW#`NGNYh-u=jK?xCvkKH~=?FY9T*n=qOPo~!aM(d( zWR$(!!!pX>&skal>hM6CDypS_FU9d>FIK==4>3ZB%7nEqH^mh6qAQ=r!3Cp}j2zqQ zUF!BKdZ^-J?@2M#J10e>tFDWB6CxB4|K+(j3e!4HQ0|d7C7m56I#G20ql_Eyql|m| zM_Fd}kFt{gql}wD1Tf_7Q*nPuEs$kJEMvYH(%k6|emSgU$p~~6FN z{K6k0#+nY?a8ZoYvzj4}El3#61*iX$ktN;#G9ruXi+B?}+lv@!4xHIrEUh~8SeWwLBiyTOD;HY-djDf)H54$Yu5E{ZxYA>28=*AEK z91`L9Spnto?+L?cuWWni@b~P6kB6M?tNShJQI0taoeQ5;`$|178^)9%W{5n2*SYn% zh9O*H^?__r3JqyIOOuRoP0c5z%0p|}{0cxJ;xOJ4GvYFc8gVZ~^nCMp%rU7)hlctlq-V));rH9Nha6o{(hr#UR5p zo%2pKJLV+5&94a?2P&tlq`sDO+>R}f`t^l#!|#S7_Mx zvsau2#A?bA;LVlT3_$z$k}yqqaFARK1i)J>I)jI6Kn4~(**XEW7(!agMBW# z0Y2>QE#%@u1KF#Vc^KBenIurtI~U1vjxrwkslZB5zOOo{QGVhh&67`EZI&)vCyM^0 z-;lm1sx`de8wra2^Jo*!+MYwSA@wAs@?SGHj~(R#Va8)O9WLKrB@9FzBcK;mf4%U@ zDYXYXO_6~&fpPPNy@Xj%G+^cwFavm8*c|6VNA&6@&848{ioNC?||K>a&77(mdp0PkI&%EQ~1Dm&?^%c9}{hid! zH6n-FcBlNPcsLbi>&6Bi$G@<^DGmz~lDO2#NrQVAPe;Aga~-<*%Mhz18`zKKW))8f zK`pjoz#C~}MB4>q7Vk#N0_S?&uqsH7p*q~tVeQ4Zi{4zMksj+ZPwS!W;;$mL%hL(1 z4pi={PhS3ed0^%J;IAJR+u;O2>nrVsC#AFTUdGiCM!1(2e@2xn&1Uj@E-%sv#&y^; z%IcFmL4+fp=yE$5`Z^}(oKF8kRxqrlfgc3|fD{PXWjg0)IR`LB4i4PHpsDEu%W15& z)r%n+YNWw}u&A@%8br|RDopOx)p%^W5giJyFYz*3DAQ6u1)s-cWbs?yFn$Vk4N3@= z!T|H%z+@R83UQiYNn5h-dli0onHX>Fd#?X`v(J6})6+&iw6jcQ9FP;urN8pB;kyzC zU{9-y;oZ#Y;=^8VPY49bO4gQvWOXMr;09tvJ#%ApranMIE0SuoQmha3yaBBTcds7x zcgAAIrC$+MZ&Ccg82e zv?b563W)WwZBT$P7SEuAKViR;fvEbG=P`ZHm`6O?tr`BfRfez{kYFa1$PFUQ5OgC*00YztqGfm6 z>nnH-=RK(xq8wf!IFi{@UX3^}>Ern{eJPcm`wyzO&b+VNH}o?eK1xgcY9Qcq(-ipi z^>Fb%y?nbWw$qT5<6k67i#tgj6{<(QT@?~Rz;m9TKlhwQ+v)h^?U|k&cmH%Iej+v( z-^nF|;ScH8OpoO8>QO*CV6}%3U(0T*r!=KR3j469N$x`MeDDzAAlP2V*GeVPj0-D}Gpswf785Sh`um0agtKeF zDDU^ z1*hJrBi+52`PoR14P{q>@8M(wHZRMG5TUgwms_7 z-SZ1yrm8+z&jMV=R$uw+R@L5NMom*FfijMDTOUlIyZ6{;XPFck>?SM_DFW)_KCXp{ zs0Um6h&B@So+)brP=AwF&50s;F3L9;BN)K%A$t(K{}%(CP!2W=*dO-1mb#RQdx&$n zT^fyxIFOGbgNwTxif}n0C883*T@8*Fsf|!NQ#=nV*BmTa;e_DSVdJ%M*uiiUd%F^> z<5FMQz9$&%3TNE!=_1Jj59zAopChwc@mZ2@7Matr$dq?nRVNw{xxDIrp3j|Esfn>N z&XnB+X4W+n?(mIM1h@eg(clQU^};iKPJzRqDX3&85WLmNL(rv7> z9_m{94E27$B|~;(A!s0n?syIR>vfM0E75E|1BVVF3_4Z*?E~{mf~56Q;$qV_b32J6 zb%pK(;GRB6scKc~JIE(c{4^8!_~AFJD5FR=XGFS4w-bDI7z6}G-0*%Vwsy$74Q+Dq z>QqMSs#H3}s#d{L11q;8P@t5tatCg@s%#vUNC29%RlYp^Eg~~Tr5jI=y5l}V*}*n- zkCW{nz0QL@EUwTmBI%mcTgFvjUbR=@ODfd%(;~2`$WRo2h5lnqxd0pAzT=+a5IQH> zZb*O@HI-g`tWK6v^k~dU;{{#)2iAW?L!ecSgPA-5GabEWlY%D^|j-7(MPO#Un02XOi&ug@EP-LvaJSr;K`f} zpm@Lo#z*Rjdy0F&Dxwriq|VL~HBi*Jb3>Rap^|=7QnDA05e7rdDrA8Gte6WZvrD7x zr&5xzZm##jzRyLZ_cv9xHc|@sW#ax&t90Zi1H!O#((GC3qm;R(8 z*Fti*kPbVkRryp6X@Jkm!|DhVz z@BFeg29iUVO<^7RYQr^YXQW})#APxr6l}kVo%Yz0PI)~xf8ufgnAjcV zYuWS^);f~UEngfMTdpLDUdN#O^L(Imh;C_RvrtDK38D?B2d9RfAii#mN zq9uBdF-9_)2Nt#_zyeXq5bw1G(QyUwfT*PRt4}oqJ6M7$&hPHv%mRZrTGSQ;SkIDk z$C0vL5B75Bsfgtqsra_SI%2aHzzLJtcYS8nJoB(f$kF@SPp#TK0#o2lRws7Hm#AuF zA2W`+1SV7G?Mx;wBtTi5wF$^H5duomq5j~Ozn_@)lHTm;P(MKy!-AsP`|4^7##d7c z-gd9W22#rFF%?8B_`NShR~zru8}zZgB=#<#7ANTbyH`SF*yQ>=zLbm*KEGYG$tL1*Pun@cq2Qt`x-h z3?cP?hKW~S0`vY4weMsD5RyM$E;AYk7Zj1RBGj^yh3jMD0YWrvnBU18FQK6+P40mu zh}^W`*Re|3n2hiaVWZ+OKH^RXU~l~u^$S9*X#bhu zMR@)(%|Af-yn9P9De^htruD|PjyQuppC`u*rur$Sy1RIC*zILF#^(09n_jM#_glvO zwrlvxJH-l-g?W&wsfb1^{*xqI@K=lD{(fmot6Olyf|p1dON4%(D>m~{%gAuBL-M$v z0skPKvz~0%QY=#lzzdcMd)xT>MmWLk{#b6TFPaM$Sk&0*iGD995{@YldHn`HoZMF$ z0xLSUW){uZsC3xlwW|(o8PweAvWA5sAh9}xl(l78d}_mpRGdMa{Hh)o1cTKXD`F~h zzn~m3U(Z=n20a6--4Gz4_Jf!u$#^r?6KBRCBrfg8Dr~I>@c-m<_e0ccY^hLkRmG2sEQG$|Qop@PWJZ!Ylp9SDxj^qSQD+3Yhz&#J>iHUkkE(ujrfU9`!?BHj3<&;)i+-@! z+2q#jZYoDG#cqZ(U2S!s-btAfK;Q8Vf4NV2-(#KOu&kGaY(cM<;CA$u6e8Zk>Rt|w zS7$Dqw4VFvlfFUe$@Dn>Hv+Mw?CJocfv~dvZ>bf~h`SoU-*oHUCEUnxq^!Z(3tO=5 zWlT90kl;qyh}cBCD-|288?G#A*?9ka3d_qHU!NDO)hLn!%sLarPn5H+WsSMDw>!o2 z>htaPJgFt1OEoRisZ3A65y9%j=X&F-XJ}dB$3AV?-UiKT+mp*`oRd$FDwS!CKP#GY zIRdM$$j$36r-a})$u8K2)Xk+fQJ+6ppR0(=2!h#Q)u!7;4WdR}1IZ$S%BY~KK?3=$ zk*;P!s-J-l%agzsvUc%jm3<(6kXf;+I$#jMe6uMJ+tw^OoeLpsMbOM{lZ*+!UnK?Fb)rTS4(rSKhrcdHuOYTb(6ZDM0&Uu_tm#8_qqlJ-umaOU#ZE?z@73v zBA^d7Mb}kx7z7I=x9MM_YIB3T>TN;< zi;70zuO4<**+A5X}6 zoh20FqOD48A0XB39w#vpD+47d43rB957OQH=rkruKmbp>Q}=;yWQ;!q!g6spyM1N2 zeJ#t5#Qe--aqTZP5&u^+$-k9QK^?M0(sA=!&e*vHZcQ^Y!}?PG`%Q(sR^))vx7m8) zO2l9)Ogv8;9~1*83az--(Q9lJ2`GH6<{%w{Ey(~I&{V|Ac8gC_UPd)BW@`KBfD^!%Y@6sRkj*J^}`bHau#;i9DQ^8k#F?`&|^?$uDIihRp#{IauagO3_rrd zWZU6))jH6PwN?v0`+2~E{B3BNcOQQIt;E`D-VQ&ZG}8fPi$}_J)_Q&Op0hdvAG|in zzhD%kZKO>yt{w;{J)Wk>6{b#9 zhAR{P>sMaIpZ7BwEDtZn#$%)i2dDgXyrhhfPZ`9u&5Ra(MNojQOwGX3t3?p4Axl3b zq>N;qyEgfCIF8#e@O18DSyGy>C){8*d167Sx{Rkk!@cg%S4{<6xvy~W{q>nCcdOBf zOQh#Bcr!r;^r$EOF`-{Pgd0qV$N@WC0(@V0Pb?qjbXhJva9U0#kSuZYVQn<+vnP)-?|b?K%{a^?cEljJ9e znoR~$0g$!r3=y0m+k?_96y2kj0~xSfWu-8;=paiui5P&Rw0so|N`zDE#enH(H^fv0 zX^_eJ36LO(?3tBcbTr15Otw~`$uWvm{-)z_Wd^EMCJvQ~*0 zT1!q%gnU2QmtkYOh&_}5F=!H94*hJz8XddqcZVg+x+|;PfmndM&*!FAMK1KiIQ*RP z--2kKmuWyfMuaQl>AxV$7YabI->@eG(|~OTgq}a~z+!MO7ha8ykNrBcKB0&}M;f|b z-!pQ117yNLE^ffW$k3Z@S^-fZP*z>qzLLUhCTgl49==EwF+MhINvc=dc`;T_h%6#(=aw-|=pp#5L~&y)`i;VA zI*fMd(g8ADoY!W}`neDVN-wbTI`Yb2eoOMa{$6-zn0=j({6)we;WL=j8-=8L z*cda_Dvr>XE;Uu-RUA_2t@CN1dI>CcV%l{wE^!|2+(J*Je}PxV^cFqD_}En znaE{xWZDRSqqX;7C}ngVLbUcTrh{9jRbwIPMt;biYZoqQO9>gbO^6SxOV7|)-)a6wK4D6 z-h^FXBmuu|B6YEpP5^yI(KzxIQPVi~MPng1eco?N=AYSIlNq(X(s+C7GA#91nPe=D+B(qC@Yq{q@rD<(YEeXoD+lhzi4f(_8Dx)x0aZ1hx(;C`S1#tP);htuT zs{^`Da)Wb|rS=v+4TxAFN>b1{?Aks^N-AhxN;OjUos))o?%MSY2%n%Lxw5aBoO9yg z@I8lyVX~xMLh#jIda^Oyt@=HIC42igC$he^)?2xHMhVqQN%s`{;U|@xsg|1Ni#PDV zg{XV*DWFu)C_1J%rZbQSczbsjb9Gl2Z2(h&E@tEiv$ZnZ{)!rxcg$86*Ev$T4IZ&k zeo16byLg45$2=BEwdb9}OFDg_ z+VGMG-B;>P6xuC_MF=1phY%QQ>5rV&sHCd5+&-u8HG_Q^&g`z&l0&F&Bkwp_<4@Kga;a^Z9IMUEsEPvWj+U8X`v+)?a1M*|i)uxR$XCFzEN# zlTuO5jdK%Rg#>M50r(n*qZdcCA7CcSPb2V3!LE58x6lHAH1?4Nq#7*WR1O36#{r?-o7;k(E@SXf*fVnZeJ zw>M89glqb+{%r_Qv>IrmhfQ+s|NDLQJbJ9mGgm7tnm-`!(XB--^vq7oPQrlsdZXe3@;x`7t~1j2??Y9rZROBBGKVS0SHAjSjqm1 zo=T_RapKWa?Q-3J zQ$dhcl6jurKWCz4y_I=p8-Q;?@EA$t=|HFMg%?O3s-xuE1$zJF2aTHya))u*aSmmVbYXL&zB0;$YKaIp(90UNgUDOvA$~qTp*g+nAMQ-MsdRdFoAq)OIhD z?D0(_5i$m!4+8h_ix%*Upkk%^X#CW?D2arw90Gl;YP%qHyt3L(2DJMel%5BO##Pou zZ)9k%>S(%xWDZt_)ZwbzoDm5O6dU~0wcOoF6Vb|w$>F_WC{$T%14R;?v`Sbixxv*V z5oAOa)x8Eh^PQ3`pW0t&nQ^-c5(K~@vybF7WQ+^;1hPY5y;L_bf6}gkHA7Zw)LtGq z3;mTkXXOTysq+3~2C(8UDh~7uIpW8#7ljxZ79TL?$q?0=EpS02WD}JlbMKQJI-&jx zR7ZM9^pz(0bwC?G_AEk2gT4p}I$~DDizlgHSPTy+37c&xG>x3xO@12=pjB|Xyyz*U zNo^Q77%t=x>LRxD=neYYJ<3$j%uP#WEWUhd@%PRv1H9^Q4dB7c#{KQ!oz#48nUx;8 z3OqgeaTmo|GD7;AvgYJ7xcoueB@WL-6-%Fn;9yi#v4#Y+Rx+ctwP`&B!j@m23$Ckb z)DE7uC?~|LHCc)bRk(v90c&Cp`Kz|Hj6%1OofC%wtUqLMqC^$O`@m3GmGk>M*iM^+G`MKW#iD*2);~e`E4##Hj*V zAu6Y4b4!JC9s4Q<=L`kc<@st1Ij}s;CcOS~06eebmjzLhjDnBnc(IK!TZJ3Dw)H#1 zvsIwD13(U~Y!jBqV_d)8(4&A|gs3h)>mFcW2hW}R-Gn6i3+7g4`KQ%hzQv8|1}G2fpAhE6&a!+-zz}X8y|aCpD(7BK ziWzDcw5B?DibGQ*5?n7sl*6n4X=d{ldBc~eI5#`LSZGA{Xt^YAoDGs2hf!+XyAEWx zkLw3g1q%EtEgk|ynkKt%stb@9B-)Is##nHe?utXm4}^9WY& z1_=K_omWuKJpOZjk|@{JH;3jyOZXPVl0?2R5jrz=T;FulltIM|fk1E$Hdu&EGw)Sd zFoS{TSRuJxxij`J=@tFgeZKuI$#Hp0q_HK9bInluAVsed=19R2gQ2xmLF6XbNiAL? ze){?i4(NPLx7VAfN_jjus;|C6qhY;{JHY(1`0x{Nm>}D^hCR}x9tPZvimZ68 zuBDV7R)zr$iocPcGoJ(#VtgqCDiEf;7@I94nnH~)DT4Dv!K!c@tg2mOS6n7fw$#&s zcCavdu<$Kl4@D2XdQ7xQ-ItXk!V^{%Q=gHVZD`%jbz$Si_$7F7S5VvSyICpg1F#`@ zAXCfXYfUo(&2>h9_yPf$2N$UR+M~~SLaIBTna|x z1kzcfAMYSwR0>V;VVA~;s0l>S{y0i=2FlA?rmVBcR(p7;F>s^VgbD+}Vykm}^k(ChDg;ZLkQb+`!+@VcylJniTyj=Yu&d>7&}p=*O_>@q z{jD#+mw9>gH*K=Xd0s(4o5)O$@N5t?9%Jy&A37C7Cn2)O5Z_g8On5DW>Q@%IGdQl}mVVS7{F(%9=sS1Lcc*{aX zm)*wFdpNYtWizg&GosH_Fc(vZ!249D#*BrA8&8Pgd8oFsO~l>E{c1I>F*=^@^5S~% z0HpuMUB*D~c{ zp5W@p0YZ|TE}=e}vPwLm!{va~#PIb}17ENj)@10dhLkCRnffs46!dY7e6E<4(fb$v z;*3wSjp8ZU;%N^@G4ieVd=t~YGl#|958|P55teQA4|21;Y=&k66fr3hAdf{%319=n zab78A1CU3N{b3%PH!r!AD!@B5qCcndv7Z2LVYSgaU#V4twz)9g6Iho+WX z597h^3bw&+)p4V-8wl##bVo|--(1kLnD?ba)w!dg6UOY);e6+Ug%`)D*+hT-SH}e% zRAg+^8>JrqPl1qpDKr61I;A@k6)gb}mbmtL5g@v{P87J>9eA_rB4`}d$^bQXL4A6! z#l@j)ugPi+E2iE}2-`{V#AkZZrPBrPi`x|ggpOJh2tEbcce_LN$EN4Ay?CXu(mXHlb^F(z97q{ z3NYD(sCkG}7*VMd)wg?u%LZ}>V)*>8@ubqw26$c8@O){_kBVg674QBe&LfZPZADc%m{sF& z1pPK&cYc6&$s|HAtk&!Mc?m)damS+TCq&wMMUt`OdmdkQJ_1C1uADs`v25=%Q2oQQ zfMyZj_h>p>^g9kypRHjr1?ovO2l(w6QE2^^I7=z&o+(p;0s1=>Uw6i?7ilTd6=1|! zKB;B@p{P9NI&G3jE=FOz)1KZ(ruewsM6W3in%&fryZv;l#nyoGf&tF=f_H2ErJg(O zc-QH`k|-G^+31VyPq!U}F@3=0_4M$r)uEpcOP@6wAqwLhH0TK)e67`CHFERj@{3_W z;es=qc(^MbKYexDn3ZQ;K3hk?$A3bzMw0z=SNcVIgak_vQVzePUoX`qd zHg4PXV4r)W)DbArtFk?WdYFJTgs#&c;drR8suR?)Ei4G}pYkq&q6SOr52Ua&yNi;2 zj8er;D`H#*X~#%0GzXGz=!RS&6W8&x$mZp*ktWk zdoR7geF;9Ll0iHknoEH+9-y2~!8^*{;HIEY(?EBa2TcvI*1O2xWoBVm=~3APf#vPu z*8q=GxW4!0TTBTRB=8FqB<;`vE&1x*?eH&6sE~DCmigw{44r%-zdc!^AKzpQv&^IA zUZ5CB1px|}*G%TUZ$LB%dv4Y)8Qhac1x2`4NrW97wt z-K+G;KHM&K7l!` zbs)526>Q(J-=@%naN8c zc4)f+8%Wkp1{*oO9vbx3p}4w!yYGMd*^KQs?AaN9jV1PoIn}=Lm`H&vi)8B>k z(lsSkr@ig>wF3!ke@@e>ihuwG#G%bojC?EsStxfJahiN~*96ekpC=yJRb;V6)<-BC zR}BV^axOHt*H2*;)kU0p)RrfW{yb@}!g&9kZ+TmMMlh)Q_p;fq11$8qxpq60s-MqIVp$OwJ;7ty4WWs%vnR_dZ-h{Kt3`kw~9Hu zog9igY3Cn_@Ov+ANJ!dE<5cb1YVD5_)OlVoKW&hXE6u{3MAmcRuVS}i^0jFGj5{Zp zqCK}W$<%IG(zS5fK>>k89;Bm@%P60KTx-)9-xh#;p9)jW#gbZ@YX~2u%qw!BmQ>>d z9$Mv*f3uuaBB-NIR947(|F4P8Iv>)nkh(|o$GI>h#Bt@1dX1Z4?FoT+iQv0bsx@~#+D6YC#`A#p)5^X>&><4!Cz%i5%WKm;)*CG@J`sSnvPzNlAmI$GaWfz^s-78 ztgnC>!yeARvHV`{Pb9dz{1_sN!(6CLvGs1EDL{6&2jt0IFYTtrrV_76$I12W~_3W=$O?;teXBy7p?<5 z_C;{UWJE+?m2v^n#^E)(3;0PjT>F2O2v~6*h<1f)--_DRwb}CBPs#IOzvy!i(dg;~3YY)8Hz!LzIH-7*fi5^1UY_cQ>~m-%DN$iBgOc@NX^dEL$c`$E z7C?S1k#)OpBrP}?>^cL(n;CjF3LJbjLi6K>GTmE_Y^3H`RK`}YNLtxlq|U#y%ZE;2!@M~Dowf;$k z(@2bE$TE<0ASOA0l=kul3j2sqb4dLT;}8d7uIG(mQ90KrlAj*y6Y}f^)X-c;ZLNSV zo{mQv-8#>N-$yXxh+zno#!FOpbGY0?M~1>uaQ=SO0cRtW96!Iha5wJb$PF9%pyev~ zC5Wd%f-a90euKxmf^US)+{^{;GX=!J3w;955t~T2v{puiVLqK#ub9~wX}8(hs~4JE zI@AvX|1^Yi*qX=`)LN2?U`TO2i*b&Mh1CE4{F!Gno&+}?u6Hz9h}-e#{A#{<+F6|0 zV;U@h$($m}a1NIufHK%Xik5^R5Z~)ALJ^BMl14SHitZ$cS%C zzv2s8asx0#ck%qEIj5bJ|AlDejdzUv!B7LT4s28hjliX5mi1!}448{5x`fTBV@fk# zipD-?o@UuMF9)$?o-!pceJU_CV65jDU`bt-2xF_UKy^B@koQw%Q71jZH~5X}eZ*y2 z?-1zs2n9%S2X-N2X7H~Y=nqMXb5mt5kLLM1+drhkfhC5a^eeH}las<>cKZaQE`# z{X#c}z4vV}pr7#mz1pOUb7#AFbwqa`jpjE5gZE*Ma=B5GYpG$O7|>PhX6N{e;}D@U z12KYsHxGzVS8cs(8rQ>ex)M~rV z!4Y5s(SJemo?U&WVb})et{P)>mhvZQ zJpXw=|JaC+LbZr@2eJJyHR%QE7k(eaGZG-0Q2*eN1UF+_TTpK9jT!I!&di&`Gs|96 z{i0W7NUz|TbbVA0Zb!pA8G&fi;m`Qr93nJx-pu=%%6APMDgCjIVvDVX=eB3Mbcl~a zMdLh(u`td%Gv}D!zL-Tj_0I6>0>wZmw8g%{f%KF=VDTs3jKV=y-u_o5Z+UVsMmN#^w)j5w1-)#F7$upxm&8RhSs$gt{n zlmn5eDue|JaCx{rDttMGUq*00k9#Fi{k;cxLe&I)c&1GPn({xXtvoEI_;0&HMl^FOS1*8Qc()+-$SgWDRD4DWuS0zx7RDmh9o#_Za`^3} z#d4JTFO|0^Fd;q_jWYTi@B<*D@=#`|MN#sC@BEeOlWPnUrdnZfaWS&Euvp^EkX=O` zW10nV!rEBRW=rBRQsTEvEY0@tvZ9zUg=$p`F1szYXInW0&~+#(58eh4R3U(hyaImo z2YKNa7`1~-#Mkphu;2+&w4LloO3$wVz8>VoYcj?%Pjh>mr5xUxl|!-`@gmn{(`&2V zTt&|A-};A!VqxYuSnu_gcM~^-VPo=~IJm|BQRQSXUl#gUwT?a{SOmTZh9p?d`OB!2 zP(idXQDLTm9(j3B_Bfn5+H3&SOUb@s;nZ;Sq*oD^yRvvF9h9_tHM)Iv+M#hVl5m*f zfg_kl+PvfqUFf!F4RA8L9&LIeN4-~faAVuR-xV8>n1=OX8{pf9)aK}mZ{|&WB$->z z?A$~-koU7*4iS$jqQv2i1M8O{4IdETjDon}=i(C#%JnB24OqE#Z z=jZ6y75TAAITl~C)`(K6Ipkp}68-)N0zN&$cyi!XY|TZ_#*AtBWF)ZoT)matw*0oh zD+HSEKtqRt*|!m!*6alMFK^4QZd-4!{rR_OBAXNAZE`>@Dg z2i+zEs;Ew2ElfY+m!jN2-hM$y)_jj7hT=$={=Y8C}t zoT$KO)M-&j@cC48iNuw@fqSLswSQrXIcXA*?6-f&=tMl8Ig$(kp3~=5V1u8WFU6$U z354SOxB}#N1_;kW2lXyWt{TncABXBt7RTorXR9f4>2`VrY8SKhlozw^9FhGMcB-Ti zNs6vSR@s(iXauoGT_41gtMhGUHCV{qichroj+>A>^R~K-h+QPnzA9nng&5z7cd*1= zD^rUGqxFX#i!P)95gMa%kBrRbQyt5H5JzGxO{vCPa4hDf8dd4HdwO71bCxX${ZG?q z(XNg&kS`(Uw;4rOa$+5h8mH|E0z1RgSK4O!tUUC)ed9?n@A(Rpa$qWsf_{krSO}+21D!%&0kRwmpGS7I zwqMj;8I0 zveJrbCyk&kZ@N&rOfn5t8fuSYA%x6fQ(Vl4&m&N9(?UMU!6SR0UhBE9D|>(Rpn3pK zkn?LIM>8^jGi`nzY@5i=BTBRnlQAFI$J$M9ztH(3#hIfBSk1tD`{tBJZ>3QUZgYQx_U_Mpvi_CA9j($?AR9pN@emU zxq9uf$86J3;r>2i(Oq-ST886TL<{lwqj|x#LyH2y|Fw2|+aVX0O=5d9f26Y~a-W50 zUqCMBK4${D1NZkY^iv+Sa(b{|vEGvN`1A$bypF$N7@|PqP&=fJleR~ez^z*(|I*2rFZ8V%zT6PRF)wJ008VZ{5#3#=rM(Tzjjk&RTWMSv3lC zb|vPRal#(Z8xmeTC;8&eryrs5zk!WCbnw&5+Gh;T$Tk)tMjsPka3j9Z9oFYe?920p zqq)59Blq^ApOwQ4&;-XnLlRy|@H1qL0w5kdksdt5xp8LSJj~h;K?NCZ5BXp3AnS3P zHCs)ZtQlXO?iSO{PA6F&k9X$MJDCO3vKbSMj0`Fa`mPl=0#|XN7+Np78{D*7cI1>S z*q5NCbl8hoxKjJA92_@dtzk>4Gt7||FPUJhHPeneKyP5XHiJEI`|OvxyjFh}0jP}h zAZsW4o_6}4?1#kLxy{LSZPy*_FVG{a;iKGb+{AA@QpM}Y5`}VW>^(i5H*#t|RHx^R z7n1SL?C(P5;8Qop3rni275_16#f&Q~mlLZ#g27VKyz505Kz%qTalH?IZ$>J3_PD}y zz2OhWe!Z|8mZ6KiEcU5)M)|w201#}&%nrpeW9L($Ti?e{mFrv|9*U}J7OD=FhZgbT zF(1LOa0Tk(Cwc=r7bLwt*8Ngev!BPaH+@sc%AbN^qmhAUlJhb;+|o(m1f22AUH zqxWG7Y(pgZ6%G_K#1)KsEwcWg%mQ=hyMhF~&G(mzbL$=n)YeW0-O*tA%Ed|uh20&S&O}n09N!q6XRtTiaSyUUb;{-VY0It z$Zk6$5EIGmy^CE$gCsASMQHVH)Mr+iWxpbm%Bk!|OZ_*Ctq+!z@u2HVlQt`-=+}eE zQ%}egN!AtjyT?;XjeQWJ^}s-`y;pI`n?K~%@#qNEU&UB@IyqPa+DTCy(=eo4=?6iT zT&0w=0WorS-~zp0)`P)&{HyGCQ3i%USgy*h z60GH7vq1C^xwbOk;)&n`i89PKFlq<&Bl0?xQV0uFA)mQg?xl>KZ^1`Ed-vs4?8iMnr317%JTTB$Y3<6 z0oZ~I!fy18JA!ILClHOifR<3XT7YGQC7rX9sp5wF@D%pBPp1?fT$k1j88MYvd~J>v z#E|Tq`z=g_&!Udv36*_}@>_1A?I*DZC{u&&sqm?gXO^sTY<`c-lC}UBe0EUYD9M+> zmn8edlH9%@C~vZbCS5(2vnCkE@`u>4FTi%7;&giUA9*+MjklHE^YZ(9Eum#?4;ZX} zdHQK*88x5i?zBab446{6Y>fgh18vv}; z={aJBhas1V31bHwKZ1vA$-vPcyH$gJOmn(ztS2xn(ANqoo{(FAo8|}n8tKe4Jp|!@ zushQ~2oUwobt#mwjduNxFoAgJN$cZXqf39aRmPm|Bs6Mmp8D9slM~mBR(AkJ%h z!c_G55@KD(S5DY4$iL1L-nVjV4FJRv*rJ*-Z+Cpq+=7}by*BpMi|vhc>P78Ga24@E zP*VBPxl4;nH-03njmR~Y1wRE}IYrMVk0qb6#_%aAc{3c5Y3)gCPBAdK8j!b2H&^sG zjU`Q&$>};gTNKITQIrn06nS*R_+IVcS)y4KffKNdI)(3lR>zafy9pbN-UH-%V92OU z1D<+E_n=C|X@f5{IcrS)%>+KMzwacK%k3^2`%Y2Xr5C_$>WQc0qDGDu3#n(h*zJCZ z8oR*Lk>?|pV@j|m#B&ZowP4@xC*F=U$PzK^|EQ_a-Qi@0ffP+sQy$`G`E>nrPf04f z+iX;4r)y#h*DXH1^`~G>gBD=98xjX95`2R(&QWo(_8N+$8bVCri-Ty}^qIka=4bB0 z&aA!p9A3$Hjda{l;Jc-4FIpNH3%ae9c7FJ5n7uNzrMadTlGvd(z9ROrWT-pk$5*@w zMvlbHFcKc(>>dQn{1bT7!RZ7{bXaO8FD!Fh+7cT}bATd~YTD8guMVK`@F@P7Cp{_` zLk;-p0G<#?Q~)C}`$|+Bwj}FqkL1)Kh-+SaTN2BLR^s^R=Ky9JBUo@;ly8xIb9OkIh%gPYZEmw0d z5mk88v|ecL+EO%NxE(Oe5A!q0wqP+J#FSweYxp(hKIr`VumgR#;5deDGBcrLRtN#% z5m)nBu5*~9)hbOFwnDN4ZU|LIfsu&5$3k_NubbmT_WF6eh#_{mp#g+6{%k?A7lKcCRD)Cg)tSf*mxgczV@uwF)Jlmp1 z;vTqjGuiz+JgmY84cwZgU+Q>ch8tV5@Lt83!G$FUQSYrKNA5yS(Rw78I#*T=`7I*H zB)LHL(r{5Gd_lHqdc675w&+3`-`sYvuE)`N3QtCDp#F^xqF&|O219@-=m%(EdB2cL zGrr=FQUAympDe%t>z{334)1EYl;OwZ%#^^gREYgp<^p*BnR95z4UW-?v;@h4VlQ_1 zJOu*I6wZ_M=2|k`ECUXf-fH$<)#R0yw}O|)jHh1(uWlWq4dG!MZ^M5A-ty2Eee9Q; z;ty4u%^Y>iN4v0)qNehkX5_b}cG?rSc=B#9KW`%9Y%&1#dAHBd_|bOCn+rOd4+)P$ zwt8tRa=egUhl$5a9DAqNF#E6%Y&ZAZIq_jgR~sBHy?(?972o!tN&NZdLh%^gj@Nkr zTK`3TCaSphD|<$|IX0}0I|+e14Eg+LMB&sW>8FD34@cgPzds$WYJv%nrFLLb5N7eJ z5B)srKv@9KD?+?NUCrS|x%?@QFZ3O7DF3`a?zcX7cDo=_m{x+BqDBnE_sQgowzdx;i@Q_LPBV|J32E;pHsN|mqCEoQs>mq%jO65In0v0MTzIe-a#5>o zZ#d`ps?&3?&&1T%WznOzEecY@D=poES+Fcig^_t~#eUK=QO)Mx{t?#dldw^wm^4oN zpz}SpLasg*KpJCo{avP#btv$kTYT}N5A>+lVz^r`X6Tq5fRfa;S@6}BI=&!^!73K2 zdIDrhQkU~<#88)eFL_5U()oUyF<2l#W>p;q1SRdG;J>hiTAa4M**-#NQ$r3z9qovFGa#T!~V+<@N5){0L|7qFxMa>)-@*~t9q7xs0J^`q0 zcjddjfS_Wf`4e4V>|_2CTIjjPZy*)22e}alow($u|0vv29QD}63TDIhK5}wfEhV6G ziV&pR_Mnn#*y*_#W8Cpjp`PCKAa$y4yjel^?A5~fU!xy!vbWJgmb=}4Prq9k0lwnc zUGKzLC9UC=rLr;^K5v5_jJv;qyOpgq;81nv51gHl!IG^sv#q*+F0huO9Gmr4lMOm9 zC{(hVFGdbDO;&5jZtbi7H^HTQ;3wxoLM3nF&WL^kUPsaDya39eCiP(Ko80dHL`d^%3?l;EUZ10wQgY_oi!>zVezV zr;WEr!T*nyh0>trj{zR;P~(XIWw6bq{iJQ*rI){gFyC8Wx#yqVt8x6R}r5 zEM6}SD@p3;cHLtJ2w;kHUeUgnGN{l2;BBGewn5gC`z131ZvyZvk-4MDw$nNR+|e?> z!h{zZfG5#7-XI~lbqvRM)Uz=P{t=V{cT1=!?~--OkfQ>TH4!a2n(I_ola z1nz2xO+EqAQX*mC?BLWofZi`q>h=3bA0QASFPuC>_0Z(`ZLl8`6sj#IQ&nd^cxL;6 z7~C1j#mXK*R_6u#GYf*7Qm4H{wU>BlF2)yWF6wpo$DSBhk~$@KfnSGr-^fCT`Z|j& zTWhCVIl59Vc{JsDo(6D&WsU2ITkK;WN;^iHBQ?YG4azbWMZ>Gnqjc@V>Mq%~IkH&~`NkS0Lb+Q%&0N)}o zU(yC>BaOf~5520>%b!j|(fcs4Nk$~@^O|`x{nBFF7pyke$Xt(c*YhL}<{Z0obU)1~ zhhJK$_Bu*^41kpqZS9)s&X>pgAwg_6%4G5;YkQE7AAZPk5od8wE59cEQwy(0X2zsY z5S$t@{?NeRN8~}^?$Y7k`^_Q*ppKJlBPQc7N)=>tgbE_N#2nO>yP`XzCkj{(9i-Uq z>%pTdi~FpjhkFx&BBd7$j}?;06bw7bv1e5o#HZk$)IZ%RB|apKPXf$_xM#yZT{Qfn z>b*NCG7(FsX*C>_{E0?MaNw`4E$V)%MBe|{x=6&7F>`Xp{Nr@6G-5f$0T<}bR^(OQ zj%W=nxE?8sd~z|qKa0v)@A=)qd)x2>8(OtyM5lKWkhYG8HHWVg)3EVlb`iJUrv}|k z8A-5tbZf8+wrwFZxYrAr0YPy*c}??9Y_XHJ)tAQ8`w@PylGzzt9|<;|kqO6S56tvZ z@MhyUqH$$aa)!2}>wmHq0T46m4W3NSq@Bv zQ!MnBNRpITcuaDk+zyG!YgdT)Nvr{*i0oYm&+lV@47EK5)%#BMl^|h8sC$9V?EfmG zltE)ElM1p!EzcA|Hzd558{tNGB2mTQVYigPj}#ndPfVwT@JdQK26**AN#>$aN*Y%K zPmzuO38hlVa{6KODpWVxTagEXhpeBQGo@WBlI_rfxD(+YayTknYBv@Rz2ZtS1rSCCSkH^r zwUF(&YpW;u{#b!b0gy{NGZHno-&%)=_uYVgUytm&Z}^vWo1>D&izg#kR_7WPoMdK{ z2cm49Td5mXu)oM&i}3hKPW9g&5(`9{_zG?8L0;m!RUC`SS{l=jmMG3P+zalcMO@~H zxVe5dlL9`FL46PIieGGd;*5!oqo4^Rjp>m3w*MiPdWghv0hUE%rkg0)6=?+EQVG^L z@HVMSZKLAB$s~FbLCgFVR1|`lY#ONIFgkt)ZyycPuWNFuLF~kXS9(v%{UGz&ufl?m z@QB~rnky(B_8cDt0N5gbl01Q~bap+BZzQ8zS8C6|6FCD@L`>4~UqgRHbEIz+U`*|x4! z?q)Y?x6ar0eFEt3d=qeQ{0jmRqG{U7O0g=t)hdlFjEtiOIiaN)+VH)(?W^$(4LVpb zM3-&)Vbn=EYIHP7Oh0^igM#-0$$ibY8}SkaKz7iI(8Ktc+PM=`N-RR9<*d{R93<9E zhP~sZmu6x%+};#4rAz{A)m0diVk=W5PG<(YP*O-OG=FMVHEeH3)mB(V_>Di4>m-5p z;<^&Xfh?Se1tDDhRWd0>H+5E&L(=W@l85bxg#xSsk4J(@2`y!l=ELYDJ zK;&o499HL*L{E5E+fM81-pKlU7pTebZx228pwDKY6W6a>NuGDE@4ec+Y&`S6aiI0o zVLZIOpy#c@nJ#cKj#Wl5EKyFJg_GaocJml)z{Ha2VMmJ~&qZSv1ZGR5fJj=3YYxD; zD)1Xn9-y6t-`1ARsfnWbQ~|k4k*k9O97Z-A|9lQli3f!}*(*;^&AjWPjHK?CRFi zN&($#Nsn9K26Xbq-`^dY{l!i>$?mLP8%2XF?mZt}$Ws@OS+wAaL`!Eap!RK&1mlaA zSDl!6Phq=nW3d;mejk-}4C?S}3~jEBc&6Z0yV^CpFW0VL?kUlfszq<+q+HU5mi1H7 zXPi|Q#_M#u-VRs>UA&6KJAUo}5Iw)Un^_OR8x*V&;e*|@CYso&4#bW9>kmSwIS@pw z=*Ch+eXHZ2WNs+O(jbQdo*f@Zf~u=dijs0#Cy(;mVrpqnT1t{?40RokBq|}j<3;yF zUv#H1yc{8Vd|0TUIqmy#T*Vo%T~4kr zovYR-Qdc2&1x;V!wRk)Mm~NH>n;*Q-$C-$HhJW;b_;T6I+BsAyjk*TaFNNGI51Q)J*@a#ZKRS@8O~06S z^l_x%fx{k4D)hkbyW1XHq*b6BQ(^F6^23n)4sO7yrsx#Tq6bx)${OCH1;&w6U_>xA z;ZM|t2G0z(zb`6b|CvhHQrfB6IR%eDRSAM~i9Pi``<4lLt#Kt8|9x2}jDx9!kQOl5 z2+cq@WrNX+6fOu7VSDcK-`Wp^IeGr;zc+Gh=|rwjw191gO^%;{S%ZSsvA&@slBecY zd%Y+G@o;u8tT_xYllc}7oqIBFtM8BPJ1H&al=#xkpF@S$V~2MF05qf(5Tu>FyX3L} z1A+)51*~-O{1juE3Bz{YkB^w+p(h2|M>xFw<=IXW&&8ZCNI)42DJ2_@^w<9R<+6AV zWKdHOCV-?(8$o9@3f&7wH?@ECwosc;yD7q$Ty%WtC0YtY{8d6@lb58&58x$TwBoAf zHMbe3FL)P%yZv;FCU(X#O)@jMS*efOzolAIk*@BG$3a_Y?VY05YJ1*OiKG@kx#h1W zH|u}+=e#Nx*R8ZBW>as~+hDxAtiD<(0Y03P#di29zXn7<$Oz%Ox^gg-{q>@3&=p zBmgW76XfTguN=!vmejYmD)UbAI)(!}HaO(8di~1VjZJAD1LB4iUQsgF=Mc4l1=wnm z0rHr*k(sUp1>MS;H~(`5b+Z1uGCe5D6eNdP{|+2-Sq9Clp}=3pY2}~~Kh9{5e?{>n z{5sK^%Q9q_Dg1l6|5u)40+o5^^w5GJr4R4{p*~K6WPde<|GC(*xrgGOtHf@UIYp2x zbn)f~lQKJ-kdFe5LT+J7#$qAO&?_D*29svSSU>DSC&*(r#igw)%=LGolOs%7U5KYb zwR@=H1>YO(-z~8vuSW!w=wTJPUvAILn~IC4#fNEtKmE3z1C?{hyJbwI=)#dUtrU{H^@Z;#?p#kmIaow_sk#3B^2uO3MI<5$)*_Mh?jE0hn)VTNxq8nKx8m zbxucdKjM$Q0`VhJWy_|xjMim$*`g8wSNl;;k0%>6J7QEw9uf8sra3OYum(rNvVSB) z%wfpRA(GYB5p-#|dUbM~;)oI60oZ+|bjXO8QPkS-0unHP_lJ$SZb+2*%BBHmgoxY7 zZ|*AeoI`UyjY;!GW)ZrH+;qQ%Q@P?}z!jB-sd#=O3Ofvesr{^uy_WL5A#$>JKyS~P6d=pS9gB?{skv(r zxhP0E8Tm7WD_>uu9@e-Zuen|%NrL_>(i8NVmX?!2q}9R2@n(7_EXoS-RRUr8+cRgO ze2JiKFd8jVr>XGo_JFus*omaf6vU`fTmj9%#`ce#;wjl6D>fT4YTlFZY)}|z57h`B zAKiSpE9em7OLJX;?)FsGpJ8J|m{C*M77rO_P8{yfgq}=%|6&$Z+CZH4Elip_fl=Ro z2_f+&Qq3VM$b@A7sUn;N^mH&gE<+mpUMi)MFDT2ORB0PM`NNb)Z)iF_fZ1TJ*MFQr zCCc58Ni*iz+gl1v>};beau`kD8|ua(K;_{S+1Xivj=pS0{KW)+_S2#>4oEV1&@TXy|r zNov>hpuB~5ZWfk>J;S|XrO%bBcG_Ajkjb4KVCOA^)Y`Ip`b`C(NR#YzL+ix#JFJ~h zR7Ij%kh#>e#NADI(zq1mdN=|bwt_||#S2aF?SPUgC@)w`Tts_ZFA(6WF9XL=&BGB{ z!%>rp0wJ>T#xqd>z(WdO|M74isw;vG`ig&P{<|Kae(f}K}nF-r(fCc+?&k@qsq z9e1x(B+BEzeD5w~ujb+B;|N`LI|l`pyJP?i(rCQ(x1M-AfpdtY2mZ`_c>Nnj%tsfl zMVEy*-EkvR}{1#lGA;2%dgYKrh0@4a79TtQBK~0U$%DR==JOO z3@|)!C{8$n{CnW>%ea%J6G{DxH-G0Zv~?J4_Qq+D$NFRVGJIyrv0?>TsTH#(;1R43 zYg?KWh9tJPO|OPh-9^Mn$Bm*dt}8hUo$*~g7J|q$Ua~iy>%@SGqaMW08qYx9#_R%C zcmRd-h;$4d050G*60x28lUoYW;>G} zjn_LHgM;XGHe}Hs1B^f>n)2?azoGnRwFwARgDaH|ym1tWZ``c}{LcX1T9q#}@*xaz zU(O-}G|HUgAHx)3-eS{a*nPPdu+CfP#dz!jR3%Lk6yq*w_mAuKAVLy6hQrA`w9XWJ z1StKn%u3e+B*UhNx_|$HFkEe=?^g(+rn7%SBBg%?L+SqaoQ^ELZVeL|oQ0W{Bi*?b zOcj)wHC@Rc0~H1MqK=uB>;HRE$IQl*o=7T)9uC?D2K>N*A4Dr?8{`-*7z;BnmKiXt zGdL?Z8&^894k$H1PcONM1H!2S+$f1=)BqoQ)awv3yZXS8K;+&vQA8F+4|ZV z7+3E1i_eo;!l)?@Oi4?X`412%C$1Nn1AWu3*ZRKby5B}kpXb->=?<11L|DgMl+m46 zL1k3a$>M3oAu2s>n{@vAJKO1;v{~en9hZ+XDlKKXT7tHKr^Zf39ha^5o^rvInw@}c z)Ag-{V>X6ndUqQ)$V%w#nM2Pxvce4*&^+YU={5JaM z5`hQLe{1R&#ugK^oMd%M8L7|pjQiMn0G{FbTW$C}Wi{T%ru~N?3r&Z|YyODKr4(&x z=lF`+9nbO(pO2id*5iS|>wWV*ry4BTbPrBYHV4!B7PZZGO~qz}eAP`!>HE}8<}u|n zk&Hz^`PdfCnBIA1AMJG0F)~95k_soC2Vq=gkPH;H))AG0Fd`9H6oj!zpWE`2dQ}Tu z*3%d4(P9@sw^`3mjt^XA2&UB{u&b^-xsMs9c~sTMlZj|7SlP@2fqkE9Hi937AiDjx zb=6HNFw;O~=@z_$iZf*881iUE>C7v!+eHi@@lNM2nwi$ht`}gk>ZRJo z(hjL}yMGPb(w?+Vs{hLJFja%`5%gCl?Rj%W(o&IbP+TfzC*RqAkM{0`+8OszBYRNG z@dBKg@~(3c2QNa{K}dkh%;IH7PBEXbuYTlteND(IZcIQzQ1X7t@R1qGE$8X9|+^OhXdXlJBNAO&QmKXs379L!G(Xv3yRO_ z1yd3+Y3Zfu4*uYuBdf-_O~E!>Z1;qHKs3NMheO<$C}8J^Pb<_tG6bhH6F_g6JwS@#!6JHQR2Wp&~%m+Ss{!Wm8JLmpgFyh`5D@Df(I85M`T z=8V7jg2cRk^hXii`+4&M9y03#=uNQJyplTxHHi5V5QIF+$+sSx%B1^WLaCdT>X8$e~l zQbefguh4yM?nCn>#hlmPBM|rlkr#8c4BF{BWEp6JY;VR2cG#nMNY9iCkS)mF#_TZa zN@k2JZcW1747Ot6EIX{#u1c46R%sV$H^$Ly_9sXoE{4;`KS%LuZJdBNY)d_&%ff!V zEih-o9-oBQrW>enw=mqowBCZ3g5-4A_)J~7z9{8pYvrUJaA_fn>w6jzo!7?Y z*0M=p#5ua}W=?M5!$80S#ID;Rm{A&-oughyzi$z4Lv6sCQ74D0+L^H=rPs8% z4%Me>hUf&&_O&rCm9-=}izy2YVNWPObe!o~g~auQ>|@8w%#~g-=)^VBR_fuF+NHUa zS02qSDX3VU4L6Ap6xx z0^vXUV!Rb8z)^nj&N;NS5E|lDzyi*eCm!Klsf23rqbuhfx=o>r*lrq68B+l-y)>WF%_a-jdk}a?lKqNZS|S{DaV%38)f&1gNqfsIt=c zKb7A@hD^qESFD_fW!D3IkX8~b(^HWG=f3zRuwRy*+d_w``g?4{r8Mr(C5dA2O-K|! zjo7mMfJi(u1CbB_BC#e3M56rvkPzTf)y(Lc6kz_v4tB*I;>Zsj9~5*G!<^y-AP~Ie zZcDJ(Qz1FZfdCiy9dP^BXCcKtGmtqp{J6(E$UU$%RP?R?SzC0%mb_llD7iCkt5n+P zVm4qvKX}Qew}B?o-m?nhS0ZpkQlOZ+&b0hs)1HTBpLUd-#IKT1bcOn5s%K-9U zOzf1FLJ{)xXtN4VR}oP)k1W%I3;HzPOlS~j!wsCqnL3LkY31J`G=HzD|9_#mpK z1NaR=M57>Lm}xmCv9z-#Db4wcL>d_GdF;1FRdcJsxmq{c#WPa`O;$1kz+|OBwCIU! zt9)9Rrof+vBQvr+BCT&sQwc`$V$RXkCJSiJ3@|h7j*Gpv58tGiK!SO5mxq% zOXi!?$>CEKNCJ#NQRVvM!24a4|HOH8N0}TfmXgDmOK*N#v39NSOziI(EoS-5B zlF5pXr5o$TVWmrqThJw9bh`xSa(Ay=>`|>OmQR+yKxJDU5JL7g#k8k@$te4g>Yq5q za4hpkai+1nABA)>;EzmT88DIQh%weBx>@V5BH8RAGe~ld)6Mf2J)}sW^?JI#Ldh=G z=Fy$KW;A;eZ<>Qs=$%u{<{N?Y&uzg5&^eRa19hFpiMOF2!~f@`VsI)Fh#^rF0xez* zA>_sHRq{n8(I6y9KIyU@f%Yk(M~BYD!4{d$cm*|o9$Z@4!ksi7zNkNXvVd1+^83la zf0?m&pVOsW_hdPvI7@)o<(Oh~EF|bw;XM`E3=0N>-p>ojffxV?Ld+Nt1mt0oEgHc8 zMsUkhMvT24Z0i!~*E`j;GA@vv}Q1Hv!Ke-V_yMwTRzGKG!b* zyS=@5CGdEbtTCTg#YA91ly+djL|{Q0m;V(MpW!NOj|}SN2kej;=>6%?f!AI&xIgBT zV_0VJnLW1~{qVyreHOdNrxy|kKvMfKC1Y#`&U1=BK=&i|Klh`11tS@h)ix8|!e3qG zkAaZtO4I9E!x-|L0=pOR9am@RVN_Xmt4rF`dA%>HCJ03D35cF5A<(%l{|`M4emSKi zidD5b0juuB-MkKi=ACM+V^6VX$4>#pH|HK50{S>XVB6oowvYd7+aK7r?*Fy@MkY?e z*^sSqt!nc1vQ}C|+B-lxS@ezJu=i~>G20FBee=I1nLu5e9EHE*(~l?%M`{iRT8;bO z0`efDF|z$I@BgN1_W;%*6x0cT##NQxd>bo{RK;p8JNWt+Ay&|5k`4}N0qIx1oZ-#y zBfLaQ(QN|$IY&2=_d3bpz=W&aoAZf8h()z@%fYyr( zlU=s4Al8ik*SYx209js1#DOJq35aj`5GARX^cE1RA>dlWjr)HcK$&$8!ERU-sl=w+ z@*=96MuQJt{WWFtVfUvM%|h|2HXWPLU_^6al~Lr%GVgpBqPH(f7o$7H0&DO;ju0 zmyp6=8AJl)XuH+mqn>Zu7r*_Ps<51XdWZy3{3Fwpr+>u!Jm23F$!ofh4!NAQ5PqM! z^i~jh{RCWk6EAaBnUY{GQvORZSX<+s?MY`H*U!#l70pPpYI13OsLR>Cz$R>eYj}Uq zEmSo2Z%k%mXfuOp!J0n-_0uPNf{qIMHPSMBzZPlkcHi)5tv9PkI zGZP8Z1B$s&dOkE9i;Z=yg+%(cyiEw^aaqIHpKC0PgG;F}o6uAr>PP?iv!tRh9yY*D z5nPJYDO4zAR%r07bRTO9?sC1q7r%RfH3Fy=x@}w$o2%SW9 z6Kx)00bYPFu(AHSc1*m8JIux0P~$)qOMg^wz+u^3S|jEn(;+Wj4<%<`JtdvefcIN;_E3@MM0nS8QFN<1f}9V z1~3%ktI1CR2E6X&pg&6wgCy+!nec;HuXC-PBk4-|BWJ`-r{phUWO=0nF?m9ns1Ba7 zie+jqG*-|b6(s4If3 zL@P88Nn)|@%TI7*CG_~sr=p2CuXK zO2r5(05S9O>*!BfLP(cWQ)>qxP=OKt5MZ%kF>8^LqPuZJKUY;W%MVFlB>>|Pa){|Y zGpJVy2!vy}>eL&%S{PHeXttM|(UA815pww&Lc_$_mdCyHY*e>#rJq7sX(QvtP|}6f z%fFo)f_&-M;Wz4UP{#baz^^6TEV#Oy^WG^x#@8>$niW-15O@T3dg%)gmJPovvYNgQ z?28TU0>fvlRh(>n2P}89kH5{%atiKj`*!vt;!ie?J=SoWQLe2HrFn zmLP&v$W~L98Q_8-bh|>|`Yrh(I|*dP7#{lKFDjli(IoOW zM54%1KWs&yZW)n+Iu?UHrP*sGJLL7VK4I|93wHy57Gdik+b^BqV;R7g#DzNkfYU_d z8dNEW0MCIn`#U6atLH=LyVjGx+cNg81E`XKam>DC)FhwbHunLXYB)`2xYR`RXG4QI zrq4g;+0D(1%u);}I<;>#b%X4?&9;cd$k){#4`k{JcKIU^`=;Ls(Qa*1FWPwJ`r9m$ zFvGno{nng(z`aN~d44Ww3h?kgW@N z+PeEjdS8EPQsoD<&+<{~7Uk8Eb_w&RN6%OMO;x4S@woE`ldsXK>E!?1aC@;X7QeX8 zh@)TGj)lJYW6pmVU7)Y;!B3cV)|q%?>GoBvu6SI>TEhQCHsQgo&{N!ofAf)g-Shv?Z9!jlU0jSn|pYQNHiUMSNxQ8WCS1E3;`@f;S z+~4wBg{|PJeJzK;*>;WU&W}w~KM?mqX5P$476M^56^HKq4>as6`F7z*zW% z3k{i@`De0Ij1H;8SNxXTg5Ux!e|Yq`wWPit#E9)NWZp72Sl1j1l(;?slxS-Nln9~! zKZ$nz@foyjks0UuWWCL2c7Fkj&9e%s37a`DjGN|-d+Xhu*}}wok`IbzggO8v13Z&6Au>}E>QV-F;Y|uGW|`1 zXz+PU%Nd(fM?vRCW#Kl{+o4JK!Ekrji6uZ>{8S7C(?xzurz)$WKVkw@)G>d;YFW}b z8fL=$b|y;}w*1k*atd3KcY%9}CyJ6I(1rNn#b-uCgwk<#e0CU5oW0}RR7i|m%^z+g zD-by<(Xd~gtfGqD=vbU1ZJWhniw**7hLzI(0?Nl=#FfLqP;pC(t|SsJeon+Sb_#kB zrZKE4_G9~aQx!TU40S-XrzrhYz;GQJB4~D~#|>#!0)?Itz#$|b=&x(IXZ?A>n1Z=l z|ieGGDU>MZBrQ`B#M^E1x`BFfw&W zFIJ+Aj0m~eC9(wgGy6QKiZ(8eQLX!&LSPw7l%>of2@1kz^)I&DCXV^O*_B90|5Rz4 zWGo0UY#dSr7ji3fmYGBKWL<=4Dh2IC#~LY>P^b-Z9LG|MtbP$%Q8uuwI!gwa`+_j| zXaH0{vW4dC=^uR+Ruid&g|u}Zrxo<7VmW6Ubzq`1DobrExeF$?`ymL7x)>R@*u)|? zEKk}ugwnxs8LrzV_W3`-jCKn@xD;d+6^meh#v$iHrdtx!sz+il$y@}8$jjVIk~7P^ z6EolqLr7$CYr{)G7A07wapzuY5F7tdU;~8wT4}$>BDd+gWVnDAM&uENguiH_j5u-c4nM?K% ze$TNXEnmT=+;5B33n^{g5mL+5*@oYgGM_{5QlDsLMyw16Dbd1({IQcQ?VMc}b&&z5 ze{mq8)$bI01G~(@QTK8uUk`f-`ySmGvWizE7f|=4_;zz<&%UKMd-+iSFJVsDqhz8z z$h(oF2j4cS_EI$v7^bNw?8R6n+{$@c`1vA+BRp|jkk?#V*W9S_VNHSkS_TGx(zBWG z#hdar3;wF_5R+c6MC>T=1Af$^toaP)Hkuj!<(EXK0f(A4tH3$J zT$)pMoCYf_hqkqur2ZKV=qp9ktrW>csKr5~2VdP_muNUBeJ(K^O}sYK z)N!$s#nyhfCn=?Yq7ZfOV#V&vjX}vkT;yC zaX?pz;=^ZwV7W5jwoGRNWQ|m9UKB^eWC0UlA-GM9H|#`d2mE(2?^9+!rT~J#l>q1K z>Cc2s}`@y1*XCizW=jkot*@DnHgZRxu=0PXO09Ml)cmnW+M^2MFV ziU*=yx64H$m)~m{eG8-so+b%IFB>1W90W2w(AhQGAV@XrU2+4rzt8PcmV-)}eHmj9r_Q(b|1)0&() z`D#|ra84rt#AigpP~_g{r<&?YFq`>H2rOW6wW88Od9CmF&2%7e&7Z*ov8?QpyQA|zMc7o@kwE1_>hM@OXO zlX*|ulB+`(!9cmtN@T^e7QNa9vvBR#Mmt2kV$o9oXz)pT3|yyaST*xJ3U{k#4!N4s zyEPH@R%49u6MMhtvd|?|78zekBH7JsFd0wya5g7tg(#N_+`Va6w#`wZjhd~8mY?2f zo`-7i(~Qrv&SXB3M}^`2&>n7rGwMdLh9M?G+bnm*nVWBhL&VO-fBpKv=!1yTN4l?^ zE@F@eBuDhxWy$L*^Nb*G3`Z*KvNdsGybSr>3FSnDA1GD6>_!s~q28%}Qppdq-Vxp< zdos)n!QC0$HF;9&M;Z*ht^q6j;pX{Cs*i1=a<}|0FfRMkl9&Ejmc>rDL{|Tpk7Ke8 zU_H`m{4SNq=eCA@5dZnP+$gTP2>Sx&&HcF(jn;w|g?|z~Y+iiYi?Iq_@!;f%>%;OK zaxXjIXwrnWvZ|wXcn_MG1{%L~dSE@~G>?!@RfqpvlHEpdXeL{Dpj@2=LERFQjy9J9 zN^L?tRwftqj~VLYx>oD|(e;kem3B|`U^=#K+qTnj$F^jKRjohQ@eJZb05^MvOT6&#~aUwR01^htRKTv6W{6@&WLj=H(Z#DbYtwB zED)Tws&$tZVbc&XcUgBt(>u#%yK5!FyJeF-ai2SNVd0Fd(T(t(!B6 z-AU*8HgLU|a-BO3^G~Ob_@s~UO^*3e_)qTtV0&jDRCwAg)#%En@ko7+f58jU&y}4U+ckw~21%dL&u4z+@9~`M6}!x2)A$CgR|t7vZt}=I1#c zb8>LroU&#snM!v@TDW3HF+Xi=BN+^bCwkl+#H`C|w%utKAN{_17@5WI)X3%3nC0|~ zXnG8Kh3k-MajFnv7Zr-638w42iv_LgJvU&R+Vy37bN&0wlo!^E0AY_VlY{kGEDRq* z75r&oWpA~_)r8-RPrlgAln=>_pB^;lv?G-tNqUTqTCriajc7jZI+XrWsI}#pmtzNf zRknoK)u)4GW^m!7K@X9iS0c&S7Us0ZjN8or=&%$AD#9+*N+6K-FJY@ zIvL!l005<}V(_xo!XAvT%&3U=(Du|!O%K*xcMDggHIPG37ORYZWf(mOWqljtkF60e znH>o?IH62^&+)KEsG)|-YmO##>ZY~^WXbxW?368jj1lY-Ge*pw%u*dkYXdWTOdv-L z6T~2H4>LP_gUqN^D-K^ZW6l;I&# zbSZD9D%5c7EEjgX&r&&?L67)R?Dbg(ayV>XEx$EoSr_my^d$R8098Gl+e38yHBv26 zCS=DD^rcfBnz}?)J@nXlVer`U1=juW8TapvASf#^d$#}$jE$4^U-m97;Ma!pc?(9^ z^^;1Ohci`>6Xn|NMTV(+B4tw1!uq9rBAj-C9Vah0so99bPP5~#2xby8xpzGm5(of9 zNC+f4NN#TEAc(Q&Q+TG8TqXLk_uydvVzRgA^X421((5dUA(=Snk3<27^r3P0TR>@X ziFlpsH!G_KZp`R#q%Ztp!1ev(xRR>d_{*(D$Exsrt7F3G{7~gsTQHzy@p2y%wp(#7 z#+3g<0K!MWuQo4o8u&u!r=|`KqZPAETe>;|WyGO#6Gq`RFnW-Ih3TjPCOl*Fwh1WZ zW}|j~06v|Uz3;30x@3_3*wyScJy+XLmp4ydh+_QM_3%%Nle?aPvPCQpqMBZrHBu5S z(Y5`n{7dCz<`PVgtfBacr6n1d7IgPUy1PHF^zK7FH5VBx`g!4E=7QFqV7*SU6>N&c(s87cA^>P18L#NuSrYozDFai zLKxczyc`I;41KYI65I#8Y-{ewuWIcnj1fbgy@v7^aLiP>w6)O)C)(qZwO_otz9s*1 z1F|>auUDn6Vf*5=4n2_fk@&^i&-3QY1S*`;akAV zfd|)09Yk1kIfx4B0y|+}?7L~e2yN)M%|?OwyAlCMq`(i?&?eZYQ}jR$}1K?qu= zgpT>ysKSwFlQQy%AD^)!{)8ja4t!j=41!CxR3gk7_oqUS00t3Fe)6}GhvW5}^x^tr zaY>(So261^esyZ-{TwV7>^Rew6Z?*hK$$@h8;PPX>iw2&Us`}Zd|w|ERKQk-75HH4 zndJl~!Am)OygF=9n}Z~LlnKt&URM9DVtGH(68oxbxlUMTyS<>=AQE{AprVArzOb6y z<-Xa!mhQwQ!P97t2>DD3N*l9K+keL${3{&Bqv1MpB%4%jMPX0ioool@B>u4Sp3#fmKaE%Fpxgb z4j{xlAViw%{}ASJkPQIjeA9@Cc5XKXcp@z_P$~)-WIX_frFZ|>I{~ui31lza@gIAT zD+0;Jyre1r3&PME@r$jQ>SN7;xJD|DwVujDkw}JvXg5B`@TboNyhucbb5E zCw~jLch-S>$20rCy|WIwUQYHwle3?E>bbLZF{&W(5840_8ZiKfZD#AgP?ns;cQ8&i zvl_xS()u6y0YLJ<{Ug8c-)Z?D`OJNCsI=xED*O^S(&AmAKY^RP4M=?7C6M?{Ao1(} zBVLy_Qs#AHK2zD>1wrf@eqx^WAmrR~VxHh75g;hZ>cDN6#xjSqC^{y*Gt|IcnPic^tj;x|ZLR)lrTo@!)d z$glD=lBg6+Ij9#E!G7wB5OE@J6!2QuLR7{5&OKN35v15iZ}*w*T4H8Z4k4XnSxNYR z918gV>@%aEw-VzQcMa@hnGG+g#l?x@!#*Q6!0?_0q73*K-lss6z{dyRDT8h4%hG6! zwNi|OLYm>Ar!6DRietA|2+Wi{1)eU#z|-ZMEAVg${qJyTyCE?XO=KVLVE-f!NRDys zkww02gB_N?u}1OVr)I4ChpvDiamc=XZ6rg27@_see_BTvU(Iz_X}Y`5f8@2GA~A+FZ=5~!81%FKa5nK*EKjZ@@`fK7 zo@me3M^HVPm!$7$-wB$~3{d{WU8mjC{P~m<& z-#ysI->RLO+sK6cQc=UV!_0k9#+OxL>3Yvk`<2TDlh|UWmX&Jq*gX?Rmdb$=)*NGs z+a->KK}B!nuNPqJzC=;k&OX>Z5xQ-!=Vk}+iEh+Zd#R~wi6jq9NPe;K#(9nz_|)~MNE;g|;4(i7>OylxHs^?Pfy=Xvh%Jt(4aVKu23eImC_ zYC5ThIA-)dsRw5f{vn=&(AjY8f5~5d?v+&$J{fq`cb0PhkRts}zo6sH*0DU1$ znRdzQ`3h`04WgeS5Z{QA^YI$Kq0OCGWdpkhN@%GcCz4Ym~e#w7(nrR^uqOdDyHlG9Ags{cfzx#=Se{oa@lng3G(| zIF;kvJ$M*2*2c;(a(?@6)6NO_NVLvt=C!j~2(C)p%6X)izA^v$Jf!R(zm#{y2_K<5 z>Xh_&?O|sa08?I`EG&r(6BxTy*=|gD7Oai3Yv=kPb4q}^(zI}#IjNI8zl8DOj~k?k z;mAGktFTknyMpafL9RB^sNTfrHUv|67@;Dw{*FdJp%V*bPB?3GGkFFeV%*x7R{|q( zKitTkd=T53luld1Bx1MQkIu@ldp29Re31IE%wZsk_H&xtdXWAFcWg~v^y|DFZqBeY zVW@66u9pW~rFU)duh9wdR_B^5jS*B%balC|rbP)W1Mh7pCPI7Lwasv+2Qu0_KXhm3 zX6&Bl?rWLGAIN}p2@-8UdirHShrspKr$vj?jMovYo%!G(TZfMk?CA_=B?db>Zo6}D zLX-EV#*(#$-eCsGY*hw6J>+$PB=oc?FQw-pIYvXIk7IV~L?;znlkkSFm|<@FF4ogB zkGKU^bSX`KB)&>d5Y$A|0<}s&tRBniAXyCPCibs7_uZh677aMS^j-#a`)1`O``xRl ze;cd^0|eAPF)?$8z?Gr+#yZ)TrE&Z^H7w%pTG6zK;{iH}JFB1MDl-u$A`X3_Mw{61 zv=L93ln>TMSFM({wR^r!b}0J*T6oH^)Iv5d<`ov>#ol1Obp0<3R;-zp5BDm6(lmPt zbOzRetu%sLAI@U{rSa6%D#8p%&zCU0dlQv6Mwer&6Xmdwh%?)5??)cUs>p9EFkd{K zev&q0F_kf0F$zAUhuavW2Ns>PBIdWZ?GX-sVYZKOrJf*|eg4rj&VnDdO-r$5J1cNx zoL)>`}CVmNZi>Q5$!ldZ8(CCBe9aY^c#Jz0sWAG<9ZLmc}^-Rn~ETdY399x z*hC(O0`bBx)r$+QU{kXv9}#AAn{WeuZh|c|u+~<10_`kDF-DQ|?_PN@ykq5peO&=U zD`7^#qpD0199olT?vGa_96nFt(HV4Et!zIBkxPuS95~Ym@6$P*i2oiqSoH`k$MlMc zF~Qs5m~1IYz{)yY)w2JN@b5&C-MF5lLY=+5F#O|P^Yq|Hp|VVXY6LF;5C1DBqRDDv z=k=CJ9cO2|VLqm9oANc`CC!8A6G~WN;@>wBv~R5c^-cu-~=2jJ?t9B^I<^oquh z%T3;iayB~M7m)e&WrdUa8=-g>L3x0ll120FCT+_VsCPGajh6eUp0!40b zeQbN$iz51JV1MWUyfu4(zkCcXrO|zB+eFhR)kK$JiX+8@((maObwqY55#OgNNnG8q zad7*aEB!!lW%!F69nkIe`JCh=^(QeWZUF#TU{jbANnoqGOAoN14dC_m>QDFvIAsI-@j$1J zn`9IliRiWc*~cE%2C$n`4OTwtXF<`9nAW=*U=4}aO{JmKX3v2OIu$yMFwXW|z=xFi zrzZM&!}_^|o^3ROq3Ih0vF?}G(}XnX`-}bW$bju6@)yLb8Xe1;UO2E}qi1-)6K5#e zJFs3BuS*s+9N=>t!eUbKdk)C$y{ln3sZk)hX}FNk+50T|(W^HK^d8rfgnV_^x_zUw z^sf=)#(vDFMllt;S}a3D`2>rsDYif%Ck*q{@9KgoCY6n^bt^i0oT;bEVl(r$w67n& z-9PJV%S|SMb%FY}Q7f$iE816vvyEKf0;8m?zy>9fl>z=r`wk#JbKul&E(~a2C|_#N z4qseGruLB81YnZelfvyqD7tEZ;d%?u(^6j-%|Gt0vS{jW*0Oc*6rr)NH|@&?h<#Z3 z7n87cR?lO5A%8j`>)AFJkXns4HPCI9ig(>C!+X!|{u;6u6{LHHqA7HN8WMwu*_OEx zQ}W0bkprxI5mN@pzHWO)uj_GMaijxxix!&auv}v)K}xBr@B&6bpe+jtg2Uz|*~$FC zAD#3;9-Kk8JCz)tc9^r3IG1h|>i7FXP%DBU~`S=Z^Gz9P%@21oopOXt@WQbA|Wp zR{SCHrkfQ~hpIF=<&3Bk(xS|K4rgM_fOWLcCI}-BK-ICg2G1Hw0}TLH7WJ{lyl1*iBvfUE(SN5S0K)R$tNa>-hI+h4yO zOl}wyAy@l`yOy@j>N-HT^QKvN4Ytx`?;-$eFRt$c5%hiplN-{?8K^d>BCp8+Fk9AT zFx|@%L#qp82t{h5LN7%qV87`RfL+WjW(HxyNpP*oe3WQ!&_XkqfWqpQH2tPht!tRl zx0tYqLTSlh&@#F)KER;Wg^+B#-19}e9ofP!A)dM z{mm}QAn*rU@8BlD4WDKlBhqH0Kvt){-$?cc==POi>8$-Zo+&A@*&}8ZOm7vvyM9XX zG?pL3hBqKsC+%B`fLR|y`EHv`6!JVt%lbOCyCH@od1YioQh8vCeW?Ew0JXkMpRb8j zT(|uXp1Yh8njZ^klA~b-24c*LcPza*BfnsavClwJF2k2c8J-POptsW9JV&QKIB^v~ z-A+wi==5VMT>|Dk2$}@Lfr*qD*4>UaZz}zzEFx5iub;pJMzUy3?tuW?q?RL)Pr?`} z-VP};AQ){4G`RS#!O{ZXq&)r&;VL3ak(R zwIh?}*va<=O$qc{%CFxcD2Hz^hfqsraQubYjL_+$ru z(_>zy2G*5FS+C`bXe#TKpN~d;x9*_MHn|9jq=0m1JZw=Doh9s`V$gjA*irjaxK=Yz zCCD`u>q1w2uRNMK0c`8F;5n=eSkhHRgs@IuL|!+y)f37_Q2aM!k|RbJoam*Mj>Wf0 zQ#6rmSEB9wUvo$oAol_Bi+F&J023NpfiFHCG4L)ako)cuSNSyAXpwTfPvu2dxthY1 zK0tzG%`&4PA_RCb0z!rbO&k7DFZ0>`_xK~Nr;L;)wIuu$c6-Dk`7Dwqc;kmlL{j;2 z%{TOH!T2N&d>5I(cR4U+U=QuSmm;kS6l#O48bcMNgOWo6b+<2CY z2)6yM9PIt-7sQO>?DPTdhGp=%CgP0NGl1xI>`bpgB{W7;aMNeI<-l;^Su`k3*=Jc% zSFfZ!cYXoeM$yU7pvSzZhtn94T`8l8AW1T=OjZHY!wg=#s2GBzuH(4D*ds;h(d3Oq z%%miaZ_@qDOdDERn`gwF&Bs@m@PATyjb=!Zj$?l9oMRlD>h z`%VGYq~9O6!^aShThs~YTejTZ2e?MMb&xA&R}m84Q@fi`(SXbk!^~yD^~0`$ zv%JcJ4vG&dPF!nJIi8~2$sF+E4o3WpJx&%$Xduqti5L6*K&;a0fu>+i!Q)}_Dg3ST zdi$2#IJt=3Z0>{7I5Ua-DB%aT5^3z!%3S!fzma&hK=O+*O-KX;$_`Vi^7wP9!FKNm zCjdvt9L|2fV)T(t$U2Qf?KbVaT0=|gLa04%u$~6-&HHxbV@4#A==%E8XCzOG43kC- z71IjXuYpwi@=EYsq>#h)17C?$8O^T+%p)P0W{y478K=AVZK_)G?9&@nI+-N_GaI{b z%h|sfls>h5pWR<4l~_ITcV|Zhmh5*GG{9Fi|B^gm#n%H}eTo4hT>pN>ntze*Qn*TE zGlBHGi8|NnqZf%~_DZb7=hGact92kh32nExAG3?GUkqBRRBO-Col_+4Ov1g#brH60 zow7JK4EyD3e6rQ5Y)v^+lG*PSN`MC2 z=ConD^>~f>^Uoz7{EW@JsfweL^y6ux4kh#70`gry(qv?}ud0-3M_J5%!a$kKYy4^h zR)R|jAVU#e7furLa>qq>3^=>TSNs8Yy-UWgbO#zsk(6e#pPnGB~yj@?)3U-iG2rT6D@8qvkQ0tj^ ziv4RryqXA8P~?$aIoLC1h{Zs0yfUUE(RWyqvn(5%=dT%wS2rxT!Ulf$7! z-%q#?a4l3qkY%Ju*rXBT(Z57jZ2r;d*C(TNu+oQYs^qg}GIM6>0ol!=o>iS27d2#5 z=CR?p+U9U9IFn)KAFJu1{fPFMv-BFU!~F#Q6h4du;^KLCfpm2a4nvCE=HKp0PZH#e>z~C&+Vs!UM#BFe5`7^)w&qYGLlFmA%cd#DRlt-_W6v4^e%Q= zF@z^QjMdQn>eJbl8yZJ$HW@Zhw#j_FqD~gYEk-&=J#CD;KUXlHR#_}-?WL}8Wi0&Z z=%5xWeS>9mUtY3kH;ybBtZ=_No??wenEg*^bF{mIVp}m4A#b%e&FJa?Xq6L>3W$Z( zh@Iiaxjfk+(9^ikkKh2Xewp+9I{wT2bQu^-hrf!yU(ixn6P>##M6`!}>d?0^TqOBD zBu@0SeB|ocJFxPK1>kEQ1GW_WJE%_O=MWK(EeI%^&)xMFDlzFvv?pxTt6@O$-GiE8 z$*&*jLBf-ZU?vAQQqT~YfBhisAvr59f=TdhTgVdA>fpl$To3~0$xpvcWV}82Q7scS z-kBmOl|BFBd(yM`)M(*LeZkYM7DCDqzlzjul2bjUz~&Wer7Y^uu!k`wjW&kHJeOs>=@ra=EsQK=P(w`PYn7i87eCK ziP3``ax;4{z&6L*NnSa}Ua3=LgT_Es(^QJ4yd-BAZAv_zGzYZa#r z@m^&_3-Fp0pM|k37%!AZ+Rz&)B;YeFD*MC68%|ShagKcCqD0Y*xCe*6>HC@;6r6{p z_>;N@U4`B7t1X=hQWHsgWT~S~{2t8D%8?`y4^-#OBQ*)ISY%j+N*K;{aen^+zc|Cx z?}R6ae2mudL%a7LOs^^Houg?^dx(yvvpM}`y(b~jZx#pBDrjb9+vf-DcWR`k^=~ze z#X&Z9?H&f_(PEK{^0mJ%{*1>zVx``D$~fL+OxFXueDqL7=ssfC}U}WlYS_NvWQ2ZY%kF63Q+TQK|#bnHQ^ozY)N8i!g(T%ONNVQ zlG5?bU&8fqu3GT<63_+@Y#Zh1!y{igLqt#^u?T~!VT1kN+w+P|JnFML${izn=w_tt zql}niU^gT*hvg<%U|yhJ6>&ot2PdXZ`Zg{u*d1{Jz&4lZ6R?6}i$5_cSqyRic`*gf zvZ`dot9|694Xc<2a;+B*nXmh1 z^q0|Qwd=>8YCG+)59PBgj;(8Ey4BK}^Z|d?b zG)>_FpXEKWM;nWa1dkDZt~T7(8;Cdy0E8T5`yB|`^#1<^IRPP@%0P6@*Y;qOh>{Gx z(al@MjxMImA`qJ~`D5k$ub%$Msd^d|`XW6taB?`^ZFrWTe!cSOa}ju11Zl8{dKyN` z*z*$J>P(fRN=5|;SUfCNP|YAO{6({#bWW~ecxQu2>ZhRxXMjP>OlLof4p#8$oB5ZY zhOg*jp)UQ!x9)hCdS6PoQu{0G^MQ)BaSG*iiY6Rb&GI|mTEfyKSx%BQiC1_Sozv1x zL$R%AaEK~m!TNFrn74CqDa=zC`muVJ;ANQDe4V8 zrw!!8=2()<>;bsbl(BC@>nfyR(n!YLDN$2VDZ$J)dx)306~sUfLy~~E2O@cB_g%Wm zNmr%3R$JfmcRcxyMC0w`&_uY6X6R8VYwx|)Fa&vu-NF4@(ydI=T3k|U6|hV0^&r0M zvV2WnbuZiHt)zZ^HUXklRscDFhGVbgRDcO8O$q~laHtxgX3-+&BBCz~K@D0ta2Ue} zgLRlEmkkpwk9M|6aY|*shJ0C98hcZ0@I^4xY7sX_wKIO}4Q zHo&Qfe%!byBu5s#Hnz)aGhh+@@aH3$#iAl7Q6-5nD<~3=qG~*fw6b6oOZ*u^Qli!{ zmXwtQaLXiqumk)MuP>8-xM$+d80;i6M4xcIGxTAcdT?KtaE56dPR-1Z`6EV}4f3uD z&i1jYL`p7^ITnGO!y<0QX-dGK6oIyc6LV!T!J?21a+(4iE~`}1NG_&(Cn$->GcWVG zu;FbrhV>U^rs@jdxN(h zCG1Jeb_<0xr`7FaMQN^z43~_j-xKHZn+9)YMePpi ztz)|2^##yDNow-k0ko(5KYI|Lc@ambGw$7z{t$UqNgo<~9e-X;(}Ew|@Zu?u(7ps? z6f~Ck!_JAD!iQqR+$RnVvRpI#2@qutMUQEOz1_P%Iyw_)PVC|7^!50>z30<-b9TSI zy|~vgcyo1kySimcWuO zgnCS&7jCj`pxPS{A{8PTBPnwm%(JSdECkEBiya(zu&dW#&b;kMLBQN4PR77y;aQE- z-G*<;TQ4pe=V_ukMkKcZ1bEvLIg0(80BETL&{C#~w6o+4QSdTBOgNjn@P@ihK$$+h zEeR_q+{ggG;t2#Z5R4TZZ6mx0^)CFWeFxn#9ab``r{%OfSx8C#uaXDX0&bPFl`(ft zy~9#8Qr6V%6>EOIRa|&D1dq?Z#0&JzqKRX-$pwi*nl!x8e@fBi#fKH6{;|#fk8MO6 z;D#C#dV>g8#YK@AQHhWNd>V$H(pTh)vZLULk$fNMGQD-2^oi!pL(U|Yi%@}%W3%d! zHaaKKEORNd33QTS{;qf|qr)`sjcC%fC}qS!ctH0OjI*PqDm2W6f)jj8W~4vw%6;4| zL15TLD&^?*^A_}vuzQ4q)GnW$z>siHG`y1FHi3-%r(ur==2HAM0BGRun^bxlIYFG4 zgA&v;qOh?%(w&}mk1VZ>%k)LkI@M9eT(C&5;!jaxhC{AralNeaYbt9R@&Qr!7jeIs z2n!)4Buz<)qBu+bzZ2lH%(Q5rQ~_)g%*50|@oJ4#a$>F~#taD}6+a z^IQvdJ=E$wTSYN|1(k}0*z)@aTsA`I(dDL{ZY)|7d=|#?477$H5q_4ed$?wwViaQd zr*MzFAKBMGNCy45&A9cl=8t=sgH_L1bM1|^CVZP+5H^h44cdyZOWYb&`3A>AoJ}#t z6aR98_)B#1Em(E;cC)=n zQ~E=pftC(`44q#wdSs=5SIJWv%?vkyJh0okvBI3^(6?rd$=8pXJR?v3RHqO=_W={& z{U!XK;jjA*APxQZE$akNgQG3oA~d>uiR%tF6Wg_l1l&(^7frgg=Bn)&!uD?GafmXv zbDg7PKBWW^Qj|tn3ohKQO~@!6{7kWg(8V&lLo&%?R`DQ%fLW*39rG!)lFw+=Hl+9q zGBZQ(Ir47jer+4x&+Jc!UzodkFN+XHnTU0L=El@6;F!^VS^vZnQVa`D!;*fDo!h>n z82j}OzSA!=jRLi#A(K%LDv>ejlJUteDh1DU6)m?QE~;Edbs3I}URZe}@aykZDP%`> zi9u;}_Y(6D8%<#d_{m8yqw_br`VKdVPTCEN%USm-I`!F&=!)`MB8QemY+aV16(ps- zhjIJ?z^_hHHYNu-zi!P{FTzPyQb{%)rnER&;b5;G-CALVxIn~g~A4loBwm_nB%0A_7RS;48K$_X`HqXRj>GccWEsC{0L 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 z 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

v|y^s1ft9^4qVG}22nJ!V$t))=RS^ne` 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 z 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 mTTQ_1 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�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≪{7jef_o%S$Bf4c&AZ%B2rx-$KI||EOYE{#b!T{ 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�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 z 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