56 typedef ::std::map< double, SSP* > NormSSPMap;
57 typedef NormSSPMap::iterator NSMIter;
58 typedef NormSSPMap::const_iterator NSMCIter;
59 typedef NormSSPMap::reverse_iterator NSMRIter;
60 typedef NormSSPMap::const_reverse_iterator NSMCRIter;
77 BELLHOP_CREATOR_SHD_FILE_SYNTAX_0 = 0,
78 BELLHOP_CREATOR_SHD_FILE_SYNTAX_1,
156 virtual Pressure*
getAvgPressure(
double frequency,
double tx_depth,
double start_rx_depth = WOSS_MIN_DEPTH,
double start_rx_range = WOSS_MIN_RANGE,
double end_rx_depth = WOSS_MAX_DEPTH ,
double end_rx_range = WOSS_MAX_RANGE )
const;
158 virtual Pressure*
getPressure(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
161 virtual TimeArr*
getTimeArr(
double frequency,
double tx_depth,
double rx_depth,
double rx_range )
const;
347 bp_initial_bearing = init_bearing; bp_vertical_rotation = vert_rot; bp_horizontal_rotation = horiz_rot;
348 bp_mult_costant = mult; bp_add_costant = add;
return *
this; }
616 ::std::string transducer_type;
715 double bp_initial_bearing;
717 double bp_vertical_rotation;
719 double bp_horizontal_rotation;
721 double bp_mult_costant;
723 double bp_add_costant;
728 bool using_press_mode;
730 bool using_time_arrival_mode;
785 void initBox(
double depth,
double range );
792 void initCfgFiles(
double curr_frequency,
int curr_run );
823 void writeHeader(
double curr_frequency,
int curr_run );
845 void writeBeamBlock();
886 void checkBoundaries(
double& frequency,
double& tx_depth,
double& rx_start_depth,
double& rx_start_range,
double& rx_end_depth,
double& rx_end_range )
const;
901 void checkDepthOffsets(
const CoordZ& coords,
double& min_offset,
double& max_offset,
double min_depth_value,
double max_depth_value );
920 return ( mode ==
"a" || mode ==
"A" || mode ==
"C" || mode ==
"I" || mode ==
"S" );
935 f_out <<
"\'A*\' 0.0" << ::std::setw(30) <<
"! BOTTOM TYPE" << ::std::endl
937 <<
sediment_map.begin()->second->getType() <<
" BOTTOM TYPE " << ::std::endl;
942 f_out.precision(WOSS_DECIMAL_PRECISION);
943 f_out <<
"\'BELLHOP - woss id = " <<
woss_id <<
"; run = " << curr_run <<
"\'" << ::std::endl
944 << curr_frequency << ::std::setw(30) <<
"! FREQUENCY [HZ]" << ::std::endl
945 << 1 << ::std::setw(30) <<
"! NMEDIA" << ::std::endl;
953 <<
" " <<
"/" << ::std::setw(30) <<
"! SOURCES' DEPTHS" << ::std::endl;
961 << ::std::setw(30) <<
"! RX'S DEPTHS" << ::std::endl;
966 << ::std::setw(30) <<
"! RX'S RANGES" << ::std::endl;
975 f_out <<
"\'" << ::std::setw(30) <<
"! RAY OPTIONS" << ::std::endl
976 <<
total_rays << ::std::setw(30) <<
"! NUMBER OF RAYS" << ::std::endl
977 <<
min_angle <<
" " <<
max_angle <<
" " <<
"/" << ::std::setw(30) <<
"! START, END ANGLES" << ::std::endl;
983 <<
"! RAY-STEP , BOX DEPTH, BOX RANGE" << ::std::endl;
987 inline void BellhopWoss::writeBeamBlock() {
988 f_out <<
"\'MS\' 1.0 100.0 0," << ::std::endl <<
"3 5" << ::std::endl;
BellhopArrSyntax
Definition bellhop-woss.h:65
@ BELLHOP_CREATOR_ARR_FILE_INVALID
invalid syntax, must always be the last element
Definition bellhop-woss.h:69
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_1
Post 31 August 2016 syntax, with imaginary time delay.
Definition bellhop-woss.h:67
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_0
Pre 31 august 2016 syntax, without imaginary time delay.
Definition bellhop-woss.h:66
@ BELLHOP_CREATOR_ARR_FILE_SYNTAX_2
Post 31 March 2019 syntax, with different header syntax.
Definition bellhop-woss.h:68
BellhopShdSyntax
Definition bellhop-woss.h:76
@ BELLHOP_CREATOR_SHD_FILE_INVALID
invalid syntax, must always be the last element
Definition bellhop-woss.h:79
Implempentation of ACToolboxWoss for Bellhop raytracing program.
Definition bellhop-woss.h:87
virtual bool initPressResReader(double curr_frequency)
Definition bellhop-woss.cpp:906
void initBox(double depth, double range)
Definition bellhop-woss.h:924
int transform_ssp_depth_steps
Definition bellhop-woss.h:706
int total_rx_ranges
Definition bellhop-woss.h:657
virtual void resetNormalizedDbSSP()
Definition bellhop-woss.cpp:222
double rx_min_range_offset
Definition bellhop-woss.h:662
void writeAltimetryFile(int curr_run)
Definition bellhop-woss.cpp:809
::std::string bellhop_path
Definition bellhop-woss.h:599
BellhopWoss & setTxMaxDepthOffset(double offset)
Definition bellhop-woss.h:182
double min_normalized_ssp_depth
Definition bellhop-woss.h:690
int getRxTotalDepths() const
Definition bellhop-woss.h:405
double getBoxDepth() const
Definition bellhop-woss.h:435
virtual bool timeEvolve(const Time &time_value)
Definition bellhop-woss.cpp:1125
bool isValidBhMode(const ::std::string &) const
Definition bellhop-woss.h:919
int getTransformSSPDepthSteps() const
Definition bellhop-woss.h:447
int total_transmitters
Definition bellhop-woss.h:632
int getTotalTransmitters() const
Definition bellhop-woss.h:375
virtual bool initialize()
Definition bellhop-woss.cpp:883
BellhopArrSyntax bellhop_arr_syntax
Definition bellhop-woss.h:604
void writeBox()
Definition bellhop-woss.h:981
void writeSediment()
Definition bellhop-woss.h:934
double max_normalized_ssp_depth
Definition bellhop-woss.h:695
BellhopWoss & setRaysNumber(int number)
Definition bellhop-woss.h:238
BellhopWoss & setBoxRange(double range)
Definition bellhop-woss.h:266
BellhopWoss & setThorpeAttFlag(bool flag)
Definition bellhop-woss.h:168
bool usingPressMode() const
Definition bellhop-woss.h:512
::std::string beam_pattern_file
Definition bellhop-woss.h:578
NormSSPMap normalized_ssp_map
Definition bellhop-woss.h:737
BellhopWoss & setRxMaxRangeOffset(double offset)
Definition bellhop-woss.h:217
void checkDepthOffsets()
Definition bellhop-woss.cpp:494
virtual Pressure * getPressure(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1095
double min_angle
Definition bellhop-woss.h:679
bool initResReader(double curr_frequency)
Definition bellhop-woss.cpp:1074
double tx_max_depth_offset
Definition bellhop-woss.h:627
void writeTransmitter()
Definition bellhop-woss.h:949
::std::string altimetry_file
Definition bellhop-woss.h:573
BellhopWoss & setBoxDepth(double depth)
Definition bellhop-woss.h:259
const Transducer *const getTransducer() const
Definition bellhop-woss.h:496
BellhopWoss & setBeamPatternParam(double init_bearing, double vert_rot=0.0, double horiz_rot=0.0, double mult=1.0, double add=0.0)
Definition bellhop-woss.h:346
::std::string getBathymetryType() const
Definition bellhop-woss.h:478
BellhopWoss & setBeamOptions(const ::std::string &options)
Definition bellhop-woss.h:294
double getRxMaxRangeOffset() const
Definition bellhop-woss.h:399
bool usingSSPFile() const
Definition bellhop-woss.h:524
::std::string bathymetry_method
Definition bellhop-woss.h:547
void writeAllCfgFiles()
Definition bellhop-woss.cpp:1051
bool getThorpeAttFlag() const
Definition bellhop-woss.h:357
BellhopWoss & setRxTotalDepths(int number)
Definition bellhop-woss.h:224
bool usingTimeArrMode() const
Definition bellhop-woss.h:518
BellhopWoss & setRxMinDepthOffset(double offset)
Definition bellhop-woss.h:196
double getRxMinDepthOffset() const
Definition bellhop-woss.h:381
BellhopWoss & setBathymetryMethod(const ::std::string &type)
Definition bellhop-woss.h:315
void initCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:991
void writeNormalizedSSP(int curr_run)
Definition bellhop-woss.cpp:295
virtual TimeArr * getTimeArr(double frequency, double tx_depth, double rx_depth, double rx_range) const
Definition bellhop-woss.cpp:1105
double getTxMinDepthOffset() const
Definition bellhop-woss.h:363
::std::string shd_file
Definition bellhop-woss.h:589
double rx_max_depth_offset
Definition bellhop-woss.h:648
::std::string bellhop_env_file
Definition bellhop-woss.h:563
bool use_thorpe_att
Definition bellhop-woss.h:532
void checkBoundaries(double &frequency, double &tx_depth, double &rx_start_depth, double &rx_start_range, double &rx_end_depth, double &rx_end_range) const
Definition bellhop-woss.cpp:421
double getTxMaxDepthOffset() const
Definition bellhop-woss.h:369
BellhopWoss & setAltimetryType(const ::std::string &type)
Definition bellhop-woss.h:322
::std::string bathymetry_type
Definition bellhop-woss.h:542
::std::string altimetry_type
Definition bellhop-woss.h:552
::std::string ssp_file
Definition bellhop-woss.h:584
void checkRangeOffsets()
Definition bellhop-woss.cpp:503
::std::string arr_file
Definition bellhop-woss.h:594
int total_rays
Definition bellhop-woss.h:673
void writeBathymetryFile()
Definition bellhop-woss.cpp:553
::std::ofstream f_out
Definition bellhop-woss.h:758
void checkAngles()
Definition bellhop-woss.cpp:538
BellhopWoss & setMaxAngle(double angle)
Definition bellhop-woss.h:252
NormSSPMap randomized_ssp_map
Definition bellhop-woss.h:742
BellhopWoss & setBellhopShdSyntax(BellhopShdSyntax syntax)
Definition bellhop-woss.h:287
void writeHeader(double curr_frequency, int curr_run)
Definition bellhop-woss.h:941
BellhopWoss & setBellhopPath(const ::std::string &path)
Definition bellhop-woss.h:273
double getBoxRange() const
Definition bellhop-woss.h:441
BellhopWoss & setRxMinRangeOffset(double offset)
Definition bellhop-woss.h:210
double box_range
Definition bellhop-woss.h:752
virtual bool initTimeArrResReader(double curr_frequency)
Definition bellhop-woss.cpp:923
BellhopWoss & setBathymetryType(const ::std::string &type)
Definition bellhop-woss.h:308
int getRaysNumber() const
Definition bellhop-woss.h:417
void removeAllCfgFiles()
Definition bellhop-woss.cpp:1060
int total_rx_depths
Definition bellhop-woss.h:638
double rx_max_range_offset
Definition bellhop-woss.h:667
::std::string getBeamOptions() const
Definition bellhop-woss.h:472
BellhopWoss & setRxTotalRanges(int number)
Definition bellhop-woss.h:231
::std::string curr_path
Definition bellhop-woss.h:614
void writeBeamPatternFile()
Definition bellhop-woss.cpp:800
BellhopWoss & setTransformSSPDepthSteps(int depth_steps)
Definition bellhop-woss.h:338
BellhopWoss()
Definition bellhop-woss.cpp:79
::std::string beam_options
Definition bellhop-woss.h:537
BellhopWoss & setBhMode(const ::std::string &mode)
Definition bellhop-woss.cpp:200
virtual Pressure * getAvgPressure(double frequency, double tx_depth, double start_rx_depth=WOSS_MIN_DEPTH, double start_rx_range=WOSS_MIN_RANGE, double end_rx_depth=WOSS_MAX_DEPTH, double end_rx_range=WOSS_MAX_RANGE) const
Definition bellhop-woss.cpp:1083
BellhopWoss & setTxMinDepthOffset(double offset)
Definition bellhop-woss.h:175
::std::string bathymetry_file
Definition bellhop-woss.h:568
int getRxTotalRanges() const
Definition bellhop-woss.h:411
void removeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:1069
void writeRayOptions()
Definition bellhop-woss.h:970
BellhopWoss & setTotalTransmitters(int sources)
Definition bellhop-woss.h:189
double rx_min_depth_offset
Definition bellhop-woss.h:643
BellhopShdSyntax getBellhopShdSyntax() const
Definition bellhop-woss.h:466
double tx_min_depth_offset
Definition bellhop-woss.h:622
virtual bool isValid() const
Definition bellhop-woss.cpp:193
::std::string getAltimetryType() const
Definition bellhop-woss.h:490
void writeCfgFiles(double curr_frequency, int curr_run)
Definition bellhop-woss.cpp:1011
::std::string getBathymetryMethod() const
Definition bellhop-woss.h:484
void writeReceiver()
Definition bellhop-woss.h:957
BellhopWoss & setRxMaxDepthOffset(double offset)
Definition bellhop-woss.h:203
virtual bool run()
Definition bellhop-woss.cpp:948
double getRxMinRangeOffset() const
Definition bellhop-woss.h:393
const Transducer * transducer
Definition bellhop-woss.h:712
double getMaxAngle() const
Definition bellhop-woss.h:429
BellhopWoss & setBellhopArrSyntax(BellhopArrSyntax syntax)
Definition bellhop-woss.h:280
double max_angle
Definition bellhop-woss.h:684
BellhopWoss & setTransducer(const Transducer *const ptr)
Definition bellhop-woss.h:330
BellhopArrSyntax getBellhopArrSyntax() const
Definition bellhop-woss.h:460
double getMinAngle() const
Definition bellhop-woss.h:423
int curr_norm_ssp_depth_steps
Definition bellhop-woss.h:700
::std::string getBellhopPath() const
Definition bellhop-woss.h:454
virtual void normalizeDbSSP()
Definition bellhop-woss.cpp:232
double getRxMaxDepthOffset() const
Definition bellhop-woss.h:387
BellhopShdSyntax bellhop_shd_syntax
Definition bellhop-woss.h:609
double box_depth
Definition bellhop-woss.h:747
::std::string bellhop_op_mode
Definition bellhop-woss.h:557
BellhopWoss & setMinAngle(double angle)
Definition bellhop-woss.h:245
3D-Coordinates (lat, long, depth) class definitions and functions library
Definition coordinates-definitions.h:403
double getDepth() const
Definition coordinates-definitions.h:525
Complex attenuated pressure class.
Definition pressure-definitions.h:59
Channel power delay profile class.
Definition time-arrival-definitions.h:82
a class for time date manipulation
Definition time-definitions.h:95
Transducer class.
Definition transducer-definitions.h:70
virtual bool isValid() const
Definition transducer-definitions.cpp:232
CoordZ tx_coordz
Definition woss.h:495
double total_great_circle_distance
Definition woss.h:519
int woss_id
Definition woss.h:455
CoordZ rx_coordz
Definition woss.h:500
Generic functions and variables
Definitions and library for woss::Sediment class.
Provides the interface for the woss::Transducer class.