Parallel Analog Ensemble
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AnEnSSEMS Class Reference

AnEnSSEMS is derived from the class AnEnSSE. It is different from the base class in how forecast and observation stations are matched. In the base class, a same number of forecast and observation stations are expected from input files. This requirement is relaxed in the derived implementation where users can manually specify how forecast and observation stations should be linked. More...

#include <AnEnSSEMS.h>

Inheritance diagram for AnEnSSEMS:
AnEnSSE AnEnIS AnEn testAnEnSSEMS

Public Member Functions

 AnEnSSEMS ()
 
 AnEnSSEMS (const AnEnSSEMS &orig)
 
 AnEnSSEMS (const Config &config)
 
virtual ~AnEnSSEMS ()
 
virtual void compute (const Forecasts &forecasts, const Observations &observations, std::vector< std::size_t > &fcsts_test_index, std::vector< std::size_t > &fcsts_search_index) override
 
virtual void compute (const Forecasts &forecasts, const Observations &observations, std::vector< std::size_t > &fcsts_test_index, std::vector< std::size_t > &fcsts_search_index, const std::vector< std::size_t > &match_obs_stations_with)
 
virtual void compute (const Forecasts &forecasts, const Observations &observations, std::vector< std::size_t > &fcsts_test_index, std::vector< std::size_t > &fcsts_search_index) override
 
virtual void compute (const Forecasts &forecasts, const Observations &observations, const Times &test_times, const Times &search_times) override
 
virtual void compute (const Forecasts &forecasts, const Observations &observations, std::vector< std::size_t > &fcsts_test_index, std::vector< std::size_t > &fcsts_search_index) override
 
- Public Member Functions inherited from AnEnSSE
 AnEnSSE ()
 
 AnEnSSE (const AnEnSSE &orig)
 
 AnEnSSE (const Config &config)
 
virtual ~AnEnSSE ()
 
virtual void print (std::ostream &) const override
 
AnEnSSEoperator= (const AnEnSSE &rhs)
 
std::size_t num_nearest () const
 
double distance () const
 
bool extend_obs () const
 
bool save_sims_station_index () const
 
bool exclude_closest_location () const
 
const Array4DPointersims_station_index () const
 
const Functions::Matrixsearch_stations_index () const
 
- Public Member Functions inherited from AnEnIS
 AnEnIS ()
 
 AnEnIS (const AnEnIS &orig)
 
 AnEnIS (const Config &)
 
virtual ~AnEnIS ()
 
AnEnISoperator= (const AnEnIS &rhs)
 
std::size_t num_analogs () const
 
std::size_t num_sims () const
 
std::size_t obs_var_index () const
 
std::size_t max_par_nan () const
 
std::size_t max_flt_nan () const
 
std::size_t flt_radius () const
 
bool save_analogs () const
 
bool save_analogs_time_index () const
 
bool save_sims () const
 
bool save_sims_time_index () const
 
bool operation () const
 
bool quick_sort () const
 
bool prevent_search_future () const
 
bool no_norm () const
 
const std::vector< double > & weights () const
 
const Array4DPointersds () const
 
const Array4DPointersims_metric () const
 
const Array4DPointersims_time_index () const
 
const Array4DPointeranalogs_value () const
 
const Array4DPointeranalogs_time_index () const
 
const Functions::Matrixobs_time_index_table () const
 
- Public Member Functions inherited from AnEn
 AnEn ()
 
 AnEn (const AnEn &orig)
 
 AnEn (const Config &)
 
virtual ~AnEn ()
 
virtual const ProfilergetProfile () const
 
AnEnoperator= (const AnEn &rhs)
 

Protected Member Functions

virtual void checkConsistency_ (const Forecasts &forecasts, const Observations &observations) const override
 
virtual void allocateMemory_ (const Forecasts &forecasts, const std::vector< std::size_t > &fcsts_test_index, const std::vector< std::size_t > &fcsts_search_index) override
 
