2024-11-15 01:38:46 +00:00
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#ifndef BASECONSTVARIABLE_H
|
|
|
|
|
#define BASECONSTVARIABLE_H
|
2024-11-25 07:14:53 +00:00
|
|
|
|
#define EIGEN_USE_MKL_ALL
|
2024-11-29 15:29:45 +00:00
|
|
|
|
#define EIGEN_NO_DEBUG
|
2024-11-15 01:38:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define EIGEN_USE_BLAS
|
|
|
|
|
#define EIGEN_USE_LAPACK
|
|
|
|
|
#define EIGEN_VECTORIZE_SSE2
|
|
|
|
|
|
|
|
|
|
//#define DEBUGSHOWDIALOG
|
|
|
|
|
|
2024-11-29 15:29:45 +00:00
|
|
|
|
#define __CUDANVCC___ // 定义CUDA函数
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
//#include <mkl.h>
|
|
|
|
|
#include <complex>
|
|
|
|
|
#include <math.h>
|
|
|
|
|
#include <complex>
|
|
|
|
|
|
2024-11-29 15:29:45 +00:00
|
|
|
|
|
2024-11-25 07:14:53 +00:00
|
|
|
|
#define MATPLOTDRAWIMAGE
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
#define PI_180 180/3.141592653589793238462643383279
|
|
|
|
|
#define T180_PI 3.141592653589793238462643383279/180
|
|
|
|
|
#define LIGHTSPEED 299792458
|
|
|
|
|
#define PRECISIONTOLERANCE 1e-9
|
|
|
|
|
#define Radians2Degrees(Radians) Radians*PI_180
|
|
|
|
|
#define Degrees2Radians(Degrees) Degrees*T180_PI
|
2024-11-25 07:14:53 +00:00
|
|
|
|
#define EARTHWE 0.000072292115
|
2024-11-15 01:38:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define earthRoute 0.000072292115
|
|
|
|
|
#define Memory1GB 1073741824
|
|
|
|
|
#define Memory1MB 1048576
|
|
|
|
|
#define Memory1KB 1024
|
|
|
|
|
|
|
|
|
|
const std::complex<double> imagI(0, 1);
|
|
|
|
|
|
|
|
|
|
const double PI = 3.141592653589793238462643383279;
|
|
|
|
|
const double epsilon = 0.000000000000001;
|
|
|
|
|
const double pi = 3.14159265358979323846;
|
|
|
|
|
const double d2r = pi / 180;
|
|
|
|
|
const double r2d = 180 / pi;
|
|
|
|
|
|
|
|
|
|
const double a = 6378137.0; //椭球长半轴
|
|
|
|
|
const double ae = 6378137.0; //椭球长半轴
|
|
|
|
|
const double ee = 0.0818191910428;// 第一偏心率
|
|
|
|
|
const double f_inverse = 298.257223563; //扁率倒数
|
|
|
|
|
const double b = a - a / f_inverse;
|
|
|
|
|
const double eSquare = (a * a - b * b) / (a * a);
|
|
|
|
|
const double e = sqrt(eSquare);
|
|
|
|
|
const double earth_Re = 6378136.49;
|
|
|
|
|
const double earth_Rp = (1 - 1 / f_inverse) * earth_Re;
|
|
|
|
|
const double earth_We = 0.000072292115;
|
2024-11-15 06:21:50 +00:00
|
|
|
|
|
|
|
|
|
/*********************************************** openMap参数 ********************************************************************/
|
2024-11-25 07:14:53 +00:00
|
|
|
|
static long Paral_num_thread = 14;
|
2024-11-15 06:21:50 +00:00
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
|
|
|
|
|
/*********************************************** 基础枚举 ********************************************************************/
|
|
|
|
|
|
|
|
|
|
enum POLARTYPEENUM { // 极化类型
|
|
|
|
|
POLARHH,
|
|
|
|
|
POLARHV,
|
|
|
|
|
POLARVH,
|
2024-11-25 07:14:53 +00:00
|
|
|
|
POLARVV,
|
|
|
|
|
POLARUNKOWN
|
2024-11-15 01:38:46 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*********************************************** 基础结构体区域 ********************************************************************/
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 地理坐标点
|
|
|
|
|
/// </summary>
|
|
|
|
|
struct Landpoint // 点 SAR影像的像素坐标;
|
|
|
|
|
{
|
|
|
|
|
double lon; // 经度x lon pixel_col
|
|
|
|
|
double lat; // 纬度y lat pixel_row
|
|
|
|
|
double ati; // 高程z ati pixel_time
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct Point2 {
|
|
|
|
|
double x = 0;
|
|
|
|
|
double y = 0;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct Point3 {
|
|
|
|
|
double x = 0;
|
|
|
|
|
double y = 0;
|
|
|
|
|
double z = 0;
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-25 07:14:53 +00:00
|
|
|
|
struct DemBox {
|
|
|
|
|
double min_lon;
|
|
|
|
|
double max_lon;
|
|
|
|
|
double min_lat;
|
|
|
|
|
double max_lat;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
/*********************************************** FEKO仿真参数 ********************************************************************/
|
2024-11-25 07:14:53 +00:00
|
|
|
|
struct SatellitePos {
|
|
|
|
|
double time;
|
|
|
|
|
double Px;
|
|
|
|
|
double Py;
|
|
|
|
|
double Pz;
|
|
|
|
|
double Vx;
|
|
|
|
|
double Vy;
|
|
|
|
|
double Vz;
|
|
|
|
|
};
|
2024-11-15 01:38:46 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct SatelliteAntPos {
|
2024-11-25 07:14:53 +00:00
|
|
|
|
double time; // 0
|
2024-11-15 01:38:46 +00:00
|
|
|
|
double Px;
|
|
|
|
|
double Py;
|
|
|
|
|
double Pz;
|
|
|
|
|
double Vx;
|
|
|
|
|
double Vy;
|
2024-11-29 15:29:45 +00:00
|
|
|
|
double Vz; //7
|
2024-11-15 01:38:46 +00:00
|
|
|
|
double AntDirectX;
|
|
|
|
|
double AntDirectY;
|
|
|
|
|
double AntDirectZ;
|
|
|
|
|
double AVx;
|
|
|
|
|
double AVy;
|
2024-11-29 15:29:45 +00:00
|
|
|
|
double AVz;//13
|
|
|
|
|
double ZeroAntDiectX;
|
|
|
|
|
double ZeroAntDiectY;
|
|
|
|
|
double ZeroAntDiectZ;
|
2024-11-15 01:38:46 +00:00
|
|
|
|
double lon;
|
|
|
|
|
double lat;
|
2024-11-29 15:29:45 +00:00
|
|
|
|
double ati; // 19
|
2024-11-15 01:38:46 +00:00
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
2024-11-25 07:14:53 +00:00
|
|
|
|
|
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
/*********************************************** 指针回收区域 ********************************************************************/
|
|
|
|
|
|
|
|
|
|
inline void delArrPtr(void* p)
|
|
|
|
|
{
|
|
|
|
|
delete[] p;
|
|
|
|
|
p = nullptr;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inline void delPointer(void* p)
|
|
|
|
|
{
|
|
|
|
|
delete p;
|
|
|
|
|
p = nullptr;
|
|
|
|
|
}
|
2024-11-29 15:29:45 +00:00
|
|
|
|
|
2024-11-15 01:38:46 +00:00
|
|
|
|
|
|
|
|
|
#endif
|