WSF
WsfEM_ALARM_Terrain Class Reference

Terrain handling code from ALARM (terrrain.f90 and friends). More...

#include <WsfEM_ALARM_Terrain.hpp>

Static Public Member Functions

static void Initialize (wsf::Terrain &aTerrain)
static void ResetState ()
static void SetUseAFSIM_TerrainMasking (bool aUse)
static void AdjustAltitude (WsfPlatform *aPlatformPtr, double aLat, double aLon, double &aAlt)

From terrain_cell.f90.

static double get_cell_height_deg (wsf::Terrain &aTerrain, double lat_deg, double lon_deg)
static double get_ground_range_incr (int level_in=-1)
static int get_land_cover (WsfEnvironment &aEnvironment, double lat_deg, double lon_deg)

from terrain.f90

static int get_nprofile (double ground_range)
static bool get_terrain_sw ()
static double get_terrain_height (wsf::Terrain &aTerrain, double lat, double lon, const std::string &units)
static void profil (wsf::Terrain &aTerrain, WsfEnvironment &aEnvironment, double aztrad, double eltrad, double hammsl, double htmmsl, int nprofl, double rkfact, double sitlam, double sitphi, double tarlam, double tarphi, std::vector< double > &elvmsl, bool &masked, std::vector< double > &tanepp, double &tanmax, std::vector< bool > &visibl, std::vector< double > &xprofl, std::vector< double > &zprofl)
 ! public
static void visclt (wsf::Terrain &aTerrain, WsfEnvironment &aEnvironment, double alphac, double hammsl, int nprofile, double rkfact, double sitlam, double sitphi, std::vector< double > &elvmsl, std::vector< int > &iend, std::vector< int > &istart, int &nareas, std::vector< double > &rngter, std::vector< double > &tanepp, std::vector< bool > &visibl, std::vector< double > &xprofl, std::vector< double > &zprofl, std::vector< int > &lcprofl)
 ! public
static void visble2 (wsf::Terrain &aTerrain, WsfEnvironment &aEnvironment, double azin, double eltrad, double hammsl, int nprofl, double rkfact, double sitlam, double sitphi, bool quick_flag, bool variable_flag, std::vector< double > &elvmsl, std::vector< double > &tanepp, double &tanmax, std::vector< bool > &visibl, std::vector< double > &xprofl, std::vector< double > &zprofl, std::vector< int > &lcprofl, bool &masked)

Detailed Description

Terrain handling code from ALARM (terrrain.f90 and friends).

Member Function Documentation

◆ AdjustAltitude()

void WsfEM_ALARM_Terrain::AdjustAltitude ( WsfPlatform * aPlatformPtr,
double aLat,
double aLon,
double & aAlt )
static

Adjust the incoming altitude so it more closely corresponds to that which would have been determined by stand-alone ALARM.

WSF utilizes bi-linear interpolation the get the altitude between terrain posts while ALARM does not. This can lead to some minor differences in the results (especially at close ranges), making it hard to compare results.

This isn't strictly necessary, but it was found to be useful when making sure everything worked in the converted code.

Parameters
aPlatformPtrThe platform containing the object represented by the incoming position.
aLatThe latitude of the point whose altitude is to be adjusted.
aLonThe longitude of the point whose altitude is to be adjusted.
aAltOn input this is the WSF MSL altitude. On output it will be the ALARM MSL altitude.

References get_cell_height_deg(), WsfPlatform::GetTerrain(), and WsfPlatform::GetTerrainHeight().

Referenced by WsfEM_ALARM_Geometry::ComputeGeometry(), and WsfEM_ALARM_Antenna::antenna::get_height_msl().

◆ get_cell_height_deg()

double WsfEM_ALARM_Terrain::get_cell_height_deg ( wsf::Terrain & aTerrain,
double lat_deg,
double lon_deg )
static

◆ get_ground_range_incr()

double WsfEM_ALARM_Terrain::get_ground_range_incr ( int level_in = -1)
static

◆ get_land_cover()

int WsfEM_ALARM_Terrain::get_land_cover ( WsfEnvironment & aEnvironment,
double lat_deg,
double lon_deg )
static

References WsfEnvironment::GetLandCover().

Referenced by visble2().

◆ get_nprofile()

int WsfEM_ALARM_Terrain::get_nprofile ( double ground_range)
static

References nint().

◆ get_terrain_height()

double WsfEM_ALARM_Terrain::get_terrain_height ( wsf::Terrain & aTerrain,
double lat,
double lon,
const std::string & units )
static

References get_cell_height_deg(), and rad2deg.

Referenced by visble2().

◆ get_terrain_sw()

bool WsfEM_ALARM_Terrain::get_terrain_sw ( )
inlinestatic

◆ Initialize()

void WsfEM_ALARM_Terrain::Initialize ( wsf::Terrain & aTerrain)
static

◆ profil()

void WsfEM_ALARM_Terrain::profil ( wsf::Terrain & aTerrain,
WsfEnvironment & aEnvironment,
double aztrad,
double eltrad,
double hammsl,
double htmmsl,
int nprofl,
double rkfact,
double sitlam,
double sitphi,
double tarlam,
double tarphi,
std::vector< double > & elvmsl,
bool & masked,
std::vector< double > & tanepp,
double & tanmax,
std::vector< bool > & visibl,
std::vector< double > & xprofl,
std::vector< double > & zprofl )
static

! public

References visble2().

◆ ResetState()

void WsfEM_ALARM_Terrain::ResetState ( )
static

◆ SetUseAFSIM_TerrainMasking()

void WsfEM_ALARM_Terrain::SetUseAFSIM_TerrainMasking ( bool aUse)
static

◆ visble2()

void WsfEM_ALARM_Terrain::visble2 ( wsf::Terrain & aTerrain,
WsfEnvironment & aEnvironment,
double azin,
double eltrad,
double hammsl,
int nprofl,
double rkfact,
double sitlam,
double sitphi,
bool quick_flag,
bool variable_flag,
std::vector< double > & elvmsl,
std::vector< double > & tanepp,
double & tanmax,
std::vector< bool > & visibl,
std::vector< double > & xprofl,
std::vector< double > & zprofl,
std::vector< int > & lcprofl,
bool & masked )
static

◆ visclt()

void WsfEM_ALARM_Terrain::visclt ( wsf::Terrain & aTerrain,
WsfEnvironment & aEnvironment,
double alphac,
double hammsl,
int nprofile,
double rkfact,
double sitlam,
double sitphi,
std::vector< double > & elvmsl,
std::vector< int > & iend,
std::vector< int > & istart,
int & nareas,
std::vector< double > & rngter,
std::vector< double > & tanepp,
std::vector< bool > & visibl,
std::vector< double > & xprofl,
std::vector< double > & zprofl,
std::vector< int > & lcprofl )
static

! public

References visble2().


The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved