geodezyx.time_series package

Submodules

geodezyx.time_series.ts_class module

Created on Fri Aug 2 13:55:33 2019

@author: psakicki

class geodezyx.time_series.ts_class.Attitude(R=0, P=0, Y=0, T=0, sR=0, sP=0, sY=0, devID='NULL', angtype='deg')

Bases: object

Qcalc()
RPYget()
RPYset(R=0, P=0, Y=0, sR=0, sP=0, sY=0)
Tset(T=0)
class geodezyx.time_series.ts_class.Point(A=0.0, B=0.0, C=0.0, T=0.0, initype='XYZ', sA=0.0, sB=0.0, sC=0.0, name='noname')

Bases: object

ENUcalc_pt(refENU)
ENUset(E=nan, N=nan, U=nan, sE=nan, sN=nan, sU=nan)
FLHset(F=0, L=0, H=0, sF=0, sL=0, sH=0)
NEDset(N=nan, E=nan, D=nan, sN=nan, sE=nan, sD=nan)
Tset(T=0)
XYZset(X=0, Y=0, Z=0, sX=0, sY=0, sZ=0)
add_offset(dA, dB, dC)
helmert_trans(params='itrf2008_2_etrf2000', invert=False)
keysanex()
velocity_trans(vx, vy, vz, epoc_init='auto', epoc_end='auto')

auto == epoc of the measures

class geodezyx.time_series.ts_class.TimeSerieObs(typeobs='NULL', filepath='')

Bases: object

LES DIFFERENCES AVEC TSPOINT * Les objets ne contiennent qu’un type de données sous une seul forme (a la difference d’un point qui peut exister sous plusieurs formes) * Dans un fichier en input, il peut y avoir plusieurs “devices”

=> les fonctions de lectures produisent donc obligatoirement des listes de TS (le cas échéant une liste à 1 élt) => la methode readfile() nécessite donc l’indice de la device

add_obs(inObs)
aleaobs()
del_data()
enddate()
interp_get(T)
interp_set(interptype='slinear')
interval_nominal()
meta_set(path='', devID='NULL', name='')
plot(diapt=10, alpha=0.8, fig=1, new_style=True)
readfile(filein, indtab=0)
startdate()
timewin(windows, mode='keep')

IL EST TRES DANGEREUX DE L’APPLIQUER UN FENETRAGE A SOI MEME

to_list()
class geodezyx.time_series.ts_class.TimeSeriePoint(stat='STAT')

Bases: object

ENUcalc(refENU)

Method to determine the ENU components based on a reference point

Parameters

refENU (Point Object or TimeSeriePoint Object) – Reference point.

Returns

Return type

None.

ENUcalc_from_mean_posi()

Method to determine the ENU components based directly on the mean position

Returns

Return type

None.

add_offset(dA, dB, dC)

NOTE 160415 : add_offset as method are hazardous … use fct add_offset_ts instead

add_point(inPoint)

Method to add a Point in the TimeSerie Object

Parameters

inPoint (Point Object) –

Returns

Return type

None.

aleapt()

Method to get a random Point in the TimeSeries

Returns

Return type

Point Object

decimate(dec)

Method to decimate a TimeSerie

Parameters

dec (int) – keep 1/dec point in the TimeSerie.

Returns

Return type

None.

del_data()

Method to purge the data in the TimeSeriePoint

Returns

Return type

None.

discont_manu_click(fig=1)

manual discontinuities are both recorded in the “main” discont list and in a new discont_manu list, thus the manual discontinuites can be identified

IMPORTANTcursor objects (multi , cid)

must be stored as global variables like this : multi , cid = tsout.discont_manu_click()

NOTEThis method was created before point_n_click_plot():

this other one is more complete both has to be merged ASAP !!!!!

enddate()

Method to get the last epoch of the data in the TimeSerie

Returns

Return type

DateTime

find_point(tin, tol=0.001, stop_when_found=True)

Method to find a specific point according to its timestamp

Parameters
  • tin (float or datetime) – timestamp of the researched point.

  • tol (float, optional) – tolerence of the research. The default is 0.001.

  • stop_when_found (bool, optional) – Stop the research when a point is found. The default is True.

Returns

  • Point Object – Point Found.

  • int or list of int – index of the point.

from_list(T, A, B, C, coortype='XYZ', sA=[], sB=[], sC=[])

Method to load data from lists to the TimeSerie

Parameters
  • T (float) – Time.

  • A (list of float) – X, F (latitude), E..

  • B (list of float) – Y, L (longitude), N.

  • C (list of float) – Z, H (hight), U.

  • coortype (str, optional) – The coordinates type. The default is ‘XYZ’.

  • sA (list of float, optional) – sigma of A component. The default is [].

  • sB (list of float, optional) – sigma of B component. The default is [].

  • sC (list of float, optional) – sigma of C component. The default is [].

