[Gfoss] aiuto su sistema di riferimento

Salve a tutti,
riprendo un mio post di qualche tempo fa e vi chiedo la cortesia di
aiutarmi a risolvere un problema che a qualcuno potrà sembrare banale ma
del quale non vengo a capo:
sto mettendo su un webgis di uno scavo archeologico.
Tutta la documentazione a stazione totale è stata fatta appoggiandosi ad
un rilievo fatto con gps qualche anno fa da un gruppo di russi (se non
ricordo male).
Ovviamente ho bisogno di sapere la proiezione da impostare (per il
webgis sto usando open layers), ma se vado ad interrogare lo shape con
ogrinfo, ottengo:

INFO: Open of `topographie.shp'
      using driver `ESRI Shapefile' successful.

Layer name: topographie
Geometry: Line String
Feature Count: 53
Extent: (470230.491150, 4457081.500000) - (470788.508850, 457516.500000)
Layer SRS WKT:
(unknown)
cat: Real (16.0)
level: Real (33.16)

che tipo di coordinate sono?
Ho provato a cercare un po' in giro sulla rete ma niente; ho scorso
velocemente il sito "spatialreference.org" ma non capisco il sistema di
riferimento.
Il sito è in armenia, le coordinate della collina sono:
lat 40.248838° lon 44.652557°

Grazie dell'aiuto

-beppe-

2010/4/2 beppe <beppenapo@gmail.com>:
...

Ovviamente ho bisogno di sapere la proiezione da impostare (per il
webgis sto usando open layers), ma se vado ad interrogare lo shape con
ogrinfo, ottengo:

INFO: Open of `topographie.shp'
using driver `ESRI Shapefile' successful.

Layer name: topographie
Geometry: Line String
Feature Count: 53
Extent: (470230.491150, 4457081.500000) - (470788.508850, 457516.500000)
Layer SRS WKT:
(unknown)
cat: Real (16.0)
level: Real (33.16)

che tipo di coordinate sono?
Ho provato a cercare un po' in giro sulla rete ma niente; ho scorso
velocemente il sito "spatialreference.org" ma non capisco il sistema di
riferimento.
Il sito è in armenia, le coordinate della collina sono:
lat 40.248838° lon 44.652557°

Ho guardato un po' - visto che
http://www.mapref.org/
http://www.asprs.org/resources/grids/
http://www.crs-geo.eu/nn_124226/crseu/EN/CRS__Description/crs-national__node.html?__nnn=true

non offrono niente, una soluzione (facile) è di chiedere in questa mailing list:
http://lists.maptools.org/mailman/listinfo/proj

ciao
Markus

Grazie per il consiglio, chiederò di sicuro!

Intanto ho provato in questo modo:
1. ho visualizzato l'area in google earth
2. ho abilitato la "barra di stato" impostandola in modo da visualizzare
le coordinate in UTM...e sembravano tornare
3. ho cercato su spatialreference.org il "fuso" armeno e sembrava che il
sistema giusto fosse wgs84/utm zone 38n (EPSG:32638)
4. ho caricato su qgis uno shp delle nazioni del mondo in wgs84, ho
abilitato la trasformazione al volo e ... il mio shape sembra
posizionarsi nel punto giusto!

Secondo voi può andare come procedimento?
Intanto chiedo anche alla lista indicatami da markus

saluti

-beppe-

Il giorno ven, 02/04/2010 alle 10.32 +0200, Markus Neteler ha scritto:

2010/4/2 beppe <beppenapo@gmail.com>:
...
> Ovviamente ho bisogno di sapere la proiezione da impostare (per il
> webgis sto usando open layers), ma se vado ad interrogare lo shape con
> ogrinfo, ottengo:
>
> INFO: Open of `topographie.shp'
> using driver `ESRI Shapefile' successful.
>
> Layer name: topographie
> Geometry: Line String
> Feature Count: 53
> Extent: (470230.491150, 4457081.500000) - (470788.508850, 457516.500000)
> Layer SRS WKT:
> (unknown)
> cat: Real (16.0)
> level: Real (33.16)
>
> che tipo di coordinate sono?
> Ho provato a cercare un po' in giro sulla rete ma niente; ho scorso
> velocemente il sito "spatialreference.org" ma non capisco il sistema di
> riferimento.
> Il sito è in armenia, le coordinate della collina sono:
> lat 40.248838° lon 44.652557°

Ho guardato un po' - visto che
http://www.mapref.org/
http://www.asprs.org/resources/grids/
http://www.crs-geo.eu/nn_124226/crseu/EN/CRS__Description/crs-national__node.html?__nnn=true

non offrono niente, una soluzione (facile) è di chiedere in questa mailing list:
http://lists.maptools.org/mailman/listinfo/proj

ciao
Markus

On Fri, Apr 02, 2010 at 10:57:30AM +0200, beppe wrote:

Grazie per il consiglio, chiederò di sicuro!

Intanto ho provato in questo modo:
1. ho visualizzato l'area in google earth
2. ho abilitato la "barra di stato" impostandola in modo da visualizzare
le coordinate in UTM...e sembravano tornare
3. ho cercato su spatialreference.org il "fuso" armeno e sembrava che il
sistema giusto fosse wgs84/utm zone 38n (EPSG:32638)
4. ho caricato su qgis uno shp delle nazioni del mondo in wgs84, ho
abilitato la trasformazione al volo e ... il mio shape sembra
posizionarsi nel punto giusto!

Secondo voi può andare come procedimento?

In generale no, se il padreterno non viene a confermarti uno straccio
di datum, oppure non hai modo di individuare dei punti di controllo
specifici, con coordinate note e individuabili nel tuo dataset,
il datum non e' sicuro e puoi avere un errore anche di 100/150m
(al limite) nel posizionamento. Chiaramente molto dipende dallo
specifico CRS, la variabilita' del datum e' notevole.

--
Francesco P. Lovergine

Ecco, mi sembrava troppo semplice, e infatti c'è un notevole errore!!!
Ho provato a riproiettare il file usando il tool di qgis, prima in
epsg:32638, poi in epsg:23038 (come suggeritomi da Diego Guidotti); ho
successivamente trasformato entrambi i file ottenuti in kml con ogr2ogr
e caricato su google earth; l'errore, in entrambi i casi gli elementi
sono traslati verso nord-est di circa 2km.

A questo punto come procedo?
Potrei anche spostare tutto a manina, ma non ho un buon modello di
riferimento se non le mappe di google earth...insomma, ogni idea è ben
accetta
Grazie ancora

-beppe-

Il giorno ven, 02/04/2010 alle 14.18 +0200, Francesco P. Lovergine ha
scritto:

On Fri, Apr 02, 2010 at 10:57:30AM +0200, beppe wrote:
> Grazie per il consiglio, chiederò di sicuro!
>
> Intanto ho provato in questo modo:
> 1. ho visualizzato l'area in google earth
> 2. ho abilitato la "barra di stato" impostandola in modo da visualizzare
> le coordinate in UTM...e sembravano tornare
> 3. ho cercato su spatialreference.org il "fuso" armeno e sembrava che il
> sistema giusto fosse wgs84/utm zone 38n (EPSG:32638)
> 4. ho caricato su qgis uno shp delle nazioni del mondo in wgs84, ho
> abilitato la trasformazione al volo e ... il mio shape sembra
> posizionarsi nel punto giusto!
>
> Secondo voi può andare come procedimento?

In generale no, se il padreterno non viene a confermarti uno straccio
di datum, oppure non hai modo di individuare dei punti di controllo
specifici, con coordinate note e individuabili nel tuo dataset,
il datum non e' sicuro e puoi avere un errore anche di 100/150m
(al limite) nel posizionamento. Chiaramente molto dipende dallo
specifico CRS, la variabilita' del datum e' notevole.

On Fri, Apr 02, 2010 at 05:12:16PM +0200, beppe wrote:

Ecco, mi sembrava troppo semplice, e infatti c'è un notevole errore!!!
Ho provato a riproiettare il file usando il tool di qgis, prima in
epsg:32638, poi in epsg:23038 (come suggeritomi da Diego Guidotti); ho
successivamente trasformato entrambi i file ottenuti in kml con ogr2ogr
e caricato su google earth; l'errore, in entrambi i casi gli elementi
sono traslati verso nord-est di circa 2km.

A questo punto come procedo?
Potrei anche spostare tutto a manina, ma non ho un buon modello di
riferimento se non le mappe di google earth...insomma, ogni idea è ben
accetta
Grazie ancora

