fire ts

Kommandogruppen fire ts indeholder værktøjer til indlæsning af data fra forskellige kilder.

Usage: fire ts [OPTIONS] COMMAND [ARGS]...

  Håndtering af koordinattidsserier.

Options:
  --help  Show this message and exit.

Commands:
  analyse-gnss  Analysér tidsserie for én eller flere GNSS stationer.
  gnss          Udtræk en GNSS tidsserie.
  plot-gnss     Plot en GNSS tidsserie.

fire ts gnss

Udtræk en GNSS tidsserie.

"OBJEKT" sættes til enten et punkt eller et specifik navngiven tidsserie. Hvis "OBJEKT" er et punkt udskrives en oversigt over de tilgængelige tidsserier til dette punkt. Hvis 'OBJEKT' er en tidsserie udskrives tidsserien på skærmen. Hvilke parametre der udskrives kan specificeres i en kommasepareret liste med --parametre. Følgende parametre kan vælges:

|     t               Tidspunkt for koordinatobservation
|     x               Koordinatens x-komponent (geocentrisk)
|     sx              x-komponentens spredning (i mm)
|     y               Koordinatens y-komponent (geocentrisk)
|     sy              y-komponentens spredning (i mm)
|     z               Koordinatens z-komponent (geocentrisk)
|     sz              z-komponentens spredning (i mm)
|     X               Koordinatens x-komponent (geocentrisk, normaliseret)
|     Y               Koordinatens y-komponent (geocentrisk, normaliseret)
|     Z               Koordinatens z-komponent (geocentrisk, normaliseret)
|     n               Normaliseret nordlig komponent (topocentrisk)
|     e               Normaliseret østlig komponent (topocentrisk)
|     u               Normaliseret vertikal komponent (topocentrisk)
|     decimalår       Tidspunkt for koordinatobservation i decimalår
|     obslængde       Observationslængde givet i timer
|     kkxx            Koordinatkovariansmatricens XX-komponent
|     kkxy            Koordinatkovariansmatricens XY-komponent
|     kkxz            Koordinatkovariansmatricens XZ-komponent
|     kkyy            Koordinatkovariansmatricens YY-komponent
|     kkyz            Koordinatkovariansmatricens YZ-komponent
|     kkzz            Koordinatkovariansmatricens ZZ-komponent
|     rkxx            Residualkovariansmatricens XX-komponent
|     rkxy            Residualkovariansmatricens XY-komponent
|     rkxz            Residualkovariansmatricens XZ-komponent
|     rkyy            Residualkovariansmatricens YY-komponent
|     rkyz            Residualkovariansmatricens YZ-komponent
|     rkzz            Residualkovariansmatricens ZZ-komponent

Tidsserien kan skrives til en fil ved brug af --fil, der resulterer i en csv-fil på den angivne placering. Denne fil kan efterfølgende åbnes i Excel, eller et andet passende program, til videre analyse.

EKSEMPLER

Vis alle tidsserier for punktet RDIO:

fire ts gnss RDIO

Vis tidsserien 'RDIO_5D_IGb08' med standardparametre:

fire ts gnss RDIO_5D_IGb08

Vis tidsserie med brugerdefinerede parametre:

fire ts gnss RDIO_5D_IGb08 --parametre decimalår,n,e,u,sx,sy,sz

Gem tidsserie med samtlige tilgængelige parametre:

fire ts gnss RDIO_5D_IGb08 -p alle -f RDIO_5D_IGb08.xlsx
fire ts gnss [OPTIONS] [OBJEKT]

Options

-p, --parametre <parametre>

Vælg hvilke parametre i tidsserien der skal udtrækkes. Som standard sat til 't,x,sx,y,sy,z,sz'. Bruges værdien 'alle' udtrækkes alle mulige parametre i tidsserien. Se fire ts gnss --help for yderligere detaljer.

-f, --fil <fil>

Skriv den udtrukne tidsserie til Excel fil.

--db <db>