Returns

Return type

None.

from_uniq_point(Point, startdate, enddate, pas=1)
initype()
interp_get(T, coortype='ENU')

Method to get the coordinate interpolators

Parameters
  • T (float or list of float) – Time (IN POSIX Time) where the interpolation is wished.

  • coortype (str, optional) – The coordinates type. The default is ‘ENU’.

Returns

DESCRIPTION.

Return type

tsout

interp_set(interptype='slinear')

Method to set the coordinate interpolators

Parameters

interptype (TYPE, optional) – Interpolation type. The default is ‘slinear’.

Returns

Return type

None.

interval_nominal()

Method to get the nominal internal between two epochs.

Returns

interval nominal.

Return type

float

len_period(output_seconds=False)

Method to get the period length

Returns

Return type

timedelta or

mean_posi(coortype='XYZ', outtype='point', meanormed='mean')

Method to determine the mean position of the TimeSerie

Parameters
  • coortype (TYPE, optional) – The coordinates type. The default is ‘XYZ’.

  • outtype (TYPE, optional) – ‘point’ or ‘tuple’. The default is ‘point’.

  • meanormed (TYPE, optional) – ‘mean’ or ‘median’. The default is ‘mean’.

Returns

Return type

Point or coordinates tuple

meta_set(path='', stat='STAT', name='')

Set meta data about the TimeSerie

Parameters
  • path (str, optional) – file path. The default is ‘’.

  • stat (str, optional) – station 4-char. code. The default is ‘STAT’.

  • name (str, optional) – free name of for the TS, like the experience, the periode , the software … The default is ‘’.

Returns

Return type

None.

property nbpts

Method to have the length of the TimeSerie

Returns

Length of the TimeSerie.

Return type

int

plot(coortype='ENU', diapt=2, alpha=0.8, fig=1, errbar=True, new_style=True, symbol='.', errbar_width=1)

Plot data in a TimeSerie Object

Parameters
  • coortype (str, optional) – The coordinates type. The default is ‘ENU’.

  • diapt (float, optional) – Point diamaeter. The default is 2.

  • alpha (float, optional) – Alpha (transparency) of points. The default is 0.8.

  • fig (int or Figure object, optional) – Figure ID where the data will be plotted can accept a int (id of a Figure) OR the figure Object itself. The default is 1.

  • errbar (bool, optional) – Plot the error bars. The default is True.

  • new_style (bool, optional) – Plot in a new style. The old style is only kept for legacy The default is True.

  • symbol (str, optional) – symbol. The default is ‘.’.

  • errbar_width (TYPE, optional) – coefficient for the error bar size. The default is 1.

Returns

Return type

None.

plot_discont(fig=1)

Plot discontinuties of a TimeSerie Object contained in discont list

Parameters

fig (int or Figure object, optional) – Figure ID where the data will be plotted can accept a int (id of a Figure) OR the figure Object itself. The default is 1.

Returns

Return type

None.

readfile(filein)

Method to read the data form a file Should be used with care

Parameters

filein (str) – path of the file.

Returns

Return type

None.

set_discont(indiscont)

Method to set the discontinuties list

Parameters

indiscont (list of time) – Discontinuities in the TimeSerie.

Returns

Return type

None.

sort()

Internal method to sort the point in the TimeSerie Object

Returns

Return type

None.

startdate()

Method to get the first epoch of the data in the TimeSerie

Returns

Return type

DateTime

timewin(windows, mode='keep')

IL EST TRES DANGEREUX DE L’APPLIQUER UN FENETRAGE A SOI MEME

to_dataframe(coortype='XYZ')

Export the TimeSerie Object as DataFrame

Parameters

coortype (str or iterable of str.) – The coordinates type exported to the DataFrame. ‘XYZ’, ‘FLH’, ‘ENU’, ‘NED’ can be also an iterable like (‘XYZ’,’FLH’) The default is ‘XYZ’.

Returns

DF – output DataFrame.

Return type

DataFrame

to_list(coortype='XYZ', specific_output=None, time_as_datetime=False)

Export the TimeSerie Object as Lists (Numpy Arrays)

Parameters
  • coortype (str, optional) –

  • coordinates type exported to the list. (The) –

  • default is 'XYZ'. (The) –

  • specific_output (int, optional) – ask for a specific list, ranges between 0 and 6. The default is None.

  • time_as_datetime (bool, optional) – if True the Time list is exported in DataFrame if False the Time list is exported in Posix time

Returns

