BaseLibraryCPP/BaseConstVariable.h

162 lines
3.2 KiB
C
Raw Normal View History

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