10 #ifndef DP3_BASE_SOURCEDBUTIL_H_
11 #define DP3_BASE_SOURCEDBUTIL_H_
14 #include <string_view>
27 static const std::string_view kSymodelExtension =
".skymodel";
28 static const std::string_view kTxtExtension =
".txt";
29 return (source_db_name.size() >= kSymodelExtension.size() &&
30 std::equal(kSymodelExtension.rbegin(), kSymodelExtension.rend(),
31 source_db_name.rbegin())) ||
32 (source_db_name.size() >= kTxtExtension.size() &&
33 std::equal(kTxtExtension.rbegin(), kTxtExtension.rend(),
34 source_db_name.rbegin()));
43 const std::vector<std::string> &patch_names);
48 std::pair<std::shared_ptr<base::ModelComponent>, std::shared_ptr<Patch>>>
59 const std::vector<std::shared_ptr<Patch>> &);
62 const std::vector<std::shared_ptr<Patch>> &patchList,
63 double proximityLimit);
66 std::vector<std::string> patterns);
70 const std::vector<std::string> &patterns);
81 const std::vector<std::string> &packed_directions,
82 const std::string &source_db_filename);
85 const std::vector<std::string> &patchNames,
89 const std::vector<std::string> &patch_names);
93 const std::vector<std::string> &patch_names);
97 const std::vector<std::string> &patch_names);
140 std::vector<std::string> patch_names_;
141 std::variant<std::monostate, parmdb::SourceDB, parmdb::SourceDBSkymodel>
146 return std::get<T>(source_db_);
150 bool HoldsAlternative()
const {
151 return std::holds_alternative<T>(source_db_);
Base class for a table holding sources and their parameters.
Definition: SourceDBUtil.h:104
bool CheckAnyOrientationIsAbsolute()
std::vector< std::shared_ptr< Patch > > MakePatchList()
SourceDBWrapper(const std::string &source_db_name)
SourceDBWrapper & Filter(const std::vector< std::string > &filter, FilterMode filter_mode)
FilterMode
The method used to filter the supplied patches.
Definition: SourceDBUtil.h:107
Definition: SourceDBSkymodel.h:15
Envelope class for a table holding source parameters.
Definition: SourceDB.h:193
bool HasSkymodelExtension(const std::string &source_db_name)
Definition: SourceDBUtil.h:26
bool CheckAnyOrientationIsAbsolute(const parmdb::SourceDBSkymodel &source_db, const std::vector< std::string > &patch_names)
Check whether any source in a sourcedb has absolute orientation.
std::vector< std::string > makePatchList(parmdb::SourceDB &sourceDB, std::vector< std::string > patterns)
void SetPatchIndices(std::vector< std::shared_ptr< Patch >> &patch_list)
std::vector< std::string > MakePatchList(const parmdb::SourceDBSkymodel &source_db, const std::vector< std::string > &patterns)
std::vector< std::shared_ptr< Patch > > MakePatches(const parmdb::SourceDBSkymodel &source_db, const std::vector< std::string > &patch_names)
std::vector< std::shared_ptr< Patch > > makePatches(parmdb::SourceDB &sourceDB, const std::vector< std::string > &patchNames, unsigned int nModel)
std::vector< std::shared_ptr< Patch > > makeOnePatchPerComponent(const std::vector< std::shared_ptr< Patch >> &)
From a given patch list, create a new one with one patch per component.
std::vector< std::vector< std::string > > MakeDirectionList(const std::vector< std::string > &packed_directions, const std::string &source_db_filename)
bool CheckPolarized(const parmdb::SourceDBSkymodel &source_db, const std::vector< std::string > &patch_names)
bool checkPolarized(parmdb::SourceDB &sourceDB, const std::vector< std::string > &patchNames, unsigned int nModel)
std::vector< std::pair< std::shared_ptr< base::ModelComponent >, std::shared_ptr< Patch > > > makeSourceList(std::vector< std::shared_ptr< Patch >> &patchList)
std::vector< std::shared_ptr< Patch > > clusterProximateSources(const std::vector< std::shared_ptr< Patch >> &patchList, double proximityLimit)
This file has generic helper routines for testing steps.
Definition: AntennaConfig.h:53