Več

PROJ4 / PostGIS transformacije med WGS84 in NAD83 transformacije na Aljaski

PROJ4 / PostGIS transformacije med WGS84 in NAD83 transformacije na Aljaski


Poskušam izvesti priporočeno preoblikovanje WGS84 - NAD83 za Aljasko s pomočjo PostGIS. Ta objava: Geografske transformacije na Aljaski med NAD83 in WGS84 kažejo, da je ustrezna transformacija v ArcGIS WGS_1984_ (ITRF00) _To_NAD_1983. Nisem bil uspešen pri iskanju tega vprostorski_ref_sys. Poskušal sem dodati lastno preobrazbo vprostorski_ref_sysz uporabo naslednjega proj4text:

+ proj = longlat + ellps = GRS80 + datum = NAD83 + towgs84 = -0.9956,1.9013,0.5215, -0.025915, -0.009246, -0.011599, -0.00062 + no_defs

Thevlečne naprave84vrednosti so bile kopirane iz navedenih nastavitev, ki jih prikaže ArcMap, ko izberete to preobrazbo (znak obrne nazaj, ker gre za WGS84 v PROJ4 in iz WGS84 v ArcMap). V PostGIS ga uporabljam takole, WGS84 pretvorim v NAD83 z uporabo moje projekcije po meri, nato pa ga spet pretvorim v 4269 (ali kakršno koli projekcijo NAD83, ki jo resnično želim, na primer 3338).

ST_Transform (ST_Transform (geom_wgs84, 900999), 4269)

Težava je v tem, da se zdi, da se preoblikovane vrednosti ne ujemajo s transformacijami, ki jih uporablja ArcGIS, zato, če imam kombinacijo podatkov WGS84 in sem jih po meri preoblikoval v podatke NAD83, se ArcGIS-ova transformacija WGS84 -> NAD83 razlikuje od PostGIS in podatkov se ne postavi v vrsto. Napake so majhne (1-2 metra), vendar dovolj velike, da jih lahko vidimo.

Ali lahko kdo predlaga ustrezen niz PROJ4 za ponovitev rezultatov preobrazbe ArcMap ali kaj boljšega za zvezno državo Aljasko, na primer uporaba mreže NAD? Ali mi povejte, kaj delam narobe s svojo projekcijo po meri?


PROJ.4 uporablja metodo vektorja položaja za svojih 7 pretvorb parametrov. Transformacija ArcGIS, na katero se sklicujete, uporablja metodo koordinatnega okvira. Za vrednosti rotacije uporabljajo različne konvencije, zato vklopite znake na vrednosti rotacije in poskusite znova.

Splošne informacije:

Če želite spremeniti smer 7-parametrske transformacije (koordinatni okvir, vektor položaja, Bursa-Wolf), spremenite znake vseh parametrov. To ni povsem enakovredno izračunu celotne inverzije matrice vrtenja, vendar je običajno natančno znotraj natančnosti transformacije.

Če želite pretvoriti med koordinatnim okvirom in vektorskimi metodami, preklopite znake samo na parametre vrtenja. Metodi uporabljata različna pravila (ena obrača osi, druga koordinate / vektor).

Torej Esrijeva preobrazba je:

Metoda WGS84 / ITRF00 do NAD 1983 (približno različica CORS96): koordinatni okvir dx = 0,9956 dy = -1,9013 dz = -0,5215 rx = 0,025915 ry = 0,009426 rz = 0,0011599 ds = 0,00062

Spremeni smer:

NAD 1983 do metode WGS84 / ITRF00: koordinatni okvir dx = -0,9956 dy = 1,9013 dz = 0,5215 rx = -0,025915 ry = -0,009426 rz = -0,0011599 ds = -0,00062

Spremeni način:

NAD 1983 do metode WGS84 / ITRF00: vektor položaja dx = -0,9956 dy = 1,9013 dz = 0,5215 rx = 0,025915 ry = 0,009426 rz = 0,0011599 ds = -0,00062

Opomba: Nisem poskusil, vendar mislim, da je to težava.

Razkritje: delam za Esri.


5 Uvod v knjižnico PROJ.4

The PROJ.4 knjižnica ima trenutno tri funkcije za pretvorbo koordinat in geodetski izračun:

proj / invproj - neposredne in inverzne kartografske projekcije,

cs2cs - pretvorba med koordinatnimi sistemi (geografski ali predvideni),

geod / invgeod - neposredni in inverzni geodetski izračuni.

The PROJ.4 knjižnica je bila razvita v začetku leta 1980 kot program RATFOR (programski jezik RATional FORtran), večina kode pa izvira iz GCTP (General Cartographic Transformation Package) Geološkega zavoda. The PROJ.4 program je bil ponovno kodiran v programskem jeziku C, ko je paket MAPGEN (od tega PROJ.4 je osnovna komponenta) je bil uveden v operacijski sistem UNIX. V program je bilo dodanih veliko novih projekcij.

Knjižnica temelji na delu Geralda Evendena, pozneje jo je vzdrževal Frank Warmerdam, ustvarjalec knjižnice GDAL, zdaj pa tudi programska skupnost. The PROJ.4 Knjižnica ima licenco MIT (Massachusetts Institute of Technology), ki omogoča brezplačno uporabo, kopiranje, urejanje, podlicenciranje in komercialno uporabo, če je originalna licenca priznana.

Namestitev PROJ.4 knjižnica je odvisna od operacijskega sistema, v nadaljevanju bo podana kratka ilustracija, kako jo uporabljati. Knjižnica sama vsebuje parametre številnih elipsoidov in vnaprej določene geodetske referenčne točke z vrednostmi parametrov.

Sezname razpoložljivih elipsoidov s parametri lahko dobite z ukazom cs2cs -le, kjer je -le argument funkcije za prikaz seznama elipsoidov.

Podobno je mogoče dobiti seznam glavnih poldnevnikov glede na Greenwichski poldnevnik.

S pomočjo argumenta -ld dobimo seznam vnaprej določenih referenčnih točk.

Uporabljati PROJ.4 notacije je mogoče definirati kateri koli koordinatni referenčni sistem, ne le vnaprej določene referenčne točke, ki jih vsebuje knjižnica.

Za Srbijo je v Gauss-Krügerjevi projekciji podan koordinatni referenčni sistem z naslednjimi parametri:

+ proj = tmerc - projekcija Gausa Krigerja (prečni Mercator),
+ lat_0 = 0 + lon_0 = 21 - koordinatni izvor na elipsoidu,
+ k = 0,9999 - lestvica vzdolž srednjega poldnevnika,
+ x_0 = 7500000 + y_0 = 0 - koordinatni izvor v ravnini zemljevida
+ ellps = bessel - elipsoid
+ towgs84 = 574.027.170.175.401,545,4.88786, -0,66524, -13,24673,6,89
trije prevodi, tri rotacije, lestvica glede na WGS84, izražena v ppm (na milijon delov)
+ = m - enote, metri.

Poleg tega je koordinatni referenčni sistem v PROJ.4 zapis lahko določimo s pomočjo kode EPSG. Nabor podatkov geodetskih parametrov EPSG je zbir definicij koordinatnega referenčnega sistema in parametrov, ki jih opisujejo.

