Parallel Analog Ensemble
|
AnEnIS is an implementation of the class AnEn for the independent search algorithm. More...
#include <AnEnIS.h>
Public Member Functions | |
AnEnIS () | |
AnEnIS (const AnEnIS &orig) | |
AnEnIS (const Config &) | |
virtual | ~AnEnIS () |
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 |
virtual void | print (std::ostream &) const override |
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_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) |
virtual void | allocateMemory_ (const Forecasts &forecasts, const std::vector< std::size_t > &fcsts_test_index, const std::vector< std::size_t > &fcsts_search_index) |
virtual void | setMembers_ (const Config &) override |
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 |
virtual void | checkSave_ () const |
virtual void | checkNumberOfMembers_ (std::size_t num_search_times_index) |
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, 3 > &, const std::array< double, 3 > &) |
Protected Attributes | |
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 AnEnIS &) |
AnEnIS::AnEnIS | ( | ) |
AnEnIS::AnEnIS | ( | const AnEnIS & | orig | ) |
AnEnIS::AnEnIS | ( | const Config & | config | ) |
|
virtual |
|
staticprotected |
This is the function to sort the similarity vector based on the similarity metric from the array of length 3.
This function is static because it is called by the sorting algorithm
|
protectedvirtual |
|
protectedvirtual |
const Array4DPointer & AnEnIS::analogs_time_index | ( | ) | const |
const Array4DPointer & AnEnIS::analogs_value | ( | ) | const |
|
protectedvirtual |
Reimplemented in AnEnSSEMS.
|
protectedvirtual |
|
protectedvirtual |
Reimplemented in AnEnSSE.
|
protectedvirtual |
Reimplemented in AnEnSSE.
|
overridevirtual |
|
overridevirtual |
|
protectedvirtual |
Reimplemented in AnEnISMPI.
|
protectedvirtual |
size_t AnEnIS::flt_radius | ( | ) | const |
size_t AnEnIS::max_flt_nan | ( | ) | const |
size_t AnEnIS::max_par_nan | ( | ) | const |
bool AnEnIS::no_norm | ( | ) | const |
size_t AnEnIS::num_analogs | ( | ) | const |
size_t AnEnIS::num_sims | ( | ) | const |
const Functions::Matrix & AnEnIS::obs_time_index_table | ( | ) | const |
size_t AnEnIS::obs_var_index | ( | ) | const |
bool AnEnIS::operation | ( | ) | const |
|
protectedvirtual |
Reimplemented in AnEnSSE.
bool AnEnIS::prevent_search_future | ( | ) | const |
|
overridevirtual |
bool AnEnIS::quick_sort | ( | ) | const |
bool AnEnIS::save_analogs | ( | ) | const |
bool AnEnIS::save_analogs_time_index | ( | ) | const |
bool AnEnIS::save_sims | ( | ) | const |
bool AnEnIS::save_sims_time_index | ( | ) | const |
|
protected |
|
protected |
|
protected |
|
protected |
const Array4DPointer & AnEnIS::sds | ( | ) | const |
|
overrideprotectedvirtual |
|
protectedvirtual |
const Array4DPointer & AnEnIS::sims_metric | ( | ) | const |
const Array4DPointer & AnEnIS::sims_time_index | ( | ) | const |
const vector< double > & AnEnIS::weights | ( | ) | const |
|
friend |
|
static |
This is the default value for similarity array
|
static |
|
static |
|
static |
These variables define what the value is on different positions in the similarity array.
|
protected |
|
protected |
Arrays for storing analog information
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Matrix for the time index table from forecasts to observations
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
The standard deviation array has the following dimensions
[Parameters][Stations][FLTs][Times]
|
protected |
The time index map is used in operational mode. The key is the test time and the the value is the corresponding index of the time dimension in the standard deviation array.
|
protected |
Arrays for storing similarity information
|
protected |
|
protected |
|
protected |