- Protected Member Functions inherited from AnEnSSE
virtual void preprocess_ (const Forecasts &forecasts, const Observations &observations, std::vector< std::size_t > &fcsts_test_index, std::vector< std::size_t > &fcsts_search_index) override
 
virtual void setMembers_ (const Config &) override
 
virtual void checkSave_ () const override
 
virtual void checkNumberOfMembers_ (std::size_t num_search_times_index) override
 
template<std::size_t len>
void saveAnalogs_ (const SimsVec< len > &sims_arr, const Observations &observations, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 
template<std::size_t len>
void saveSimsStationIndex_ (const SimsVec< len > &sims_arr, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 
- Protected Member Functions inherited from AnEnIS
virtual void setSdsTimeMap_ (const std::vector< std::size_t > &times_accum_index)
 
virtual double computeSimMetric_ (const Forecasts &forecasts, std::size_t sta_test_i, std::size_t sta_search_i, std::size_t flt_i, std::size_t time_test_i, std::size_t time_search_i, const std::vector< bool > &circulars)
 
virtual void allocateSds_ (const Forecasts &forecasts, const std::vector< std::size_t > &times_fixed_index, const std::vector< std::size_t > &times_accum_index={})
 
virtual void computeSds_ (const Forecasts &forecasts, const std::vector< std::size_t > &times_fixed_index, const std::vector< std::size_t > &times_accum_index={})
 
virtual void checkIndexRange_ (const Forecasts &forecasts, const std::vector< std::size_t > &fcsts_test_index, const std::vector< std::size_t > &fcsts_search_index) const
 
template<std::size_t len>
void saveAnalogs_ (const SimsVec< len > &sims_arr, const Observations &observations, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 
template<std::size_t len>
void saveAnalogsTimeIndex_ (const SimsVec< len > &sims_arr, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 
template<std::size_t len>
void saveSims_ (const SimsVec< len > &sims_arr, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 
template<std::size_t len>
void saveSimsTimeIndex_ (const SimsVec< len > &sims_arr, std::size_t station_i, std::size_t test_time_i, std::size_t flt_i)
 

Protected Attributes

std::vector< std::size_t > match_obs_stations_with_
 
- Protected Attributes inherited from AnEnSSE
std::size_t num_nearest_
 
double distance_
 
bool extend_obs_
 
bool save_sims_station_index_
 
bool exclude_closest_location_
 
Array4DPointer sims_station_index_
 
Functions::Matrix search_stations_index_
 
- Protected Attributes inherited from AnEnIS
std::size_t num_analogs_
 
std::size_t num_sims_
 
std::size_t obs_var_index_
 
std::size_t max_par_nan_
 
std::size_t max_flt_nan_
 
std::size_t flt_radius_
 
bool save_analogs_
 
bool save_analogs_time_index_
 
bool save_sims_
 
bool save_sims_time_index_
 
bool operation_
 
bool quick_sort_
 
bool prevent_search_future_
 
bool no_norm_
 
std::vector< double > weights_
 
Array4DPointer sds_
 
std::unordered_map< std::size_t, std::size_t > sds_time_index_map_
 
Array4DPointer sims_metric_
 
Array4DPointer sims_time_index_
 
Array4DPointer analogs_value_
 
Array4DPointer analogs_time_index_
 
Functions::Matrix obs_time_index_table_
 
bool use_AI_
 
- Protected Attributes inherited from AnEn
Verbose verbose_
 
Profiler profiler_
 

Additional Inherited Members

- Static Public Attributes inherited from AnEnSSE
static const std::size_t _SIM_STATION_INDEX = 3
 
static const std::array< double, 4 > _INIT_ARR_VALUE = {NAN, NAN, NAN, NAN}
 
- Static Public Attributes inherited from AnEnIS
static const std::size_t _SIM_VALUE_INDEX = 0
 
static const std::size_t _SIM_FCST_TIME_INDEX = 1
 
static const std::size_t _SIM_OBS_TIME_INDEX = 2
 
static const std::array< double, 3 > _INIT_ARR_VALUE = {NAN, NAN, NAN}
 
- Static Protected Member Functions inherited from AnEnSSE
static bool _simsSort_ (const std::array< double, 4 > &, const std::array< double, 4 > &)
 
- Static Protected Member Functions inherited from AnEnIS
static bool _simsSort_ (const std::array< double, 3 > &, const std::array< double, 3 > &)
 

Detailed Description

AnEnSSEMS is derived from the class AnEnSSE. It is different from the base class in how forecast and observation stations are matched. In the base class, a same number of forecast and observation stations are expected from input files. This requirement is relaxed in the derived implementation where users can manually specify how forecast and observation stations should be linked.

AnEnSSEMS stands for AnEn Search Space Extension with Matching Stations.

Constructor & Destructor Documentation

◆ AnEnSSEMS() [1/3]

AnEnSSEMS::AnEnSSEMS ( )

◆ AnEnSSEMS() [2/3]

AnEnSSEMS::AnEnSSEMS ( const AnEnSSEMS orig)

◆ AnEnSSEMS() [3/3]

AnEnSSEMS::AnEnSSEMS ( const Config config)

◆ ~AnEnSSEMS()

AnEnSSEMS::~AnEnSSEMS ( )
virtual

Member Function Documentation

◆ allocateMemory_()

void AnEnSSEMS::allocateMemory_ ( const Forecasts forecasts,
const std::vector< std::size_t > &  fcsts_test_index,
const std::vector< std::size_t > &  fcsts_search_index 
)
overrideprotectedvirtual

Reimplemented from AnEnSSE.

◆ checkConsistency_()

void AnEnSSEMS::checkConsistency_ ( const Forecasts forecasts,
const Observations observations 
) const
overrideprotectedvirtual

Reimplemented from AnEnIS.

◆ compute() [1/5]

void AnEnIS::compute ( const Forecasts forecasts,
const Observations observations,
const Times test_times,
const Times search_times 
)
overridevirtual

Computes the analog ensembles.

Parameters
forecastsForecasts
observationsObservations
test_timesTimes for test
search_timesTimes for search

Reimplemented from AnEnSSE.

◆ compute() [2/5]

void AnEnSSE::compute ( const Forecasts forecasts,
const Observations observations,
std::vector< std::size_t > &  fcsts_test_index,
std::vector< std::size_t > &  fcsts_search_index 
)
overridevirtual

Overloads AnEnIS::compute with test and search indices

A vector of arrays consisting of [similarity value, forecast time index, observation time index, station index]

This is used to store all similarity metrics from all search times for one test time together with indices.

Reimplemented from AnEnSSE.

◆ compute() [3/5]

virtual void AnEnIS::compute ( const Forecasts forecasts,
const Observations observations,
std::vector< std::size_t > &  fcsts_test_index,
std::vector< std::size_t > &  fcsts_search_index 
)
overridevirtual

Overloads AnEnIS::compute with test and search indices

A vector of arrays consisting of [similarity value, forecast time index, observation time index, station index]

This is used to store all similarity metrics from all search times for one test time together with indices.

Reimplemented from AnEnSSE.

◆ compute() [4/5]

virtual void AnEnSSEMS::compute ( const Forecasts forecasts,
const Observations observations,
std::vector< std::size_t > &  fcsts_test_index,
std::vector< std::size_t > &  fcsts_search_index 
)
overridevirtual

Overload AnEnSSE::compute with test and serach indices

Reimplemented from AnEnSSE.

◆ compute() [5/5]

void AnEnSSEMS::compute ( const Forecasts forecasts,
const Observations observations,
std::vector< std::size_t > &  fcsts_test_index,
std::vector< std::size_t > &  fcsts_search_index,
const std::vector< std::size_t > &  match_obs_stations_with 
)
virtual

A vector of arrays consisting of [similarity value, forecast time index, observation time index, station index]

This is used to store all similarity metrics from all search times for one test time together with indices.

Member Data Documentation

◆ match_obs_stations_with_

std::vector<std::size_t> AnEnSSEMS::match_obs_stations_with_
protected

The documentation for this class was generated from the following files: