icemc
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes | List of all members
IceModel Class Reference

Ice thicknesses and water depth. More...

#include <icemodel.hh>

Inheritance diagram for IceModel:
EarthModel

Public Member Functions

void IceENtoLonLat (int e, int n, double &lon, double &lat)
 
void GroundENtoLonLat (int e, int n, double &lon, double &lat)
 
void WaterENtoLonLat (int e, int n, double &lon, double &lat)
 
 IceModel (int model=0, int earth_mode=0, int WEIGHTABSORPTION_SETTING=1)
 
virtual ~IceModel ()
 
double IceThickness (double lon, double lat)
 
double IceThickness (const Position &pos)
 
double Surface (double lon, double lat)
 
double Surface (const Position &pos)
 
double SurfaceAboveGeoid (double lon, double lat)
 
double SurfaceAboveGeoid (const Position &pos)
 
double WaterDepth (double lon, double lat)
 
double WaterDepth (const Position &pos)
 
Position PickInteractionLocation (int ibnposition, Settings *settings1, const Position &rbn, Interaction *interaction1)
 
Position PickBalloonPosition ()
 
void GetMAXHORIZON (Balloon *bn1)
 
int RossIceShelf (const Position &position)
 
int IceOnWater (const Position &postition)
 
int RossExcept (const Position &position)
 
int RonneIceShelf (const Position &position)
 
int WestLand (const Position &pos)
 
int AcceptableRfexit (const Vector &nsurf_rfexit, const Position &rfexit, const Vector &n_exit2rx)
 
double GetBalloonPositionWeight (int ibnpos)
 
int OutsideAntarctica (const Position &pos)
 
int OutsideAntarctica (double lat)
 
int WhereDoesItEnterIce (const Position &posnu, const Vector &nnu, double stepsize, Position &r_enterice)
 
int WhereDoesItExitIce (const Position &posnu, const Vector &nnu, double stepsize, Position &r_enterice)
 
int WhereDoesItExitIceForward (const Position &posnu, const Vector &nnu, double stepsize, Position &r_enterice)
 
void CreateCartesianTopAndBottom (int resolution, bool force_new=false)
 
const TH2 * GetCartesianTop () const
 
const TH2 * GetCartesianBottom () const
 
bool CartesianIsInIce (double x, double y, double z)
 
int GetIceIntersectionsCartesian (const Position &posnu, const Vector &nnu, std::vector< std::pair< double, double > > &intersections, double initial_step_size=50, int map_resolution=1000)
 
void CreateHorizons (Settings *settings1, Balloon *bn1, double theta_bn, double phi_bn, double altitude_bn, ofstream &foutput)
 
Vector GetSurfaceNormal (const Position &r_out)
 
double GetN (double depth)
 
double GetN (const Position &pos)
 
double EffectiveAttenuationLength (Settings *settings1, const Position &pos, const int &whichray)
 
void FillArraysforTree (double lon_ground[1068][869], double lat_ground[1068][869], double lon_ice[1200][1000], double lat_ice[1200][1000], double lon_water[1200][1000], double lat_water[1200][1000])
 
int PickUnbiased (Interaction *interaction1, double len_int_kgm2, double &position_weight, double chord_step, Vector *force_dir=0)
 
int PickUnbiasedPointSourceNearBalloon (Interaction *interaction1, const Position *balloon_position, double max_ps_distance, double chord_step, double len_int_kgm2, const Vector *force_dir=0)
 
double getSampleX () const
 
double getSampleY () const
 
void LonLattoEN (double lon, double lat, double &E, double &N)
 
- Public Member Functions inherited from EarthModel
 EarthModel (int model=0, int WEIGHTABSORPTION_SETTING=1)
 
virtual ~EarthModel ()
 
virtual double Geoid (double latitude)
 
virtual double Geoid (const Position &pos)
 
virtual int InFirn (const Position &pos)
 
virtual double SurfaceDeepIce (const Position &pos)
 
virtual double RockSurface (double lon, double lat)
 
virtual double RockSurface (const Position &pos)
 
double GetDensity (double altitude, const Position earth_in, int &crust_entered, bool *inice=0)
 
int Getchord (Settings *settings1, double len_int_kgm2, const Position &earth_in, double distance_in_ice, bool include_ice_absorption, const Position &posnu, int inu, double &chord, double &probability_tmp, double &weight1_tmp, double &nearthlayers, double myair, double &total_kgm2, int &crust_entered, int &mantle_entered, int &core_entered)
 
Vector GetSurfaceNormal (const Position &r_out)
 
void EarthCurvature (double *array, double depth_temp)
 
Position WhereDoesItEnter (const Position &posnu, const Vector &nnu)
 
int GeoidIntersection (Vector x0, Vector p0, Position *int1, Position *int2, double extra_height=5500, double *ds=0) const
 

Public Attributes

TH2D h_ice_thickness
 
TH2D h_ground_elevation
 
TH2D h_water_depth
 
double bedmap_R
 
double bedmap_nu
 
int nCols_ice
 
int nRows_ice
 
int cellSize
 
int xLowerLeft_ice
 
int yLowerLeft_ice
 
int nCols_ground
 
int nRows_ground
 
int xLowerLeft_ground
 
int yLowerLeft_ground
 
int nCols_water
 
int nRows_water
 
int xLowerLeft_water
 
int yLowerLeft_water
 
int NODATA
 
vector< double > volume_inhorizon
 
- Public Attributes inherited from EarthModel
double radii [3]
 
double volume
 
double ice_area
 
double max_icevol_perbin
 
double max_icethk_perbin
 

Protected Member Functions

double Area (double latitude)
 
void ENtoLonLat (int e_coord, int n_coord, double xLowerLeft, double yLowerLeft, double &lon, double &lat)
 
void ReadIceThickness ()
 
void ReadGroundBed ()
 
void ReadWaterDepth ()
 
- Protected Member Functions inherited from EarthModel
void ReadCrust (string)
 
double SmearPhi (int ilon, double rand)
 
double SmearTheta (int ilat, double rand)
 
double dGetTheta (int itheta)
 
double dGetPhi (int ilon)
 
void GetILonILat (const Position &, int &ilon, int &ilat)
 
double GetLat (double theta)
 
double GetLon (double phi)
 
Vector PickPosnuForaLonLat (double lon, double lat, double theta, double phi)
 

Protected Attributes

int ice_model
 
int DEPTH_DEPENDENT_N
 
double volume_inhorizon_average
 
vector< vector< int > > ilon_inhorizon
 
vector< vector< int > > ilat_inhorizon
 
vector< vector< int > > easting_inhorizon
 
vector< vector< int > > northing_inhorizon
 
vector< double > maxvol_inhorizon
 
double cart_max_z
 
double cart_min_z
 
double sample_x
 
double sample_y
 
TH2 * cart_ice_top
 
TH2 * cart_ice_bot
 
TFile * cart_ice_file
 
int cart_resolution
 
- Protected Attributes inherited from EarthModel
int EARTH_MODEL
 
int CONSTANTICETHICKNESS
 
int CONSTANTCRUST
 
int FIXEDELEVATION
 
int FLATSURFACE
 
int weightabsorption
 
double thetastep
 
double phistep
 
double surfacer [NLON][NLAT]
 
double icer [NLON][NLAT]
 
double waterr [NLON][NLAT]
 
double softsedr [NLON][NLAT]
 
double hardsedr [NLON][NLAT]
 
double uppercrustr [NLON][NLAT]
 
double middlecrustr [NLON][NLAT]
 
double lowercrustr [NLON][NLAT]
 
double geoid [NLAT]
 
double MIN_ALTITUDE_CRUST
 
double elevationarray [NLON][NLAT]
 
double waterthkarray [NLON][NLAT]
 
double icethkarray [NLON][NLAT]
 
double softsedthkarray [NLON][NLAT]
 
double hardsedthkarray [NLON][NLAT]
 
double uppercrustthkarray [NLON][NLAT]
 
double middlecrustthkarray [NLON][NLAT]
 
double lowercrustthkarray [NLON][NLAT]
 
double crustthkarray [NLON][NLAT]
 
double waterdensityarray [NLON][NLAT]
 
double icedensityarray [NLON][NLAT]
 
double softseddensityarray [NLON][NLAT]
 
double hardseddensityarray [NLON][NLAT]
 
double uppercrustdensityarray [NLON][NLAT]
 
double middlecrustdensityarray [NLON][NLAT]
 
double lowercrustdensityarray [NLON][NLAT]
 
double area [NLAT]
 
double average_iceth
 

Private Attributes

double d_sheetup [N_sheetup]
 
double l_sheetup [N_sheetup]
 
double d_shelfup [N_shelfup]
 
double l_shelfup [N_shelfup]
 
double d_westlandup [N_westlandup]
 
double l_westlandup [N_westlandup]
 
double d_sheetdown [N_sheetup]
 
double l_sheetdown [N_sheetdown]
 
double d_shelfdown [N_shelfdown]
 
double l_shelfdown [N_shelfdown]
 
double d_westlanddown [N_westlanddown]
 
double l_westlanddown [N_westlanddown]
 

Static Private Attributes

static const int N_sheetup =2810
 
static const int N_shelfup =420
 
static const int N_westlandup =420
 
static const int N_sheetdown =2810
 
static const int N_shelfdown =420
 
static const int N_westlanddown =420
 

Additional Inherited Members

- Static Public Member Functions inherited from EarthModel
static double LongtoPhi_0isPrimeMeridian (double longitude)
 
static double LongtoPhi_0is180thMeridian (double longitude)
 
- Static Public Attributes inherited from EarthModel
static constexpr double R_EARTH =6.378140E6
 
- Static Protected Attributes inherited from EarthModel
static constexpr int getchord_method =2
 
static const double GEOID_MAX
 
static const double GEOID_MIN
 
static const double COASTLINE
 
static constexpr int NLON =180
 
static constexpr int NLAT =90
 
static constexpr int NPHI =180
 
static const double MAXTHETA
 
static const int ILAT_COASTLINE
 

Detailed Description

Ice thicknesses and water depth.

Constructor & Destructor Documentation

◆ IceModel()

IceModel::IceModel ( int  model = 0,
int  earth_mode = 0,
int  WEIGHTABSORPTION_SETTING = 1 
)

◆ ~IceModel()

IceModel::~IceModel ( )
virtual

Member Function Documentation

◆ AcceptableRfexit()

int IceModel::AcceptableRfexit ( const Vector nsurf_rfexit,
const Position rfexit,
const Vector n_exit2rx 
)

◆ Area()

double IceModel::Area ( double  latitude)
protected

◆ CartesianIsInIce()

bool IceModel::CartesianIsInIce ( double  x,
double  y,
double  z 
)

◆ CreateCartesianTopAndBottom()

void IceModel::CreateCartesianTopAndBottom ( int  resolution,
bool  force_new = false 
)

◆ CreateHorizons()

void IceModel::CreateHorizons ( Settings settings1,
Balloon bn1,
double  theta_bn,
double  phi_bn,
double  altitude_bn,
ofstream &  foutput 
)

◆ EffectiveAttenuationLength()

double IceModel::EffectiveAttenuationLength ( Settings settings1,
const Position pos,
const int &  whichray 
)

◆ ENtoLonLat()

void IceModel::ENtoLonLat ( int  e_coord,
int  n_coord,
double  xLowerLeft,
double  yLowerLeft,
double &  lon,
double &  lat 
)
protected

◆ FillArraysforTree()

void IceModel::FillArraysforTree ( double  lon_ground[1068][869],
double  lat_ground[1068][869],
double  lon_ice[1200][1000],
double  lat_ice[1200][1000],
double  lon_water[1200][1000],
double  lat_water[1200][1000] 
)

◆ GetBalloonPositionWeight()

double IceModel::GetBalloonPositionWeight ( int  ibnpos)

◆ GetCartesianBottom()

const TH2* IceModel::GetCartesianBottom ( ) const
inline

◆ GetCartesianTop()

const TH2* IceModel::GetCartesianTop ( ) const
inline

◆ GetIceIntersectionsCartesian()

int IceModel::GetIceIntersectionsCartesian ( const Position posnu,
const Vector nnu,
std::vector< std::pair< double, double > > &  intersections,
double  initial_step_size = 50,
int  map_resolution = 1000 
)

◆ GetMAXHORIZON()

void IceModel::GetMAXHORIZON ( Balloon bn1)

◆ GetN() [1/2]

double IceModel::GetN ( double  depth)

◆ GetN() [2/2]

double IceModel::GetN ( const Position pos)

◆ getSampleX()

double IceModel::getSampleX ( ) const
inline

◆ getSampleY()

double IceModel::getSampleY ( ) const
inline

◆ GetSurfaceNormal()

Vector IceModel::GetSurfaceNormal ( const Position r_out)

◆ GroundENtoLonLat()

void IceModel::GroundENtoLonLat ( int  e,
int  n,
double &  lon,
double &  lat 
)

◆ IceENtoLonLat()

void IceModel::IceENtoLonLat ( int  e,
int  n,
double &  lon,
double &  lat 
)

◆ IceOnWater()

int IceModel::IceOnWater ( const Position postition)

◆ IceThickness() [1/2]

double IceModel::IceThickness ( double  lon,
double  lat 
)
virtual

Reimplemented from EarthModel.

◆ IceThickness() [2/2]

double IceModel::IceThickness ( const Position pos)
virtual

Reimplemented from EarthModel.

◆ LonLattoEN()

void IceModel::LonLattoEN ( double  lon,
double  lat,
double &  E,
double &  N 
)

◆ OutsideAntarctica() [1/2]

int IceModel::OutsideAntarctica ( const Position pos)

◆ OutsideAntarctica() [2/2]

int IceModel::OutsideAntarctica ( double  lat)

◆ PickBalloonPosition()

Position IceModel::PickBalloonPosition ( )

◆ PickInteractionLocation()

Position IceModel::PickInteractionLocation ( int  ibnposition,
Settings settings1,
const Position rbn,
Interaction interaction1 
)

◆ PickUnbiased()

int IceModel::PickUnbiased ( Interaction interaction1,
double  len_int_kgm2,
double &  position_weight,
double  chord_step,
Vector force_dir = 0 
)

◆ PickUnbiasedPointSourceNearBalloon()

int IceModel::PickUnbiasedPointSourceNearBalloon ( Interaction interaction1,
const Position balloon_position,
double  max_ps_distance,
double  chord_step,
double  len_int_kgm2,
const Vector force_dir = 0 
)

◆ ReadGroundBed()

void IceModel::ReadGroundBed ( )
protected

◆ ReadIceThickness()

void IceModel::ReadIceThickness ( )
protected

◆ ReadWaterDepth()

void IceModel::ReadWaterDepth ( )
protected

◆ RonneIceShelf()

int IceModel::RonneIceShelf ( const Position position)

◆ RossExcept()

int IceModel::RossExcept ( const Position position)

◆ RossIceShelf()

int IceModel::RossIceShelf ( const Position position)

◆ Surface() [1/2]

double IceModel::Surface ( double  lon,
double  lat 
)
virtual

Reimplemented from EarthModel.

◆ Surface() [2/2]

double IceModel::Surface ( const Position pos)
virtual

Reimplemented from EarthModel.

◆ SurfaceAboveGeoid() [1/2]

double IceModel::SurfaceAboveGeoid ( double  lon,
double  lat 
)
virtual

Reimplemented from EarthModel.

◆ SurfaceAboveGeoid() [2/2]

double IceModel::SurfaceAboveGeoid ( const Position pos)
virtual

Reimplemented from EarthModel.

◆ WaterDepth() [1/2]

double IceModel::WaterDepth ( double  lon,
double  lat 
)
virtual

Reimplemented from EarthModel.

◆ WaterDepth() [2/2]

double IceModel::WaterDepth ( const Position pos)
virtual

Reimplemented from EarthModel.

◆ WaterENtoLonLat()

void IceModel::WaterENtoLonLat ( int  e,
int  n,
double &  lon,
double &  lat 
)

◆ WestLand()

int IceModel::WestLand ( const Position pos)

◆ WhereDoesItEnterIce()

int IceModel::WhereDoesItEnterIce ( const Position posnu,
const Vector nnu,
double  stepsize,
Position r_enterice 
)

◆ WhereDoesItExitIce()

int IceModel::WhereDoesItExitIce ( const Position posnu,
const Vector nnu,
double  stepsize,
Position r_enterice 
)

◆ WhereDoesItExitIceForward()

int IceModel::WhereDoesItExitIceForward ( const Position posnu,
const Vector nnu,
double  stepsize,
Position r_enterice 
)

