From cf3011768362c3d72f53dc4fef63fe08cf9d9e60 Mon Sep 17 00:00:00 2001 From: kimonito98 Date: Tue, 5 Dec 2023 15:51:07 +0100 Subject: [PATCH 1/3] Observation and atmospheric model functions needed for develop --- .../observation_models/observationModel.h | 14 +++++--- .../observationSimulationSettings.h | 35 +++++++++++++++++-- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/include/tudat/astro/observation_models/observationModel.h b/include/tudat/astro/observation_models/observationModel.h index b58cf95d3d..821fb16514 100644 --- a/include/tudat/astro/observation_models/observationModel.h +++ b/include/tudat/astro/observation_models/observationModel.h @@ -69,8 +69,8 @@ struct ObservationAncilliarySimulationSettings } } - void setAncilliaryDoubleVectorData( const ObservationAncilliarySimulationVariable& variableType, - const std::vector< double >& variable ) + void setAncilliaryDoubleVectorData(const ObservationAncilliarySimulationVariable& variableType, + const std::vector< double >& variable ) { switch( variableType ) { @@ -208,27 +208,31 @@ inline std::shared_ptr< ObservationAncilliarySimulationSettings > getAveragedDop } inline std::shared_ptr< ObservationAncilliarySimulationSettings > getNWayRangeAncilliarySettings( - const std::vector< double > linkEndsDelays = std::vector< double >( ) ) + const std::vector< double > linkEndsDelays = std::vector< double >( ), + const std::vector< FrequencyBands >& frequencyBands = std::vector< FrequencyBands >( ) ) { std::shared_ptr< ObservationAncilliarySimulationSettings > ancilliarySettings = std::make_shared< ObservationAncilliarySimulationSettings >( ); ancilliarySettings->setAncilliaryDoubleVectorData( link_ends_delays, linkEndsDelays ); + ancilliarySettings->setAncilliaryDoubleVectorData( frequency_bands, convertFrequencyBandsToDoubleVector( frequencyBands ) ); return ancilliarySettings; } inline std::shared_ptr< ObservationAncilliarySimulationSettings > getNWayAveragedDopplerAncilliarySettings( const double integrationTime = 60.0, - const std::vector< double > linkEndsDelays = std::vector< double >( ) ) + const std::vector< double > linkEndsDelays = std::vector< double >( ), + const std::vector< FrequencyBands >& frequencyBands = std::vector< FrequencyBands >( )) { std::shared_ptr< ObservationAncilliarySimulationSettings > ancilliarySettings = std::make_shared< ObservationAncilliarySimulationSettings >( ); ancilliarySettings->setAncilliaryDoubleData( doppler_integration_time, integrationTime ); ancilliarySettings->setAncilliaryDoubleVectorData( link_ends_delays, linkEndsDelays ); + ancilliarySettings->setAncilliaryDoubleVectorData( frequency_bands, convertFrequencyBandsToDoubleVector( frequencyBands ) ); return ancilliarySettings; } inline std::shared_ptr< ObservationAncilliarySimulationSettings > getTwoWayRangeAncilliarySettings( - const double retransmissionTime ) + const double retransmissionTime) { return getNWayRangeAncilliarySettings( std::vector< double >( { retransmissionTime } ) ); } diff --git a/include/tudat/simulation/estimation_setup/observationSimulationSettings.h b/include/tudat/simulation/estimation_setup/observationSimulationSettings.h index b1f92d3ed9..a20155ebe1 100644 --- a/include/tudat/simulation/estimation_setup/observationSimulationSettings.h +++ b/include/tudat/simulation/estimation_setup/observationSimulationSettings.h @@ -209,6 +209,12 @@ class ObservationSimulationSettings return dependentVariableCalculator_; } + void setAncilliarySettings( + std::shared_ptr< observation_models::ObservationAncilliarySimulationSettings >& ancilliarySettings ) + { + ancilliarySettings_ = ancilliarySettings; + } + std::shared_ptr< observation_models::ObservationAncilliarySimulationSettings > getAncilliarySettings( ) { @@ -358,11 +364,12 @@ inline std::shared_ptr< ObservationSimulationSettings< TimeType > > tabulatedObs const observation_models::LinkEndType linkEndType = observation_models::receiver, const std::vector< std::shared_ptr< observation_models::ObservationViabilitySettings > >& viabilitySettingsList = std::vector< std::shared_ptr< observation_models::ObservationViabilitySettings > >( ), - const std::function< Eigen::VectorXd( const double ) > observationNoiseFunction = nullptr ) + const std::function< Eigen::VectorXd( const double ) > observationNoiseFunction = nullptr, + const std::shared_ptr< observation_models::ObservationAncilliarySimulationSettings > ancilliarySettings = nullptr) { return std::make_shared< TabulatedObservationSimulationSettings< TimeType > >( observableType, linkEnds, simulationTimes, linkEndType, viabilitySettingsList, - observationNoiseFunction ); + observationNoiseFunction, ancilliarySettings ); } template< typename TimeType = double > @@ -504,6 +511,15 @@ void addGaussianNoiseToSingleObservationSimulationSettings( observationSimulationSettings->setObservationNoiseFunction( noiseFunction ); } +template< typename TimeType = double > +void addAncilliarySettingsToSingleObservationSimulationSettings( + const std::shared_ptr< ObservationSimulationSettings< TimeType > >& observationSimulationSettings, + std::shared_ptr &ancilliarySettings) +{ + observationSimulationSettings->setAncilliarySettings( + const_cast &>(ancilliarySettings)); +} + template< typename TimeType = double > void modifyObservationSimulationSettings( const std::vector< std::shared_ptr< ObservationSimulationSettings< TimeType > > >& observationSimulationSettings, @@ -602,6 +618,21 @@ void addDependentVariablesToObservationSimulationSettings( observationSimulationSettings, modificationFunction, args ... ); } +template< typename TimeType = double, typename... ArgTypes > +void addAncilliarySettingsToObservationSimulationSettings( + const std::vector< std::shared_ptr< ObservationSimulationSettings< TimeType > > >& observationSimulationSettings, + const std::shared_ptr< observation_models::ObservationAncilliarySimulationSettings >& ancilliarySettings, + ArgTypes... args) +{ + + std::function< void( std::shared_ptr< ObservationSimulationSettings< TimeType > > ) > modificationFunction = + std::bind( &addAncilliarySettingsToSingleObservationSimulationSettings< TimeType >, + std::placeholders::_1, ancilliarySettings ); + modifyObservationSimulationSettings( + observationSimulationSettings, modificationFunction, args ... ); + +} + ////! Function to simulate a fixed number of simulations, in an arcwise manner, taking into account viability settings ///*! From f753472cb74490a2b2b01ed7b1edbc4145ba3b52 Mon Sep 17 00:00:00 2001 From: Delfi-C3 Date: Thu, 14 Dec 2023 03:15:15 +0000 Subject: [PATCH 2/3] =?UTF-8?q?Bump=20version:=202.13.0.dev0=20=E2=86=92?= =?UTF-8?q?=202.13.0.dev1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 42c7ce67aa..2e118ccb85 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.13.0.dev0 +current_version = 2.13.0.dev1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.(?P[a-z]+)(?P\d+))? diff --git a/version b/version index 7d6566c9b5..b370e4f405 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.13.0.dev0 \ No newline at end of file +2.13.0.dev1 \ No newline at end of file From adbd239dc2e379c153a5e39e71c81c1479da5da9 Mon Sep 17 00:00:00 2001 From: Delfi-C3 Date: Sat, 16 Dec 2023 03:14:26 +0000 Subject: [PATCH 3/3] =?UTF-8?q?Bump=20version:=202.13.0.dev1=20=E2=86=92?= =?UTF-8?q?=202.13.0.dev2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- version | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2e118ccb85..b218e0171c 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 2.13.0.dev1 +current_version = 2.13.0.dev2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)(\.(?P[a-z]+)(?P\d+))? diff --git a/version b/version index b370e4f405..d2c8a73cf6 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.13.0.dev1 \ No newline at end of file +2.13.0.dev2 \ No newline at end of file