FAQ
<-- Voltar à página hierarquicamente anterior
FAQ
QGIS
Que versão do QGIS deve ser utilizada?
- Para fazer trabalho sério deve-se sempre usar a versão do QGIS mais estável, que é a que estiver marcada como sendo LTR (Long Term Release), que à data é a versão 3.16, podendo-se e devendo-se atualizar para a última versão da série 3.16.x que existir no momento (à data é a 3.16.14), já que só corrige bugs que tenham entretanto sido detetadas não possuindo novas funcionalidades que a possam tornar mais instável (ver bugs corrigidas entre a versão 3.16.5 e a versão 3.16.13)
- Pode-se ver quais são as últimas versões do QGIS indo ao site qgis.org
- Se não for importante o trabalho que estamos a realizar pode-se usar a versão do QGIS mais recente, que à data é a 3.22.1 (para ver o que cada versão do QGIS suporta usar o QGIS visual changelog
- É possível ter mais do que uma versão do QGIS instalada lado a lado no computador, se isso for feito é importante ter a certeza de qual é a versão que estamos a usar (ver o menu "Ajuda / Sobre")
- Periodicamente deve-se igualmente verificar se existiu alguma atualização dos módulos instalados (por exemplo do módulo "QuickMapServices"), para isso ir ao menu "Módulos / Gerir e instalar módulos...", selecionar a aba lateral "Instalados", e selecionar um a um os módulos instalados, se aparecer em baixo à direita o botão "Atualizar módulo" (em vez de aparecer "Reinstalar módulo") então ver no texto qual é a "Versão instalada" e qual é a "Available version (stable)" e premir o botão "Atualizar módulo"
Como voltar a colocar o QGIS como estava logo a seguir a ter sido instalado?
No caso de algo que se fez ao nível do interface do QGIS estar a dar problemas (ou não se conseguir encontrar algo ou valores por omissão terem sido alterados), em vez de se desinstalar e voltar a instalar o QGIS pode-se fazer o seguinte:
- Menu "Configurações / Opções / Sistema / Configurações : Repor interface do utilizador nas configurações iniciais (é necessário reiniciar)" e clicar na seta do ícone que se encontra na extrema direita
- Aparece a mensagem a dizer "Tem a certeza que quer reverter a interface do Utilizador para o seu estado original? (é necessário reiniciar)", selecionar OK
- Reiniciar o QGIS
Note-se que os módulos que estavam instalados são mantidos tal e qual se encontravam.
Quer o menu "Processamento" quer o ícone mais à direita ("Selecionar por localização", trata-se do 4º ícone) do "Selection toolbar" podem desaparecer do interface do QGIS. Isso acontece se o módulo "Processing" estiver desativado, esse módulo é desativado automaticamente quando se arranca o QGIS a seguir a uma operação que originou um crash do QGIS enquanto um algoritmo do módulo "Processing" estava a ser executado, isso é um problema que é frequente acontecer porque esse módulo possui muitos algorimos, alguns deles bastante complexos, pelo que existe um risco acrescido do QGIS dar erro e terminar o seu funcionamento ao executar um desses algoritmos. A solução é voltar a ativar o módulo "Processing", para isso usar o menu "Módulos / Gerir e instalar módulos...", escolher a aba "Instalados" e ativar a checkbox do módulo "Processing" (esse módulo não pode ser desinstalado mas pode ser desativado e isso é feito automaticamente a seguir a alguns crashes).
Como é que se pode obter acesso rápido a uma pasta com projetos? (favoritos)
Basta adicionar essa pasta aos favoritos. Usando o Navegador do QGIS ir até essa pasta e depois clicar com o botão da direita do rato e selecionar "Adicionar como Favorito". A partir daí basta procurar essa pasta nos "Favoritos" (lista que aparece no topo do Navegador). Isto é especialmente relevante quando se está a usar um caminho muito longo que demoraria algum tempo a navegar, pasta a pasta, até ele.
Como é que se configura o QGIS para estar em português ou inglês?
Menu "Configurações / Opções" aba "Geral" logo no topo "Tradução" e escolher entre "American English" ou "português europeu", sendo a seguir necessário fechar o programa QGIS e voltar a abri-lo. Note-se que é mais fácil encontrar informação em inglês sobre o QGIS (quer na internet quer em livros), pelo que pode fazer sentido temporariamente mudar o interface para inglês quando se está a seguir um tutorial ou a tentar perceber qual é o equivalente português de um dado algoritmo em inglês (em inglês vê-se onde é que está, e depois muda-se de novo para português e navega-se até ao mesmo local).
Gestão de dados
Como é que se deve iniciar e organizar um projeto QGIS?
- Criar uma pasta/diretório num local apropriado e dar-lhe um nome apropriado ao objetivo, por exemplo "XYZ"
- Criar nessa pasta subpastas chamadas "dados_input", "dados_output" e "resultados"
- Colocar os dados base (input) na pasta "dados", se se tratar de shapefiles colocar os ficheiros de cada shapefile numa subpasta separada dentro da pasta "dados", se se tratar de geopackages colocar o ficheiro de cada geopackage na pasta "dados"
- Criar um projeto QGIS vazio e configurar o SRC do projeto (menu "Projeto / Propriedades / SRC") para ser "EPSG: 3763 (ETRS89/ PT-TM06)"
- Gravar o projeto vazio dentro da pasta "XYZ" e dar-lhe o nome por exemplo de "XYZ.qgz"
- Usando o painel do "Navegador" que normalmente aparece do lado esquerdo navegar até à subpasta "dados" e adicionar ao painel das "camadas" os dados relevantes (camadas vetoriais ou camadas matriciais/raster)
- Gravar o projeto
- Fechar o projeto (não vale a pena sair do QGIS) e voltar a abri-lo usando "Projeto / Abrir recente", dessa forma verifica-se que se tem tudo em ordem
- Daqui para a frente pode-se trabalhar normalmente, as camadas criadas no âmbito do projeto devem ser gravadas na pasta "XYZ", devendo-se sempre que possível gravar essas camadas numa única geopackage já que é esse o formato aconselhado. Como uma geopackage é uma base de dados que pode ter muitas camadas sugere-se que se grave tudo o que se fizer na mesma geopackage chamada por exemplo "XYZ.gpkg" (evitar gravar camadas como shapefiles embora isso possa ser feito)
- Não deixar passar muito tempo sem se gravar o projeto e sem se gravar camadas temporárias, gravar camadas temporárias na geopackage do projeto (a não ser que exista uma boa razão para se usar "ESRI shapefiles")
- Exportações em formato PDF, JPG ou PNG devem ser colocadas na pasta "resultados"
- Se se quiser levar o projeto para trabalhar em casa noutro computador ou se quiser enviar o projeto para alguém basta fazer um ZIP com o conteúdo da pasta "XYZ", à partida todo o material necessário encontra-se lá dentro. Sugere-se que se adicione o sufixo "-aaaammdd" com a data a esse ZIP (se houver mais do que um ZIP criado no mesmo dia pode-se usar "-aaaammdd-hhmm")
- Em resumo, a pasta "XYZ" contém:
- O projeto QGIS "XYZ.qgz"
- A subpasta "dados_input" com o material de base (input)
- A subpasta "dados_output" com as camadas criadas no âmbito do projeto (preferencialmente geopackage mas pode ser shapefile)
- A subpasta "resultados" com os outputs produzidos pelo projeto (por exemplo PDFs e imagens)
- A geopackage "XYZ.gpkg" com as camadas criadas no âmbito do projeto
- Evitar usar caracteres acentuados ou cedilhas ou espaços nos nomes dos ficheiros e nos nomes das camadas ou nomes dos campos, isso já não é um problema nos valores propriamente ditos ou nos textos das legendas
Como é que se deve copiar um projeto QGIS para por exemplo levar para casa?
- Assumindo que se seguiu a organização referenciada nesta FAQ (ver questão "Como é que se deve iniciar e organizar um projeto QGIS?") então basta criar um ZIP da pasta base do projeto
- No destino descomprime-se o ZIP num local apropriado
- Arranca-se com o QGIS e a seguir abre-se o ficheiro de projeto que se encontra na pasta descomprimida
- Quando se terminar volta-se a criar um novo ZIP da mesma forma que anteriormente
- O uso do sufixo "*-aaaammdd.zip" ou "*-aaaammdd-hhmm.zip" ajuda bastante a que não se use por engano o ficheiro ZIP errado (obsoleto)
O que é que acontece se se gravar o projeto mas não se gravar uma camada temporária?
- Se o projeto for gravado mas uma ou mais camadas temporárias não tiverem sido gravadas aparece um aviso quando se tenta fechar o QGIS, se esse aviso for ignorado o conteúdo dessas camadas é perdido (passam a ter zero itens) embora as camadas propriamente ditas (isto é, o seu nome) sejam mantidas no projeto e apareçam como camadas temporárias quando se volta a abrir o projeto. Mas na realidade esses dados estão perdidos para sempre
- Se isso acontecer (camadas temporárias que ficaram com zero itens) o melhor é a seguir apagá-las do projeto e voltar a criá-las
- Para evitar que isso aconteça, à medida que vão sendo criadas camadas temporárias que se quer tornar permanentes elas devem ser gravadas (por exemplo numa geopackage)
Como é que se tem a certeza que tudo no projeto está gravado?
- É importante ter tudo gravado, não só periodicamente como também antes de se tentar correr um algoritmo que pelas suas características possa causar um crash do QGIS (ou possa demorar tempo demasiado a executar pelo que podemos ter de o abortar o que normalmente causa um crash do QGIS)
- Só se tem tudo gravado quando o projeto está gravado (só grava o nome e a referência para as camadas, não grava os dados propriamente ditos) e ao mesmo tempo todas as camadas temporárias estão gravadas e quaisquer edições efetuadas nas tabela de atributos ou nas geometrias de camadas vetoriais (por exemplo edição de vértices) foram gravadas
- Como às vezes não é óbvio saber se está tudo gravado uma boa validação é:
- Gravar uma a uma todas as camadas temporárias que nos interessam (se alguma não interessar então deve ser apagada)
- Quando todas as camadas temporárias deixaram de o ser (porque foram apagadas ou transformadas em camadas permanentes) deve-se gravar o projeto
- Tentar a seguir fechar o projeto, se pedir para gravar qualquer coisa avaliar se se quer ou não gravar essa coisa, eventualmente consegue-se fechar o projeto
- Voltar a abrir o projeto
Edição
Como é que se adiciona a um projeto atributos pertencentes a um ficheiro Excel ou CSV?
- Numa camada já existente no projeto identificar um campo que possa servir para ligar com um campo do ficheiro Excel ou CSV (normalmente é um código)
- Usando o "navegador" adicionar o ficheiro Excel ou CSV da mesma forma que se adiciona qualquer outra camada
- Duplo click sobre a camada já existente no projeto que vai ficar com os atributos do ficheiro Excel/CSV, selecionar do lado esquerdo "Uniões", clicar no sinal "+" em baixo, na "Camada a unir" selecionar o ficheiro Excel/CSV, no "Unir campo" colocar o campo do ficheiro Excel/CSV que permite ligar (normalmente é um código), no "Campo alvo" selecionar o campo que nesta camada tem o mesmo valor que o código do campo do ficheiro Excel/CSV, a seguir sugere-se que se ative a checkbox do "Prefixo personalizado do nome do campo" e que se coloque como prefixo um nome bastante curto, por exemplo "xls_"
- Atenção que dados importados de um CSV irão ser interpretados como texto, portanto se se pretende que sejam interpretados como números existem 2 hipóteses:
- Ou se cria um novo campo (virtual) do tipo "Número inteiro (integer)" ou "Número decimal (real)" e se coloca na expressão uma referência para o campo de texto
- Ou se abre o ficheiro CSV no Excel e se grava como Excel e depois o que se adiciona ao QGIS é esse ficheiro Excel
Como é que se adiciona à tabela de atributos de uma camada um novo campo?
- Abrir a tabela de atributos (clicando com o botão direito do rato sobre o nome da camada)
- Selecionar o ícone do Ábaco (é o 4º ícone contando a partir do lado esquerdo)
- Se se quiser que o campo não seja armazenado no disco mas sim recalculado de cada vez que é necessário (equivalente a uma fórmula num ficheiro Excel) então deve-se selecionar a checkbox "Criar campo virtual"
- Atenção que os valores de um campo não virtual são calculados no momento em que a operação de criação de um novo campo termina, isso significa que se por exemplo o campo representar uma área e se depois mais tarde se alterar a geometria pelo que a área modifica-se o valor do campo não se altera (não é atualizado)
Como é que se desenha uma camada vetorial (com por exemplo os contornos de um edifício) usando como base informação já existente?
- Tornar visível a camada que mostra os contornos e localização da informação de base que se quer reproduzir numa nova camada vetorial
- Criar uma nova camada vetorial usando o menu "Camada / Criar camada / Nova camada Geopackage" ou "Camada / Criar camada / Nova camada Shapefile", atenção que os tipos de geometria suportadas por ambos os formatos não são as mesmas:
- Shapefile suporta: Sem geometria, Ponto, Multi-ponto, Linha, Polígono
- Geopackage suporta: Sem geometria, Ponto, Multi-ponto, Linha, Polígono, Multilinha, Multi-polígono, CurvaComposta, PolígonoCurva, CurvaMúltipla, MultiSuperfície
- Escolher o nome do ficheiro premindo as reticências
- No caso da shapefile o nome do ficheiro é igual ao nome da camada, no caso de uma geopackage (visto que é uma base de dados que pode ter múltiplas camadas) é necessário escolher o nome da camada (coloca-se esse nome no "nome da tabela")
- Escolher o tipo de geometria (provavelmente quer-se escolher polígono se se quer desenhar polígonos)
- Escolher o sistema de coordenadas (provavelmente "EPSG:3763 ETRS89 / Portugal TM06")
- Definir, um a um, os campos que devem aparecer na tabela de atributos (por exemplo um campo do tipo número inteiro chamado
codigo
, um campo do tipo campo de texto chamadonome
, um campo do tipo campo de texto chamadotipo
(onde se irá colocar por exemplo Escola, Hospital, etc.)- Escolher o nome do campo
- Escolher o tipo do campo
- Premir o botão "Adicionar à lista de campos"
- Note-se que por omissão a tabela de campos já tem um campo chamado
id
que é do tipo número inteiro com 10 dígitos, se não o quisermos podemos premir "Remover campo" - Quando todos os campos tiverem sido adicionados premir OK para criar a camada com essa geometria e essa tabela de atributos
- Verificar que o painel "Barra de Digitalização" está ativo
- Nesse painel clicar no ícone do lápis ("Alternar Edição") para ativar a edição
- Assumindo que se quer adicionar um polígono premir o ícone com uma espécie de um lago verde ("Adicionar Polígono"), a seguir ir clicando no mapa para adicionar um vértice do polígono, cada click origina um novo vértice, para terminar clicar com o botão direito do rato, irá a seguir aparecer uma janela onde se preenche o valor dos atributos que devem ser associados a esse polígono (assumindo que se escolheu os nomes dados como exemplo acima será
codigo, nome, tipo
). Atenção que se não premirmos OK nessa janela (isto é, se premirmos o botão "Cancel") o desenho vetorial que acabamos de fazer irá ser perdido. Para polígonos complexos sugere-se começar por fazer um polígono aproximado, gravar, e depois editar e melhorar esse polígono (ver abaixo). - Normalmente vale a pena ajustar o nível de transparência da camada (duplo click sobre o nome da camada, selecionar "Simbologia" e na "Opacidade" reduzir para 40%) para se poder ver o que está por baixo
- Para guardar o que se esteve a fazer premir o ícone com os 2 lápis ("Edições atuais") e selecionar "Guardar para a(s) Camada(s) Selecionada(s)"
- Se se quiser alterar um polígono já existente (ou acabado de criar) usa-se o ícone "Ferramenta de vértice" que se encontra logo à direita do usado para criar o polígono, a seguir pode-se:
- MOVER VÉRTICE: clicar num vértice para o selecionar e a seguir clicar noutro local para que o vértice seja movido para esse novo local
- MOVER LINHA: clicar numa das linhas e a seguir clicar no novo local para que a linha e os seus 2 vértices seja movida para esse novo local
- ADICIONAR VÉRTICE: clicar no ponto a meio da linha e a seguir clicar num novo local para que a linha seja partida em 2 segmentos que vão ligar a esse novo local
- REMOVER VÉRTICE: clicar num vértice e premir a tecla DEL (delete)
Para terminar premir o ícone com os 2 lápis ("Edições atuais") e selecionar "Guardar para a(s) Camada(s) Selecionada(s)"
Como é que se corrige um erro de geometria inválida?
Sempre que é reportado um erro de geometria inválida (ver também estes exemplos gráficos) deve-se tentar resolver esse erro visto que alguns algoritmos podem funcionar incorretamente ou recusar-se a executar se a geometria for inválida. Apresentam-se aqui 2 possíveis soluções e a forma como se pode comparar as geometrias originais e as geometrias resultantes da aplicação dos 2 algoritmos.
- Uma das causas possíveis para este tipo de erro é ao se desenhar um polígono criar-se intersecções entre as linhas do polígono
- Assumindo que não temos demasiados polígonos na camada, para identificar que polígonos podem ter problemas de geometria uma solução é usar a ferramenta disponível no menu "Processamento / Ferramentas de processamento / Criação de vetor / Pontos aleatórios dentro de polígonos", mandar gerar por exemplo 1000 pontos, verificar que a primeira execução do algoritmo dá erro devido a problemas de geometria, e a seguir alterar as opções do algoritmo de modo a este ignorar geometrias inválidas (Opções avançadas / Invalid features filtering / Skip (ignore) Features with Invalid Geometries") e mandar executar de novo, desta vez deve funcionar e os 1000 pontos devem estar localizados dentro dos polígonos que têm geometrias válidas
- Para resolver o problema tentar em primeiro lugar executar o algoritmo "Corrigir geometrias (fix geometries)" que se encontra disponível no menu "Processamento / Ferramentas de processamento / Geometria vetorial / Corrigir geometrias", esse algoritmo encontra-se documentado em QGIS fix geometries docs
- Assumindo que o algoritmo de corrigir a geometria funcionou, para ver as diferenças nos vértices e nas áreas entre a camada com geometria inválida e a camada com geometria válida fazer o seguinte:
- Adicionar à camada com geometria inválida um campo virtual
AreaInvalida
com o valor$area
- Adicionar à camada com geometria válida um campo virtual
AreaOK
com o valor$area
- Estando selecionada a camada com geometria inválida executar o menu "Vetor / Ferramentas de geometria / extrair vértices", alterar o nome da camada temporária resultante para
VerticesErrados
- Estando selecionada a camada com geometria válida executar o menu "Vetor / Ferramentas de geometria / extrair vértices", alterar o nome da camada temporária resultante para
VerticesOK
- Abrir as tabelas de atributos de cada uma das camadas e deixar ambas abertas, mandar ordenar cada uma das tabelas pelo código único que tiver (por exemplo
id
) - Navegar até ao(s) polígono(s) com geometria(s) inválida(s) e ver a ordem dos vértices e a área correspondente, as áreas devem ser iguais exceto para aqueles polígonos cuja geometria foi corrigida, ao se corrigir a geometria o número de vértices pode aumentar (prestar especial atenção ao campo
vertex_index
).
Se quisermos ver que vértices foram adicionados (por exemplo será adicionado um novo vértice na interseção das linhas) usar a ferramenta de edição de vértices (painel "Barra de Digitalização", clicar no 2º ícone a contar da esquerda para ativar a edição, a seguir clicar no 5º ícone para editar os vértices, clicar a seguir nos vértices para os selecionar)
- Adicionar à camada com geometria inválida um campo virtual
- Uma solução alternativa, que elimina a parte do polígono com problemas de geometria (em vez de tentar criar um novo polígono o mais parecido possível com o original) é usar o menu "Vetor / Ferramentas de geoprocessamento / Buffer" e mudar a distância para zero metros, a seguir comparar o resultado obtido com o que se encontra na camada que tem a geometria inválida
- Para ver as diferenças obtidas com ambas as soluções, usar o menu "Vetor / Ferramentas de geoprocessamento / Diferença" e escolher para primeira camada a resultante de "fix geometries" e para segunda camada a resultante de "buffer" com distância zero.
NOTA: O algoritmo "Diferença" é muito sensível à ordem de execução das operações, se estivermos a comparar uma camada com geometrias inválidas com a camada obtida usando o algoritmo "fix geometries" então temos de fazer o seguinte:- Colocar em primeiro lugar (camada de entrada) a camada com a geometria corrigida
- Colocar em segundo lugar (camada de sobreposição) a camada com a geometria inválida
- Executar o algoritmo, deve dar erro devido à geometria inválida
- Limpar o registo (log) da execução (para não confundir), na camada de sobreposição (2ª camada) selecionar a ferramenta e escolher "Skip (ignore) Features with Invalid Geometries", e voltar a executar o algoritmo, desta vez deve dar um aviso (warning) mas deve executar sem dar erro
Isto acontece porque o algoritmo diferença dá como resultado as geometrias da camada de entrada que caiem fora ou só se sobrepõem parcialmente com as geometrias da camada de sobreposição, portanto se usarmos as camadas na ordem errada o resultado vai ser uma camada vazia.
Como é que se cria uma nova camada vetorial completamente a partir do zero?
- Menu "Camada / Criar camada / Nova camada GeoPackage" ou "Nova camada Shapefile" (sugere-se que não se crie uma nova camada temporária porque o tipo de geometria que se vai conseguir guardar irá depender do formato de armazenamento que se vier a escolher, para evitar problemas é preferível escolher o formato de gravação no momento em que se cria a camada)
- Escolher o "Tipo de geometria" (atenção que as Shapefiles só suportam estes 5 tipos de geometria: Sem geometria, Ponto, Multi-ponto, Linha, Polígono):
- Sem geometria: se se pretende somente uma tabela de atributos que seja equivalente a se importar um ficheiro CSV / Excel
- Ponto: cada item da tabela de atributos irá ter associado as coordenadas de 1 ponto
- Linha: cada item da tabela de atributos irá ter associado as coordenadas de 1 linha (na prática a linha pode ser quebrada, isto é, incluir vários segmentos de reta ligados entre si)
- Polígono: cada item da tabela de atributos irá ter associado um polígono (um polígono é topologicamente fechado, pode ter zero ou mais buracos no seu interior, a partir de qualquer ponto no interior de um polígono pode-se navegar até qualquer outro ponto do polígono sem se chegar a sair do interior do polígono)
- Multi-ponto: cada item da tabela de atributos irá ter associado as coordenadas de 1 ou mais pontos
- Multi-linha: cada item da tabela de atributos irá ter associado uma ou mais linhas (em que cada uma das linhas, conforme referenciado acima, pode consistir em vários segmentos de reta ligados entre si)
- Multi-polígono: cada item da tabela de atributos irá ter associado um ou mais polígonos
- CurvaComposta: ...
- PolígonoCurva: ...
- CurvaMúltipla: ...
- MultiSuperfície: ...
- Escolher os campos que se quer que existam na tabela de atributos. Para cada um deles dizer o seu nome, tipo, características de comprimento e precisão se aplicável e a seguir premir "Adicionar à lista de campos". Só quando se tiver acabado de adicionar os campos que se quer é que se pode premir "OK" para que a camada seja criada com essa geometria e lista de campos da tabela de atributos
- Usar a "Barra de Digitalização" para adicionar pontos, linhas ou polígonos.
- Se quisermos adicionar um multi-polígono ou adicionar buracos a um polígono temos de usar a seguinte técnica relativamente complexa:
- Desenhar o primeiro polígono, ao terminar o primeiro polígono (clicar com o botão direito do rato) vai-se ter de preencher a tabela de atributos com os valores dos campos que tiverem sido definidos
- Voltar a selecionar o polígono acabado de desenhar (por exemplo usando o 1º ícone da "Selection toolbar" que permite selecionar os polígonos que estejam dentro de um retângulo)
- Ativar a "Barra de digitalização avançada", se quisermos adicionar um buraco escolher "Adicionar Anel", se quisermos adicionar um segundo polígono escolher "Adicionar Parte" (desta forma pode-se adicionar não só um segundo mas também um terceiro ou quarto polígonos ao mesmo item)
- Se quisermos adicionar um multi-ponto fazer como foi descrito acima para o multi-polígono e usar "Adicionar Parte" para adicionar ao mesmo item tantos pontos quantos se quiser, para terminar premir o ícone do "duplo lápis" que permite guardar as alterações efetuadas
- Para verificar que a geometria ficou como se pretendia abrir a tabela de atributos e clicar no canto mais à esquerda da linha para selecionar a linha toda, a geometria correspondente irá aparecer selecionada (a amarelo) no mapa (pode ser necessário mudar a janela da tabela de atributos de sítio para se poder ver a geometria correspondente)
Como é que se corrige o erro de se ter gravado uma camada temporária no ficheiro errado?
Assumindo que se gravou por engano uma camada temporária numa shapefile e se quer mudar para se gravar num geopackage (atenção que se se gravou uma camada temporária num ficheiro Excel a geometria foi perdida e não pode ser recuperada):
- Selecionar a camada, duplo click seguido de selecionar a aba "informação" para verificar que a camada está guardada num local que não nos interessa, a seguir premir ESC para fechar a janela
- Clicar com o botão da direita do rato no nome da camada, "Exportar / Guardar elementos como" e a seguir escolher:
- Formato: GeoPackage
- Nome do ficheiro: clicar nas reticências e escolher a geopackage correta
- Nome da camada: colocar preferencialmente o mesmo nome que a camada tem no projeto
- SRC: verificar que está o correto
- Agora existem 2 opções, qualquer uma delas pode ser usada:
- Antes de premir OK desselecionar em baixo ao lado do botão "Cancel" a opção "Adicionar ficheiro guardado ao mapa" e só depois premir OK para gravar no novo formato, a seguir clicar com o botão da direita na camada e selecionar "Alterar fonte de dados..." e escolher o ficheiro geopackage que contém a camada acabada de criar
- Premir OK, a camada acabada de criar é adicionada ao projeto com "o nome do ficheiro seguido de um espaço seguido do nome da camada", apagar a camada antiga e alterar o nome da camada nova para ser só o nome da camada
- Selecionar a camada, duplo click seguido de selecionar a aba "informação" para verificar que a camada está guardada no local que nos interessa, a seguir premir ESC para fechar a janela
Como é que se trabalha com somente uma parte dos dados de uma camada sem criar uma camada nova?
Criando um filtro sobre a camada. Isto cria uma vista sobre os dados que só permite ver e trabalhar com um subconjunto dos dados completos da camada, enquanto o filtro estiver ativo é como se a camada só tivesse esses dados.
- Selecionar a camada e a seguir fazer duplo click e selecionar a aba "Fonte"
- Para tornar mais rápido o trabalho vale a pena (se ainda não existir) mandar criar um índice espacial sobre a geometria de modo a acelerar as consultas, para isso premir o botão "Criar Índice Espacial" no meio à esquerda abaixo da palavra "Geometry"
- Em baixo à direita premir o botão "Construtor de consultas" (query builder)
- Criar o filtro usando os nomes dos campos, os valores e os operadores
- Usar o botão "Testar" para ver uma mensagem com a informação de quantos itens ficam selecionados quando se aplica o filtro
- Premir o botão "OK"
Quando um filtro é aplicado, o QGIS trata o subconjunto resultante como se fosse a camada inteira. Por exemplo, se o filtro foi tal que sobre o concelho de Cinfães somente a freguesia de Nespereira foi selecionada, então não se pode ver, consultar, gravar ou editar as restantes freguesias de Cinfães.
Enquanto o filtro estiver ativo aparece um ícone de um filtro à direita na linha com o nome da camada. Para remover o filtro premir esse ícone, o que abre a janela do "Construtor de consultas" (query builder), apagar a expressão e premir "OK".
Algoritmos
Ver também Algoritmos
Qual é a diferença entre o algoritmo Recortar (clip) e o algoritmo Interseção (Intersect)?
Estes 2 algoritmos são muito parecidos pelo que em muitos casos é indiferente qual deles se deve usar. A principal diferença está nos atributos que irão aparecer no resultado. Quando se executa o algoritmo Recortar apenas os atributos da camada de entrada irão ser colocados na camada resultado. Quando se executa o algoritmo Interseção os atributos de ambas as camadas, a camada de entrada e a camada de sobreposição, irão aparecer na camada de saída.
Como é que de uma forma eficiente se seleciona elementos que necessitam de verificar múltiplas condições de localização?
Começar por garantir que nada está selecionado usando "Remover seleção de Elementos em Todas as Camadas". A seguir, em vez de se usar repetidamente "Selecionar por localização", criando uma camada temporária de cada vez, pode-se usar "Selecionar por localização" mas em vez de preencher os parâmetros (como normalmente se faria se se tratasse de uma única operação de selecionar por localização) premir "Executar como processamento em série..." em baixo à esquerda, e depois:
- Na tabela preencher os campos das colunas "Selecionar elementos de" (a camada de onde se quer selecionar elementos), "Where the features (geometric predicate)" (tipo de operação geométrica), "Ao comparar com os elementos de" (camada com a qual se vai comparar de acordo com essa operação geométrica), "Alterar seleção atual por" (o que se quer fazer à seleção)
- Usar "+" para adicionar tantas linhas quantas as necessárias
- Na primeira linha na coluna "Alterar seleção atual por" escolher "a criar uma nova seleção" mas nas linhas a seguir escolher, conforme for apropriado, "adicionar à seleção atual", "a selecionar dentro da seleção atual", ou "remover da seleção atual" (nas linhas 2 e seguintes não se pode escolher "a criar uma nova seleção" porque isso destruiria o trabalho realizado nas linhas anteriores)
A parte mais importante do raciocínio do que se pretende fazer é o que se coloca na última coluna (isto é, o que é que em cada linha se está a tentar fazer à seleção resultante da operação feita na linha anterior).
Como é que se obtém os polígonos que envolvem equipamentos e conjuntos de edifícios com mais de "n" m2 de área que não distam mais de "x" metros uns dos outros, eliminando buracos com menos de "y" m2?
Neste exemplo assume-se a existência de 5 camadas (edificios, equipamentos_tipo1, equipamentos_tipo2, equipamentos_tipo3 e infraestruturas), assume-se igualmente que elementos não relevantes (por exemplo edificado temporário) já foram removidos destas camadas:
- Na camada edificios usar selecionar por expressão com a expressão $area > n para obter a camada 01_edificios
- Usar o algoritmo Buffer (contorno exterior) para criar um buffer à volta dos edifícios, escolhendo como camada de entrada 01_edifícios, usando metade de x para a distância em metros, e ativando a checkbox "Resultado da agregação", dessa forma obtém-se como resultado um único item (uma única linha na tabela de atributos) numa camada a que se atribui o nome 02_Buffer
- Usar o algoritmo Múltiplas partes para partes únicas para converter esse registo único (1 item) que se encontra na tabela de atributos da camada 02_Buffer em tantos registos quantos os polígonos afastados uns dos outros (isto é, que não se tocam) que existam, desta forma obtendo-se a camada 03_Buffers com vários registos (várias linhas na tabela de atributos)
- Usar o algoritmo Juntar camadas vetoriais para combinar as camadas equipamentos_tipo1, equipamentos_tipo2, equipamentos_tipo3, dessa forma obtendo-se a camada 04_Equipamentos
- Usar o algoritmo Agregar sobre a camada 04_Equipamentos de modo a agregar todos os itens da camada de entrada criando uma nova camada com um único item que contém a geometria correspondente à agregação das geometrias dos itens originais, dessa forma obtendo-se a camada 05_EquipAgregados
- Usando o algoritmo Múltiplas partes para partes únicas converte-se o registo único (1 item) que se encontra na tabela de atributos da camada 05_EquipAgregados em tantos registos quantos os polígonos afastados uns dos outros (isto é, que não se tocam) que existam, desta forma obtendo-se a camada 06_Equipamentos com vários registos (várias linhas na tabela de atributos)
- Usar o algoritmo Juntar camadas vetoriais para combinar as camadas 03_Buffers e 06_Equipamentos, dessa forma obtendo-se a camada 07_ZonaConstruida
- Usar o algoritmo Agregar sobre a camada 07_ZonaConstruida de modo a agregar todos os itens da camada de entrada criando uma nova camada com um único item que contém a geometria correspondente à agregação das geometrias dos itens originais, dessa forma obtendo-se a camada 08_ZonaConstruida
- Usar o algoritmo Eliminar buracos para eliminar os buracos menores que "y" m2 da camada 08_ZonaConstruida dessa forma obtendo-se a camada 09_ZonaConstruida
- Usar o algoritmo Múltiplas partes para partes únicas para converter o registo único (1 item) que se encontra na tabela de atributos da camada 09_ZonaConstruida em tantos registos quantos os polígonos afastados uns dos outros (isto é, que não se tocam) que existam, desta forma obtendo-se a camada 10_ZonaConstruida com vários registos (várias linhas na tabela de atributos)
- Na camada 10_ZonaConstruida adicionar um novo campo do tipo número inteiro (integer 64 bit) chamado "oID" com a fórmula "$id", adicionar um novo campo do tipo número decimal (real) chamado "area_m2" com a fórmula "$area", e apagar todos os restantes campos porque contêm valores irrelevantes ou errados.
- A seguir alterar a simbologia para "categorizado" usando como valor "oID" e premir o botão "Classificar" para ficar com uma cor diferente para cada área que não se toca (não contígua).
- A seguir usar o algoritmo Juntar atributos por localização, tem de se adicionar os atributos da camada 10_ZonaConstruida à camada 01_Edificado pelo que a camada 01_Edificado tem de ser a "Camada base" e a camada 10_ZonaConstruida tem de ser o "Join Layer" (a camada com que se liga), usa-se o predicado geométrico "intersecta", nos campos a adicionar clicar nas reticências e adicionar somente o campo "oID", desta forma criando a camada 11_Edificios_oID.
- A seguir pode-se navegar no mapa no edificado de modo a ver que cada casa que pertença a uma mancha com a mesma cor tem o mesmo oID
- Gravar o projeto, fechar o projeto e voltar a abri-lo no QGIS, é importante fazer-se isso agora porque o algoritmo que se vai fazer a seguir num computador bom demora cerca de 2 minutos mas noutro computador pode demorar muito mais tempo ou até pode encravar o computador. Usar o algoritmo Envoltória côncava (vizinho k mais próximo) para obter um polígono que contorne cada aglomerado de edifícios. Escolher como camada de entrada a camada 11_Edificios_oID, usar 3 como número de pontos na vizinhança a considerar, e selecionar o campo "oID" de modo a criar envoltórias côncavas por classe, desta forma (passados alguns minutos) obtém-se a camada 12_ContornoEdificado.
Como é que se obtém os polígonos com uma dimensão superior a 5 hectares que representam um índice bruto de ocupação do solo superior a 0,1 m2/m2 ?
- Obter a envoltória côncava do edificado
- FIXME
Outputs
Como é que se obtém uma imagem de um mapa para colocar num relatório?
Se a única coisa que pretendemos é uma imagem do mapa tal e qual ele está basta fazer:
- Menu "Projeto / Importar - Exportar / Exportar mapa como imagem..."
- Escolher a escala e a resolução (por exemplo 300 dpi, 300 pontos por polegada que é o mesmo que dizer 12 pontos por milímetro, que é a resolução apropriada para impressão)
- A seguir ou premir o botão "Copiar para a área de transferência" ou premir o botão "Save", neste último caso a seguir é necessário escolher o formato da imagem, normalmente JPG ou PNG (o formato PNG origina um ficheiro maior mas normalmente as linhas finas aparecem com mais qualidade do que no formato JPG)
- Abrir o documento Word do relatório, inserir a imagem usando o menu "Inserir / Imagem"
Se pretendermos uma imagem mais sofisticada (com legenda, escala desenhada no mapa, marcação da direção do Norte, etc.) então devemos usar uma composição de impressão:
- Menu "Projeto / Nova composição de impressão"
- Escolher um nome apropriado para a composição de impressão, irá ficar aberta uma nova janela
- Na lista de ícones na vertical do lado esquerdo escolher "Adicionar Mapa" (sétimo ícone a contar de cima, para ver o nome do ícone parar durante alguns segundos o cursor sobre o ícone) e a seguir clicar na zona branca perto do canto superior esquerdo e arrastar de modo a desenhar um retângulo (não ocupar a folha toda se se pretender também adicionar uma legenda), o mapa irá aparecer dentro desse retângulo
- Na lista de ícones na vertical do lado esquerdo escolher "Adicionar Legenda" (décimo ícone a contar de cima) e a seguir clicar na zona branca não ocupada pelo mapa e arrastar de modo a desenhar um retângulo, a legenda irá aparecer dentro desse retângulo (embora possa sair dos limites se o retêngulo for pequeno demais). A seguir normalmente edita-se a legenda para ela ficar mais apropriada:
- Clicar na legenda para ela ficar selecionada
- No lado direito selecionar a aba "Propriedades do item"
- Remover a checkbox "Atualização automática", o que ativa um conjunto de botões abaixo
- Selecionar os itens da legenda que não interessa que apareçam clicando neles e a seguir premir o botão com o sinal de menos (-) para os remover
- Para alterar o texto de um dos itens da legenda fazer duplo click sobre ele e muda a janela de modo a podermos alterar o texto, seguidamente clicar na pequena seta que aparece acima de modo a voltarmos ao sítio onde estávamos
- Se quisermos que apareça uma escala então na lista de ícones na vertical do lado esquerdo escolher "Adicionar Barra de escala" (décimo primeiro ícone a contar de cima) e clicar e arrastar para que a escala fique desenhada sobre o mapa
- Se quisermos que apareça uma seta a indicar o Norte então na lista de ícones na vertical do lado esquerdo escolher "Adicionar Seta de norte" (décimo segundo ícone a contar de cima) e clicar e arrastar para que a seta fique desenhada sobre o mapa
- No menu escolher "Composição / Exportar como imagem...", pode aparecer uma mensagem sobre o uso de servidores WMS (fazer simplesmente "Close"), escolher o formato da imagem (normalmente JPG ou PNG), escolher a resolução de exportação (normalmente 300 dpi) e premir o botão "Save"
- No menu escolher "Composição / Fechar" de modo a fechar a janela de composição (note-se que mesmo sem fechar a janela de composição é possível ir para a janela principal do QGIS)
Como é que se obtém um PDF georreferenciado com camadas que podem ser ativadas/escondidas?
- Fazer da mesma forma que na questão relativa à exportação de imagens mas selecionar o formato PDF em vez do formato imagem
- Verificar que a opção GeospatialPDF (GeoPDF) está ativa
- No caso de se estar a criar uma composição (menu "Composição / Exportar como PDF..."), existe a opção de, após se escolher o nome do ficheiro PDF, no ecrã que aparece a seguir, para além de aí se ter de selecionar GeospatialPDF pode-se definir que camadas vão aparecer no PDF, a ordem dessas camadas, e se elas estão inicialmente visíveis
Como é que se cria um Atlas?
Assumindo que se quer fazer um atlas das freguesias de Cinfães e que temos carregado um projeto que contém a camada Cinfaes que contém um atributo chamado Freguesia com o nome da freguesia, então:
- Criar nova composição de impressão
- Clicar com o botão da direita sobre a folha vazia, selecionar "propriedades da página", permite alterar entre paisagem e retrato e permite escolher o tamanho da página (A4, A3 ou outro tamanho)
- Adicionar o mapa, e opcionalmente a seta do Norte, e a escala
- Adicionar texto no topo, no lado direito na "Aparência" escolher a Fonte (tipo de letra), nomeadamente o seu tamanho, e o alinhamento (esquerda, centro, direita, justificar)
- Verificar que na janela da composição o painel "Painel Atlas" está ativo, se não estiver ativá-lo da mesma forma que se ativam paineis e barras de ferramentas no QGIS (clicar com o botão da direita sobre uma área vazia à direita dos ícones das barras de ferramentas)
- No lado direito, nas abas "Composição / Propriedades do item / Guias / Atlas" escolher Atlas e ativar "Gerar um atlas"
- Na camada de cobertura escolher "Cinfaes"
- No "Nome da página" escolher "Freguesia"
- Clicar no mapa e a seguir ir à aba "Propriedades do item", selecionar a checkbox "Controlado por Atlas" e "escala predefinida"
- Selecionar a etiqueta, nas "Propriedades do item" escolher "Insira ou Edite a Expressão...", abre a janela para poder fornecer a expressão, em "campos e valores" escolher o campo "Freguesia" e fazer duplo click
- Clicar no ícone (ou selecionar no menu Atlas) "Pré-visualizar atlas" para ativar a navegação nas páginas, na barra de ferramentas usar as setas (ou o menu do Atlas que é o mais à direita na janela de composição) para navegar entre as páginas
- Menu Atlas / "Exportar atlas como PDF..." ou "Exportar Atlas como imagens..." (neste último caso selecionar ou não "Gerar world file") ou "Imprimir atlas..."
Como é que se cria um Atlas com mapa de enquadramento?
Fazer como explicado acima no item "Como é que se cria um Atlas", exceto:
- Nas camadas no 3º ícone escolher "Gerir temas do mapa", "Adicionar tema ..." e criar o tema "Mapa geral" com as camadas que se pretender visíveis
- Repetir, só com o mapa de enquadramento visível, criando o tema "Mapa de enquadramento"
- Criar nova composição de impressão "mapa indexado"
- Adicionar 2 vezes o mapa, uma usando um retângulo grande, e outra usando um retângulo pequeno (colocar por exemplo no lado direito do mapa maior)
- No Mapa 1 (mapa grande), nas propriedades do item, selecionar "Seguir o tema do mapa", e escolher "Mapa geral"
- No Mapa 2 (mapa pequeno), nas propriedades do item, selecionar "Seguir o tema do mapa", e escolher "Mapa de enquadramento"
- Ativar "Gerar um atlas" e na camada de cobertura escolher "Cinfaes"
- No Mapa 1 (mapa grande) selecionar a checkbox "Controlado por Atlas"
- No Mapa 2 (mapa pequeno) NÃO selecionar a checkbox "Controlado por Atlas"
- No Mapa 2 (mapa pequeno) nas propriedades do item selecionar "Vistas gerais", carregar no botão "+" para adicionar e a seguir selecionar a "Vista geral 1" acabada de adicionar e na "Moldura do mapa" selecionar o "Mapa 1"
- Reajustar a posição do mapa 2 (eventualmente sobrepondo-o ao mapa 1 colocando-o no canto superior esquerdo) e gerar o atlas.
Como é que se cria uma animação temporal de dados georreferenciados que tenham componente temporal?
Eis um exemplo mostrando dados de pirataria entre 1978 e 2021:
- Criar um projeto com o sistema de coordenadas WGS84
- Descarregar dados sobre pirataria do portal "Maritime Safety Information" (https://msi.nga.mil/NGAPortal/MSI.portal) de modo a obter a shapefile ASAM_shp.zip
- Descarregar dados com polígonos da Terra do portal Natural Earth (http://naturalearthdata.com), de modo a obter 10m Physical Vectors - Land
- Adicionar ambas as shapefiles ao projeto
- Verificar na tabela de atributos que existem 8450 incidentes de pirataria entre Maio 1978 e Outubro 2021
- Como existem muitos incidentes de pirataria uma forma mais prática de visualizar é usando um heatmap, abrir a camada "ASAM_events" e mudar a simbologia para "Heatmap" (mapa térmico), na rampa de cores escolher "Viridis color ramp", alterar o raio de 10 para 5 milímetros, em baixo expandir a "Renderização da camada" e alterar a opacidade para 75%
- Ativar o suporte para análise temporal indo às propriedades da camada à aba "Temporal" e ativar marcando a checkbox "Temporal", na "Configuração" alterar para "Single Field with Date/Time" e no "Campo" escolher "dateofocc", isso faz com que apareça um relógio à direita do nome da camada (serve para clicando nele ir diretamente para a aba "Temporal")
- Na toolbar com os ícones, clicar no relógio (ou da forma normal ativar o "Temporal controller panel" / "Painel Controlador Temporal")
- No controlador temporal clicar no botão de "Play", aparecem os controles de navegação temporal, clicar no ícone de "refresh" (set to full range) para que o espaço temporal cubra o período completo dos dados, mudar o "Passo" para 1 "anos"
- Clicar no botão de "Play" (não no 1º mas sim no 2º que está nos controles de navegação temporal)
- Pode-se controlar a velocidade de reprodução usando a roda dentada amarela que aparece na extrema direita, alterando a quantidade de frames por segundo, por exemplo mudar para 4 frames por segundo, isso faz com que a animação completa demore cerca de (2021 - 1978 + 1) / 4 = 11 segundos, a seguir a escolher o "Frame rate" usar a seta que aparece no topo à esquerda para voltar para o ecrã principal
- Para se poder ver a data no mapa escolher o menu "Ver / Decorações / Etiqueta de título...", ativar a checkbox "Ativar a etiqueta do título", seguido de "Insira ou Edite a Expressão..."
- Como a variável "@map_start_time" contém o timestamp da frame que está a ser visualizada, podemos usar a função "format_date" para visualizar somente o ano, a documentação encontra-se em docs format_date, aqui queremos usar a expressão
format_date(@map_start_time, 'yyyy')
- Escolher o tamanho da fonte 25, clicar na "Cor do fundo da barra" e deixar branco com opacidade de 50%, no "Posicioname" escolher "inferior centro"
- Para exportar como imagens clicar na disquete (à direita do "Passo 1.000 anos"), e gravar as imagens na pasta "Resultados"
- A seguir usar por exemplo a ferramenta onlie EZGIF para criar um GIF animado: selecionar "select images" "choose files", seguido de "Upload and make a GIF!", é necessário esperar até que os thumbnails das imagens apareçam (o que vai demorar um pouco), depois clicar em "Make a GIF!" e depois carregar na "disquete / save"