2024-11-25 01:30:14 +00:00
|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "SigmaDatabase.h"
|
|
|
|
|
#include <set>
|
|
|
|
|
#include <map>
|
|
|
|
|
#include "BaseConstVariable.h"
|
|
|
|
|
|
2025-03-13 04:08:14 +00:00
|
|
|
|
|
2024-11-25 01:30:14 +00:00
|
|
|
|
double getSigma(double& theta, SigmaParam& param) {
|
|
|
|
|
return param.p1 + param.p2 * exp(-param.p3 * theta) + param.p4 * cos(param.p5 * theta + param.p6);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SigmaDatabase::SigmaDatabase()
|
|
|
|
|
{
|
|
|
|
|
this->HH_sigmaParam = std::map<long, SigmaParam>();
|
|
|
|
|
this->HV_sigmaParam = std::map<long, SigmaParam>();
|
|
|
|
|
this->VH_sigmaParam = std::map<long, SigmaParam>();
|
|
|
|
|
this->VV_sigmaParam = std::map<long, SigmaParam>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this->HH_sigmaParam.clear();
|
|
|
|
|
this->HV_sigmaParam.clear();
|
|
|
|
|
this->VH_sigmaParam.clear();
|
|
|
|
|
this->VV_sigmaParam.clear();
|
|
|
|
|
|
2024-12-01 06:44:12 +00:00
|
|
|
|
//0
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(0, SigmaParam{ 0,0,0, 0, 0,0 }));
|
|
|
|
|
this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(0, SigmaParam{ 0,0,0, 0, 0,0 }));
|
|
|
|
|
this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(0, SigmaParam{ 0,0,0, 0, 0,0 }));
|
|
|
|
|
this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(0, SigmaParam{ 0,0,0, 0, 0,0 }));
|
|
|
|
|
|
2025-04-07 09:19:55 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(112, SigmaParam{ 30.5876,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(113, SigmaParam{ 37.6313,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(114, SigmaParam{ 42.6288,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(115, SigmaParam{ 46.5052,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(116, SigmaParam{ 49.6725,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(117, SigmaParam{ 52.3504,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(118, SigmaParam{ 54.67,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(119, SigmaParam{ 56.7161,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(120, SigmaParam{ 58.5464,0,0, 0, 0,0 })); // L<><4C><EFBFBD>ζ<EFBFBD><CEB6><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ -21.1019701821713, 9.00621457243906, 6.52932182540331, -1.11157376729893, -15.8022895411007, 11.4690828129602 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ -43.6677042155964, 32.0245140457417, 0.511060658303930, -2.68482232690106, 6.29783274559538, 1.96648609622833 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 50.97, -62.9, -0.0968, 1.604, -4.637, 6.108 }));
|
2025-04-09 17:15:55 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ -32.45, 23.3097, 3.187, -2.482, 8.244, 0.3632 }));
|
2025-04-01 19:00:56 +00:00
|
|
|
|
|
2025-03-19 10:14:09 +00:00
|
|
|
|
////12
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(12, SigmaParam{ -21.1019701821713, 9.00621457243906, 6.52932182540331, - 1.11157376729893, - 15.8022895411007, 11.4690828129602 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(12, SigmaParam{ -30.0103645753547, 27.1700862271921, 11.8007376386356, - 0.933835390422269, - 16.4640776105300, 11.8318838032267 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(12, SigmaParam{ -30.0103645753547, 27.1700862271921, 11.8007376386356, -0.933835390422269, -16.4640776105300, 11.8318838032267 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(12, SigmaParam{ -21.1019701821713, 9.00621457243906, 6.52932182540331, -1.11157376729893, -15.8022895411007, 11.4690828129602 }));
|
|
|
|
|
|
|
|
|
|
////22
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(22, SigmaParam{ -43.6677042155964, 32.0245140457417, 0.511060658303930, - 2.68482232690106, 6.29783274559538, 1.96648609622833 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(22, SigmaParam{ -36.3971634075803, 13.1296247093899, 1.12707368693158, - 1.88195857790977, 6.57450737122974, 2.11755051297951 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(22, SigmaParam{ -36.3971634075803, 13.1296247093899, 1.12707368693158, -1.88195857790977, 6.57450737122974, 2.11755051297951 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(22, SigmaParam{ -43.6677042155964, 32.0245140457417, 0.511060658303930, -2.68482232690106, 6.29783274559538, 1.96648609622833 }));
|
|
|
|
|
|
|
|
|
|
////30
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ -59.1080014669385, 47.6710707363975, 0.300193452564135, - 3.93463636916976, 5.99799798331127, - 10.3772604045974 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ -55.1864353240982, 32.2453149408716, 0.333758208816865, - 3.38774208141056, 6.12774897769798, - 10.1192846531823 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ -55.1864353240982, 32.2453149408716, 0.333758208816865, - 3.38774208141056, 6.12774897769798, - 10.1192846531823 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ -59.1080014669385, 47.6710707363975, 0.300193452564135, -3.93463636916976, 5.99799798331127, -10.3772604045974 }));
|
|
|
|
|
|
|
|
|
|
////50
|
2025-04-09 17:15:55 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -22.9105602882378, 30.54100628307, 15.4916054293135, - 0.970580847008280, 28.9025325818511, - 21.4319176514170 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -39.7459019584805, 151.391039247574, 5.17117231380975, - 4.10303899418773, 8.04893424718507, - 3.17171678851531 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -39.7459019584805, 151.391039247574, 5.17117231380975, -4.10303899418773, 8.04893424718507, -3.17171678851531 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -22.9105602882378, 8170.54100628307, 15.4916054293135, -0.970580847008280, 28.9025325818511, -21.4319176514170 }));
|
|
|
|
|
|
|
|
|
|
////61
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(61, SigmaParam{ 27.2590864500905, 95.6840751800642, 3.98975084647232, 50.3262749621072, 3.09962879546370, - 5.10400310274333 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(61, SigmaParam{ -65.9799383836613, 106.831320929437, 1.53821651203361, 0.704332523237733, 36.3654715437260, - 13.7449876973719 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(61, SigmaParam{ -65.9799383836613, 106.831320929437, 1.53821651203361, 0.704332523237733, 36.3654715437260, -13.7449876973719 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(61, SigmaParam{ 27.2590864500905, 95.6840751800642, 3.98975084647232, 50.3262749621072, 3.09962879546370, -5.10400310274333 }));
|
|
|
|
|
|
|
|
|
|
////62
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(62, SigmaParam{ -34.3961764495281, 21.7503968763591, 1.15914650010176, - 2.83950292185421, 10.3519995095232, 2.75293811408200 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(62, SigmaParam{ -34.0710914034599, 14.1778732014224, 3.47049853590805, - 1.73813229616801, 10.9627971440838, 2.19731364578002 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(62, SigmaParam{ -34.0710914034599, 14.1778732014224, 3.47049853590805, -1.73813229616801, 10.9627971440838, 2.19731364578002 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(62, SigmaParam{ -34.3961764495281, 21.7503968763591, 1.15914650010176, -2.83950292185421, 10.3519995095232, 2.75293811408200 }));
|
|
|
|
|
|
|
|
|
|
////80
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ -5.76486750987210, - 7.80014668607246, 0.0880097904597720, - 5.44564720816575, - 0.530358195545799, 1.04332202699956 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ 484.928701445606, - 0.992170190244375, - 1.98914783519718, - 507.127544388772, 0.195180814149377, 6.21339949756719 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ 484.928701445606, -0.992170190244375, -1.98914783519718, -507.127544388772, 0.195180814149377, 6.21339949756719 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ -5.76486750987210, -7.80014668607246, 0.0880097904597720, -5.44564720816575, -0.530358195545799, 1.04332202699956 }));
|
|
|
|
|
|
|
|
|
|
////90
|
2025-04-01 19:00:56 +00:00
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -20.1761798059391, 13.2752519275021, 2.74667225608397, 3.63052241744923, 8.99932188120922, 34.8246533269446 }));
|
2025-03-19 10:14:09 +00:00
|
|
|
|
//this->HV_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -26.8776515733889, 10.4251866500052, 8.43273666535992, 4.33165922141213, 8.68204389555939, - 2.51718779582920 }));
|
|
|
|
|
//this->VH_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -26.8776515733889, 10.4251866500052, 8.43273666535992, 4.33165922141213, 8.68204389555939, - 2.51718779582920 }));
|
|
|
|
|
//this->VV_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -20.1761798059391, 13.2752519275021, 2.74667225608397, 3.63052241744923, 8.99932188120922, 34.8246533269446 }));
|
|
|
|
|
|
2025-03-26 02:14:42 +00:00
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ 28.15,-39.73,0.0986,2.863,4.356,-6.279 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ 36.13,-48.2,0.1299,-1.838,5.404,-4.015 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ 183.5,-194.6,0.0167,2.952,-4.1,6.026 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 50.97,-62.9,0.0968,1.604,4.637,6.108 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ -10.31,15.96,37.73,-4.584,4.997,-3.569 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ -12.45,0.1561,-3.187,-2.482,8.244,0.3632 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ -19.23,0.3623,-2.209,9.649,0.1292,-0.264 }));
|
|
|
|
|
//this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(100, SigmaParam{ 56.61,-62.29,0.01388,2.767,-3.943,5.995 }));
|
|
|
|
|
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(10, SigmaParam{ -3.296,-0.1284,2.792,-5.418,1.417,-0.7571 })); // DQ
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(20, SigmaParam{ -9.976,-0.00288,4.404,1.875,1.045,6.801 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(30, SigmaParam{ 3.172,-3.725,1.066,-6.938,-1.397,0.1646 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(40, SigmaParam{ 86.51,-93.16,0.0408,-0.4571,5.286,-0.07259 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(50, SigmaParam{ 9.03,-18.38,0.1604,-2.208,-6.042,3.596 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(60, SigmaParam{ 13.71,-24.14,0.1177,-2.107,6.382,-4.156 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(80, SigmaParam{ 136.6,-0.009549,3.246,143.9,0.0496,2.978 }));
|
|
|
|
|
this->HH_sigmaParam.insert(std::pair<long, SigmaParam>(90, SigmaParam{ -8.716,-3.019,-0.9396,-0.977,-6.411,2.33 }));
|
2024-11-25 01:30:14 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
SigmaDatabase::~SigmaDatabase()
|
|
|
|
|
{
|
|
|
|
|
this->HH_sigmaParam.clear();
|
|
|
|
|
this->HV_sigmaParam.clear();
|
|
|
|
|
this->VH_sigmaParam.clear();
|
|
|
|
|
this->VV_sigmaParam.clear();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double SigmaDatabase::getAmpHH(long cls, double angle)
|
|
|
|
|
{
|
|
|
|
|
if (this->HH_sigmaParam.find(cls) == this->HH_sigmaParam.end()) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return std::pow(10, getSigma(angle, this->HH_sigmaParam[cls]) / 10.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double SigmaDatabase::getAmpHV(long cls, double angle)
|
|
|
|
|
{
|
|
|
|
|
if (this->HV_sigmaParam.find(cls) == this->HV_sigmaParam.end()) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return std::pow(10, getSigma(angle, this->HV_sigmaParam[cls]) / 10.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double SigmaDatabase::getAmpVH(long cls, double angle)
|
|
|
|
|
{
|
|
|
|
|
if (this->VH_sigmaParam.find(cls) == this->VH_sigmaParam.end()) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return std::pow(10, getSigma(angle, this->VH_sigmaParam[cls]) / 10.0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double SigmaDatabase::getAmpVV(long cls, double angle)
|
|
|
|
|
{
|
|
|
|
|
if (this->VV_sigmaParam.find(cls) == this->VV_sigmaParam.end()) {
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
return std::pow(10, getSigma(angle, this->VV_sigmaParam[cls]) / 10.0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
double SigmaDatabase::getAmp(long cls, double angle, POLARTYPEENUM polartype)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
switch (polartype)
|
|
|
|
|
{
|
|
|
|
|
case(POLARHH): { return this->getAmpHH(cls, angle); }
|
|
|
|
|
case(POLARHV): { return this->getAmpHV(cls, angle); }
|
|
|
|
|
case(POLARVH): { return this->getAmpVH(cls, angle); }
|
|
|
|
|
case(POLARVV): { return this->getAmpVV(cls, angle); }
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-30 13:05:44 +00:00
|
|
|
|
std::map<long, SigmaParam> SigmaDatabase::getsigmaParams(POLARTYPEENUM polartype)
|
|
|
|
|
{
|
|
|
|
|
switch (polartype)
|
|
|
|
|
{
|
|
|
|
|
case(POLARHH): { return this->HH_sigmaParam; }
|
|
|
|
|
case(POLARHV): { return this->HV_sigmaParam; }
|
|
|
|
|
case(POLARVH): { return this->VH_sigmaParam; }
|
|
|
|
|
case(POLARVV): { return this->VV_sigmaParam; }
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return std::map<long, SigmaParam>();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-12 04:15:26 +00:00
|
|
|
|
void SigmaDatabase::readParamsFromFile(const std::string& filename) {
|
|
|
|
|
std::ifstream infile(filename);
|
|
|
|
|
if (!infile.is_open()) {
|
|
|
|
|
std::cerr << "Failed to open file: " << filename << std::endl;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::string line;
|
|
|
|
|
while (std::getline(infile, line)) {
|
|
|
|
|
std::istringstream iss(line);
|
|
|
|
|
std::string polarType;
|
|
|
|
|
long cls;
|
|
|
|
|
SigmaParam param;
|
|
|
|
|
|
|
|
|
|
if (!(iss >> polarType >> cls >> param.p1 >> param.p2 >> param.p3
|
|
|
|
|
>> param.p4 >> param.p5 >> param.p6)) {
|
|
|
|
|
std::cerr << "Error parsing line: " << line << std::endl;
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (polarType == "HH") HH_sigmaParam[cls] = param;
|
|
|
|
|
else if (polarType == "HV") HV_sigmaParam[cls] = param;
|
|
|
|
|
else if (polarType == "VH") VH_sigmaParam[cls] = param;
|
|
|
|
|
else if (polarType == "VV") VV_sigmaParam[cls] = param;
|
|
|
|
|
else
|
|
|
|
|
std::cerr << "Unknown polarization type: " << polarType << std::endl;
|
|
|
|
|
}
|
|
|
|
|
infile.close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-03-13 04:08:14 +00:00
|
|
|
|
|
|
|
|
|
void SigmaDatabase::writePolarData(std::ofstream& outfile, const std::string& polarType, const std::map<long, SigmaParam>& params)
|
|
|
|
|
{
|
|
|
|
|
for (const auto& entry : params) {
|
|
|
|
|
const long cls = entry.first;
|
|
|
|
|
const SigmaParam& param = entry.second;
|
|
|
|
|
outfile << polarType << " " << cls << " "
|
|
|
|
|
<< param.p1 << " " << param.p2 << " "
|
|
|
|
|
<< param.p3 << " " << param.p4 << " "
|
|
|
|
|
<< param.p5 << " " << param.p6 << "\n";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2025-03-12 04:15:26 +00:00
|
|
|
|
void SigmaDatabase::writeParamsToFile(const std::string& filename) {
|
|
|
|
|
std::ofstream outfile(filename);
|
|
|
|
|
if (!outfile.is_open()) {
|
|
|
|
|
std::cerr << "Failed to create file: " << filename << std::endl;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-13 04:08:14 +00:00
|
|
|
|
// <20><>ʽ<EFBFBD><CABD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<EFBFBD>
|
|
|
|
|
writePolarData(outfile, "HH", HH_sigmaParam);
|
|
|
|
|
writePolarData(outfile, "HV", HV_sigmaParam);
|
|
|
|
|
writePolarData(outfile, "VH", VH_sigmaParam);
|
|
|
|
|
writePolarData(outfile, "VV", VV_sigmaParam);
|
2025-03-12 04:15:26 +00:00
|
|
|
|
|
|
|
|
|
outfile.close();
|
2025-03-13 04:08:14 +00:00
|
|
|
|
}
|
|
|
|
|
|