S-JTSK / Chyba při transformaci z WGS84 do S-JTSK

Z FreeGIS portál
Přejít na: navigace, hledání

Mapka znázorňuje chybu transformace pomocí modulu v.proj z WGS84 do S-JTSK. Data byla vyinterpolována pro body z kampaně DOPNUL. Chybou v tomto ohledu je myšlena vzdálenost bodu v S-JTSK od stejného bodu získaného transformací z WGS84. Body DOPNUL byly získány z [1].

Chyba při transformaci WGS84 → S-JTSK (jednotka centimetry)

Postup

Založení lokací

  1. Založení lokace ve WGS-84
  2. Založení lokace v S-JTSK

wxGUI uvítací obrazovka, "Location wizard"

wxGUI Location wizard

Import dat

Body DOPNUL máme kupříkladu k dispozici v textovém souboru:

  • S-JTSK
000901100080 718583.33 949224.46 416.92
000901140020 722822.55 939481.95 371.96
000901150030 728334.80 941374.99 408.21
  • WGS-84
000901100080 50 57 08.39340 14 34 51.15420 460.120
000901140020 51 02 02.30780 14 30 08.50720 415.200
000901150030 51 00 37.41940 14 25 41.48800 451.580

Pro import bodových dat do GRASSu je potřeba data předzpracovat standardními nástroji jako je např. AWK.

  • S-JTSK
cat S-JTSK-ALL.txt | awk '{print $1,"-"$2,"-"$3,$4}' | v.in.ascii output=dopnul x=2 y=3 fs=" "
  • WGS-84
cat WGS-ALL.txt | awk '{print $1,$2":"$3":"$4"N",$5":"$6":"$7"E",$8}' | v.in.ascii output=dopnul x=3 y=2 fs=" "

Transformace

Transformace bodové vrstvy 'dopnul' z lokace WGS-84 do S-JTSK (modul v.proj)

v.proj location=cr-wgs84 input=dopnul output=dopnul_wgs84

Odchylky

Přidáme do atributové tabulky 'dopnul' nový sloupec, kam uložíme vypočtené odchylky.

v.db.addcol map=dopnul column="dist double precision"

Výpočet vzdáleností k nejbližšímu prvku v.distance

v.distance from=dopnul to=dopnul_wgs84 upload=dist column=dist

Statistika odchylek (v.univar):

v.univar map=dopnul type=point column=dist -e

number of features with non NULL attribute: 3070
number of missing attributes: 0
number of NULL attributes: 0
minimum: 0.001819
maximum: 0.825838
range: 0.824019
mean: 0.175489
mean of absolute values: 0.175489
population standard deviation: 0.123798
population variance: 0.0153259
population coefficient of variation: 0.705444
sample standard deviation: 0.123818
sample variance: 0.0153309
kurtosis: 1.96328
skewness: 1.27905
1st quartile: 0.084739
median (even number of cells): 0.141167
3rd quartile: 0.241123
90th percentile: 0.352056

Interpolace

Nejprve je třeba určit výpočetní region (g.region):

g.region vect=dopnul res=300 -p

projection: 99 (Krovak)
zone:       0
datum:      towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56
ellipsoid:  bessel
north:      -937201.01
south:      -1225028.15
west:       -902091.82
east:       -433168.38
nsres:      300.1325756
ewres:      300.0149968
rows:       959
cols:       1563
cells:      1498917

Interpolace výsledné rastrové vrstvy v.surf.rst

v.surf.rst input=dopnul zcolumn=dist elev=diff_helmert
Rastrová vrstva odchylek

Výslednou vyinterpolovanou rastrovou vrstvu je vhodné modifikovat maskovat uzemím ČR (v.to.rast):

v.to.rast in=cr out=MASK use=val type=area
Rastrová vrstva odchylek (maska)
Rastrová vrstva odchylek (maska, legenda)

Změna nastavení pro transformaci (grid)

Stavající nastavení (g.proj).

g.proj -p

-PROJ_INFO-------------------------------------------------
name       : Krovak
proj       : krovak
ellps      : bessel
towgs84    : 570.8,85.7,462.8,4.998,1.587,5.261,3.56
-PROJ_UNITS------------------------------------------------
unit       : meter
units      : meters
meters     : 1.0

Pro změnu nastavení může posloužit modul g.setproj, výsledek:

-PROJ_INFO-------------------------------------------------
name       : Krovak
proj       : krovak
ellps      : bessel
nadgrids   : czech
-PROJ_UNITS------------------------------------------------
unit       : meter
units      : meters
meters     : 1.0

Výpočet pro grid (nadgrids=czech)

v.proj location=cr-wgs84 input=dopnul output=dopnul_wgs84_grid
v.db.addcol map=dopnul column="dist_grid double precision"
v.distance from=dopnul to=dopnul_wgs84_grid upload=dist column=dist_grid

Statistika:

v.univar map=dopnul type=point column=dist_grid -e

number of features with non NULL attribute: 3070
number of missing attributes: 0
number of NULL attributes: 0
minimum: 0.000283
maximum: 136.04
range: 136.04
mean: 0.282159
mean of absolute values: 0.282159
population standard deviation: 5.96533
population variance: 35.5852
population coefficient of variation: 21.1418
sample standard deviation: 5.9663
sample variance: 35.5968
kurtosis: 506.367
skewness: 22.5431
1st quartile: 0.009142
median (even number of cells): 0.0151865
3rd quartile: 0.02431
90th percentile: 0.03496

Odfiltrujeme body s odchylkou větší než 10cm:

v.univar map=dopnul type=point column=dist_grid where="dist_grid < 0.1" -e

number of features with non NULL attribute: 3064
number of missing attributes: 6
number of NULL attributes: 0
minimum: 0.000283
maximum: 0.099154
range: 0.098871
mean: 0.0181846
mean of absolute values: 0.0181846
population standard deviation: 0.012825
population variance: 0.00016448
population coefficient of variation: 0.705267
sample standard deviation: 0.0128271
sample variance: 0.000164534
kurtosis: 2.9154
skewness: 1.43308
1st quartile: 0.009134
median (even number of cells): 0.015167
3rd quartile: 0.024211
90th percentile: 0.034816

Výpis bodů s odchylkou větší než 10cm (v.db.select):

v.db.select map=dopnul column=int_1,dist,dist_grid where="dist_grid>0.10"

int_1|dist|dist_grid
937180050|0.801335|136.039822
937180150|0.825838|135.592292
937190090|0.749187|134.907704
937190150|0.814398|134.935711
937190200|0.757457|134.512006
937200020|0.80839|134.521839

Interpolace:

v.surf.rst input=dopnul zcolumn=dist_grid elev=diff_helmert_grid
Rastrová vrstva odchylek v metrech (maska, legenda)