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.
-gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>
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:
- "ordem 1" para linear
- "-ordem 2" para polinômio de segunda ordem
- "ordem 3" para polinômio de terceira ordem
- "-tps" para spline de placa fina.
Por exemplo, o código adicionado ao campo "Opções adicionais de criação" pode se parecer com:
-order 2 -gcp <ungeoref_x1> <ungeoref_y1> <georef_x1> <georef_y1> -gcp <ungeoref_x2> <ungeoref_y2> <georef_x2> <georef_y2>