Senza punti correlati nei due datum, e' un ago nel pagliaio. Ci sono
letteralmente migliaia di datum possibili, neanche tutti pubblicati
e soprattutto quando si tratta dell'ex-URSS. Ti occorre definire
una t-pla di valori per la trasformazione rispetto a WGS84 e senza
punti con la richiesta precisione non ci pensare nemmeno.
Prova a vedere qui:

http://www.asprs.org/resources/grids/

se qualche anima buona ha parlato delle misure usate in zona e magari
sparando a casaccio ci azzecchi...

--
Francesco P. Lovergine

Perfetto, la vedo veramente dura.
Intanto mi accontento dell'errore e nel frattempo, aspettando che
qualcuno da lassù mi aiuti, cerco di impostare il "contenitore".
Faccio qualche prova con open layers e i circa 2 km di errore sono
diventati qualche migliaio! Dall'armenia mi ritrovo sulle coste
settentrionali dell'Africa!!! Capisco il clima migliore, ma mi sembra
esagerato.
Questo il mio codice [1], se qualche anima pia gli desse un'occhiata
gliene sarei infinitamente grato...
Considerate che nella pagina web c'è il collegamento a proj4js e alla
definizione della proiezione epsg:32638 (anche se non è quella
giusta!!!):
Proj4js.defs["EPSG:32638"] = "+proj=utm +zone=38 +ellps=WGS84
+datum=WGS84 +units=m +no_defs ";

grazie ancora

-beppe-

[1]
var zoom=15
var map;
function init() {
   var epsg32638= new OpenLayers.Projection("EPSG:32638");
   var epsg900913= new OpenLayers.Projection("EPSG:900913");
   map = new OpenLayers.Map ("map", {
     controls:[
        new OpenLayers.Control.Navigation(),
        new OpenLayers.Control.PanZoomBar(),
        new OpenLayers.Control.LayerSwitcher({activeColor:"green"}),
        new OpenLayers.Control.MousePosition({element: $('location')}),
        new OpenLayers.Control.Attribution()],
     maxExtent: bounds,
     maxResolution: 2.1797578125001564,
     numZoomLevels: 11,
     units: 'm',
     projection: epsg900913,
     displayProjection: new OpenLayers.Projection("EPSG:4326")
            } );
            
  var bounds = new OpenLayers.Bounds(44.532, 40.144, 45.038,
40.423).transform(map.displayProjection, map.projection);
            
layerTilesAtHome = new OpenLayers.Layer.OSM.Osmarender("Osmarender");
map.addLayer(layerTilesAtHome);
            
layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Mapnik");
map.addLayer(layerMapnik);
                           
layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("CycleMap");
map.addLayer(layerCycleMap);
                                
        //OpenLayers.Layer.Vector with Protocol.HTTP and Strategy.Fixed
        var wfs = new OpenLayers.Layer.Vector("isoipse", {
                    strategies: [new OpenLayers.Strategy.Fixed()],
                    protocol: new OpenLayers.Protocol.HTTP({
                    url: "../aramus_data/vector/gml/isoipse.gml",
                    projection: epsg32638,
                    format: new OpenLayers.Format.GML()
                    })
                });
         map.addLayer(wfs);
         map.zoomToExtent(bounds);
        }

Il giorno ven, 02/04/2010 alle 19.36 +0200, Francesco P. Lovergine ha
scritto:

On Fri, Apr 02, 2010 at 05:12:16PM +0200, beppe wrote:
> Ecco, mi sembrava troppo semplice, e infatti c'è un notevole errore!!!
> Ho provato a riproiettare il file usando il tool di qgis, prima in
> epsg:32638, poi in epsg:23038 (come suggeritomi da Diego Guidotti); ho
> successivamente trasformato entrambi i file ottenuti in kml con ogr2ogr
> e caricato su google earth; l'errore, in entrambi i casi gli elementi
> sono traslati verso nord-est di circa 2km.
>
> A questo punto come procedo?
> Potrei anche spostare tutto a manina, ma non ho un buon modello di
> riferimento se non le mappe di google earth...insomma, ogni idea è ben
> accetta
> Grazie ancora
>

