RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/SigmaDatabase.h

105 lines
2.1 KiB
C
Raw Normal View History

#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"><3E><><EFBFBD><EFBFBD>ֵ</param>
/// <returns></returns>
double getAmpHH(long cls, double angle);
/// <summary>
///
/// </summary>
/// <param name="cls"></param>
/// <param name="angle"><3E><><EFBFBD><EFBFBD>ֵ</param>
/// <returns></returns>
double getAmpHV(long cls, double angle);
/// <summary>
///
/// </summary>
/// <param name="cls"></param>
/// <param name="angle"><3E><><EFBFBD><EFBFBD>ֵ</param>
/// <returns></returns>
double getAmpVH(long cls, double angle);
/// <summary>
///
/// </summary>
/// <param name="cls"></param>
/// <param name="angle"><3E><><EFBFBD><EFBFBD>ֵ</param>
/// <returns></returns>
double getAmpVV(long cls, double angle);
double getAmp(long cls, double angle, POLARTYPEENUM polartype);
std::map<long, SigmaParam> getsigmaParams( POLARTYPEENUM polartype);
2025-03-12 04:15:26 +00:00
/// <summary>
/// <20><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
/// </summary>
/// <param name="filename"><3E>ļ<EFBFBD><C4BC><EFBFBD></param>
void readParamsFromFile(const std::string& filename);
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>ļ<EFBFBD>
/// </summary>
/// <param name="filename"><3E>ļ<EFBFBD><C4BC><EFBFBD></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;
2025-03-13 04:08:14 +00:00
private:
// <20><><EFBFBD><EFBFBD>˽<EFBFBD>и<EFBFBD><D0B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void writePolarData(std::ofstream& outfile,
const std::string& polarType,
const std::map<long, SigmaParam>& params);
2025-03-13 04:08:14 +00:00
};
2025-03-12 04:15:26 +00:00