ARTS 2.5.0 (git: 9ee3ac6c)
artstime.h File Reference

Stuff related to time in ARTS. More...

#include <chrono>
#include <cmath>
#include "array.h"
#include "matpackI.h"
#include "mystring.h"

Go to the source code of this file.

Classes

class  Time
 Class to handle time in ARTS. More...
 

Typedefs

using TimeStep = std::chrono::duration< Numeric >
 A duration of time, 1 full tick should be 1 second. More...
 
using ArrayOfTime = Array< Time >
 List of times. More...
 
using ArrayOfArrayOfTime = Array< ArrayOfTime >
 List of times. More...
 
using ArrayOfTimeStep = Array< TimeStep >
 List of time steps. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const Time &t)
 Output for Time. More...
 
std::istream & operator>> (std::istream &is, Time &t)
 Input for Time. More...
 
std::ostream & operator<< (std::ostream &os, const TimeStep &dt)
 Debug output for duration. More...
 
TimeStep time_stepper_selection (const String &time_step)
 Returns a time step from valid string. More...
 
Time next_even (const Time &t, const TimeStep &dt)
 Returns the next time after t with an even time-step. More...
 
ArrayOfIndex time_steps (const ArrayOfTime &times, const TimeStep &dt)
 Finds the index matching demands in a list of times. More...
 
Time mean_time (const ArrayOfTime &ts, Index s=0, Index e=-1)
 Computes the average time in a list. More...
 
Vector time_vector (const ArrayOfTime &times)
 Converts from each Time to seconds and returns as Vector. More...
 
ArrayOfTime time_vector (const Vector &times)
 Converts from each Vector entry by seconds and returns as ArrayOfTime. More...
 
TimeStep median (ArrayOfTimeStep)
 Returns the median time step. More...
 
TimeStep mean (const ArrayOfTimeStep &)
 Returns the mean time step. More...
 

Detailed Description

Stuff related to time in ARTS.

Author
Richard Larsson
Date
2020-04-13

Definition in file artstime.h.

Typedef Documentation

◆ ArrayOfArrayOfTime

List of times.

Definition at line 93 of file artstime.h.

◆ ArrayOfTime

List of times.

Definition at line 90 of file artstime.h.

◆ ArrayOfTimeStep

List of time steps.

Definition at line 96 of file artstime.h.

◆ TimeStep

using TimeStep = std::chrono::duration<Numeric>

A duration of time, 1 full tick should be 1 second.

Definition at line 38 of file artstime.h.

Function Documentation

◆ mean()

TimeStep mean ( const ArrayOfTimeStep dt)

Returns the mean time step.

Parameters
[in]timesTimes
Returns
mean time step

Definition at line 190 of file artstime.cc.

Referenced by abs_lookupSetup(), Raw::Reduce::focus(), NumericFromVector(), polynomial_basis_func(), test_ls(), Minimize::T4::x0(), Minimize::DPL::x0(), ybatchDoublingMeanFocus(), and yDoublingMeanFocus().

◆ mean_time()

Time mean_time ( const ArrayOfTime ts,
Index  s = 0,
Index  e = -1 
)

Computes the average time in a list.

Parameters
[in]tsA list of time
[in]sA starting index; valid range [0, ts.nelem())
[in]eThe end+1 index; valid range [-1, ts.nelem()]; -1 is treated as ts.nelem()

Definition at line 151 of file artstime.cc.

◆ median()

TimeStep median ( ArrayOfTimeStep  dt)

Returns the median time step.

Takes vector by copy to sort

Parameters
[in]timesTimes
Returns
median time step

Definition at line 179 of file artstime.cc.

Referenced by test_ls(), and yMaskOutsideMedianRange().

◆ next_even()

Time next_even ( const Time t,
const TimeStep dt 
)

Returns the next time after t with an even time-step.

Parameters
[in]tA time
[in]dtA duration of time
Returns
Next even time, e.g., 14:14:00 with dt as 10 minutes gives 14:20:00

Definition at line 68 of file artstime.cc.

References Time::EpochTime().

Referenced by time_steps().

◆ operator<<() [1/2]

std::ostream & operator<< ( std::ostream &  os,
const Time t 
)

Output for Time.

Definition at line 104 of file artstime.cc.

References Time::PartOfSecond(), and Time::toStruct().

◆ operator<<() [2/2]

std::ostream & operator<< ( std::ostream &  os,
const TimeStep dt 
)
inline

Debug output for duration.

Definition at line 105 of file artstime.h.

◆ operator>>()

std::istream & operator>> ( std::istream &  is,
Time t 
)

Input for Time.

Definition at line 122 of file artstime.cc.

References ARTS_USER_ERROR_IF, Array< base >::nelem(), and my_basic_string< charT >::split().

◆ time_stepper_selection()

TimeStep time_stepper_selection ( const String time_step)

Returns a time step from valid string.

The string should look like: "X type". where X is parsed as a double and where valid string type(s) are: "hour", "hours", "h": Returns a X hour time step "minute", "minutes", "min": Returns a X minute time step "second", "seconds", "s": Returns a X seconds time step

Parameters
[in]time_stepA time step of format "X type"
Returns
The time step as TimeStep

Definition at line 37 of file artstime.cc.

References check_enum_error(), and Hitran::type.

Referenced by test01(), and ybatchTimeAveraging().

◆ time_steps()

ArrayOfIndex time_steps ( const ArrayOfTime times,
const TimeStep dt 
)

Finds the index matching demands in a list of times.

The first index is 0 and the second index is the start of the first even period of the given stepsize

The last index is times.nelem(). If output has 1 element, no range was found matching the criteria.

Parameters
[in]timesTimes sorted in ascending order
[in]dtA duration of time
Returns
Starting index of the time-series

Definition at line 77 of file artstime.cc.

References abs, ARTS_USER_ERROR_IF, N, Array< base >::nelem(), next_even(), and time_steps().

Referenced by test01(), time_steps(), and ybatchTimeAveraging().

◆ time_vector() [1/2]

Vector time_vector ( const ArrayOfTime times)

Converts from each Time to seconds and returns as Vector.

Parameters
[in]timesTimes
Returns
Vector of Time->Seconds() calls

Definition at line 167 of file artstime.cc.

References Array< base >::nelem().

Referenced by jacobianCalcPointingZaInterp(), jacobianCalcPointingZaRecalc(), and x2artsSensor().

◆ time_vector() [2/2]

ArrayOfTime time_vector ( const Vector times)

Converts from each Vector entry by seconds and returns as ArrayOfTime.

Parameters
[in]timesTimes
Returns
ArrayOfTime from seconds

Definition at line 173 of file artstime.cc.

References ConstVectorView::nelem(), and Seconds.