A,B,C,T,sA,sB,sC – A = X, F (latitude), E. B = Y, L (longitude), N. C = Z, H (hight), U. T = Time sA = sigma of A component sB = sigma of B component sC = sigma of C component

Return type

lists

class geodezyx.time_series.ts_class.point_n_click_plot

Bases: object

This method allow to do “point and click” on a plot, to localize offsets for instance

Data have to be ploted already in a figure

PnC = point_n_click_plot()
multi , cid = PnC(fig=1,Xdata_are_time=True)
PnC.selectedX

i.e.

Create an object point_n_click_plot (here it is PnC in the exemple below)

Call the object like a function with as 1st argument the id of the plot figure or the plot figure itself

Make your selection using the SPACE key

Get your results in a list called PnC.selectedX

Important

cursor objects (i.e. multi & cid) must be stored as global variables when you call the method like this :

multi , cid = PnC(fig=1)

geodezyx.time_series.ts_fcts module

Created on Fri Aug 2 17:38:41 2019

@author: psakicki

geodezyx.time_series.ts_fcts.add_offset_point(ptin, dA, dB, dC, coortype='ENU')

ONLY IMPLEMENTED FOR ENU FOR THE MOMENT 150415 : remark still necessary ???

coortype == ‘UXYZ’ :

specific case where we correct an Up offset directly in the XYZ coords very usefull for an antenna offset in for a moving GPS (but works only for the up)

geodezyx.time_series.ts_fcts.add_offset_smart_for_GINS_kine(tsin, tslist_offset_3ple, list_windows, coortype='XYZ')

tslist_offset_3ple : list of len N containing (dX,dY,dZ) offsets list_windows : list of len N-1 containing dates of changes

geodezyx.time_series.ts_fcts.add_offset_ts(tsin, dA, dB, dC, coortype='ENU')

return a copy of the tsin (tsin won’t be affected)

coortype == ‘UXYZ’ :

specific case where we correct an Up offset directly in the XYZ coords very usefull for an antenna offset in for a moving GPS (but works only for the up)

geodezyx.time_series.ts_fcts.bool_cleaner(tsin, boollist, verbose=False)

A partir d’une liste de bool de meme longeur que le nbre de points on ne conserve que les points True

geodezyx.time_series.ts_fcts.compar(tstup, coortype='ENU', seuil=3.0, win=[], mode='keep', Dtype='2D3D', namest=0, namend=10, alpha=5, diapt=5, verbose=True, print_report=True, plot=True)

si seuil == 0, pas de nettoyage

On preconise compar en mode keep : Ainsi le Tref est strictement cantonné aux bonnes valeurs des Ti En mode del, les Ti sont extrapolé aux valeur de Tref => nan => pbs pour la mad

if 2D3D /3D2D : selectionne 2D ou 3D (selon) en prioritaire pour dD mais détermine 2D et 3D et les introduit dans des clés adhoc dD2D dD3D ‘’’

geodezyx.time_series.ts_fcts.compar2(tstup, coortype='ENU', seuil=3.0, win=[], mode='keep', Dtype='3D', namest=0, namend=10, alpha=5, diapt=5, verbose=True, print_report=True, plot=True)

160903 cette fonction semble discontinuée

geodezyx.time_series.ts_fcts.compar_elts_in_ts(ts1, ts2)

ts2 must contains less elts than ts1 (ts2 = cleaned one)

geodezyx.time_series.ts_fcts.compar_plot(dico_list_in, namest=0, namend=10, alpha=0.8, diapt=1.5, new_style=True, colormap='gnuplot')
geodezyx.time_series.ts_fcts.decimate_cleaner(tsin, minval, in_place=False)

in_place DOES’NT WORK !!!

geodezyx.time_series.ts_fcts.decimate_cleaner_2(tsin, N, in_place=False)

keep a value every N vals

geodezyx.time_series.ts_fcts.detrend_ts(tsin, coortype='ENU')
geodezyx.time_series.ts_fcts.dist_btwn_2pts(ptA, ptB, coortype='XYZ')
geodezyx.time_series.ts_fcts.dist_diff_btwn_2pts(ptA, ptB)
geodezyx.time_series.ts_fcts.export_ts(ts, outdir, coordtype='ENU', outprefix='', write_header=False)

export the timeserie

write_header not well implemented !!!

geodezyx.time_series.ts_fcts.export_ts_as_hector_enu(tsin, outdir, outprefix, coordtype='ENU')

export to a HECTOR .enu (and not .neu !) compatible format This format is simpler : just gives MJD E N U

This format is necessary to force a sampling period.

outfile will be writed in /outdir/outprefixSTAT.enu

geodezyx.time_series.ts_fcts.export_ts_as_midas_tenu(tsin, outdir, outprefix, coordtype='ENU', export_step=True)