Vælg en specifik databaseforbindelse - default_connection i fire.ini bruges hvis intet vælges.

Options:

prod | test

-m, --monokrom

Vis ikke farver i terminalen

--debug

Vis debug output fra FIRE-databasen.

--help

Vis denne hjælp tekst

Arguments

OBJEKT

Optional argument

fire ts plot-gnss

Plot en GNSS tidsserie.

Et simpelt plot der som standard viser udviklingen i nord, øst og op retningerne over tid. Vælges plottypen konf vises som standard kun Op-retningen. Plottes kun én enkelt tidsserieparameter vises for plottyperne fit og konf også værdien af fittets hældning.

"TIDSSERIE" er et GNSS-tidsserie ID fra FIRE. Eksisterende GNSS-tidsserier kan fremsøges med kommandoen fire ts gnss <punktnummer>. Hvilke parametre der plottes kan specificeres i en kommasepareret liste med --parametre. Højst 3 parametre plottes. Følgende parametre kan vælges:

|     t               Tidspunkt for koordinatobservation
|     x               Koordinatens x-komponent (geocentrisk)
|     y               Koordinatens y-komponent (geocentrisk)
|     z               Koordinatens z-komponent (geocentrisk)
|     X               Koordinatens x-komponent (geocentrisk, normaliseret)
|     Y               Koordinatens y-komponent (geocentrisk, normaliseret)
|     Z               Koordinatens z-komponent (geocentrisk, normaliseret)
|     n               Normaliseret nordlig komponent (topocentrisk)
|     e               Normaliseret østlig komponent (topocentrisk)
|     u               Normaliseret vertikal komponent (topocentrisk)
|     decimalår       Tidspunkt for koordinatobservation i decimalår

Typen af plot som vises kan vælges med --plottype. Følgende plottyper kan vælges:

|                   Plot  data
|     fit             Plot lineær regression oven  de  data
|     konf            Plot lineær regression med konfidensbånd

EKSEMPLER

Plot af 5D-tidsserie for BUDP:

fire ts plot-gnss BUDP_5D_IGb08

Resulterer i visning af nedenstående plot.

Eksempel på plot af 5D-tidsserie for BUDP.

Plot af 5D-tidsserie for SMID:

fire ts plot-gnss SMID_5D_IGb08 -p X,Y -t fit

Resulterer i visning af nedenstående plot.

Eksempel på plot af 5D-tidsserie for SMID.

Plot af 5D-tidsserie for TEJH:

fire ts plot-gnss TEJH_5D_IGb08 -t konf

Resulterer i visning af nedenstående plot.

Eksempel på plot af 5D-tidsserie for TEJH.
fire ts plot-gnss [OPTIONS] TIDSSERIE

Options

-t, --plottype <plottype>

Hvilken type plot vil man se?

Options:

rå | fit | konf

-p, --parametre <parametre>

Hvilken parameter skal plottes? Vælges flere plottes max de tre første.

--db <db>

Vælg en specifik databaseforbindelse - default_connection i fire.ini bruges hvis intet vælges.

Options:

prod | test

-m, --monokrom

Vis ikke farver i terminalen

--debug

Vis debug output fra FIRE-databasen.

--help

Vis denne hjælp tekst

Arguments

TIDSSERIE

Required argument

fire ts analyse-gnss

Analysér tidsserie for én eller flere GNSS stationer.

Der beregnes som udgangspunkt et lineært fit til tidsserierne, der sammenlignes med en uplift-model og derefter vises i et detaljeret plot med konfidensbånd og diverse andre kvalitetsparametre for fittet. Resultaterne gemmes i csv-format hvis en sti angives med --ofil.

Alle tidsserieparametre som er indeholdt i FIRE kan analyseres. Af størst relevans er Op-retningen (u), men der kan også vælges de andre geografiske dimensioner nord og øst, samt de geocentriske x, y eller z. Vælger man at analysere Op-retningen, så sammenligner programmet hældningen af den fittede linje med en reference-hældning givet ved uplift-modellen "DTU 2016" af Per Knudsen. En alternativ uplift-model kan angives enten for hvert punkt på listeform eller i griddet format (tif-fil).

