Parâmetros de computação para a transformação Affine do QGIS?

15

Eu tenho uma planta baixa de vetor (DXF) que adicionei a um projeto em branco no QGIS usando o plug-in Dxf2Shp.

Eu tenho lido tutoriais e threads do StackExchange, mas não consigo descobrir como "georreferenciar" minha camada?

Suponho que posso, de alguma forma, selecionar os cantos do edifício e definir o lat / long.

Meu objetivo é exportar um shapefile que eu possa usar com o TileMill e o TileStache .

Percebi que as coordenadas do projeto eram na verdade latas / longas:

insira a descrição da imagem aqui

e preciso usar o plug-in "Afim (rotação, tradução, escala)" para "colocar" meu desenho CAD.

flackend
fonte
pergunta semelhante: gis.stackexchange.com/questions/23998/…
underdark

Respostas:

2

O uso do OpenJump para calcular os parâmetros de transformação afins gera:

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

Esses parâmetros, quando aplicados corretamente, devem transformar seu shapefile do CRS local usado para a Zona 17 WGS84 / UTM 17 Norte (EPSG: 32617). No QGIS, os dados transformados podem ser exportados ("salvos como") para qualquer CRS necessário; Google Mercator ou lat / lon, por exemplo.

A má notícia é que nunca fui capaz de usar com êxito o plug-in afiado do QGIS para transformações que incluem rotação. Segundo algumas contas, funciona para outras pessoas, mas não para mim, portanto deve ser algo que estou fazendo de errado. Se alguém pudesse me dizer o que é isso, ficaria grato.

Havia um tópico aqui sobre vetores afins que vale a pena ler. O método usado para relacionar vetores é explicado aqui na parte inferior da primeira página.

Se você ficar realmente paralisado, poderá postar um link para o shapefile e todos nós podemos tentar transformá-lo.

Uma reflexão tardia. Se você decidir tentar o método OpenJump, precisará das coordenadas WGS84 / UTM Zone 17 North (EPSG: 32617) para seus pontos de latitude / longitude:

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
Nhopton
fonte
2
parece não existir um fluxo de trabalho consistente e fácil de explicar para transformação afim no QGIS. O link do fórum na sua explicação está morto. Todas as pesquisas sobre como usar o OpenJump para esta tarefa terminam aqui novamente. Você talvez tenha alguma atualização sobre isso?
Bernd V.
Agora você pode usar o GRASS v.transform do kit de ferramentas Sextante para realizar transformações afins de vetor. A documentação para isso pode ser encontrada aqui: grass.osgeo.org/grass64/manuals/v.transform.html mas, na verdade, tudo que você precisa examinar é o formato do arquivo de texto. N
nhopton
27

Primeiro, você precisa projetar suas coordenadas geográficas em um sistema de coordenadas 2D cartesiano, pois as transformações afins não se aplicam aos sistemas de coordenadas geográficas.

Você pode aplicar uma transformação afim de pontos de controle ou de parâmetros de transformação. O plug-in QGIS solicita parâmetros de transformação, mas é muito mais comum um usuário ter pontos de controle.

Nos pontos de controle, você pode calcular os parâmetros de transformação. Para uma transformação afim, existem 6 parâmetros de transformação, portanto, você precisa de pelo menos 3 pontos de controle (cada ponto de controle implica 4 coordenadas: Xsource, Ysource, Xtarget, Ytarget), mas mais pontos de controle são recomendados para ter redundância e, portanto, poder aplicar Mínimos Quadrados, o que forneceria uma estimativa da qualidade da transformação. Lembre-se de que transformações afins podem girar, mudar, escalar (mesmo aplicando fatores diferentes em cada eixo) e inclinar geometrias.

Os pontos de controle devem ter a forma:

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

Os parâmetros são:

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

E nós sabemos:

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

Então, você precisa resolver este sistema de equações (para 3 pontos de controle):

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

Onde os parâmetros a, b, c, d, e ef são desconhecidos.

Depois de calcular os parâmetros a, b, c, d, eef (por exemplo, com este solucionador de equações on-line ), coloque-os na interface do plugin QGIS da seguinte maneira:

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

ou:

Parâmetros de transformação afins

Eu acho que isso resolve suas duas perguntas.

Germán Carrillo
fonte