export to a MIDAS .tneu compatible format

outfile will be writed in /outdir/outprefixSTAT.tneu

if export_step == True: export a step file as /outdir/outprefixSTAT.step

geodezyx.time_series.ts_fcts.export_ts_as_neu(tsin, outdir, outprefix, coordtype='ENU')

export to a HECTOR .neu compatible format

outfile will be writed in /outdir/outprefixSTAT.neu

NB: The XYZ mode is quite dirty (191001)

geodezyx.time_series.ts_fcts.export_ts_figure_pdf(fig, export_path, filename, close=False)

fig can accept a int (id of a Figure) OR the figure Object itself

geodezyx.time_series.ts_fcts.export_ts_plot(tsin, export_path, coortype='ENU', export_type=('pdf', 'png'), plot_B=False, close_fig_after_export=True)

Very beta … to be implemented : merge w/ the export_figure_pdf fct

geodezyx.time_series.ts_fcts.find_pts_from_ts_with_time(tin, tstupin, tol=0.001)
geodezyx.time_series.ts_fcts.helmert_trans(tsin, params='itrf2008_2_etrf2000', invert=False)
geodezyx.time_series.ts_fcts.interpolator_light(T, X, Y, Z)
geodezyx.time_series.ts_fcts.interpolator_with_extrapolated(T, X, Y, Z)
geodezyx.time_series.ts_fcts.linear_regress_find_coeff(tsin, coortype='ENU')
geodezyx.time_series.ts_fcts.linear_regress_ts(tsin, coortype='ENU', titledetails='')

doit être cablé ASAP linear_regress_find_coeff

geodezyx.time_series.ts_fcts.linear_regress_ts_discont(tsin, coortype='ENU')
geodezyx.time_series.ts_fcts.mad_cleaner(tsin, seuil=3.5, method='dist', coortype='ABC', detrend_first=False, output_detrended=False, verbose=False)
methodmethode d’élimination :

dist : on élimine les point qu sont trop loin en distance de la posi de ref indep : on traite les point independaments

dist est a privilégier

output_detrended ne marche que si detrend_first est activé

geodezyx.time_series.ts_fcts.mean_list_of_pts(ptslisin)

useful for merge fct ONLY IMPLEMENTED FOR ENU coords for the moment

geodezyx.time_series.ts_fcts.mean_posi_multi(tstup)
geodezyx.time_series.ts_fcts.merge(tsin, N)

merge N points in one

geodezyx.time_series.ts_fcts.merge_ts(ts_list_in)
geodezyx.time_series.ts_fcts.print4compar(dA, dB, dC, dD, coortype)
geodezyx.time_series.ts_fcts.print4compar_tabular(dicolist, split=0, print_2D3D_if_any=True)
geodezyx.time_series.ts_fcts.refENU_for_tslist(tslist_in, tsref_marker=0)

tsref_marker : indice of the reference time serie OR the ‘all’ keyword in this case all the time series mean position will be averaged

geodezyx.time_series.ts_fcts.rotate_points_class(tsattin, ptslin, Rtype='R1', xyzreftuple=([1, 0, 0], [0, 1, 0], [0, 0, 1]), angtype='deg')
geodezyx.time_series.ts_fcts.rotate_pt_cls_solo(tsattin, pointin, Rtype='R1', xyzreftuple=([1, 0, 0], [0, 1, 0], [0, 0, 1]), angtype='deg')
ENTREEtsattinune TS d’attitude (N angles)

pointin : UN Point en entrée

SORTIE : une TSpoint de N points

geodezyx.time_series.ts_fcts.sigma_cleaner(tsin, seuil=3, coortype='ABC', cleantype='any', verbose=False)
geodezyx.time_series.ts_fcts.std_dev_cleaner(tsin, stddev_threshold, coortype='ABC', cleantype='any', verbose=False)

A rebooted (1807) version of sigma_cleaner just remove values in a timeserie with a high sigma/std deviation

geodezyx.time_series.ts_fcts.time_gap(tsin, marge=2, mode='del')

ENTREE une TimeSerie SORTIE une window (liste de listes)

geodezyx.time_series.ts_fcts.time_win(tsin, windows, mode='keep', outbool=False)
geodezyx.time_series.ts_fcts.time_win_T(Tin, win, mode='del')
geodezyx.time_series.ts_fcts.time_win_multi(inplis)
geodezyx.time_series.ts_fcts.ts_from_list(A, B, C, T, initype, sA=[], sB=[], sC=[], stat='STAT', name='NoName')
geodezyx.time_series.ts_fcts.velocity_trans(tsin, vx, vy, vz, epoc_init='auto', epoc_end='auto')