Eu tenho uma camada vetorial não georreferenciada que preciso ser georreferenciada. Com as camadas de varredura, a tarefa é fácil e direta, mas não tenho idéia do que devo fazer com a minha camada vetorial. Eu tenho alguns pontos de controle com coordenadas conhecidas que devem fornecer alguma base para a transformação. Então, digamos que eu sei que pontos com id-s de 1, 2 e 3 devem ter as coordenadas de x1, y1; x2, y2; x3, y3. Pode haver alguma rotação e transformação de escala, além da mudança simples.
Alguma ideia?
Respostas:
Para georreferenciar uma camada vetorial, tente o plugin qgsAffine.
Há mais informações em Onde encontrar o qgsaffine no menu?
fonte
Dado o fato de você ter alguns pontos de controle, você poderá usar uma transformação Afim para mudar seus dados vetoriais. Dê uma olhada nesta receita . O processo é um processo de duas partes:
Se você colocar seus pontos de controle em um arquivo CSV (old_x, old_y, new_x, new_y), poderá colar e colar os comandos R no link para resolver a parte dos coeficientes.
fonte
Eu recomendo o plug-in Vector Bender para QGIS. Eu tentei e funciona bem e é fácil de usar. Dependendo da quantidade de pontos que você define, você pode:
Você encontra um pequeno vídeo aqui e eu aconselho você a ler a ajuda do Vector Bender depois de instalar o plugin.
fonte
Com o lançamento do GDAL 1.10, isso agora é possível.
Isso é feito executando uma transformação básica no ogr2ogr e fornecendo os pontos de controle na tag -gcp. http://www.gdal.org/ogr2ogr.html
Para obter um guia, consulte: http://gisforthought.com/georeferencing-vector-data-using-qgis-and-ogr2ogr/
fonte
Eu só tinha que fazer isso e acabei fazendo o seguinte:
gcps.points
arquivoO script a seguir calcula a matriz de transformação afim usando os GCPs salvos:
fonte
Veja minha resposta para encaixar dois polígonos e experimente o salto livre.
Eu acho que sua transformação afim é muito mais amigável do que o plugin afinado qgis.
fonte
Após meus comentários sobre a resposta de Rayner, o GRASS v.transform, que pode ser executado na caixa de ferramentas Sextante, pode ser usado para calcular parâmetros de transformação e aplicá-los a uma camada vetorial para realizar uma transformação afim. É necessário um arquivo de texto contendo pontos de controle, no formato mostrado aqui .
É muito fácil de usar e funciona bem.
fonte
Várias das respostas fornecidas aqui não são mais opções para o QGIS 3 e / ou permitem apenas transformações lineares do arquivo vetorial que são georreferenciadas. Isso pode responder à pergunta do OP, mas outras pessoas que consultam esta postagem podem querer outras opções de transformação para arquivos vetoriais de georreferenciamento.
Problemas com algumas das soluções para arquivos vetoriais de georreferenciamento:
O plugin qgsAffine permite apenas transformações lineares. Isso significa que ele pode dimensionar, girar e mover o arquivo vetorial, mas não pode dobrar ou distorcer o arquivo vetorial. O Georeferenciador para arquivos rasterizados oferece mais opções e permite uma variedade de transformações, incluindo polinomial de segunda ordem e spline de chapa fina. Além disso, não parece que o plugin qgsAffine ainda esteja disponível no QGIS 3.
O módulo GRASS v.transform é semelhante ao plugin qgsAffine e permite apenas transformações lineares.
O plugin Vector Bender parece ser uma boa opção, mas ainda não foi totalmente portado para o QGIS 3, portanto, atualmente não é uma opção. Parece que não está mais sendo mantido.
Usar ogr2ogr, como é sugerido no post de HeikkiVesanto, é uma boa opção. Ele permite que você use GCPs (Ground Control Points) e especifique que tipo de transformação você gostaria. Não encontrei instruções em nenhum lugar sobre como fazer isso, por isso incluí algumas instruções abaixo:
Gere um conjunto de pares de GCP, com um ponto sendo o local original no arquivo vetorial não referenciado e o outro ponto sendo o local desejado no seu espaço de trabalho georreferenciado.
Existem várias maneiras de gerar GCPs. Eu usei o plugin Georeferencer GDAL no QGIS. Está disponível no menu suspenso Raster, após a instalação usando o gerenciador de plug-ins. Ele funciona apenas em arquivos rasterizados, portanto, primeiro você deve converter o arquivo vetorial em um arquivo raster. Isso é possível com "Caixa de ferramentas de processamento: GDAL: conversão de vetor: rasterizar (vetor para raster)". Defina a resolução para um número que ainda permita ver os recursos do arquivo vetorial.
O georreferenciador possui uma interface agradável, que permite adicionar muitos pontos de GCP. Você também pode testar diferentes transformações e ver qual funciona melhor. E você pode ver se algum dos seus pontos do GCP provavelmente está errado, observando seus resíduos. Depois de adicionar todos os seus pontos GCP e verificar se você gosta da saída, é possível exportar o arquivo GCP do Georeferenciador para usá-lo na georreferenciamento do arquivo vetorial original.
O arquivo GCP precisa ser alterado para estar no seguinte formato. Você pode adicionar quantos pontos GCP quiser, cada um é processado por um -gcp e separado por um espaço. Fiz isso com mais de 800 pontos GCP e funcionou muito bem.
Existem várias maneiras de alterar os pontos do GCP para o formato correto. Importei-os para o Excel como um arquivo CSV e criei uma coluna para gerar o formato correto para cada ponto. Depois colei a coluna no TextEdit e substitui as extremidades da linha por espaços.
O arquivo vetorial que você deseja georreferenciar deve ser importado para sua área de trabalho usando o mesmo SRS que você deseja para o arquivo georeferenciado final, que deve ser o mesmo SRS que sua área de trabalho. Pode ser muito longe de onde deveria estar, se originalmente usava um SRS diferente, mas a transformação o moverá para o local correto.
Acesse ogr2ogr em "Caixa de ferramentas de processamento: GDAL: conversão de vetor: formato de conversão". Isso permite que você selecione o arquivo vetorial que deseja georreferenciar e seu arquivo de saída. No campo "Opções adicionais de criação", adicione um comando especificando o tipo de transformação que você deseja e, em seguida, a linha com todos os seus pontos GCP.
Os comandos para diferentes tipos de transformação incluem:
Por exemplo, o código adicionado ao campo "Opções adicionais de criação" pode se parecer com:
fonte