FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
ParameterLibrary.h
1#pragma once
2
8#include <map>
9#include <string>
10#include <vector>
11
25{
26public:
28 class Species
29 {
30 public:
43 double SigmaBsPerKg(double meanLengthCm, double frequencykHz) const;
44
49 double WeightKg(double lengthCm) const;
50
52 double LengthCv() const { return m_lengthCv; }
53
54 private:
55 friend class ParameterLibrary;
56
58 double TargetStrengthDb(double lengthCm, const std::vector<double>& data) const;
59
61 const std::vector<double>& DataAt(double frequencykHz) const;
62
63 std::string m_name;
64 bool m_isTable = false;
65 std::map<double, std::vector<double>> m_dataByFrequency;
66 std::vector<double> m_lengthsCm;
67 double m_weightAG = 0.0;
68 double m_weightB = 0.0;
69 double m_lengthCv = 0.0;
70 };
71
73 static constexpr const char* kInstalledPath = "resources/acoustics/parameter_library.json";
74
86 static std::vector<std::string> CandidatePaths(const std::string& configured, const std::string& inputFilePath);
87
95 static ParameterLibrary Load(const std::string& configured, const std::string& inputFilePath);
96
102 static ParameterLibrary FromFile(const std::string& path);
103
109 static ParameterLibrary FromJsonString(const std::string& document);
110
112 const std::string& Version() const { return m_version; }
113
115 const std::string& Path() const { return m_path; }
116
121 const Species* Find(const std::string& key) const;
122
124 std::vector<std::string> SpeciesKeys() const;
125
126private:
127 std::string m_version;
128 std::string m_path;
129 std::map<std::string, Species> m_species;
130};
One species of the library.
Definition ParameterLibrary.h:29
double LengthCv() const
The coefficient of variation of the length spread around the mean.
Definition ParameterLibrary.h:52
double SigmaBsPerKg(double meanLengthCm, double frequencykHz) const
double WeightKg(double lengthCm) const
Definition ParameterLibrary.h:25
const std::string & Version() const
The library version, e.g. "0.6.0".
Definition ParameterLibrary.h:112
static ParameterLibrary FromFile(const std::string &path)
std::vector< std::string > SpeciesKeys() const
The species keys, sorted.
const std::string & Path() const
The file the library was read from; empty when it was read from a string.
Definition ParameterLibrary.h:115
static constexpr const char * kInstalledPath
The installed library, relative to a resources directory.
Definition ParameterLibrary.h:73
static ParameterLibrary FromJsonString(const std::string &document)
static std::vector< std::string > CandidatePaths(const std::string &configured, const std::string &inputFilePath)
static ParameterLibrary Load(const std::string &configured, const std::string &inputFilePath)
const Species * Find(const std::string &key) const