MsPASS C++ API  2.4.1.dev4+g92330b7a
Defines the C++ API for MsPASS
Loading...
Searching...
No Matches
BasicTimeSeries.h
1#ifndef _BASICTIMESERIES_H_
2#define _BASICTIMESERIES_H_
3#include <boost/archive/text_iarchive.hpp>
4#include <boost/archive/text_oarchive.hpp>
5#include <math.h>
6namespace mspass::seismic {
15 UTC,
18};
19
36public:
55 virtual ~BasicTimeSeries() {};
62 double time(const int i) const {
63 return (mt0 + mdt * static_cast<double>(i));
64 };
72 int sample_number(double t) const { return (round((t - mt0) / mdt)); };
77 double endtime() const noexcept {
78 return (mt0 + (static_cast<double>(nsamp) - 1.0) * mdt);
79 };
82 bool shifted() const { return t0shift_is_valid; };
85 double get_t0shift() const { return this->t0shift; };
96 double time_reference() const;
109 void force_t0_shift(const double t) {
110 this->t0shift = t;
111 t0shift_is_valid = true;
112 };
123 virtual void ator(const double tshift);
132 virtual void rtoa();
140 virtual void shift(const double dt);
142 bool live() const { return this->mlive; };
145 bool dead() const { return !(this->mlive); };
147 void kill() { this->mlive = false; };
151 void set_live() { this->mlive = true; };
153 double dt() const { return this->mdt; };
155 bool time_is_UTC() const {
157 return true;
158 else
159 return false;
160 };
162 bool time_is_relative() const {
164 return true;
165 else
166 return false;
167 };
169 TimeReferenceType timetype() const { return this->tref; }
171 double samprate() const { return 1.0 / mdt; }
173 size_t npts() const { return nsamp; };
176 double t0() const { return this->mt0; };
187 std::vector<double> time_axis() const;
199 virtual void set_dt(const double sample_interval) { mdt = sample_interval; };
211 virtual void set_npts(const size_t npts) { nsamp = npts; };
223 virtual void set_t0(const double t0in) { mt0 = t0in; };
235 void set_tref(const TimeReferenceType newtref) { tref = newtref; };
238
239protected:
245 bool mlive;
249 double mdt;
253 double mt0;
257 size_t nsamp;
274 double t0shift;
275
276private:
277 friend boost::serialization::access;
278 template <class Archive>
279 void serialize(Archive &ar, const unsigned int version) {
280 ar & mlive;
281 ar & mdt;
282 ar & nsamp;
283 ar & mt0;
284 ar & tref;
285 ar & t0shift_is_valid;
286 ar & t0shift;
287 };
288};
289} // namespace mspass::seismic
290#endif // End guard
Base class for time series objects.
Definition BasicTimeSeries.h:35
BasicTimeSeries()
Definition BasicTimeSeries.cc:45
size_t nsamp
Definition BasicTimeSeries.h:257
virtual void set_dt(const double sample_interval)
Set the sample interval.
Definition BasicTimeSeries.h:199
void set_live()
Definition BasicTimeSeries.h:151
double get_t0shift() const
Definition BasicTimeSeries.h:85
bool shifted() const
Definition BasicTimeSeries.h:82
double samprate() const
Definition BasicTimeSeries.h:171
virtual void rtoa()
Definition BasicTimeSeries.cc:22
virtual ~BasicTimeSeries()
Virtual destructor.
Definition BasicTimeSeries.h:55
size_t npts() const
Definition BasicTimeSeries.h:173
virtual void shift(const double dt)
Definition BasicTimeSeries.cc:75
virtual void set_npts(const size_t npts)
Set the number of samples attribute for data.
Definition BasicTimeSeries.h:211
double time(const int i) const
Definition BasicTimeSeries.h:62
double t0() const
Definition BasicTimeSeries.h:176
bool mlive
Definition BasicTimeSeries.h:245
double time_reference() const
Definition BasicTimeSeries.cc:84
bool time_is_relative() const
Definition BasicTimeSeries.h:162
bool live() const
Definition BasicTimeSeries.h:142
std::vector< double > time_axis() const
Definition BasicTimeSeries.cc:98
bool dead() const
Definition BasicTimeSeries.h:145
BasicTimeSeries & operator=(const BasicTimeSeries &parent)
Definition BasicTimeSeries.cc:63
bool time_is_UTC() const
Definition BasicTimeSeries.h:155
void force_t0_shift(const double t)
Force a t0 shift value on data.
Definition BasicTimeSeries.h:109
TimeReferenceType tref
Definition BasicTimeSeries.h:267
int sample_number(double t) const
Definition BasicTimeSeries.h:72
virtual void set_t0(const double t0in)
Set the data start time.
Definition BasicTimeSeries.h:223
TimeReferenceType timetype() const
Definition BasicTimeSeries.h:169
void set_tref(const TimeReferenceType newtref)
Force the time standard.
Definition BasicTimeSeries.h:235
void kill()
Definition BasicTimeSeries.h:147
virtual void ator(const double tshift)
Definition BasicTimeSeries.cc:9
double t0shift
Definition BasicTimeSeries.h:274
double mdt
Definition BasicTimeSeries.h:249
double mt0
Definition BasicTimeSeries.h:253
double dt() const
Definition BasicTimeSeries.h:153
bool t0shift_is_valid
Definition BasicTimeSeries.h:271
double endtime() const noexcept
Definition BasicTimeSeries.h:77
Define metadata keys.
Definition BasicSpectrum.h:6
TimeReferenceType
Type of time standard for time series data.
Definition BasicTimeSeries.h:14