Ob http://spatialreference.org/ ali http://epsg.io, definicije koordinatnih referenčnih sistemov lahko najdemo v več notacijah: EPSG, proj4, WKT, GML, JSON ... Na sliki 5.1 je podan primer za koordinatni sistem WGS84 s kodo EPSG 4326.

Slika 5.1: Primer uporabe http://spatialreference.org z možnostjo prenosa parametrov koordinatnega referenčnega sistema v več zapisov.

Primer neposrednega izračuna je podan za Gauss-Krügerjevo projekcijo:

Pri izvajanju ukaza proj naj bi uporabnik vnesel elipsoidne koordinate prek terminala ali iz besedilne datoteke, da bi dobil pravokotne koordinate. Z uporabo funkcije linux lahko ukaz izvedemo neposredno iz ukazne vrstice.

Pri inverznih kartografskih izračunih je treba vnesti ukaz -I, čemur naj sledijo vnosne pravokotne koordinate in posledično se dobijo elipsoidne koordinate (zemljepisna dolžina in širina).

Preoblikovanje koordinat iz enega sistema v drugega je ponazorjeno s primerom pretvorbe iz starega sistema Gauss-Krügerja (Bessel elipsoid in Hermannskogel datum) v nov koordinatni referenčni sistem UTM za Srbijo (elipsoid GRS80 z ETRS referenco za Srbijo):

Naveden je tudi primer pretvorbe iz sistema Gauss-Krüger za Srbijo v WGS84, v katerem je WGS84 definiran s kodo EPSG, podrobnosti o funkciji pa najdete na: http://proj4.org/apps/cs2cs.html.

The PROJ.4 knjižnica je implementirana v številni GIS programski opremi in jo je mogoče enostavno uporabljati prek grafičnega vmesnika.


Transformacijski cevovodi¶

Očitna je homologija med zgornjimi koraki in cevovodom sloga lupine Unix. Tam je glavni arhitekturni navdih za ogrodje transformacijskega cevovoda. Okvir cevovoda se uresniči z uporabo posebne "projekcije", ki uporabniku predloži argumente, vrsto osnovnih operacij, ki jih naniza skupaj, da izvede popolno potrebno transformacijo. Poleg tega so v okviru cevovoda na voljo številne osnovne geodetske operacije, vključno s Helmertovo transformacijo, splošnimi polinomskimi premiki visokega reda in Molodenskyjevo transformacijo. V pričakovanju prihajajoče podpore za polno spremenljive preobrazbe uvajamo tudi 4D prostorsko-časovni tip podatkov in programski vmesnik (API) za ravnanje s tem.

Molodenskyova transformacija pretvori neposredno iz geodetskih koordinat v eni referenčni točki v geodetske koordinate v drugi referenčni točki, medtem ko (običajno natančnejša) Helmertova transformacija pretvori iz 3D kartezične v 3D kartezične koordinate. Torej je pri uporabi Helmertove transformacije običajno treba narediti začetno pretvorbo iz geodetskih v kartezične koordinate in končno pretvorbo v obratni smeri, da pridemo do želenega rezultata. Na srečo ima ta tristopenjska preoblikovana spojina privlačno lastnost, da je vsak korak odvisen samo od rezultata neposrednega predhodnega koraka. Tako lahko zgradimo geodetsko-geodetsko Helmertovo transformacijo tako, da povežemo izhode in vhode treh korakov (geodetsko-kartezijski → Helmert → kartezijsko-geodetski), cevovod. Gonilnik cevovoda omogoča tovrstne verižne transformacije. Izvedba je kompaktna, sestavljena je iz samo ene psevdo-projekcije, imenovane cevovod, ki kot argumente vzame nize osnovnih projekcij (opomba: »projekcija« je rahlo zavajajoč izraz PROJ, ki se uporablja za kakršno koli preobrazbo). Psevdoprojekcijo cevovoda dopolnjujejo številne osnovne transformacije, ki vse skupaj zagotavljajo okvir za gradnjo visoko natančnih rešitev za širok spekter geodetskih nalog.

Kot prvi primer si oglejmo ikonično geodetska → kartezijanska → Helmertova → geodetska primeru (koraki 2 do 4 v primeru v uvodu). V PROJ se lahko izvaja kot

Cevovod je mogoče razširiti na obeh koncih, da se prilagodi kakršni koli koordinatni vrsti, ki je potrebna za vhod in izhod: v spodnjem primeru iz opuščenega danskega sistema 45, 2D sistema z nekaj napetosti v prvotnem omrežju, preidemo v območje UTM 33 , ETRS89. Napetost se zmanjša s polinomsko transformacijo (korak init =. / S45b…, s45b.pol je datoteka, ki vsebuje polinomske koeficiente), pri čemer koordinate S45 vodijo v tehnični koordinatni sistem (TC32), ki je opredeljen kot „UTM cona 32 koordinate, kot bi izgledale, če bi bila Helmertova transformacija med ED50 in ETRS89 popolna. " Koordinate TC32 se nato pretvorijo nazaj v geodetske (ED50) koordinate z uporabo inverzne projekcije UTM, nato v kartezične (ED50), nato v kartezične (ETRS89) z uporabo ustrezne Helmertove transformacije in nazaj v geodetske (ETRS89), preden končno ki se projicira na območje UTM 33, sistem ETRS89. Vsekakor 6-stopenjski cevovod, ki izvaja preoblikovanje s centimetrsko natančnostjo iz zastarelega sistema z napetostjo decimeter.

Z ogrodjem plinovoda je možna prostorsko-časovna transformacija. To je mogoče z izkoriščanjem časovne dimenzije v PROJ, ki omogoča prenos 4D koordinat (tri prostorske komponente in ena časovna komponenta) skozi transformacijski cevovod. V spodnjem primeru je opredeljena transformacija iz ITRF93 v ITRF2000. Časovna komponenta je v vhodnih podatkih podana kot GPS teden, vendar 14-parametrska Helmertova transformacija pričakuje časovne enote v decimalnih letih. Zato je prvi korak v cevovodu psevdo-projekcija unitconvert, ki zagotavlja, da se pravilne enote prenesejo v Helmertovo transformacijo. Večina parametrov Helmertove transformacije je vzeta iz [Altamimi2002], razen epohe, ki je doba transformacije. Zadnji korak v pripravi je pretvorba časovnih žigov koordinat nazaj v GPS tedne.


4.2. Prostorske poizvedbe

The raison d'etre prostorskih baz podatkov izvaja poizvedbe znotraj baze podatkov, ki bi običajno zahtevale namizno funkcionalnost GIS. Za učinkovito uporabo PostGIS je treba vedeti, katere prostorske funkcije so na voljo, kako jih uporabiti pri poizvedbah in zagotoviti ustrezne indekse za dobro delovanje.

4.2.1. Ugotavljanje prostorskih razmerij

Prostorski odnosi kažejo, kako dve geometriji sodelujeta med seboj. So temeljna sposobnost iskanja geometrije.

4.2.1.1. Dimenzijsko razširjen model 9-križišč