Senza punti correlati nei due datum, e' un ago nel pagliaio. Ci sono
letteralmente migliaia di datum possibili, neanche tutti pubblicati
e soprattutto quando si tratta dell'ex-URSS. Ti occorre definire
una t-pla di valori per la trasformazione rispetto a WGS84 e senza
punti con la richiesta precisione non ci pensare nemmeno.
Prova a vedere qui:

http://www.asprs.org/resources/grids/

se qualche anima buona ha parlato delle misure usate in zona e magari
sparando a casaccio ci azzecchi...

Il 02/04/2010 0.13, beppe ha scritto:

Salve a tutti, riprendo un mio post di qualche tempo fa e vi chiedo
la cortesia di aiutarmi a risolvere un problema che a qualcuno potrà
sembrare banale ma del quale non vengo a capo: sto mettendo su un
webgis di uno scavo archeologico. Tutta la documentazione a stazione
totale è stata fatta appoggiandosi ad un rilievo fatto con gps
qualche anno fa da un gruppo di russi (se non ricordo male).

rilievo fatto con gps qualche anno fa da un gruppo di *russi* ...ergo
molto probabilmente hanno usato GLONASS [1]:

GLONASS uses a coordinate datum named "PZ-90" (Earth Parameters
1990- Parametry Zemli 1990), in which the precise location of the
North Pole is given as an average of its position from 1900 to
1905. This is in contrast to the GPS's coordinate datum, WGS 84,
which uses the location of the North Pole in 1984. As of September
17, 2007 the PZ-90 datum has been updated to differ from WGS 84 by
less than 40 cm (16 in) in any given direction.

Ora resta da stabilire se "qualche anno fa" risale a prima o dopo il
2007 (...e sperare che i dati non siano stati trasformati, altrimenti le
ns congetture nn valgono assolutamente nulla). Se il rilievo e' stato
eseguito dopo il 2007, allora EPSG:32638 e' un'ottima approssimazione
(40 cm), altrimenti occorre utilizzare il datum "PZ-90".

Interrogando l'epsg-registry [2] con i seguenti parametri
Type: Projected CRS
Area: Armenia
si ottengono diversi CRS basati su "Pulkovo 1942" (EPSG:4284) e,
naturalmente, "WGS 84 / UTM zone 38N" (EPSG:32638). EPSG riporta Pulkovo
con primo meridiano a Greenwich (per sopravvenute ragioni di convenienza
a livello computazionale), tuttavia occorre tenere presente che:

Anchor Definition: Fundamental point: Pulkovo observatory.
Latitude: 59°46'18.550"N, longitude: 30°19'42.090"E (of
Greenwich).

Interrogando l'epsg-registry [2] con Name = "PZ-90" si ottiene non solo
una lista dei CRS geografici (ad es. PZ-90 ...2D --> EPSG:4740), ma
addirittura le trasformazioni tra i vari datum citati in precedenza!

Ovviamente ho bisogno di sapere la proiezione da impostare (per il
webgis sto usando open layers), ma se vado ad interrogare lo shape
con ogrinfo, ottengo:

INFO: Open of `topographie.shp' using driver `ESRI Shapefile'
successful.

Layer name: topographie Geometry: Line String Feature Count: 53
Extent: (470230.491150, 4457081.500000) - (470788.508850,
457516.500000) Layer SRS WKT: (unknown) cat: Real (16.0) level: Real
(33.16)

che tipo di coordinate sono? Ho provato a cercare un po' in giro
sulla rete ma niente; ho scorso velocemente il sito
"spatialreference.org" ma non capisco il sistema di riferimento. Il
sito è in armenia, le coordinate della collina sono: lat 40.248838°
lon 44.652557°

...se ottieni un paio di km di errore con 4326, prova quindi ad usare
EPSG:4740 ("PZ-90"), il CRS geografico del GLONASS, e facci sapere come va.
E' importante notare che per passare da PZ-90 a WGS84 (in Armenia) devi
"passare" per Pulkovo e quindi ti serve una trasformazione composta (ad es.
gvSIG la esegue...):

  Pulkovo 1942 to PZ-90 (1) Code: EPSG::15844
  Pulkovo 1942 to WGS 84 (16) Code: EPSG::15865

Se non va neanche con PZ-90, ti tocca verificare con i sistemi basati su
Pulkovo. Tra questi, credo che sia possibile scartare quelli che per
caratteristiche dei loro fusi/zone non risultano compatibili con il tuo
punto. In ogni caso, EPSG ti fornisce tutti gli strumenti necessari (CRS
e trasformazioni).

