Como georreferenciar imagens usando o QGIS 3

Um tutorial para georreferenciar um mapa, figura ou foto, com base em locais com coordenadas conhecidas, e para extrair shapefiles vetoriais desta imagem.

Colegas pesquisadores e entusiastas de SIG código-livre,

Bem-vindos ao meu blog!

Gostaria de começar com um aviso - posso ser uma pesquisadora desta área, mas isso não significa que tudo o que faço ou escrevo aqui funcionará para você, em suas próprias configurações de desktop e versões de pacotes. Me eximo de responsabilidade se você perder dados ou bagunçar sua instalação. Eu também não autorizo nenhum tipo de cópia do meu conteúdo.

Hoje, vou mostrar aqui no blog como georreferenciar uma imagem usando o QGIS 3.18. Talvez você queira georreferenciar uma imagem de um artigo de revista, ou talvez seja uma fotografia aérea. Não importa! Se você conhece as coordenadas de pelo menos dois pontos não colineares, é possível adicionar geolocalização à sua imagem!

Vamos por etapas:

Por que este mapa já não está geolocalizado?

Às vezes, tenho acesso apenas ao mapa final (uma imagem) e não aos vetores e rasters usados para gerá-lo. Mas, eu preciso que este mapa, figura ou foto seja georreferenciado, para que eu possa compará-lo com um mapa que eu fiz, ou para adicionar uma camada georreferenciada, de uma fonte de dados diferente, sobre esta imagem.

Exemplo

Estou fornecendo este mapa a seguir como um exemplo. É uma imagem png sem metadados e sem informações de localização geográfica.

Imagine que eu salvei este mapa de um artigo de revista (paper) e que eu queira localizar ela geograficamente, mas os autores do referido trabalho não forneceram os dados originais que eles usaram.

Na realidade, eu acabei de criar esta imagem, só para mostrar aqui no post como georreferenciar. Eu criei um mapa “bagunçado” e bem colorido, que também inclui uma legenda. Também optei por representar as coordenadas em UTM, e apenas marcações em vez de grades, o que tornará essa figura especialmente complicada de georreferenciar. Eu fiz isso de propósito.

Se você quiser, pode baixar o mapa a seguir, para treinar como fazer o procedimento de georreferenciamento no QGIS.

map used for this example

Como geolocalizar este mapa no QGIS 3.18

No QGIS, clique em raster e em seguida em Georeferencer

qgis georeferencer

Esta janela deve abrir:

qgis georeferencer

Clique em Open Raster e carregue a imagem a ser georreferenciada.

georeferencer open raster qgis georeferencer

Seu cursor deve ser um “sinal de mais” quando você passar o mouse sobre a imagem. Caso contrário, clique no botão “Add Point”.

Em seguida, você deve clicar em locais da imagem cujas coordenadas você conhece.

A menos que não haja nenhum… Normalmente, escolheríamos lugares onde as grades de coordenadas se encontram, porque nesses locais, sabemos as coordenadas exatas.

No entanto, como a grade foi desativada e apenas os marcadores (ticks) foram mantidos, é claro, isso fez o mapa ficar muito mais limpo visualmente, mas, por outro lado, tornou o nosso trabalho de georreferenciamento muito mais difícil, infelizmente!

Adicionar grades de coordenadas (grids) à imagem (se não houver)

Se não existem grades de coordenadas, desenhe-as você mesmo.

Infelizmente, isso precisa ser feito fora do QGIS.

Primeiro, faça uma cópia da imagem. Isso será útil mais tarde.

Em seguida, abra a cópia da imagem no editor de imagem de sua preferência. Vamos escolher o GIMP, porque é um software livre, e softwares livres são tema do meu blog. Mas se você estiver no Windows, pode usar o Paint para isso. Sem problemas.

Estou usando o GIMP 2.10. Minha versão está em português.

No GIMP, escolha a ferramenta de vetores.

gimp

