4 #ifndef DPPP_STMANPARSETKEYS_H
5 #define DPPP_STMANPARSETKEYS_H
12 #include <casacore/casa/Containers/Record.h>
14 #include <boost/algorithm/string/case_conv.hpp>
22 const std::string lowercase_str = boost::to_lower_copy(mode_str);
23 if (lowercase_str ==
"" || lowercase_str ==
"full")
25 else if (lowercase_str ==
"diagonal")
27 else if (lowercase_str ==
"stokes_i")
30 throw std::runtime_error(
"Invalid mode specified for Sisco: " + mode_str);
70 const std::string& prefix) {
72 prefix +
"storagemanager",
73 parset.
getString(prefix +
"storagemanager.name", std::string())));
76 parset.
getInt(prefix +
"storagemanager.databitrate", 10);
78 parset.
getInt(prefix +
"storagemanager.weightbitrate", 12);
80 prefix +
"storagemanager.distribution",
"TruncatedGaussian");
82 parset.
getDouble(prefix +
"storagemanager.disttruncation", 2.5);
84 parset.
getString(prefix +
"storagemanager.normalization",
"AF");
88 parset.
getInt(prefix +
"storagemanager.deflate_level", 9);
90 parset.
getInt(prefix +
"storagemanager.predict_level", 2);
92 parset.
getString(prefix +
"storagemanager.sisco_mode",
""));
98 return "StokesIStMan";
104 throw std::runtime_error(
"Unknown storage manager specified: " +
116 return casacore::Record();
120 casacore::Record result;
129 casacore::Record dyscoSpec;
138 if (data_bit_rate == 0) data_bit_rate = 16;
139 dyscoSpec.define(
"dataBitCount", data_bit_rate);
141 if (weight_bit_rate == 0) weight_bit_rate = 16;
142 dyscoSpec.define(
"weightBitCount", weight_bit_rate);
148 std::ostringstream str;
150 str <<
" Compressed: yes (Dysco)\n"
157 str <<
" Compressed: yes (Sisco)\n"
162 str <<
" Compressed: yes (Stokes I)\n";
164 str <<
" Compressed: no\n";
Implements a map of Key-Value pairs.
Definition: ParameterSet.h:31
int getInt(const std::string &aKey) const
Definition: ParameterSet.h:490
double getDouble(const std::string &aKey) const
Definition: ParameterSet.h:588
std::string getString(const std::string &aKey) const
Definition: ParameterSet.h:599
SiscoMode GetSiscoMode(const std::string &mode_str)
Definition: StManParsetKeys.h:21
std::string GetCompressionString(const StManParsetKeys &st_man_keys)
Definition: StManParsetKeys.h:147
std::string ToString(CalType caltype)
Convert CalType to a string.
SiscoMode
Definition: StManParsetKeys.h:19
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53
Definition: StManParsetKeys.h:46
std::string_view GetStorageManagerClassName() const
Definition: StManParsetKeys.h:96
SiscoMode sisco_mode
Will store just one value when set to true.
Definition: StManParsetKeys.h:67
std::string dysco_normalization
Kind of normalization; "AF", "RF" or "Row".
Definition: StManParsetKeys.h:59
int sisco_predict_level
Definition: StManParsetKeys.h:65
casacore::Record GetDyscoSpec() const
Definition: StManParsetKeys.h:128
int sisco_deflate_level
Deflate compression level for Sisco (only used for writing).
Definition: StManParsetKeys.h:61
std::string storage_manager_name
Definition: StManParsetKeys.h:47
std::string dysco_distribution
Definition: StManParsetKeys.h:54
unsigned int dysco_data_bit_rate
Bits per data float, or 0 if data column is not compressed.
Definition: StManParsetKeys.h:49
StManParsetKeys(const common::ParameterSet &parset, const std::string &prefix)
Definition: StManParsetKeys.h:69
double dysco_dist_truncation
Definition: StManParsetKeys.h:57
unsigned int dysco_weight_bit_rate
Bits per weight float, or 0 if weight column is not compressed.
Definition: StManParsetKeys.h:51
casacore::Record GetSiscoSpec() const
Definition: StManParsetKeys.h:119
casacore::Record GetSpecification() const
Definition: StManParsetKeys.h:110