VR-Vantage 3.1 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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);
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);
80 
81 
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);
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)