VR-Vantage 3.1 API Documentation
Home
Modules
Namespaces
Classes
Files
Libraries
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
sensorFx
include
met.h
Go to the documentation of this file.
1
/* © 1998 JRM Technologies, Inc.*/
2
3
4
5
/***********************************
6
Copyright JRM Enterprises, Inc. 1998
7
All rights reserved.
8
9
This code is the intellectual property of JRM Enterprises, Inc.
10
It may not be used or released as source or compiled binary form
11
without the prior written consent of JRM Enterprises, Inc.
12
***********************************/
13
14
#ifndef _MET_H_
15
#define _MET_H_
16
17
#include "
JRMlibrary.h
"
18
#include "
Ellipsoid.h
"
19
#include "
SigSimDefines.h
"
20
#include "
sigsim.h
"
21
#include "
sigsimDLLstub.h
"
22
23
24
25
#define MIN_LAGDAY_AIR 1.5
/* TIME LAG IN MAXIMUM TEMPERATURE AFTER NOON (HR). PL MODEL USES 1.86 */
26
#define MAX_LAGDAY_AIR 5.5
/* TIME LAG IN MAXIMUM TEMPERATURE AFTER NOON (HR). PL MODEL USES 1.86 */
27
#define MIN_LAGNIGHT_AIR -1.0
/* TIME LAG FOR THE MINIMUM TEMPERATURE AFTER SUNRISE (HR). PL MODEL USES -0.17 */
28
#define MAX_LAGNIGHT_AIR 1.5
/* TIME LAG FOR THE MINIMUM TEMPERATURE AFTER SUNRISE (HR). PL MODEL USES -0.17 */
29
#define MIN_NDECAY_AIR 1.5
/* COEFFICIENT THAT CONTROLS TEMPERATURE DECREASE AT NIGHT. PL MODEL USES 2.2 */
30
#define MAX_NDECAY_AIR 3.5
/* COEFFICIENT THAT CONTROLS TEMPERATURE DECREASE AT NIGHT. PL MODEL USES 2.2 */
31
#define MIN_LAGDAY_GND 0.5
/* TIME LAG IN MAXIMUM TEMPERATURE AFTER NOON (HR). PL MODEL USES 0.5 */
32
#define MAX_LAGDAY_GND 2.5
/* TIME LAG IN MAXIMUM TEMPERATURE AFTER NOON (HR). PL MODEL USES 0.5 */
33
#define MIN_LAGNIGHT_GND 0.0
/* TIME LAG FOR THE MINIMUM TEMPERATURE AFTER SUNRISE (HR). PL MODEL USES 0.49 */
34
#define MAX_LAGNIGHT_GND 2.0
/* TIME LAG FOR THE MINIMUM TEMPERATURE AFTER SUNRISE (HR). PL MODEL USES 0.49 */
35
#define MIN_NDECAY_GND 1.5
/* COEFFICIENT THAT CONTROLS TEMPERATURE DECREASE AT NIGHT. PL MODEL USES 1.81 */
36
#define MAX_NDECAY_GND 5.5
/* COEFFICIENT THAT CONTROLS TEMPERATURE DECREASE AT NIGHT. PL MODEL USES 1.81 */
37
#define TaTearthMaxDiff 20.0
/* MAX DIFFERENCE BETWEEN AIR AND GROUND TEMPERATURE */
38
39
#ifdef __cplusplus
40
extern
"C"
41
{
42
#endif
43
44
// The below routines synthesize atmospheric and meteorological effects that drive SigSim's signature prediction engine.
45
//double Met(double tod, long num_bodies, CELESTIAL_TABLE *celestial_table, METIN *metin, int option);
46
SIGSIM_API
int
Met4x
(
METIN
*metin,
int
air_model_option);
47
void
GetLagTimesAir
(
double
TaveC,
double
rhfrac,
double
xmit,
double
windspeed,
double
*LAGDAY_AIR,
double
*LAGNIGHT_AIR,
double
*NDECAY_AIR);
48
void
GetLagTimesGnd
(
double
TaveC,
double
rhfrac,
double
xmit,
double
windspeed,
double
*LAGDAY_GND,
double
*LAGNIGHT_GND,
double
*NDECAY_GND);
49
double
get_delayed_tod
(
double
tod,
double
sunrise,
double
sunset,
double
LAGDAY_AIR,
double
LAGNIGHT_AIR);
50
void
get_groundtemp_limits
(
double
rhfrac,
double
xmit,
double
Tamax,
double
Tamin,
double
*Tgmax,
double
*Tgmin);
51
52
// The below routine is used to synthesize diurnal air and ground temperatures in a number of ways.
53
//double air(double t, double max, double min, double tmax, double tmin, int option);
54
SIGSIM_API
double
Tenvironment
(
double
met_tod,
double
sunrise,
double
sunset,
double
Tmax,
double
Tmin,
int
air_model_option,
double
LAGDAY,
double
LAGNIGHT,
double
NDECAY);
55
SIGSIM_API
double
Tair_degC
(
double
met_tod,
double
sunrise,
double
sunset,
double
Tamax,
double
Tamin,
int
air_model_option,
double
rhfrac,
double
xmit,
double
windspeed);
56
SIGSIM_API
double
Tgnd_degC
(
double
tod,
double
sunrise,
double
sunset,
double
Tamax,
double
Tamin,
int
air_model_option,
double
rhfrac,
double
xmit,
double
windspeed);
57
SIGSIM_API
int
FillMetinUserDefinedAirTempArray
(
METIN
*metin,
double
*tod,
double
*Ta,
int
ntod);
58
59
double
lunar_albedo
(
double
lambda);
60
SIGSIM_API
void
CalcLongitudinalJRMTIMEs
(
ellipsoid
E,
GEODETIC_LOCATION
localD,
JRMTIME
localzone,
JRMTIME
*local,
JRMTIME
*UTC,
double
*local_zone_offset);
61
void
CalcBodyVectorInEarthCenteredFrameAtGeoD
(
double
lat_rad,
double
dec_rad,
double
ra_rad,
double
sa_rad,
VECTOR
*
body
);
62
void
SolarEphemerides
(
JRMTIME
ptime,
double
*dec_rad,
double
*ra_rad,
double
*range_km);
63
void
SunriseSunset
(
double
lat_rad,
double
dec_rad,
double
lhn,
double
*sunrise,
double
*sunset);
64
SIGSIM_API
double
SiderealTime
(
double
lon_rad,
JRMTIME
ptime);
65
GEODETIC_LOCATION
CalcBodyGeodeticPositionGivenVecInEarthCenteredFrameAtGeoD
(
ellipsoid
E,
GEODETIC_LOCATION
localD,
VECTOR
body,
double
range
);
66
void
SolarEphemerisSEU
(
ellipsoid
E,
GEODETIC_LOCATION
localD,
JRMTIME
localzone,
67
VECTOR
*sunmax,
VECTOR
*sunplane,
VECTOR
*suneast,
68
double
*lhn,
double
*sunrise,
double
*sunset,
69
VECTOR
*sun,
double
*az_deg,
double
*el_deg,
70
double
*raSun,
double
*decSun,
double
*rangeSun,
71
double
*sunlat_deg,
double
*sunlon_deg);
72
void
LunarEphemerisSEU
(
ellipsoid
E,
GEODETIC_LOCATION
localD,
JRMTIME
localzone,
VECTOR
*moon,
73
double
*raMoon,
double
*decMoon,
double
*rangeMoon,
74
double
*az_deg,
double
*el_deg,
double
*moonlat_deg,
double
*moonlon_deg);
75
double
MoonElongationFromEphemerides
(
double
raSun,
double
decSun,
double
raMoon,
double
decMoon);
76
double
MoonElongationFromGeodetics
(
double
lonSun,
double
lonMoon,
double
latMoon);
77
double
MoonPhaseFromElongation
(
double
elongation,
double
rangeSun,
double
rangeMoon);
78
double
MoonIlluminatedFraction
(
double
phase);
79
void
CalcMoonPhaseAndIlluminatedFraction
(
EPHEMERIS
*fm);
80
81
82
VECTOR
MoonInMetinSEU
(
GEOCENTRIC_LOCATION
moon,
GEOCENTRIC_LOCATION
met,
ellipsoid
E);
83
SIGSIM_API
GEOCENTRIC_LOCATION
GeocentricMoonPosition
(
double
julianDay,
ellipsoid
E,
double
*range_m,
double
*dec_rad,
double
*ra_rad);
84
SIGSIM_API
GEOCENTRIC_LOCATION
GeocentricMoonPosition2
(
double
julianDay,
ellipsoid
E,
double
*range_m,
double
*dec_rad,
double
*ra_rad);
85
SIGSIM_API
int
DoEphemeris
(
EPHEMERIS
*fm);
86
SIGSIM_API
int
DuplicateModtranAtm_DefaultLogic
(
ATM_DEFAULT
*atm_default,
double
*RainRate,
double
*Visibility,
jrmbool
RESET);
87
88
89
/* ------------ KAPLAN EPHEMERIS CODE ----------------------- */
90
SIGSIM_API
void
earthtilt
(
double
tjd,
double
*mobl,
double
*tobl,
double
*eq,
double
*dpsi,
double
*deps);
91
void
fund_args
(
double
t
,
double
a
[5]);
92
short
int
nutation_angles
(
double
t,
double
*longnutation,
double
*obliqnutation);
93
SIGSIM_API
void
sidereal_time
(
double
jd_high,
double
jd_low,
double
ee,
double
*gst);
94
SIGSIM_API
void
terra
(
EPHEMERIS
fm,
double
alt,
double
st,
VECTOR
*pos);
95
void
spin
(
EPHEMERIS
fm,
double
st,
VECTOR
pos1,
VECTOR
*pos2);
96
97
98
#ifdef __cplusplus
99
}
100
#endif
101
102
#endif // _MET_H_
103
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (
www.mak.com
)