Parametri di calcolo per la trasformazione affine di QGIS?


15

Ho una planimetria vettoriale (DXF) che ho aggiunto a un progetto vuoto in QGIS usando il plug-in Dxf2Shp.

Ho letto tutorial e thread StackExchange, ma non riesco a scoprire come "georeferenziare" il mio livello?

Suppongo di poter in qualche modo selezionare gli angoli dell'edificio e impostare lat / long.

Il mio obiettivo è esportare un file di forma che posso utilizzare con TileMill e TileStache .

Mi sono reso conto che le coordinate del progetto erano in realtà coordinate lat / long:

inserisci qui la descrizione dell'immagine

e ho bisogno di usare il plugin "Affine (Rotation, Translation, Scale)" per "posizionare" il mio disegno CAD.


Risposte:


2

Utilizzando OpenJump per calcolare i rendimenti dei parametri di trasformazione affine:

Scale x: 0.02550720529745378
Scale y: 0.025669710194697357
Rotation: -88.6538203230914
Dx: 357101.9 (Translation x)
Dy: 4512814.6 (Translation y)

Questi parametri, se applicati correttamente, dovrebbero trasformare il tuo shapefile dal CRS locale che utilizza in WGS84 / UTM Zone 17 North (EPSG: 32617). In QGIS i dati trasformati potrebbero quindi essere esportati ("salvati come") in qualsiasi CRS richiesto; Google Mercator o lat / lon, ad esempio.

La cattiva notizia è che non sono mai stato in grado di utilizzare con successo il plug-in affine QGIS per le trasformazioni che includono la rotazione. Secondo alcuni funziona per altre persone ma non per me, quindi deve essere qualcosa che sto sbagliando. Se qualcuno potesse dirmi di cosa si tratta, sarei grato.

C'è stata una discussione qui sui vettori affascinanti che vale la pena leggere. Il metodo che uso per influenzare i vettori è spiegato qui in fondo alla prima pagina.

Se rimani davvero bloccato, potresti pubblicare un link allo shapefile e tutti potremmo provare a trasformarlo.

Un ripensamento. Se decidi di provare il metodo OpenJump avrai bisogno delle coordinate WGS84 / UTM Zone 17 North (EPSG: 32617) per i tuoi punti lat / lon:

EPSG:32617: 361154.4 4513930.1
lat/long: 40.764622,-82.645056
shapefile coor: 947.3,1242.8

EPSG:32617: 361152.2 4513850.3
lat/long: 40.763903,-82.645064
shapefile coor: 4050.3,1035.7

EPSG:32617: 361246.5 4513886.7
lat/long: 40.764247,-82.643956
shapefile coor: 2710.5,4765.2

2
non sembra esistere un flusso di lavoro coerente e facile da spiegare per la trasformazione affine in QGIS. Il link al forum nella tua spiegazione è morto. Tutte le ricerche su come utilizzare OpenJump per questa attività finiscono di nuovo qui. Forse hai aggiornamenti su questo?
Bernd V.

Ora è possibile utilizzare GRASS v.transform dal kit di strumenti Sextante per eseguire trasformazioni affine vettoriali. La documentazione per questo può essere trovata qui: grass.osgeo.org/grass64/manuals/v.transform.html ma in verità tutto ciò che devi vedere è il formato del file di testo. N.
nhopton,

27

Innanzitutto è necessario proiettare le coordinate geografiche su un sistema di coordinate 2D cartesiano, poiché le trasformazioni affine non si applicano ai sistemi di coordinate geografiche.

È possibile applicare una trasformazione affine dai punti di controllo o dai parametri di trasformazione. Il plug-in QGIS richiede parametri di trasformazione, ma è molto più comune per un utente disporre di punti di controllo.

Dai punti di controllo è possibile calcolare i parametri di trasformazione. Per una trasformazione affine ci sono 6 parametri di trasformazione, quindi sono necessari almeno 3 punti di controllo (ogni punto di controllo implica 4 coordinate: Xsource, Ysource, Xtarget, Ytarget), ma si consigliano più punti di controllo per avere ridondanza e quindi essere in grado di applicare Minimi quadrati, che ti darebbe una stima della qualità della trasformazione. Ricorda che le trasformazioni affine possono ruotare, spostare, ridimensionare (anche applicando diversi fattori su ciascun asse) e inclinare le geometrie.

I punti di controllo devono avere la forma:

X SOURCE: Xs
Y SOURCE: Ys
X TARGET: Xt
Y TARGET: Yt

I parametri sono:

a: Scale X 
e: Scale Y
d: Rotation X
b: Rotation Y
c: Translation X
f: Translation Y

E sappiamo:

Xt = X*a + Y*b + c
Yt = X*d + Y*e + f

Quindi, è necessario risolvere questo sistema di equazioni (per 3 punti di controllo):

¦ Xs1 Ys1 1 0 0 0 ¦ | a ¦   ¦ Xt1 ¦
¦ Xs2 Ys2 1 0 0 0 ¦ ¦ b ¦   ¦ Xt2 ¦ 
¦ Xs3 Ys3 1 0 0 0 ¦ ¦ c ¦ = ¦ Xt3 ¦ 
¦ 0 0 0 Xs1 Ys1 1 ¦ ¦ d ¦   ¦ Yt1 ¦ 
¦ 0 0 0 Xs2 Ys2 1 ¦ ¦ e ¦   ¦ Yt2 ¦ 
¦ 0 0 0 Xs3 Ys3 1 ¦ ¦ f ¦   ¦ Yt3 ¦

Dove i parametri a, b, c, d, e e f sono sconosciuti.

Una volta calcolati i parametri a, b, c, d, e, ef (ad esempio con questo risolutore di equazioni online ) inseriscili nell'interfaccia del plugin QGIS in questo modo:

X' = a*x + b*y + c
Y' = d*x + e*y + f

o:

Parametri di trasformazione affine

Penso che questo risolva le tue due domande.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.