Clique uma vez no marcador superior e uma vez no marcador inferior análogo.

map on gimp

Clique no terceiro botão, “Contornar vetor”

gimp

Clique em “Stroke”

gimp

Clique em qualquer outra ferramenta para ver o resultado e clique na ferramenta de vetores novamente.

Repita esse processo para quantas linhas desejar, pelo menos duas em cada direção.

gimp

Salve o arquivo sobrescrevendo o antigo

gimp

Selecione os pontos de interseção da grade e insira as coordenadas

E… de volta ao QGIS!

Abra a figura editada no QGIS Georeferencer.

Dê zoom nas interseções das grades de coordenadas.

qgis georeferencer zoom

Clique em “Add Points” e em seguida clique no local da interseção entre duas grades e escreva os valores e projeção em que as coordenadas são fornecidas.

qgis georeferencer

Você deve ver um pequeno marcador vermelho sobre o ponto selecionado, e agora este ponto está listado na tabela da parte de baixo.

qgis georeferencer table

Faça o mesmo para as outras interseções visíveis (no meu caso, três). A este ponto, a tabela se parece com isto:

qgis georeferencer table

Agora, preciso ajustar as configurações de georreferenciamento. Clico em Settings, Transformation Settings.

qgis georeferencer

Você deve ver uma caixa de diálogo como esta:

qgis georeferencer

Escolhi o tipo de transformação como Polynomial (polinomial) e o método de reamostragem como Linear, mas há muitas opções para escolher. Escolha seu sistema de coordenadas de destino (que não precisa ser o mesmo em que os pontos foram fornecidos). Preencha o caminho para o raster de saída e certifique-se de que a opção “Load in QGIS when done” está marcada. Clique OK.

Agora, na tabela, o Georreferencer deve ter preenchido as colunas dX, dY e Residual. Os resíduos devem, idealmente, ser os menores possíveis. Se forem números grandes, verifique se os pontos marcados estão bem localizados e tente escolher um tipo de transformação diferente nas configurações.

qgis georeferencer table

Clique no botão “Start Georeferencing”

qgis georeferencer

Após terminar, minimize o Georreferencer (não feche ele ainda), e vá para a janela principal do QGIS. A imagem georreferenciada deve estar no mapa. Verifique a localização da imagem no mapa.

A este ponto, você provavelmente está pensando que essas linhas que desenhei no GIMP podem fazer o mapa final ficar confuso, especialmente porque eu não desenhei todas as linhas de grade possíveis.

Mas existe alguma maneira de apagar essas linhas?

Sim.

Salve os pontos usados para georreferenciamento e depois use-os na figura original (opcional)

Maximize o QGIS Georeferencer.

Clique em “File, Save GCP Points as…”

qgis georeferencer

E salve os pontos.

Em seguida, em “File, Open Raster…” carregue a imagem original. Então, clique em “File, Load GCP Points…” e carregue os pontos que você recém salvou.

Vá para “Settings, Transformation Settings” e escolha o nome e o caminho do arquivo de saída.

Finalmente, clique no botão “Start Georeferencing” para rodar o Georeferencer.

qgis georeferencer

E não se preocupe com esses pontos vermelhos nos lugares onde seus pontos costumavam estar - eles não são impressos no seu mapa final do Print Layout.

Edite a figura no GIMP antes de fazer a geolocalização (opcional)

E se o que você realmente quer é a localização do polígono verde? Como você pode excluir todo o resto, como, por exemplo, o raster em segundo plano?

Além disso, a simbologia, as grades de coordenadas, tudo isso pode ser incômodo de ver no projeto final.

O que você pode fazer para isso é pré-editar seu raster no GIMP.

Abra o GIMP e use o balde de tinta e o pincel para pintar todo o resto de branco, deixando apenas o polígono. Salve a figura sobrescrevendo, com o mesmo tamanho e dimensões do arquivo antigo (isso é importante!). Feche o GIMP.