Idéen med at sammenligne med en uplift-model er, at identificere eventuelle lokale bevægelser som ikke indfanges af uplift-modellen.

Sammenligningen foretages ved statistisk hypotesetest, som vurderer sandsynligheden for om den modellerede hældning er lig referencehældningen. Hertil anvendes signifikansniveauet alpha.

Konfidensintervaller- og bånd for regressionsparametrene hhv. -linjen anvender ligeledes signifikansniveauet alpha.

Analyseres mere end 1 tidsserie betegnes samlingen af disse som et tidsserie-ensemble og der beregnes en samlet usikkerhed af ensemblets observationer. Den "samlede" usikkerhed anvendes så til genberegning af statistiske tests og parametre. Kun tidsserier som er i samme referenceramme kan analyseres (default er IGb08).

Tuning:

Analyseresultaterne kan tunes med parametrene:

|     binsize             Tag gennemsnit af datapunkter som er tættere  hinanden end
|                         binsize. For detaljer se dokumentation af
|                         GNSSTidsserie.binning.
|     min_antal_punkter   Minimum antal punkter i tidsserien.
|     alpha               Signifikansniveau for konfidensintervaller og hypotesetests.

Rationale bag binning:

Tidsserierne består af data ujævnt spredt i tid. Derfor kan man komme ud for at en tidsserie består en gruppe af data som er tæt på hinanden i tid, samt af nogle få punkter som ligger mere spredt. Tidsperioden med den lille gruppe punkter som ligger tæt vil derfor have en større vægt en resten af punkterne, når man estimerer sin lineære model. Binning-proceduren er derfor en måde at reducere data/downsample de perioder hvor der er mange punkter. Derudover vil midlingen af punkterne inden for en "bin" også udjævne tilfældige fejl i data.

Bemærk at der ikke er tale om interpolation eller gridding af data.

Rationale bag tidsserie-ensembler:

Idet at man på kort tidsskala (år) antager en lineær trend i et givent punkts bevægelse (inklusive modelleret landbevægelse og lokale sætninger), kan afvigelserne (residualerne) mellem observationerne og den fittede linje, tolkes som måleusikkerheden forbundet med observationerne. (NB! Tager ikke højde for eventuelle periodiske signaler eller (sjovt nok) ulinære tendenser.) Dette kræver, at observationerne som indgår i tidsserien så vidt muligt er målt på samme måde og efter samme standarder, herunder GNSS-antenne/modtager, måletid etc.