V skladu s specifikacijo implementacije enostavnih funkcij OpenGIS za SQL je "osnovni pristop k primerjanju dveh geometrij izvedba parnih preskusov presečišč med notranjostjo, mejo in zunanjostjo obeh geometrij in razvrstitev odnosa med obema geometrijama, ki temelji na na vnose v nastalo matriko 'presečišče'. "

V teoriji topologije množic točk so točke v geometriji, vdelani v dvodimenzionalni prostor, razvrščene v tri sklope:

Meja geometrije je niz geometrij naslednje spodnje dimenzije. Za TOČKE s dimenzijo 0 je meja prazen niz. Meja LINESTRING-a sta dve končni točki. Za POLYGON-e je meja črta zunanjih in notranjih obročev.

Notranjost geometrije so tiste točke geometrije, ki niso na meji. Za POINT s je notranjost točka sama. Notranjost LINESTRING je niz točk med končnimi točkami. Za POLYGON s je notranjost površina površine znotraj poligona.

Zunanjost geometrije je preostali prostor, v katerega je geometrija vdelana z drugimi besedami, vse točke niso v notranjosti ali na meji geometrije. Je dvodimenzionalna nezaprta površina.

Dimenzionalno razširjeni model 9-križišč (DE-9IM) opisuje prostorsko razmerje med dvema geometrijama tako, da za vsako geometrijo določi dimenzije 9 presečišč med zgornjimi nizi. Mere presečišča so lahko formalno predstavljene v obliki 3x3 presečna matrika .

Za geometrijo g Notranjost , Meja , in Zunanjost so označeni z zapisom I (g) , B (g) , in E (g) . Prav tako dim (s) označuje dimenzijo množice s z domeno <0,1,2, F>:

Z uporabo tega zapisa je presečna matrica za dve geometriji a in b je:

Notranjost Meja Zunanjost
Notranjost dim (I (a) ∩ I (b)) zatemnjen (I (a) ∩ B (b)) dim (I (a) ∩ E (b))
Meja dim (B (a) ∩ I (b)) zatemnjen (B (a) ∩ B (b)) dim (B (a) ∩ E (b))
Zunanjost dim (E (a) ∩ I (b)) dim (E (a) ∩ B (b)) dim (E (a) ∩ E (b))

Vizualno je to za dve prekrivajoči se poligonalni geometriji videti tako:

dim (I (a) ∩ I (b)) = 2