qgis georeferencer qgis georeferencer

Abra o QGIS Georeferencer novamente. Faça o mesmo processo que você fez para a figura sem grades. Carregue a figura, carregue os pontos, escolha o nome da saída e clique em Start Georeferencing.

Agora, deve ser possível ver o polígono georeferenciado na janela principal do QGIS 3.18.

qgis georeferencer

Altere a simbologia da nova camada georreferenciada (opcional)

E se eu não quero que o polígono raster que acabei de gerar seja verde? E se eu quero que ele seja vermelho?

Dá para arrumar isso.

As imagens georreferenciadas são criadas como rasters multibanda, com três bandas: Vermelho, Verde e Azul (RGB). Ajustar qual é mostrado como qual e quanto de cada um aparecerá pode ajudá-lo a trocar verde por vermelho.

Clique com o botão direito na camada e depois clique em Properties. Escolha Symbology no menu da esquerda.

Essa é a visualização padrão:

qgis georeferencer

Troque as bandas, deixando a banda verde (que você deseja usar) no lugar da banda vermelha.

qgis georeferencer

Diferentes tons de vermelho podem ser ajustados no menu “Color Rendering”, abaixo.

qgis georeferencer

Fazer o layer adicionado ter fundo transparente (opcional)

Você pode definir o branco como uma cor de transparência. Clicando com o botão direito sobre a camada, escolha Properties, Transparency.

Clique no sinal de mais para adicionar valores de transparência.

qgis georeferencer

Preencha as colunas Red, Green e Blue com o valor 255, e clique em Apply

qgis symbology

Agora, o que estava atrás da sua camada georeferenciada começa a aparecer.

qgis vector over raster

Porém, tem umas bordas brancas bem visíveis. Isso são pixels que não são vermelhos, mas também não são totalmente brancos. Eles provavelmente foram criados por uma técnica de anti-aliasing de um dos softwares usados. Para setar esses pixels como transparentes, uma possibilidade é usar “Add Values from display” localizado logo abaixo de “Add values manually” (o sinal “de mais”) para adicionar os valores de cada pixel à tabela. Isso provavelmente levará muito tempo, mas o resultado geralmente é bom.

Outra possibilidade é vetorizar esse polígono, que algum dia foi um vetor, no software de geoprocessamento de alguém.

Procure a ferramenta “Polygonize” na Processing Toolbox.

qgis polygonize

Escolha a banda de acordo com a cor original da figura. No meu caso, pode ser qualquer uma das bandas.

qgis polygonize

Obtive isso:

qgis polygonize

Selecione o polígono que você quer salvar.

qgis select polygon

Clique com o botão direito no layer e em seguida em “Export, Save Selected Features as”

qgis select polygon

Pronto! Você extraiu o polígono com sucesso.

qgis polygonize

Extras

OK, mas esse polígono que eu gerei está no lugar certo?

Depende da qualidade da imagem inicial. Quanto melhor for a qualidade, melhor será o resultado.

Como, para o meu exemplo, eu tenho o polígono original e o polígono gerado por esse processo, posso comparar os dois.

Sem ampliá-los, não é possível ver nenhuma diferença:

qgis polygonize

Dando zoom, a diferença fica aparente, e podemos medi-la.

qgis polygonize

O tamanho do pixel do raster original era de aproximadamente 1 grau, que é um pixel grande. Ao projetar o raster original para UTM, o tamanho do pixel resultante foi de 1029,42 m.

407,97 / 1029,42 = 39,6% de um pixel. Porém, dependendo do local medido, essa diferença pode ser ainda maior. Portanto, é preciso tomar cuidado, pois a possível utilidade do shapefile gerado depende da sua aplicação e do nível de precisão que você necessita.

Luísa Vieira Lucchese
Luísa Vieira Lucchese
Pós-doutoranda

Pós-doutoranda na Universidade de Pittsburgh

Relacionados