Denne antagelse er vigtig for at kunne analysere et tidsserie-ensemble som helhed. Idéen med dette er, at bruge residualerne fra alle tidsserierne i ensemblet til at estimere en generel, samlet måleusikkerhed for observationerne i ensemblet. (se også https://en.wikipedia.org/wiki/Pooled_variance). NB! Igen er det vigtigt at man sikrer sig at hver observation i hver tidsserie som indgår i ensemblet er målt på samme måde.

Idet flere observationer indgår i estimeringen af denne samlede varians, vil denne være "bedre bestemt" end variansen for den enkelte tidsserne, og dette betyder at man med større statistisk sikkerhed kan drage konklusioner om GNSS-punkternes bevægelser.

Formler bag analyse-gnss:

Generelt søges der på et lineært ligningssystem et estimat: \(\hat{\beta}=\begin{bmatrix} \hat{\beta}_0 & \hat{\beta}_1 & ··· & \hat{\beta}_{M-1}\end{bmatrix}^T\), hvor \(M\) er antallet af modelparametre (i kildekoden bruges betegnelsen ddof, efter det engelske "delta degrees of freedom", for at skabe konsistens med de anvendte biblioteker numpy og scipy).

Det lineære ligningssystem repræsenteres på matrixform som:

\[\mathbf{A}\,\beta = \mathbf{y}\]

Det følgende tager udgangspunkt i, at der fittes en ret linje, dvs. \(M=2\), hvilket er programmets standardindstilling. I så fald ser designmatricen \(\mathbf{A}\) ud på følgende måde:

\[\begin{split}\mathbf{A}= \begin{bmatrix} 1 & x_1 \\ 1 & x_2 \\ ⋮ & ⋮ \\ 1 & x_N \end{bmatrix}\end{split}\]

hvor \({x_i}\) er den forklarende variabel og \({N}\) er antallet af datapunkter.

Observationerne er givet ved vektoren \(\mathbf{y}\):

\[\begin{split}\mathbf{y}= \begin{bmatrix} y_1 \\ y_2 \\ ⋮ \\ y_N \end{bmatrix}\end{split}\]

Residualerne er da:

\[\mathbf{r}=\mathbf{A}\mathbf{x} -\mathbf{b}\]

Summen af kvadrerede residualer betegnes som:

\[\text{SSR} = \mathbf{r}^T \, \mathbf{r}\]

Løsningen vurderes ud fra bestemmelseskoefficienten \({R^2}\):

\[R^2=1-\frac{\text{SSR}}{\sum_i\left(y_i - \bar{y} \right)^2}\]

Antallet af frihedsgrader angives \(\text{dof}\):

\[\text{dof} = N-M\]

Den estimerede varians af residualerne \(\sigma_0^2\) bestemmes ud fra \(\text{MSE}\) (Mean Squared Error):

\[\sigma_0^2 = \text{MSE} = \frac{\text{SSR}}{\text{dof}}\]

Kovariansmatricen af de estimerede parametre \(\mathbf{\Sigma} (\hat{\beta})\) er bestemt ved:

\[\begin{split}\mathbf{\Sigma} = \sigma_0^2\,(\mathbf{A}^T\mathbf{A})^{-1} = \begin{bmatrix} \sigma_{\hat{\beta}_0}^2 & \text{Cov}(\hat{\beta}_0,\hat{\beta}_1) \\ \text{Cov}(\hat{\beta}_1, \hat{\beta}_0) & \sigma_{\hat{\beta}_1}^2 \end{bmatrix}\end{split}\]

Konfidensintervallet \(\text{KI}\) for de estimerede parametre kan nu beregnes med signifikansniveau \(\alpha\) som:

\[\text{KI} = \hat{\beta}_i \pm T_{1-\alpha/2} \, \sigma_{\hat{\beta}_i}\]

hvor \(T_{1-\alpha/2}\) er \(100·(1-\alpha/2)\) -fraktilen for en t-fordeling med \(\text{dof}\) antal frihedsgrader.

Konfidensbånd

Prædiktioner med modellen for et vilkårligt prædiktionspunkt \(x_p\) er givet ved:

\[y_p = \hat{\beta}_0 + \hat{\beta}_1\,x_p\]

Et mål for sikkerheden af prædiktionen er konfidensbåndet. Denne beregnes for punktet \(x_p\) som:

\[y_p \pm T_{1-\alpha/2} \, \left( \begin{bmatrix} 1 & x_p \end{bmatrix} \mathbf{\Sigma} \begin{bmatrix} 1 & x_p \end{bmatrix}^T \right)^{1/2}\]

Hypotesetest

Hypotesetests foretages med følgende nulhypotese:

Den modellerede terrænhastighed \(\hat{\beta}_1\) er lig reference-hastigheden \(v\)

For Op-retningen er \(v\) givet ved en uplift-model. Den alternative hypotese er nulhypotesens inverse:

Den modellerede terrænhastighed \(\hat{\beta}_1\) er forskellig fra reference-hastigheden \(v\)

Dette formuleres matematisk som:

\[ \begin{align}\begin{aligned}H_0: \hat{\beta_1} = v\\H_1: \hat{\beta_1} \neq v\end{aligned}\end{align} \]

Test-scoren betegnes enten som \(t\) eller \(z\) afhængigt af om der foretages t- eller z-test. Begge test-scorer beregnes som:

\[\frac{\hat{\beta_1} - v }{\sigma_{\hat{\beta_1}}}\]

Nulhypotesen \(H_0\) accepteres hvis \(t\lt T_{1-\alpha/2}\) (eller \(z\lt Z_{1-\alpha/2}\)). Ellers forkastes nulhypotesen og den alternative hypotese må accepteres.

Samlet varians

Den samlede varians \(\sigma_{samlet}^2\) beregnes som et vægtet gennemsnit af den estimerede varians \(\sigma_{0,j}^2\) for hver tidsserie \(j=1\,..N_{ts}\) som indgår i ensemblet:

\[\sigma_{samlet}^2 = \frac{\sum_{j=1}^{N_{ts}} \text{dof}_j \, \sigma_{0,j}^2}{\sum_{j=1}^{N_{ts}} \text{dof}_j} = \frac{\sum_{j=1}^{N_{ts}} \text{SSR}_j}{\sum_{j=1}^{N_{ts}} \text{dof}_j}\]

hvor \(\text{dof}_j\) er antallet af frihedsgrader for hver tidsserie \(j\). Den samlede varians kan nu erstatte \(\sigma_0^2\) i de ovenstående formler, hvorved de statistiske størrelsers "samlede" udgave opnås. Dette indebærer antagelsen om, at \(\sigma_{samlet}^2\) er estimatet af populationens varians og ikke sample-variansen som er \(\sigma_{0}^2\). Dette gør os i stand til, i hypotesetest og konfidensintervaller at anvende en normalfordeling med fraktilen \(Z_{1-\alpha/2}\) som er uafhængig af antal frihedsgrader, i stedet for en t-fordeling med fraktilen \(T_{1-\alpha/2}\).

fire ts analyse-gnss [OPTIONS] [TS_LISTE]

Options

--ts-fil <ts_fil>

Sti til fil med liste af tidsserier som skal analyseres. TidsserieID'erne i filen skal være adskilt af linjeskift. (\n)

--parameter <parameter>

Vælg hvilken tidsserieparameter der skal undersøges, fx u for ellipsoidehøjde.

-o, --ofil <ofil>

Skriv beregnet tidsseriestatistik til csv-fil.

--uplift-station <uplift_station>

Sti til uplift-data for hver station. Hvis de(n) valgte station ikke findes, interpoleres uplift-raten ud fra --uplift-grid. Formatet af filen skal være GNSSNR, LON, LAT, UPLIFTRATE \n.

--uplift-grid <uplift_grid>

Sti til griddet uplift-data. NB! Default-modellen "DTU 2016" af Per Knudsen dækker området fra 54.1-58°N og 7.7-13.1°E og er dermed ikke gyldig over Bornholm.

--min-antal-punkter <min_antal_punkter>

Minimum antal punkter i tidsserien.

--alpha <alpha>

Signifikansniveau for statistiske tests og konfidensintervaller.

--binsize <binsize>

Hvis antal dage mellem datapunkter er mindre end binsize findes gennemsnit af datapunkterne.

--grad <grad>

Vælg graden af polynomiet som fittes til data. Bruges sjældent.

--referenceramme <referenceramme>

Vælg tidseriernes referenceramme.

--alle

Sættes dette flag, bliver --ts-liste og --ts-fil ignoreret og alle GNSS-stationer med 5D tidsserier i den valgte referenceramme analyseres.

--plot, --no-plot

Vælg om plots skal vises eller ej.

--db <db>

Vælg en specifik databaseforbindelse - default_connection i fire.ini bruges hvis intet vælges.

Options:

prod | test

-m, --monokrom

Vis ikke farver i terminalen

--debug

Vis debug output fra FIRE-databasen.

--help

Vis denne hjælp tekst

Arguments

TS_LISTE

Optional argument