in bocca al lupo!
Antonio

[1] http://en.wikipedia.org/wiki/GLONASS#Signals
[2] http://www.epsg-registry.org/

--
Antonio Falciano
http://www.linkedin.com/in/antoniofalciano

Mentre stavo scrivendo mi arriva l'interessante messaggio di Antonio
Falciano, e mi si apre un mondo!
Per chi si fosse appassionato a questa avvincente storia, racconto gli
sviluppi.
Sono riuscito a recuperare un po' di informazioni, allora il sistema
dovrebbe avere come datum "Pulkovo 1942" e come ellissoide "Krassovsky".
Su questo sito [1] (secondo me un po' datato ma utilissimo) danno come
codice epsg:6284.
Controllo su spatial reference e il codice non esiste.
Esiste, però, la sigla S-42 (recuperata sempre dal sito segnalato), alla
quale corrispondono 6-7 pagine di possibili soluzioni. Cercando,
cercando, trovo "Pulkovo 1942 / Gauss-Kruger CM 45E" (qui le specifiche
[2])

> Se il rilievo e' stato
> eseguito dopo il 2007, allora EPSG:32638 e' un'ottima
> approssimazione
> (40 cm), altrimenti occorre utilizzare il datum "PZ-90".
>

Il rilievo è stato effettuato tra il 2003 e il 2008, e comunque
epsg:32638 mi da un errore troppo grosso.

> ...se ottieni un paio di km di errore con 4326, prova quindi ad
> usare
> EPSG:4740 ("PZ-90"), il CRS geografico del GLONASS, e facci sapere
> come va.
> E' importante notare che per passare da PZ-90 a WGS84 (in Armenia)
> devi
> "passare" per Pulkovo e quindi ti serve una trasformazione composta
> (ad es.
> gvSIG la esegue...):
>
> Pulkovo 1942 to PZ-90 (1) Code: EPSG::15844
> Pulkovo 1942 to WGS 84 (16) Code: EPSG::15865
>
> Se non va neanche con PZ-90, ti tocca verificare con i sistemi
> basati su
> Pulkovo.

Scusami ma questo in questo passaggio mi sono un po' perso! Cerco di
ricapitolare:

1. cosa fare
Il mio file non ha una proiezione assegnata (ogrinfo) ma ha coordinate
"cartografiche" (Extent:470230.491150, 4457081.500000,
470788.508850,457516.500000). Considerando che devo pubblicare su
OpenLayers, la cosa migliore sarebbe arrivare a wgs84 (epsg:4326).
PZ-90 ha coordinate geografiche, dovrei, quindi, prima passare da
cartografico -> pz-90, e poi pz-90 -> wgs84. Giusto?
Mi manca il primo sistema, quello cartografico di partenza, che, a
questo punto, potrebbe essere "Pulkovo 1942 / Gauss-Kruger CM 45E"?

2. come farlo
non ho molta dimestichezza con gvsig, mi rigiro meglio in qgis, o grass,
meglio ancora se si potesse fare da riga di comando!

Piccola nota. Ho provato a con epsg:2498 e il risultato è ottimo.
Ho importato lo shapefile in geoserver ma mi da dei problemi:
se provo a fare la preview in openlayers mi appare un errore al posto
della mappa:
# code="internal error..." Rendering process failed. Errore rendering
# features 6
...se però provo a zoomare dentro, la mappa ricompare; riscompare alla
massima estensione.
Sempre da geoserver provo ad esportare la mappa in kml, google earth
stavolta si posiziona correttamente ma non visualizzo le mie isoipse.

provo a crearmi il kml a mano (ogr2ogr -f KML ...) ma mi da un errore:
# ERROR 4: Failed to create KML
# file /var/www/aramus_data/vector/kml/isoipse_2498.kml.
# KML driver failed to
# create /var/www/aramus_data/vector/kml/isoipse_2498.kml

e per finire, se provo a caricare il gml derivato dalla riproiezione
apparentemente corretta (sempre con ogr2ogr -f GML) in OL, è sempre al
largo dell'Algeria!

to be continued ...

[1] http://www.globalmapper.com/helpv11/datum_list.htm
[2] http://spatialreference.org/ref/epsg/2498/html/