105 lines
2.1 KiB
C++
105 lines
2.1 KiB
C++
#pragma once
|
|
#include <iostream>
|
|
#include <Eigen/Core>
|
|
#include <Eigen/Dense>
|
|
#include <time.h>
|
|
#include <string>
|
|
#include <omp.h>
|
|
#include <gdal.h>
|
|
#include <gdal_priv.h>
|
|
#include <gdalwarper.h>
|
|
#include <ogrsf_frmts.h>
|
|
#include <fstream>
|
|
#include <vector>
|
|
#include <string>
|
|
#include <QString>
|
|
#include <QStringList>
|
|
#include <set>
|
|
#include <map>
|
|
#include "BaseConstVariable.h"
|
|
|
|
#include "LogInfoCls.h"
|
|
|
|
|
|
struct SigmaParam {
|
|
double p1;
|
|
double p2;
|
|
double p3;
|
|
double p4;
|
|
double p5;
|
|
double p6;
|
|
};
|
|
|
|
|
|
double getSigma(double& theta, SigmaParam& param);
|
|
|
|
|
|
|
|
class SigmaDatabase
|
|
{
|
|
public:
|
|
SigmaDatabase();
|
|
~SigmaDatabase();
|
|
|
|
public:
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="cls"></param>
|
|
/// <param name="angle">弧度值</param>
|
|
/// <returns></returns>
|
|
double getAmpHH(long cls, double angle);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="cls"></param>
|
|
/// <param name="angle">弧度值</param>
|
|
/// <returns></returns>
|
|
double getAmpHV(long cls, double angle);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="cls"></param>
|
|
/// <param name="angle">弧度值</param>
|
|
/// <returns></returns>
|
|
double getAmpVH(long cls, double angle);
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
/// <param name="cls"></param>
|
|
/// <param name="angle">弧度值</param>
|
|
/// <returns></returns>
|
|
double getAmpVV(long cls, double angle);
|
|
|
|
|
|
double getAmp(long cls, double angle, POLARTYPEENUM polartype);
|
|
|
|
std::map<long, SigmaParam> getsigmaParams( POLARTYPEENUM polartype);
|
|
|
|
/// <summary>
|
|
/// 从文件读取参数
|
|
/// </summary>
|
|
/// <param name="filename">文件名</param>
|
|
void readParamsFromFile(const std::string& filename);
|
|
|
|
/// <summary>
|
|
/// 将参数写入文件
|
|
/// </summary>
|
|
/// <param name="filename">文件名</param>
|
|
void writeParamsToFile(const std::string& filename);
|
|
|
|
private:
|
|
std::map<long, SigmaParam> HH_sigmaParam;
|
|
std::map<long, SigmaParam> HV_sigmaParam;
|
|
std::map<long, SigmaParam> VH_sigmaParam;
|
|
std::map<long, SigmaParam> VV_sigmaParam;
|
|
|
|
private:
|
|
// 新增私有辅助函数
|
|
void writePolarData(std::ofstream& outfile,
|
|
const std::string& polarType,
|
|
const std::map<long, SigmaParam>& params);
|
|
|
|
};
|
|
|