¿Cómo calcular los parámetros para la transformación de QGIS Affine?

14

Tengo un vector plano (DXF) que he agregado a un proyecto en blanco en QGIS usando el complemento Dxf2Shp. He estado leyendo tutoriales e hilos de StackExchange, pero parece que no puedo encontrar la forma de "georreferenciar" mi capa.

Supongo que puedo seleccionar de alguna manera las esquinas del edificio y configurar el tiempo / largo.

Mi objetivo es exportar un shapefile que puedo usar con TileMill y TileStache .

Editar

Me di cuenta de que las coordenadas del proyecto eran en realidad coordenadas lat / largas:

Ynecesitousarelcomplemento"Afín (Rotación, Traducción, Escala)" para "colocar" mi dibujo CAD (Gracias @nhopton).

Si alguien sabe de un buen tutorial para usar ese complemento, ¡te lo agradecería!

    
pregunta flackend 30.07.2012 - 16:35

2 respuestas

2

Usando OpenJump para calcular los rendimientos de parámetros de transformación afines:

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

Estos parámetros, cuando se aplican correctamente, deben transformar su shapefile del CRS local que usa a WGS84 / UTM Zone 17 North (EPSG: 32617). En QGIS, los datos transformados podrían luego exportarse ("guardarse como") a cualquier CRS requerido; Google Mercator o lat / lon, por ejemplo.

La mala noticia es que nunca he podido usar con éxito el complemento afín de QGIS para transformaciones que incluyen rotación. Según algunas cuentas, funciona para otras personas pero no para mí, así que debe ser algo que estoy haciendo mal. Si alguien me pudiera decir qué es esto, se lo agradecería.

Había un hilo aquí sobre vectores afines que vale la pena leer. El método que utilizo para afinar vectores se explica en aquí en la parte inferior de la primera página.

Si realmente te atascas, puedes publicar un enlace al shapefile y todos podríamos intentar transformarlo.

Una idea de último momento. Si decide probar el método OpenJump, necesitará las coordenadas WGS84 / UTM Zone 17 North (EPSG: 32617) para sus puntos 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

Saludos, Nick.

    
respondido por el nhopton 31.07.2012 - 11:11
23

Primero debe proyectar sus coordenadas geográficas a un sistema de coordenadas cartesiano 2D, ya que las transformaciones afines no se aplican a los sistemas de coordenadas geográficas.

Puede aplicar una transformación afín desde puntos de control o desde parámetros de transformación. El complemento QGIS le pregunta los parámetros de transformación, pero es mucho más común que un usuario tenga puntos de control.

Desde los puntos de control puedes calcular los parámetros de transformación. Para una transformación afín hay 6 parámetros de transformación, por lo que necesita al menos 3 puntos de control (cada punto de control implica 4 coordenadas: Xsource, Ysource, Xtarget, Ytarget), pero se recomienda que haya más puntos de control para tener redundancia y así poder aplicar Mínimos cuadrados, que le daría una estimación de la calidad de la transformación. Recuerde que las transformaciones afines pueden rotar, cambiar, escalar (incluso aplicando diferentes factores en cada eje) y sesgar las geometrías.

Los puntos de control deben tener la forma:

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

Los parámetros son:

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

Y lo sabemos:

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

Entonces, necesitas resolver este sistema de ecuaciones (para 3 puntos de control):

¦ 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 ¦

Donde los parámetros a, b, c, d, e y f son desconocidos.

Una vez que calcule los parámetros a, b, c, d, e y f, (por ejemplo, con este solucionador de ecuaciones en línea ) los coloca en la interfaz del complemento QGIS de esta manera:

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

o:

Creo que esto resuelve tus dos preguntas, si algo no está claro, solo dímelo.

    
respondido por el Germán Carrillo 27.12.2014 - 17:33

Lea otras preguntas en las etiquetas