dim (I (a) ∩ B (b) = 1

dim (I (a) ∩ E (b)) = 2

dim (B (a) ∩ I (b)) = 1

dim (B (a) ∩ B (b)) = 0

dim (B (a) ∩ E (b)) = 1

dim (E (a) ∩ I (b)) = 2

dim (E (a) ∩ B (b)) = 1

dim (E (a) ∩ E (b) = 2

Če beremo od leve proti desni in od zgoraj navzdol, je presečna matrika predstavljena kot besedilni niz ' 212101212 '.

Za več informacij glejte:

4.2.1.2. Imenovani prostorski odnosi

Za lažje določanje skupnih prostorskih razmerij OGC SFS opredeli nabor imenovani predikati prostorskega razmerja . PostGIS jih ponuja kot funkcije ST_Contains, ST_Crosses, ST_Disjoint, ST_Equals, ST_Intersects, ST_Overlaps, ST_Touches, ST_Within. Določa tudi nestandardne predikate razmerja ST_Covers, ST_CoveredBy in ST_ContainsProperly.

Prostorski predikati se običajno uporabljajo kot pogoji v stavkih SQL WHERE ali JOIN. Imenovani prostorski predikati samodejno uporabljajo prostorski indeks, če je na voljo, zato tudi ni treba uporabljati operatorja omejevalnega polja in amp & amp. Na primer:

Za več podrobnosti in ilustracije glejte delavnico PostGIS.

4.2.1.3. Splošni prostorski odnosi

V nekaterih primerih imenovani prostorski odnosi ne zadoščajo za zagotovitev želenega stanja prostorskega filtra.

Na primer, razmislite o linearnem naboru podatkov, ki predstavlja cestno omrežje. Morda bo treba identificirati vse cestne odseke, ki se križajo, ne v točki, ampak v vrsti (morda za potrditev nekega poslovnega pravila). V tem primeru ST_Crosses ne zagotavlja potrebnega prostorskega filtra, saj za linearne značilnosti vrne true le tam, kjer se prečkajo v točki.

Dvostopenjska rešitev bi bila najprej izračunati dejansko križišče (ST_Intersection) parov cestnih linij, ki se prostorsko sekajo (ST_Intersects), nato pa preveriti, ali je ST_GeometryType križišča 'LINESTRING' (pravilno obravnavanje primerov, ki vrnejo GEOMETRYCOLLECTION s of [ MULTI] TOČKE, [MULTI] LINESTRING s itd.).

Jasno je, da je zaželena enostavnejša in hitrejša rešitev.

Drugi primer je iskanje pristanišč, ki sekajo mejo jezera na črti in kjer je en konec pristanišča navzgor na obali. Z drugimi besedami, če je pristanišče znotraj jezera, vendar ga jezero ne vsebuje v celoti, seka mejo jezera na črti in kjer je točno ena od končnih točk pristanišča znotraj ali na meji jezera. Za iskanje zahtevanih lastnosti lahko uporabite kombinacijo prostorskih predikatov:

. vendar ni treba posebej poudarjati, da je to precej zapleteno.

Te zahteve je mogoče izpolniti z izračunom celotne matrike presečišč DE-9IM. PostGIS ponuja funkcijo ST_Relate za to:

Za preizkus določenega prostorskega razmerja se uporabi an vzorec matrike presečišča se uporablja. To je matrični prikaz, dopolnjen z dodatnimi simboli :

T = & gt presečna dimenzija ni prazna, tj. Je v

Z uporabo vzorcev matričnih presečišč je mogoče določene prostorske odnose ovrednotiti na bolj jedrnat način. Funkcije ST_Relate in ST_RelateMatch lahko uporabimo za testiranje vzorcev matričnih presečišč. Za prvi zgornji primer je vzorec matrike presečišča, ki določa dve črti, ki se sekata v črti, ' 1*1***1** ':

Za drugi primer je vzorec presečne matrike, ki določa črto, delno znotraj in deloma zunaj poligona, ' 102101FF2 ':

4.2.2. Izkoriščanje indeksov

Pri gradnji poizvedb z uporabo prostorskih pogojev je pomembno zagotoviti, da se uporablja prostorski indeks, če obstaja (glejte oddelek 4.1.7, »Gradnja prostorskih indeksov«). Če želite to narediti, je treba v stavku WHERE ali ON uporabiti indeksni prostorski operator ali funkcijo. Prostorski operatorji vključujejo operatorje, ki temeljijo na omejevalnem polju (med katerimi je najpogosteje uporabljen & amp & amp), in operatorji razdalje, ki se uporabljajo pri poizvedbah najbližjega soseda (najpogostejši je & lt- & gt.) Funkcije, ki temeljijo na indeksu, vključujejo večino imenovanih prostorskih predikatov (na primer ST_Intersects) in večina predikatov razdalje (na primer ST_DWithin.)

Funkcije, kot je ST_Distance, ne uporabljajo indeksov za optimizacijo svojega delovanja. Na primer, naslednja poizvedba bi bila v veliki tabeli precej počasna:

Ta poizvedba izbere vse geometrije v geom_table, ki so znotraj 100 enot točke (100000, 200000). Počasen bo, ker izračuna razdaljo med vsako točko v tabeli in določeno točko, tj. izračuna se en izračun ST_Distance () za vsak vrstico v tabeli.

Število obdelanih vrstic lahko zmanjšamo z uporabo indeksno zaznane funkcije ST_DWithin:

Ta poizvedba izbere enake geometrije, vendar to na bolj učinkovit način. To omogoča ST_DWithin () z uporabo & amp & amp; amp & amp; amp; amp & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; & amp; amp; amp; amp; amp> & amp; & amp; & amp; amp; & amp; amp; amp; amp; amp; amp; amp; amp; amp; amp; argumentalno obratovalnega dejavnikov & amp & amp; amp & amp; amp; amp; amp; amp; Če je na_geom prostorski indeks, bo načrtovalec poizvedb prepoznal, da lahko z indeksom zmanjša število vrstic, ki jih je mogoče pregledati, preden izračuna razdaljo. Prostorski indeks omogoča pridobivanje samo zapisov z geometrijami, katerih omejevalna polja se prekrivajo v razširjenem obsegu in s tem tudi v katerem morda biti znotraj zahtevane razdalje. Nato se izračuna dejanska razdalja, da se potrdi, ali naj se zapis vključi v rezultat.

4.2.3. Primeri prostorskega SQL

Primeri v tem poglavju bodo uporabili dve tabeli, tabelo linearnih cest in tabelo poligonalnih meja občin. Definicije tabele za tabelo bc_roads so:

Opredelitev tabele za tabelo bc_municiality je:

Kolikšna je skupna dolžina vseh cest, izražena v kilometrih?

Na to vprašanje lahko odgovorite z zelo preprostim delom SQL:

Kako veliko je mesto princa Georgea v hektarjih?

Ta poizvedba združuje pogoj atributa (v imenu občine) s prostorskim izračunom (površine):

Katera je po območju največja občina v provinci?

Ta poizvedba prinaša prostorsko meritev v stanje poizvedbe. Te težave je mogoče pristopiti na več načinov, najučinkovitejši pa je spodaj:

Da bi odgovorili na to poizvedbo, moramo izračunati površino vsakega poligona. Če bi to počeli veliko, bi bilo smiselno v tabelo dodati stolpec z območjem, ki bi ga lahko ločeno indeksirali za uspešnost. Z razvrščanjem rezultatov v padajoči smeri in z uporabo ukaza PostgreSQL "LIMIT" lahko enostavno izberemo največjo vrednost, ne da bi uporabili skupno funkcijo, kot je max ().

Kakšna je dolžina cest, ki jih v celoti vsebuje vsaka občina?

To je primer "prostorskega združevanja", ker združujemo podatke iz dveh tabel (izvajamo združevanje), vendar uporabljamo pogoj prostorske interakcije ("vsebovan") kot pogoj združevanja in ne običajnega relacijskega pristopa združevanja na skupni ključ:

Ta poizvedba traja nekaj časa, ker je vsaka cesta v tabeli povzeta v končni rezultat (približno 250 000 cest za našo primerno tabelo). Za manjše prosojnice (več tisoč zapisov na več sto) je odziv lahko zelo hiter.

Ustvarite novo tabelo z vsemi cestami v mestu Prince George.

To je primer "prekrivanja", ki sprejme dve tabeli in izpiše novo tabelo, ki je sestavljena iz prostorsko odrezanih ali izrezanih rezultatov. Za razliko od zgoraj prikazanega "prostorskega spajanja" ta poizvedba dejansko ustvarja nove geometrije. Prekrivanje je kot prostorski spoj s turbopolnjenjem in je uporabno za natančnejše analiziranje:


Leto 1598 je dobro, vendar se zdi, da nas ne približuje rešitvi sedanjega vprašanja.

Le zadnji dve vključujeta želeno transformacijo referenčne točke. PROJ ne obravnava EPSG: 4326 kot podatkovne točke, ki si zasluži skrbno preoblikovanje v NAD83. Pravzaprav je zapisan datum zapisa, saj se pred 30 leti NAD83 in WGS84 nista tako razlikovala.

码 龄 粉丝 数 影响 力 0

Lahko navedete tudi celoten cevovod:

projinfo -s EPSG: 9057 -t EPSG: 6342

[. ] Pretvorba iz WGS 84 (G1762) (geog2D) v WGS 84 (G1762) (geocentric) & # 43 WGS 84 (G1762) v ITRF2008 (1) & # 43 ITRF2008 v NAD83 (2011) (1) & # 43 Pretvorba iz NAD83 (2011) (geocentrično) do NAD83 (2011) (geog2D) & # 43 UTM cona 13N, 0,01 m, ZDA - CONUS in Aljaska PRVI

PROJ niz: & # 43proj & # 61pipeline & # 43step & # 43proj & # 61axisswap & # 43order & # 612,1 & # 43step & # 43proj & # 61unitconvert & # 43xy_in & # 61deg & # 43xy_out & # 61rad & # 43step & # 43proj & # 61cart & # 43ellps & # 61WGS84 & # 43step & # 43proj & # 61helmert & # 43x & # 610.99343 & # 43y & # 61-1.90331 & # 43z & # 61-0.52655 & # 43rx & # 610.02591467 & # 43ry & # 610.00942645 & # 43rz & # 610 # 43rz & # 610 # # 610.00171504 & # 43dx & # 610.00079 & # 43dy & # 61-0.0006 & # 43dz & # 61-0.00134 & # 43drx & # 616.667e-05 & # 43dry & # 61-0.00075744 & # 43drz & # 61-5.133e-05 & # 43ds & # 61 -0.00010201 & # 43t_epoch & # 611997 & # 43convention & # 61coordinate_frame & # 43step & # 43inv & # 43proj & # 61cart & # 43ellps & # 61GRS80 & # 43step & # 43proj & # 61utm & # 43zone & # 6113 & # 61ellps & # 6111

码 龄 粉丝 数 影响 力 0

Uredi: vir CRS je bil EPSG: 9057

码 龄 粉丝 数 影响 力 0

IIUC, kar potrebujemo, je, da natančno izvedbo WGS84 priložimo podatkom GNSS / skladbam GPX. To lahko poskusimo, ko končam trenutno delo z dodajanjem izbire za CRS za vektorske podatke (potrebno za GH-1561). In s tem se moramo spoprijeti pri prikazu koordinat in izvozu vektorskih podatkov.

码 龄 粉丝 数 影响 力 0

Če gremo globlje, cs2cs to stori

Upoštevajte, da če epoha ni določena, se za referenčno dobo iz leta 1997 izvede transformacija referenčne točke, pri čemer se prilagodi, ki se 30 ali 40% razlikuje od pravilne za leto 2020.

Za testiranje predlagam, da najprej razširite GeoreferencingTest :: testProjection_data.

Izboljšave GeoreferencingTest :: testProjection so zaželene.

  • Sprejmite parameter, ki označuje epoho.
  • Zahtevajte večjo natančnost. Če želite preveriti, ali se epoha pravilno ravna, je treba natančnost preveriti s približno 0,3 m (v primerjavi s trenutnimi 2,2 m).

Predvidevam, da podrobnosti izboljšanja testa ni mogoče obdelati, dokler spremembe razreda Georeferencing niso bolj znane. Mislim, da bo Georeferenciranje izpostavilo dobo, tako da je TemplateTrack mogoče povezati s sistemom CRS v kombinaciji s časom. Če bi to preizkusili, bi koordinate primerjali v dveh različnih predvidena koordinatnih sistemov, kajti pomembno je preoblikovanje med predloga koordinatni sistem in zemljevid& # 39s predvideni koordinatni sistem.

码 龄 粉丝 数 影响 力 0

Naredil sem tudi teste cs2cs s 4. dimenzijo, vendar ni izboljšal stanja z EPSG: 4326 -)

Trenutno smo že HUGE_VAL namesto 0 za obdobje, po povratnih informacijah v enem od naših poročil o napakah PROJ.

Preizkusna natančnost še vedno zagotavlja gradnje Linuxa s PROJ 4.9, vendar bi to lahko rešili z #ifdef s ali z uporabo drugega podatkovnega polja.

码 龄 粉丝 数 影响 力 0

Tukaj je delni seznam številk EPSG, povezanih z WGS 84:

1994 G730 EPSG: 7656 (x, y, z), 7657 (lat, lon, h), 9053 2D (lat, lon) 1997 G873 EPSG: 7658 (x, y, z), 7659 (lat, lon, h) , 9054 2D (lat, dolg) 2002 G1150 EPSG: 7660 (x, y, z), 7661 (lat, lon, h), 9055 2D (lat, lon) 2012 G1674 EPSG: 7662 (x, y, z), 7663 (lat, lon, h), 9056 2D (lat, lon) 2013 G1762 EPSG: 7664 (x, y, z), 7665 (lat, lon, h), 9057 2D (lat, lon)

Zdi se, da so prvi trije enaki. Enako z zadnjima dvema. (Preverjeno s pomočjo cs2cs in projinfo).

Prezgodaj sem spregovoril, ko sem rekel, da so uvodne predloge delovale pravilno. Predloge, ki uporabljajo lat / lon, so postavljene nepravilno. Prav tako ni pomembno, kateri EPSG uporabljam. Zlasti EPSG 7657 in 7665 proizvajata popolnoma enak položaj predloge, čeprav cs2cs pravi, da bi morali biti drugačni:

odmev 40N 105W 0 | cs2cs EPSG: 7657 EPSG: 6342 500000,00 4427757,22 0,00 odmev 40N 105W 0 | cs2cs EPSG: 7665 EPSG: 6342 500000,86 4427756,50 0,89

Prvi rezultati, ki se v primerjavi s sekundo premaknejo v smeri SZ, se zdijo tisti, ki jih potrebujem. Opažam tudi, da EPSG: 4326 povzroči rezultat & # 34nepravilno & # 34

odmev 40N 105W 0 | cs2cs EPSG: 4326 EPSG: 6342 500000,86 4427756,50 0,00

Moje georeferencirane slike so iz Pictometry in ne vem, katere podatke uporabljajo njihove koordinate.

Kasneje si bom ogledal kodo Mapperja, a če me kdo premaga, ne bom nesrečen :-)