Member Data Documentation

◆ bedmap_nu

double IceModel::bedmap_nu

◆ bedmap_R

double IceModel::bedmap_R

◆ cart_ice_bot

TH2* IceModel::cart_ice_bot
protected

◆ cart_ice_file

TFile* IceModel::cart_ice_file
protected

◆ cart_ice_top

TH2* IceModel::cart_ice_top
protected

◆ cart_max_z

double IceModel::cart_max_z
protected

◆ cart_min_z

double IceModel::cart_min_z
protected

◆ cart_resolution

int IceModel::cart_resolution
protected

◆ cellSize

int IceModel::cellSize

◆ d_sheetdown

double IceModel::d_sheetdown[N_sheetup]
private

◆ d_sheetup

double IceModel::d_sheetup[N_sheetup]
private

◆ d_shelfdown

double IceModel::d_shelfdown[N_shelfdown]
private

◆ d_shelfup

double IceModel::d_shelfup[N_shelfup]
private

◆ d_westlanddown

double IceModel::d_westlanddown[N_westlanddown]
private

◆ d_westlandup

double IceModel::d_westlandup[N_westlandup]
private

◆ DEPTH_DEPENDENT_N

int IceModel::DEPTH_DEPENDENT_N
protected

◆ easting_inhorizon

vector< vector<int> > IceModel::easting_inhorizon
protected

◆ h_ground_elevation

TH2D IceModel::h_ground_elevation

◆ h_ice_thickness

TH2D IceModel::h_ice_thickness

◆ h_water_depth

TH2D IceModel::h_water_depth

◆ ice_model

int IceModel::ice_model
protected

◆ ilat_inhorizon

vector< vector<int> > IceModel::ilat_inhorizon
protected

◆ ilon_inhorizon

vector< vector<int> > IceModel::ilon_inhorizon
protected

◆ l_sheetdown

double IceModel::l_sheetdown[N_sheetdown]
private

◆ l_sheetup

double IceModel::l_sheetup[N_sheetup]
private

◆ l_shelfdown

double IceModel::l_shelfdown[N_shelfdown]
private

◆ l_shelfup

double IceModel::l_shelfup[N_shelfup]
private

◆ l_westlanddown

double IceModel::l_westlanddown[N_westlanddown]
private

◆ l_westlandup

double IceModel::l_westlandup[N_westlandup]
private

◆ maxvol_inhorizon

vector<double> IceModel::maxvol_inhorizon
protected

◆ N_sheetdown

const int IceModel::N_sheetdown =2810
staticprivate

◆ N_sheetup

const int IceModel::N_sheetup =2810
staticprivate

◆ N_shelfdown

const int IceModel::N_shelfdown =420
staticprivate

◆ N_shelfup

const int IceModel::N_shelfup =420
staticprivate

◆ N_westlanddown

const int IceModel::N_westlanddown =420
staticprivate

◆ N_westlandup

const int IceModel::N_westlandup =420
staticprivate

◆ nCols_ground

int IceModel::nCols_ground

◆ nCols_ice

int IceModel::nCols_ice

◆ nCols_water

int IceModel::nCols_water

◆ NODATA

int IceModel::NODATA

◆ northing_inhorizon

vector< vector<int> > IceModel::northing_inhorizon
protected

◆ nRows_ground

int IceModel::nRows_ground

◆ nRows_ice

int IceModel::nRows_ice

◆ nRows_water

int IceModel::nRows_water

◆ sample_x

double IceModel::sample_x
protected

◆ sample_y

double IceModel::sample_y
protected

◆ volume_inhorizon

vector<double> IceModel::volume_inhorizon

◆ volume_inhorizon_average

double IceModel::volume_inhorizon_average
protected

◆ xLowerLeft_ground

int IceModel::xLowerLeft_ground

◆ xLowerLeft_ice

int IceModel::xLowerLeft_ice

◆ xLowerLeft_water

int IceModel::xLowerLeft_water

◆ yLowerLeft_ground

int IceModel::yLowerLeft_ground

◆ yLowerLeft_ice

int IceModel::yLowerLeft_ice

◆ yLowerLeft_water

int IceModel::yLowerLeft_water

The documentation for this class was generated from the following files: