Parallel Analog Ensemble
|
AnEnSSE is an implementation of the abstrct class AnEn for the search space extension algorithm. More...
#include <AnEnSSE.h>
Public Member Functions | |
AnEnSSE () | |
AnEnSSE (const AnEnSSE &orig) | |
AnEnSSE (const Config &config) | |
virtual | ~AnEnSSE () |
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 | print (std::ostream &) const override |
AnEnSSE & | operator= (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 Array4DPointer & | sims_station_index () const |
const Functions::Matrix & | search_stations_index () const |
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 AnEnIS | |
AnEnIS () | |
AnEnIS (const AnEnIS &orig) | |
AnEnIS (const Config &) | |
virtual | ~AnEnIS () |
AnEnIS & | operator= (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 Array4DPointer & | sds () const |
const Array4DPointer & | sims_metric () const |
const Array4DPointer & | sims_time_index () const |
const Array4DPointer & | analogs_value () const |
const Array4DPointer & | analogs_time_index () const |
const Functions::Matrix & | obs_time_index_table () const |
Public Member Functions inherited from AnEn | |
AnEn () | |
AnEn (const AnEn &orig) | |
AnEn (const Config &) | |
virtual | ~AnEn () |
virtual const Profiler & | getProfile () const |
AnEn & | operator= (const AnEn &rhs) |
Static Public Attributes | |
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} |
Protected Member Functions | |
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 | allocateMemory_ (const Forecasts &forecasts, const std::vector< std::size_t > &fcsts_test_index, const 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 > ×_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 > ×_fixed_index, const std::vector< std::size_t > ×_accum_index={}) |
virtual void | computeSds_ (const Forecasts &forecasts, const std::vector< std::size_t > ×_fixed_index, const std::vector< std::size_t > ×_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 |
virtual void | checkConsistency_ (const Forecasts &forecasts, const Observations &observations) 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) |
Static Protected Member Functions | |
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 > &) |
Protected Attributes | |
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_ |
Friends | |
std::ostream & | operator<< (std::ostream &, const AnEnSSE &) |
AnEnSSE::AnEnSSE | ( | ) |
AnEnSSE::AnEnSSE | ( | const AnEnSSE & | orig | ) |
AnEnSSE::AnEnSSE | ( | const Config & | config | ) |
|
virtual |
|
staticprotected |
This is the function to sort the similarity vector based on the similarity metric from the array of length 4.
This function is static because it is called by the sorting algorithm
|
overrideprotectedvirtual |
|
overrideprotectedvirtual |
Reimplemented from AnEnIS.
|
overrideprotectedvirtual |
Reimplemented from AnEnIS.
|
overridevirtual |
|
overridevirtual |
|
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 AnEnIS.
double AnEnSSE::distance | ( | ) | const |
bool AnEnSSE::exclude_closest_location | ( | ) | const |
bool AnEnSSE::extend_obs | ( | ) | const |
size_t AnEnSSE::num_nearest | ( | ) | const |
|
overrideprotectedvirtual |
Reimplemented from AnEnIS.
|
overridevirtual |
Reimplemented from AnEnIS.
bool AnEnSSE::save_sims_station_index | ( | ) | const |
|
protected |
|
protected |
const Functions::Matrix & AnEnSSE::search_stations_index | ( | ) | const |
|
overrideprotectedvirtual |
Reimplemented from AnEnIS.
const Array4DPointer & AnEnSSE::sims_station_index | ( | ) | const |
|
friend |
|
static |
This is the default value for similarity array
|
static |
This variable defines the index of similarity station index in the similarity array.
|
protected |
A distance threshold when finding nearest neighbors
|
protected |
Whether to exclude the current station from the search stations. This is helpful if users want to search through every other nearby stations rather than itself (e.g. the closest station).
|
protected |
Whether analog member observations should come from its current station or the searched station.
|
protected |
The number of nearest neighbors to search
|
protected |
Whether to save the search station indices for each similarity
|
protected |
A table to record the search stations for each test station. Each row is a set of search station indices for a particular test station.
|
protected |
The array to store search station indices.