Različica Mapper v20200502.2

码 龄 粉丝 数 影响 力 0

Različica Mapper v20200502.2

Ker takšnih zgradb izdaje ni, bi bilo bolje, da se sklicujete na zadnji ID odobritve, ki se uporablja za samoprevajanje Mapperja.

码 龄 粉丝 数 影响 力 0

Različica Mapper v20200502.2

To je številka gradnje CI. To je popoln sklic na različico.

Odpravlja pa le težavo 1597, ne pa tudi to. Tu se moramo dotakniti in preizkusiti več mest v izvorni kodi. Nočem spreminjati v naglici, ne da bi razumel vpliv - trenutno je vsaka preobrazba odvisna od našega privzetega geografskega sistema rezervacij, zato se bodo ljudje zanašali na trenutne preobrazbe.

码 龄 粉丝 数 影响 力 0

To je številka gradnje CI

Vau! Kje so te nočne gradnje na voljo za prenos?

码 龄 粉丝 数 影响 力 0

Vau! Kje so te nočne gradnje na voljo za prenos?

Tukaj je zunaj teme. To niso nočne gradnje. In namera je, da jih ne bi razglasili za splošno službo.

码 龄 粉丝 数 影响 力 0

Za datoteke GPX GDAL poroča o naslednjem CRS:

GEOGCS [& # 34WGS 84 & # 34, DATUM [& # 34WGS_1984 & # 34, SPHEROID [& # 34WGS 84 & # 34,6378137,298.257223563, ORGAN [& # 34EPSG & # 34, & # 347030 & # 34]], ORGAN [& # 34EPSG & # 34, & # 346326 & # 34]], PRIMEM [& # 34Greenwich & # 34,0, ORGAN [& # 34EPSG & # 34, & # 348901 & # 34]], ENOTA [& # 34degree & # 34,0.0174532925199433, AVTORITET [ & # 34EPSG & # 34, & # 349122 & # 34]], AXIS [& # 34Latitude & # 34, NORTH], AXIS [& # 34Longitude & # 34, EAST], ORGAN [& # 34EPSG & # 34, & # 344326 & # 34] ]

码 龄 粉丝 数 影响 力 0

Nekaj ​​preizkusov sem že opravil z GPS-om, ki temelji na Ubloxu F9P (z uporabo njihove plošče C099-F9P). Podpira popravke RTK prek interneta. Ugotovil sem, da so koordinate GPS za določeno lokacijo odvisne od tega, kako uporabljate GPS:

-Nekorigniran GPS poroča o koordinatah širine / dolžine z uporabo WGS84 v prvotni (?) Realizaciji -SBAS popravljeni GPS uporablja WGS84 v nedavni (manj kot 6 mesecev stari) realizaciji. -RTK popravljen GPS uporablja tisto, kar je nastavljena za uporabo vaše osnovne postaje. V ZDA je to pogosto NAD83.

Tukaj so # 39re koordinate točke v moji soseski:

F9P GPS z popravljenimi meritvami RTK (antena GPS na vrhu moje glave) 39.67797133 -105.16596350 WGS84 (trenutna) bazna postaja 39.67796617 -105.16595033 NAD83 (2011) delta bazne postaje / omrežja: 5.16E-6 -13.17E-6

Pretvorba iz vrednosti WGS84 z uporabo https://tagis.dep.wv.gov/convert/ 39.6779713 -105.1659635 wgs84 (od spustnega menija) 39.6779649 -105.1659534 nad83 (do spustnega menija) delta: 6.4E-6 -10.1E-6

Ista pretvorba z uporabo PROJ z ukazom echo 39.6779713N 105.1659635W | cs2cs -f & # 34% .8f & # 34 EPSG: 7665 EPSG: 6342 | cs2cs -d 7 EPSG: 6342 EPSG: 7657 daje enak rezultat. Preoblikovanje je WGS84 (G1762) - & gt NAD83 (2011) UTM 13N - & gt WGS84 (G730)

Upoštevajte, da preskočite vmesni NAD83 (2011), namesto tega uporabite odmev 39.6779713N 105.1659635W | cs2cs -d 7 EPSG: 7665 EPSG: 7657 ustvari delto, enako nič!

Ko je OOM nastavljen za uporabo CRS & # 61EPSG: 6342 (zgoraj navedena različica NAD83), ugotavljam, da se položaji GPS ujemajo s podrobnostmi o konturi samo, če uporabljam bazno postajo SBAS ali RTK z WGS84. Če uporabljam RTK z bazo NAD83, lahko rečem, da so izključeni.

Če primerjamo EPSG in geografske položaje na geomeferenčni plošči OOM & # 39s, se zdi, da OOM uporablja najnovejšo izvedbo WGS84 (EPSG: 7665 ali generični EPSG: 4326). Podatke GPS, popravljene s sistemom SBAS, je zato mogoče uporabiti neposredno. Načeloma je treba popraviti nepopravljene signale GPS, vendar je resnična napaka verjetno prevelika, da bi jo skrbeli.

Za GPS, popravljen z RTK, mora obstajati možnost, da jih spremeni.

V dialogu s Pictometryjem pogovorim o podatkih o georeferenciranju, ki jih posredujejo, tukaj bom dodal opombo, ko bom dobil odgovor. V dobrem položaju sem za testiranje katere koli nove kode za pretvorbo koordinat predloge.


PROJ4 / PostGIS transformacije med pretvorbama WGS84 in NAD83 na Aljaski - Geografski informacijski sistemi

OPOMBA: To repozitorij se sme uporabljati samo s PROJ & lt 7. Za PROJ 7 ali novejši uporabite repozitorij PROJ-podatkov.

Datoteke v tem paketu je mogoče razpakirati v podatkovnem imeniku PROJ. Za nameščeni PROJ je to lahko / usr / local / share / proj ali / usr / share / proj v operacijskih sistemih Unix.

Upoštevajte, da ta paket vključuje datoteke za pomik mreže v formatu CTable2 za NAD27 v ZDA in zahteva PROJ 4.8.0 ali novejšo. Pozitivna stran ni, da je treba datoteko ascii zbrati v binarne datoteke s to različico, saj datoteke CTable2 niso odvisne od sistema (v nasprotju z datotekami CTable, proizvedenimi v PROJ 4.7.0 in starejših).

O paketu Datum Grid

Paket mrež referenčnih točk za PROJ se vzdržuje v repozitoriju OSGeo proj-datumgrid na GitHub. Kdor ga klonira ali katerega od njegovih vilic, mora namestiti razširitev Git Large File Storage (LFS), ker so datoteke večje od 100 MB. Za več informacij glejte uvod v GitHub o LFS.

Vsa omrežja v paketu so izdana pod dovoljenji. New grids are accepted into the package as long as they are released under a license that is compatible with the Open Source Definition and the source of the grid is clearly stated and verifiable. Suitable licenses include:

  • Public domain
  • X/MIT
  • BSD 2/3/4 clause
  • CC0
  • CC-BY (v3.0 or later)
  • CC-BY-SA (v3.0 or later)

Consult CONTRIBUTING.md to submit a new grid.

2-dimensional transformation grids for horizontal datum shifts.

Grid conversion from NAD27 to NAD83 in Canada. This file is superseded by a higher resolution ntv2_0.gsb grid.

Grid transformation from NTF to RGF93 in France.

Source: ADV, with direct link from BKG
Format: NTv2
License: Free redistribution is allowed and welcome

Grid transformation from DE_DHDN to ETRS89 in Germany.

Note: proj-datumgrid-europe includes the BWTA2017.gsb grid for Baden-Württemberg

New Zealand: NZGD49 -> NZGD2000

This grid file was computed by Land Information New Zealand at approximately a 20 km interval for the conversion between NZGD49 and NZGD2000.

USA: NAD27 and older CRS -> NAD83

  • alaska - Alaska
  • conus - Conterminous U.S.
  • hawaii - Hawaii. Old Hawaiian (EPSG:4135) to NAD83
  • prvi - Puerto Rico, Virgin Is. Puerto Rico (EPSG:4139) to NAD83
  • stgeorge - St. George Is, Alaska. St. George Island (EPSG:4138) to NAD83
  • stlrnc - St. Lawrence Is., Alaska. St. Lawrence Island (EPSG:4136) to NAD83
  • stpaul - St. Paul Is., Alaska. St. Paul Island (EPSG:4137) to NAD83

USA: NAD83 -> NAD83 (HARN/HPGN)

Grid data for high precision conversion of geographic coordinates from the original NAD83 (1986) (EPSG:4269) to NAD83 High Precision Geodetic Networks (HPGNs) (EPSG:4152), also referred to as High Accuracy Reference Networks (HARNs). NAD 83 coordinates based on the HPGN/HARN surveys changed approximately 0.2 to 1.0 meter relative to the original NAD 83 (1986) adjustment.

  • FL - Florida
  • MD - Maryland
  • TN - Tennessee
  • WI - Wisconsin
  • WO - Washington, Oregon, N. California

1-dimensional transformation grids for vertical datum shifts.

Worldwide: EGM96 geoid model

15 minute worldwide geoid undulation grid that transforms physical heights to WGS84 ellipsoidal heights.

Regional PROJ resource packages

In addition to the core proj-datumgrid package, regional collections of grids and init-files also exist. These includes grids and init-files that are not essential for the functionality of PROJ but still of general interest to PROJ-users in the package-specific regions.

The regional packages can be downloaded from the OSGeo download server.

This additional package with world scope contains files of big size.

More information about the included grids and init files can be found in README.WORLD

The regional package for Europe includes resources for the following countries:

  • Denmark
  • France
  • Ireland+Northern Ireland
  • Sweden
  • The Faroe Islands
  • The Nordic+Baltic countries

More information about the included grids and init files can be found in README.EUROPE

The regional package for North America includes resources for the following countries:

More information about the included grids and init files can be found in README.NORTHAMERICA

The regional package for Oceania includes resources for the following countries:


4.6. Building Indexes

Indexes are what make using a spatial database for large data sets possible. Without indexing, any search for a feature would require a "sequential scan" of every record in the database. Indexing speeds up searching by organizing the data into a search tree which can be quickly traversed to find a particular record. PostgreSQL supports three kinds of indexes by default: B-Tree indexes, R-Tree indexes, and GiST indexes.

B-Trees are used for data which can be sorted along one axis for example, numbers, letters, dates. GIS data cannot be rationally sorted along one axis (which is greater, (0,0) or (0,1) or (1,0)?) so B-Tree indexing is of no use for us.

R-Trees break up data into rectangles, and sub-rectangles, and sub-sub rectangles, etc. R-Trees are used by some spatial databases to index GIS data, but the PostgreSQL R-Tree implementation is not as robust as the GiST implementation.

GiST (Generalized Search Trees) indexes break up data into "things to one side", "things which overlap", "things which are inside" and can be used on a wide range of data-types, including GIS data. PostGIS uses an R-Tree index implemented on top of GiST to index GIS data.

4.6.1. GiST Indexes

GiST stands for "Generalized Search Tree" and is a generic form of indexing. In addition to GIS indexing, GiST is used to speed up searches on all kinds of irregular data structures (integer arrays, spectral data, etc) which are not amenable to normal B-Tree indexing.

Once a GIS data table exceeds a few thousand rows, you will want to build an index to speed up spatial searches of the data (unless all your searches are based on attributes, in which case you'll want to build a normal index on the attribute fields).

The syntax for building a GiST index on a "geometry" column is as follows:

The above syntax will always build a 2D-index. To get the an n-dimensional index supported in PostGIS 2.0+ for the geometry type, you can create one using this syntax

Building a spatial index is a computationally intensive exercise: on tables of around 1 million rows, on a 300MHz Solaris machine, we have found building a GiST index takes about 1 hour. After building an index, it is important to force PostgreSQL to collect table statistics, which are used to optimize query plans:

GiST indexes have two advantages over R-Tree indexes in PostgreSQL. Firstly, GiST indexes are "null safe", meaning they can index columns which include null values. Secondly, GiST indexes support the concept of "lossiness" which is important when dealing with GIS objects larger than the PostgreSQL 8K page size. Lossiness allows PostgreSQL to store only the "important" part of an object in an index -- in the case of GIS objects, just the bounding box. GIS objects larger than 8K will cause R-Tree indexes to fail in the process of being built.

4.6.2. Using Indexes

Ordinarily, indexes invisibly speed up data access: once the index is built, the query planner transparently decides when to use index information to speed up a query plan. Unfortunately, the PostgreSQL query planner does not optimize the use of GiST indexes well, so sometimes searches which should use a spatial index instead default to a sequence scan of the whole table.

If you find your spatial indexes are not being used (or your attribute indexes, for that matter) there are a couple things you can do:

Firstly, make sure statistics are gathered about the number and distributions of values in a table, to provide the query planner with better information to make decisions around index usage. For PostgreSQL 7.4 installations and below this is done by running update_geometry_stats([table_name, column_name]) (compute distribution) and VACUUM ANALYZE [table_name] [column_name] (compute number of values). Starting with PostgreSQL 8.0 running VACUUM ANALYZE will do both operations. You should regularly vacuum your databases anyways -- many PostgreSQL DBAs have VACUUM run as an off-peak cron job on a regular basis.

If vacuuming does not work, you can force the planner to use the index information by using the SET ENABLE_SEQSCAN=OFF command. You should only use this command sparingly, and only on spatially indexed queries: generally speaking, the planner knows better than you do about when to use normal B-Tree indexes. Once you have run your query, you should consider setting ENABLE_SEQSCAN back on, so that other queries will utilize the planner as normal.

As of version 0.6, it should not be necessary to force the planner to use the index with ENABLE_SEQSCAN .

If you find the planner wrong about the cost of sequential vs index scans try reducing the value of random_page_cost in postgresql.conf or using SET random_page_cost=#. Default value for the parameter is 4, try setting it to 1 or 2. Decrementing the value makes the planner more inclined of using Index scans.


10.6. Datum Transformations¶

In QGIS, ‘on-the-fly’ CRS transformation is enabled by default, meaning that whenever you use layers with different coordinate systems QGIS transparently reprojects them to the project CRS. For some CRS, there are a number of possible transforms available to reproject to the project’s CRS!

By default, QGIS will attempt to use the most accurate transformation available. However, in some cases this may not be possible, e.g. whenever additional support files are required to use a transformation. Whenever a more accurate transformation is available, but is not currently usable, QGIS will show an informative warning message advising you of the more accurate transformation and how to enable it on your system. Usually, this requires download of an external package of transformation support files, and extracting these to the proj folder under your QGIS user profile folder.

If desired, QGIS can also prompt you whenever multiple possible transformations can be made between two CRSs, and allow you to make an informed selection of which is the most appropriate transformation to use for your data.

This customization is done in the Settings ► Options ► Transformations tab menu under the Default datum transformations group:

using Ask for datum transformation if several are available : when more than one appropriate datum transformation exist for a source/destination CRS combination, a dialog will automatically be opened prompting users to choose which of these datum transformations to use for the project. If the Make default checkbox is ticked when selecting a transformation from this dialog, then the choice is remembered and automatically applied to any newly created QGIS projects.

or defining a list of appropriate datum transformations to use as defaults when loading a layer to a project or reprojecting a layer.

Use the button to open the Select Datum Transformations dialog. Nato:

Choose the Source CRS of the layer, using the drop-down menu or the Select CRS widget.

Provide the Destination CRS in the same way.

A list of available transformations from source to destination will be shown in the table. Clicking a row shows details on the settings applied and the corresponding accuracy and area of use of the transformation.

Fig. 10.5 Selecting a preferred default datum transformation ¶

In some cases a transformation may not be available for use on your system. In this case, the transformation will still be shown (greyed) in this list but can not be picked until you install the required package of transformation support. Usually, a button is provided to download and install the corresponding grid, which is then stored under the proj folder in the active user profile directory.

Find your preferred transformation and select it

Set whether you Allow fallback transforms if preferred operation fails

A row is added to the table under Default Datum Transformations with information about the Source CRS , the Destination CRS , the Operation applied for the transformation and whether Allow fallback Transforms is enabled.

From now, QGIS automatically uses the selected datum transformations for further transformation between these two CRSs until you remove it () from the list or change the entry () in the list.

Datum transformations set in the Settings ► Options ► Transformations tab will be inherited by all new QGIS projects created on the system. Additionally, a particular project may have its own specific set of transformations specified via the CRS tab of the Project properties dialog ( Project ► Properties… ). These settings apply to the current project only.

© Copyright 2002-now, QGIS project. Last updated on Jul 01, 2021 09:02.


The shapefile format is a geospatial vector data format for geographic information system (GIS) software. It is developed and regulated by Esri as a mostly open specification for data interoperability among Esri and other GIS software products. The shapefile format can spatially describe vector features: points, lines and polygons.

The term “shapefile” is quite common, but the format consists of a collection of files with a common filename prefix, stored in the same directory. The three mandatory files have filename extensions .shp, .shx, and .dbf.

A Spatial Reference System Identifier (SRID) is a unique value used to unambiguously identify projected, unprojected, and local spatial coordinate system definitions. These coordinate systems form the heart of all GIS applications. Most often there is an .xml or .prj file to help us see which SRID we are dealing with.

If it is a large amount of data, it should be transferred to the database, and Tableau supports direct connections to spatial data using these connectors:

When you need to accurately enter coordinates in a GIS, the first step is to uniquely define all coordinates on Earth.

This means you need a reference frame for your latitude and longitude coordinates because where would you be on Earth without having reference to it?

Because the Earth is curved – and in GIS we deal with flat map projections – we need to accommodate both the curved and flat views of the world. Surveyors and geodesists have accurately defined locations on Earth. More about map projections at https://en.wikipedia.org/wiki/List_of_map_projections and https://en.wikipedia.org/wiki/Map_projection

We begin modelling the Earth with an ellipsoid. To be clear, this is different from a geoid which is a measure of mean sea level. Over time, the ellipsoid has been estimated to the best of our ability through a massive collection of surface measurements.

When you combine these measurements, we arrive at a geodetic datum. Horizontal datums precisely specify each location on Earth’s surface in latitude and longitude or other coordinate systems. For instance, NAD83, WGS84 and ETRS89 are examples of geodetic datums.

Using geographic coordinate systems, we can define positions on Earth. For example, we use degrees/minutes/seconds (DMS) and decimal degrees (DD) for spherical coordinates. After we flatten the Earth with map projections, we use projected coordinate systems like the State Plane Coordinate System (SPCS) or UTM grid system.

In Tableau, the following geodetic datums (SRIDs) are supported:

The North American Datum of 1983 (NAD 83) is the most current datum being used in North America. It provides latitude and longitude and some height information using the reference ellipsoid GRS80. Geodetic datums like the North American Datum 1983 (NAD83) form the basis of coordinates of all horizontal positions for Canada and the United States.

In 1990 at it symposium in Firenze, Italy, EUREF designed the European Terrestrial Reference System 89 (ETRS89) in such a way that it would be based on the ITRS except that it is tied to the stable part of Europe, so that the relations between European stations are kept fixed. Coordinates in ETRS89 are expressed as either three dimensional (X, Y, Z) Cartesian coordinates or as three dimensional ellipsoidal coordinates (Φ, λ and H, Ellipsoidal height), based on the GRS80 ellipsoid.

The acceptance of ETRS89 by several communities (civil aviation, industry, national and regional agencies) as the backbone for geo-referencing in Europe is a continuous process. EuroControl (European Agency for Safely of Air navigation) uses ETRS89 since a long time in its technical specifications and there is a recommendation by the European Commission to adopt ETRS89 as the geodetic datum for geo-referenced information and to promote the use of ETRS89 within its member states.

The Global Positioning System uses the World Geodetic System (WGS84) as its reference coordinate system.

In spatially enabled databases (such as IBM DB2, IBM Informix, Ingres, Microsoft SQL Server, MySQL, Oracle RDBMS, Teradata, PostGIS, SQL Anywhere and Vertica), SRIDs are used to uniquely identify the coordinate systems used to define columns of spatial data or individual spatial objects in a spatial column.

Remember: If you must show continent-wide or worldwide data, then use WGS84, if you are lowering the level of information to a region or city, use a national projection.

To move data from Shapefiles to a database, we can use Open Source tools to do all that quickly!I would recommend to use ogr2ogr (https://gdal.org/programs/ogr2ogr.html) because the data may be in a projection used in your country and should be transferred to a projection that Tableau supports.

Using ogr2ogr is really easy:

How to use ogr2ogr for changing the coordinate reference system from EPSG:4326 to EPSG:3857:

If the data is stored in Database in WGS84 or ETRS89 but you have Geometry and you need Geography, we can use the following trick:

We must add 2 fields to the tables we want to convert:

Once you transfer Shapefile to DB, you can really do quality analysis over the data.

Although databases allow points, lines and areas to be in the same table, it is preferable that each element goes to its own table in the database.


Conclusion and perspective

Apache SIS and Proj.4 are in agreement for all coordinate conversions (e.g. map projections) tested in this blog on a planet flattened like Earth. But they sometime disagree by 2 meters for coordinate transformations (e.g. datum shifts) on Earth and 90 meters for map projections on a Earth-sized planet flattened like Jupiter. In two of the three disagreements, the library providing the correct answer is Apache SIS. In the third disagreement, we may argue that both libraries are not wrong provided that distances between Proj.4 results and Apache SIS results are smaller than the transformation accuracy. But Proj.4 gives no indication about the accuracy of its operations.

The degree of confidence that we can put in a coordinate operation library depends on many factors, some at Proj.4 advantage and others at Apache SIS advantage:

Long history and large users base, which in theory increases the chances that bugs have been identified and fixed. However Proj.4 included GIGS in its test suite only recently, and as of September 2017 is known to produce different results for some GIGS tests (this issue has also been observed years ago with Proj.4 wrappers in GeoAPI). Since Proj.4 is used by MapServer, PostGIS, QGIS and since Proj4J and Proj4JS are derived from Proj.4, any potential error in the library may not be immediately visible when using only above-cited software if they all reproduce the same errors.

Apache SIS advantages:

Run subset of GIGS tests since 2011 (indirectly). Apache SIS either passes those tests or have identified corrections that need to be applied to GIGS tests. However the tests implemented in GeoAPI and Apache SIS are incomplete.

Standard (ISO 19162) and more detailed description of coordinate operations. This capability allows users to verify what the library is actually doing (e.g. to see the effective Bursa-Wolf parameters). This information is often necessary when investigating why data do not appear where they should be.

Late-binding implementation, which enables better compliance with authoritative definitions (EPSG) for choosing Bursa-Wolf parameters. For some pairs of CRS, the use of WGS84 as a pivotal system in early-binding implementations can only introduce errors (e.g. 1 metre in Martinique).

Domain of validity information. This reduce the risk that users apply the wrong transformation for a given pair of CRS (for example using in Canada the NAD27 to WGS84 transformations designed for USA).

Expected accuracy information. This avoid luring the users in thinking that a coordinate operation is accurate up to rounding errors while actually it may have a stochastic 20 metres error.

More robustness to high eccentricities. The is beneficial mostly to planetary CRS, but also improves Cylindrical Equal Area inverse projection accuracy as a side-effect.

At the time of writing this blog, work is underway for improving Proj.4 with a new API. But I do not know which of above issues would be addressed. Changing the current Proj.4 early-binding approach into a late-binding one would be a significant architectural change. Whether such improvement is needed or not depends on the desired accuracy. Na žalost there is nothing in current implementation telling to user if Proj.4 is delivering the accuracy that (s)he need. Ideally, this lack of critical information could be fixed by implementing Well Known Text (WKT) version 2 (ISO 19162) in Proj.4. The following points describe a possible path:

  • Move the WKT parsing and formatting code from GDAL to Proj.4.
  • Provide WKT 2 support for projPJ data structure:
    • Define some WKT 2 keywords as aliases of WKT 1 keywords (e.g. “PROJCRS” as alias of “PROJCS” ).
    • When a WKT 2 keyword is detected, raise a flag changing the way GDAL/Pro.4 applies units of measurement. While the WKT 2 standard defined by ISO 19162 is designed for backward compatibility with WKT 1 as defined in OGC 01-009 standard, the way that GDAL/Proj.4 currently handles units of measurement other than degrees and meters is not conform to that WKT 1 standard. This is unlikely to change for GDAL compatibility reasons, but this error shall not be propagated to WKT 2 parser. This would require GDAL/Proj.4 to implement a WKT parser working in two different modes depending on which keywords is found in the WKT definition.
    • Add support for mandatory WKT 2 elements, in particular AXIS .
    • Include the Bursa-Wolf parameters (or any other parameters) effectively used.
    • Include operation domain of validity and expected accuracy. Those metadata are better described with late-binding implementations, but an early-binding implementation can still give some idea for example by computing the intersection of the domain of validity of source and target CRS.

    Since Apache SIS is already there (and beyond), it could be used for inter-operability experiments and validation during Proj.4 developments. The Java Native Interface (JNI) bindings in the sis-gdal module should make this process easy.


    Poglej si posnetek: Coordinate Transformation in ArcGIS