Ocean loading. Computation of displacements of sites on the solid earth surface due to ocean loading.
The computation requires a site(Lat,Lon)-specific set of coefficients, in a flat file with a specific format, and obtainable by a variety of methods. Coefficients for all the ITRF sites are found at ftp://maia.usno.navy.mil/conventions/chapter7/olls25.blq Also, at http://www.oso.chalmers.se/~loading one may submit site label and position for one or more sites, and the resulting ocean loading file will be computed and emailed. Finally, open source software package SPOTL (Some Programs for Ocean Load Tides) is available from http://igppweb.ucsd.edu/~agnew/Spotl/spotlmain.html. This software will compute the coefficients and output the file, with a variety of options.
Once a file is obtained for the site of choice, this object is initialized by calling initializeSites(), passing it the file name an a list of the sites for which computations will later be desired. The function isValid() returns true when a given site has been initialized. The function computeDisplacement() will compute the site displacement vector at any time for any initialized site.
Definition at line 82 of file OceanLoadTides.hpp.
#include <OceanLoadTides.hpp>
Classes | |
struct | NVector |
Used for convenience by computeDisplacements. More... | |
Public Member Functions | |
Triple | computeDisplacement (std::string site, EphTime t) |
Triple | computeDisplacement11 (std::string site, EphTime t) |
Triple | getPosition (std::string site) |
int | initializeSites (std::vector< std::string > &sites, std::string filename) |
bool | isValid (std::string site) |
OceanLoadTides () | |
Constructor. More... | |
Private Member Functions | |
int | deriveTides (const NVector SchTides[], const double amp[], const double phs[], const double Dood[], const double freqDood[], double ampDer[], double phsDer[], double freq[], const int Nin) |
Private Attributes | |
std::map< std::string, std::vector< double > > | coefficientMap |
std::map< std::string, std::vector< double > > | positionMap |
Static Private Attributes | |
static const int | NDER = 342 |
Number of derived tides computed by deriveTides() More... | |
static const int | NSTD = 11 |
Number of standard (Schwiderski) tides read from BLQ file. More... | |
|
inline |
Constructor.
Definition at line 86 of file OceanLoadTides.hpp.
Compute the site displacement vector at the given time for the given site. The site must have been successfully initialized; if not an exception is thrown. Based on IERS routine HARDISP.F
site | string Input name of the site; must be the same as previously successfully passed to initializeSites(). |
t | EphTime Input time of interest. |
Exception | if the site has not been initialized, if the time system is unknown, if there is corruption in the static arrays, or . |
Definition at line 416 of file OceanLoadTides.cpp.
Compute the site displacement vector at the given time for the given site. Use the 11-tide (simple) model. The site must have been successfully initialized; if not an exception is thrown.
site | string Input name of the site; must be the same as previously successfully passed to initializeSites(). |
t | EphTime Input time of interest. |
Exception | if the site has not been initialized. |
Definition at line 273 of file OceanLoadTides.cpp.
|
private |
Derive the 342 tides from the standard 11 tides using cubic spline interpolation. Called by computeDisplacements()
SchTides | array of 11 NVectors (int[6]) with for standard tides |
amp | array of 11 amplitudes from BLQ file |
phs | array of 11 phases from BLQ file |
Dood | array of 6 Doodson arguments at time t in degrees |
freqDood | array of 6 Doodson frequencies at time in cycles/day |
ampDer | array of nout (up to 342) amplitudes of the derived tides |
phsDer | array of nout (up to 342) phases of the derived tides |
freq | array of nout (up to 342) frequencies of the derived tides |
Nin | number of std tides (11) |
Exception | if static arrays are corrupted. |
Definition at line 658 of file OceanLoadTides.cpp.
|
inline |
Return the recorded latitude, longitude and ht(=0) for the given site. Return value of (0.0,0.0,0.0) probably means the position was not found.
Definition at line 153 of file OceanLoadTides.hpp.
int gnsstk::OceanLoadTides::initializeSites | ( | std::vector< std::string > & | sites, |
std::string | filename | ||
) |
Open and read the given file, containing ocean loading coefficients, and initialize this object for the sites names in the input list that match a name in the file (case sensitive, may contain embedded whitespace). Return the number of successfully initialized site names, and remove those sites from the input list. Convert coefficients from degrees to radians. Ocean loading files can be obtained from the web. For example all the ITRF sites are found at ftp://maia.usno.navy.mil/conventions/chapter7/olls25.blq Also, at http://www.oso.chalmers.se/~loading one may submit site label and position for one or more sites, and the resulting ocean loading file will be emailed.
sites | vector<string> On input contains site labels found in the file, on output contains only sites that were NOT found. If empty, all sites are read. |
filename | string Input ocean loading file name. |
Exception | if the file could not be opened. |
Definition at line 86 of file OceanLoadTides.cpp.
|
inline |
Return true if the given site name has been initialized, otherwise false.
Definition at line 114 of file OceanLoadTides.hpp.
|
private |
map of (site name, coefficient array), created by call to initializeSites()
Definition at line 176 of file OceanLoadTides.hpp.
|
staticprivate |
Number of derived tides computed by deriveTides()
Definition at line 194 of file OceanLoadTides.hpp.
|
staticprivate |
Number of standard (Schwiderski) tides read from BLQ file.
Definition at line 191 of file OceanLoadTides.hpp.
|
private |
map of (site name,2-element array lat,lon), created by initializeSites()
Definition at line 182 of file OceanLoadTides.hpp.