isce3 0.25.0
Loading...
Searching...
No Matches
Constants.h
1//
2// Author: Joshua Cohen, Bryan Riel
3// Copyright 2017-2018
4//
5
6#pragma once
7
8#include <complex>
9#include <cstdint>
10#include <string>
11
12// Macro wrapper to check vector lengths (adds calling function and variable name information to the
13// exception)
14#define checkVecLen(v,l) isce3::core::checkVecLenDebug(v,l,#v,__PRETTY_FUNCTION__)
15#define check2dVecLen(v,l,w) isce3::core::check2dVecLenDebug(v,l,w,#v,__PRETTY_FUNCTION__)
16
17// Macro wrapper to provide 2D indexing to a 1D array
18#define IDX1D(i,j,w) (((i)*(w))+(j))
19
20namespace isce3 { namespace core {
21
23enum dataInterpMethod {
24 SINC_METHOD = 0,
25 BILINEAR_METHOD = 1,
26 BICUBIC_METHOD = 2,
27 NEAREST_METHOD = 3,
28 BIQUINTIC_METHOD = 4
29};
30
32const int SINC_HALF = 4;
33const int SINC_LEN = 8;
34const int SINC_ONE = 9;
35const int SINC_SUB = 8192;
36
38dataInterpMethod parseDataInterpMethod(const std::string & method);
39
41const double EarthSemiMajorAxis = 6378137.0;
42
44const double EarthEccentricitySquared = 0.006694379990141317;
45
47constexpr static double EarthSpinRate = 7.292115024135738e-5;
48
50constexpr static double speed_of_light = 299792458.0;
51
53const double GLOBAL_MIN_HEIGHT = -500.0;
54
56const double GLOBAL_MAX_HEIGHT = 9000.0;
57
59const short SHADOW_VALUE = 1;
60const short LAYOVER_VALUE = 2;
61const short LAYOVER_AND_SHADOW_VALUE = 3;
62
64const int AREA_PROJECTION_RADAR_GRID_MARGIN = 100;
65constexpr static float AREA_PROJECTION_MIN_VALID_SAMPLES_RATIO = 0.0;
66
68double inline decimaldeg2meters(double deg) { return deg * (M_PI/180.0) * 6.37e6; }
69
71template<typename T> struct double_promote;
72
74template<> struct double_promote<float> { using type = double; };
75
77template<> struct double_promote<double> { using type = double; };
78
80template<> struct double_promote<std::complex<float>> { using type = std::complex<double>; };
81
83template<> struct double_promote<std::complex<double>> { using type = std::complex<double>; };
84
85}}
base interpolator is an abstract base class
Definition BinarySearchFunc.cpp:5
Precision-promotion to double/complex<double>
Definition Constants.h:71

Generated for ISCE3.0 by doxygen 1.13.2.