FAQ: diferenças entre revisões
Linha 183: | Linha 183: | ||
=== Como é que se adiciona a um projeto atributos pertencentes a um ficheiro Excel ou CSV? === | === Como é que se adiciona a um projeto atributos pertencentes a um ficheiro Excel ou CSV? === | ||
<ol> | <ol> | ||
<li> Se o EXCEL ou CSV não estiver georreferenciado temos de usar um código que ele contenha e ligar através desse código a uma camada que esteja georreferenciada: | |||
<ol style="list-style-type:lower-alpha"> | |||
<li> 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) | <li> 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) | ||
<li> Usando o "navegador" adicionar o ficheiro Excel ou CSV da mesma forma que se adiciona qualquer outra camada | <li> Usando o "navegador" adicionar o ficheiro Excel ou CSV da mesma forma que se adiciona qualquer outra camada | ||
Linha 193: | Linha 194: | ||
<li> Ou se abre o ficheiro CSV no Excel e se grava como Excel e depois o que se adiciona ao QGIS é esse ficheiro Excel | <li> Ou se abre o ficheiro CSV no Excel e se grava como Excel e depois o que se adiciona ao QGIS é esse ficheiro Excel | ||
</ol> | </ol> | ||
</ol> | |||
<li> Se o Excel estiver georreferenciado é necessário converter para CSV e depois fazer conforme descrito abaixo | |||
<li> Se o CSV estiver georreferenciado usar o menu selecionar "Camada / Adicionar Camada / Adicionar camada de texto delimitado...", e depois FIXME | |||
</ol> | </ol> | ||
Revisão das 11h55min de 6 de junho de 2022
<-- Voltar à página hierarquicamente anterior
Configurar o 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.22, podendo-se e devendo-se atualizar para a última versão da série 3.22.x que existir no momento (à data é a 3.22.6), já que só corrige bugs que tenham entretanto sido detetadas não possuindo novas funcionalidades que a possam tornar mais instável (relativamente à versão anterior ver bugs corrigidas entre a versão 3.16.5 e a versão 3.16.16)
- 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.24.2 (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 é 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?
O QGIS (versão 3.22.x) pode funcionar com o interface em 41 diferentes idiomas, incluindo português europeu, português (do Brasil), inglês, etc. Por omissão o QGIS fica no mesmo idioma em que se encontra o sistema operativo, isto é, se o sistema operativo estiver em Português o QGIS fica a funcionar com o interface em Português.
Isso pode ser alterado indo ao Menu "Configurações / Opções" ("Settings / Options") aba "Geral" ("General") logo no topo ativar a checkbox "Substituir locale do sistema" ("Override System Locale") e a seguir na "Tradução" ("User interface translation") 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 (com o QGIS a funcionar em inglês vê-se onde é que está o que nos interessa, e depois muda-se de novo para português e navega-se até ao mesmo local).
NOTA: no mesmo local pode-se igualmente alterar o "Locale (formato para números, datas e moeda)" ("Locale (numbers, date and currency formats)") para "Portuguese Portugal (pt_PT)".
Gestão de dados
Como é que se deve iniciar e organizar um projeto QGIS?
- Criar uma pasta/diretório chamada por exemplo
formSIG
ou na raiz de um disco/drive ou o mais perto possível da raiz no caso de não se possuir privilégios para escrever na raiz do disco/drive. Desta forma reduz-se o comprimento dos caminhos para os ficheiros (o que facilita a navegação) e o caminho onde cada um coloca os ficheiros desde essa pasta/diretório para a frente é igual para todos o que o permite utilizar esse caminho numa mensagem, num powerpoint, etc. Adicionar esse caminho aos Favoritos do Navegador, ver FAQ favoritos - Criar uma pasta/diretório debaixo dessa pasta e dar-lhe um nome apropriado ao objetivo, por exemplo "XYZ" para representar o projeto "XYZ"
- Criar nessa pasta subpastas chamadas "dados_input", "dados_output", "materiais" e "resultados".
- Criar um projeto QGIS vazio e configurar o SRC do projeto (menu "Projeto / Propriedades / SRC") para ser "EPSG: 3763 (ETRS89/ PT-TM06)", ver também Glossário códigos EPSG
- Verificar que o QGIS está configurado para se for carregada uma camada que não tenha SRC o QGIS não tenta adivinhar o SRC da camada e em vez disso marca-a como tendo um SRC desconhecido (forçando o utilizador a descobrir e especificar o SRC): menu "Configurações / Opções / CRS and Transforms / SRC" e no "SRC das camadas" colocar ativo "Deixar como desconhecido (não tomar nenhuma ação)"
- 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_input" 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/dados_output", 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_camadas.gpkg" (evitar gravar camadas como shapefiles embora isso possa ser feito)
- Em resumo, a pasta "XYZ" contém:
- O projeto QGIS "XYZ.qgz"
-
dados_input
: subpasta com o material base, colocar nesta subpasta os dados descomprimidos (por exemplo shape files ou geopackages) e que vão ser utilizados pelo QGIS como camadas do projeto, criar subpastas sempre que necessário. Por exemplo se se tratar de shapefiles colocar os ficheiros de cada shapefile numa subpasta separada dentro da pasta "dados_input", se se tratar de geopackages colocar o ficheiro de cada geopackage na pasta "dados_input". -
dados_output
: guardar nesta subpasta os dados intermédios e finais criados no âmbito deste projeto, normalmente guardá-los numa única geopackage (por exemplo chamadaXYZ_camadas.gpkg
) -
materiais
: colocar nesta subpasta ficheiros descarregados da Google Drive ou de outro local que ainda se encontrem comprimidos e que necessitem de ser descomprimidos antes de poderem ser utilizados, criar subpastas sempre que necessário. colocar aqui também os resultados/soluções dos exercícios fornecidos pelo formador de modo a ser possível comparar o resultado obtido com o resultado esperado, criar subpastas sempre que necessário. -
resultados
: subpasta para guardar os resultados obtidos que vão ser utilizados noutro contexto, por exemplo exportação para PDF georreferenciado (ver FAQ PDF georreferenciado), Atlas (ver FAQ Atlas), exportação de imagens para PNG ou JPG para a seguir usar num documento Word (ver FAQ imagens para relatório), imagens usadas para criar uma animação temporal (ver FAQ animação temporal), etc. - A geopackage "XYZ.gpkg" com as camadas criadas no âmbito do projeto
- 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")
- 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")
- Evitar usar caracteres acentuados ou cedilhas ou espaços nos nomes das camadas ou nomes dos campos, isso já não é um problema nos valores propriamente ditos ou nos textos das legendas
- Ao criar as pastas e ficheiros usar as seguintes regras para os nomes das pastas e ficheiros:
- Não utilizar carateres acentuados nem cedilhas (dificulta a portabilidade dos dados entre diferentes sistemas operativos e pode causar problemas com alguns módulos do QGIS)
- Evitar a utilização de espaços (pode causar problemas com alguns módulos do QGIS)
- Começar os nomes com uma letra e depois usar letras maiúsculas ou minúsculas ou dígitos ou underscores (
_
) - Não usar nomes demasiado compridos (torna-se difícil ver o nome completo) nem nomes demasiado curtos e crípticos (difícil de saber o que representa)
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. ATENÇÃO: se o QGIS estiver aberto (mesmo que o projeto tenha sido fechado) as camadas de output em formato de geopackage estão bloqueadas para acesso (Utrata-se de uma base de dados) pelo que nos arriscamos a que o ZIP não consiga incluí-las, para evitar isso, fechar o programa QGIS antes de criar o ZIP
- 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)
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 (provavelmente sim), eventualmente consegue-se fechar o projeto
- Voltar a abrir o projeto
Extensões e formatos de Ficheiros
Ver Extensoes e Formatos de Ficheiros
Como é que se adiciona uma camada com o Open Street Maps (OSM) ao QGIS?
- Só necessita de ser feito uma vez: Menu "Módulos / Gerir e instalar módulos" e instalar o módulo "QuickMapServices"
- Em cada projeto: selecionar o Menu "Web / QuickMapServices / OSM / OSM Standard"
Como é que se adiciona uma camada com o Google Maps (imagens de satélite) ao QGIS?
- Só necessita de ser feito uma vez: ir para "Navegador / XYZ Tiles", clicar com o botão direito do rato, "Nova Ligação...", e:
- Colocar no Nome "Google Satellite" e na URL
https://mt1.google.com/vt/lyrs=s&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D - Colocar no nome "Google Maps" e na "URL"
https://mt1.google.com/vt/lyrs=m&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D - Colocar no nome "Google Terrain" e na "URL"
https://mt1.google.com/vt/lyrs=t&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D - Colocar no nome "Google Terrain Hybrid" e na "URL"
https://mt1.google.com/vt/lyrs=p&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D - Colocar no nome "Google Satellite Hybrid" e na "URL"
https://mt1.google.com/vt/lyrs=y&x=%7Bx%7D&y=%7By%7D&z=%7Bz%7D
Alterar o "Nível máximo de magnificação" (zoom) para 20
- Colocar no Nome "Google Satellite" e na URL
- Em cada projeto: selecionar "Navegador / XYZ Tiles", adicionar a camada Google Maps que quisermos
Como é que se cria e adiciona uma camada com pontos georreferenciados recorrendo ao Google Maps, GPS ou QGIS?
É necessário criar um ficheiro Excel com os dados, incluindo coordenadas X (longitude) e Y (latitude), seguidamente gravar o ficheiro em formato CSV, e por fim criar uma camada no QGIS a partir dos dados existentes no ficheiro CSV. O processo para se fazer isso é o seguinte:
- Criar um ficheiro Excel com uma única folha e com os nomes dos campos na primeira linha e os dados nas linhas seguintes
- Nomes dos campos a colocar na primeira linha: na primeira coluna (célula A1) colocar o nome "CoordenadasLatLongWGS84", deve-se também criar 2 colunas chamadas "X (longitude)" e "Y (latitude)". As restantes colunas podem ser quaisquer, por exemplo "Nome", "Tipo", "Morada", etc. A ordem das colunas não é importante mas "CoordenadasLatLongWGS84" tem de ser a primeira coluna (só assim as fórmulas Excel que se apresentam a seguir são válidas)
- Assumindo que o Microsoft Excel está configurado para Português (nomes das funções em português, vírgula como separador das casas decimais, ponto e vírgula como separador de argumentos nas funções), na segunda linha, colocar:
- Debaixo da coluna "X (longitude)" a fórmula
=SUBST(DIREITA(A2; NÚM.CARACT(A2) - LOCALIZAR(","; A2)); "."; ",")
- Debaixo da coluna "Y (latitude)" a fórmula
=SUBST(ESQUERDA(A2; LOCALIZAR(","; A2) - 1); "."; ",")
Estas fórmulas só devem ser colocadas uma única vez (na segunda linha) e depois devem ser copiadas na vertical tantas linhas quantas as necessárias. Atenção que se as fórmulas em vez de serem copiadas deste Wiki forem copiadas do Microsoft Teams (onde também foram colocadas) para o Excel elas podem ficar com a letra em cor branca sobre fundo branco pelo que ficam invisíveis, nesse caso é necessário alterar para preto a cor da letra.
- Debaixo da coluna "X (longitude)" a fórmula
- NOTA: se o Microsoft Excel estiver configurado para Inglês (nomes das funções em inglês, ponto como separador das casas decimais, vírgula como separador de argumentos nas funções) então em vez de se fazer o acima referido, colocar:
- Debaixo da coluna "X (longitude)" a fórmula
=right(A2, len(A2) - search(",", A2))
- Debaixo da coluna "Y (latitude)" a fórmula
=left(A2, search(",", A2) - 1)
As fórmulas são mais simples na versão inglesa porque não existe problema com o separador das casas decimais.
- Debaixo da coluna "X (longitude)" a fórmula
- Para obter as coordenadas de um dado ponto:
- Se se estiver a usar o QGIS clicar sobre o mapa com o botão da direita do rato e selecionar "Copiar Coordenada / WGS84 (..., ...)" . Atenção que no QGIS o primeiro valor é o X (longitude) e o segundo valor o Y (latitude), pelo que a seguir é necessário trocar a ordem das coordenadas antes de as colocar na célula da coluna "CoordenadasLatLongWGS84"
- Se se estiver a usar o Google Maps clicar com o botão da direita e depois clicar nas coordenadas que aparecem no primeiro lugar na janela de popup, de modo às coordenadas serem copiadas para a área de transferência (clipboard). No Google Maps o primeiro valor é o Y (latitude) e o segundo valor é o X (longitude) pelo que basta colocar o valor obtido na célula correspondente da coluna "CoordenadasLatLongWGS84"
- Pode-se igualmente usar coordenadas obtidas diretamente a partir de um GPS (se elas estiverem a ser fornecidas em graus decimais no mesmo formato usado pelo Google Maps em que a Latitude vem em primeiro lugar)
- Gravar o ficheiro Excel no formato normal (.xlsx), isto é importante ser feito agora porque a gravação em formato CSV que se vai fazer a seguir vai originar mensagens ligeiramente enganadoras
- Sem alterar o conteúdo do ficheiro, gravar de novo o ficheiro Excel só que desta vez escolhendo o formato "CSV (Separado por vírgulas) (*.csv)", ao se premir "Guardar" o Excel queixa-se de que "Algumas funcionalidades do seu livro podem ser perdidas se o guardar como CSV (separado por vírgulas). Quer utilizar o formato mesmo assim?", responder que "Sim", desta forma gravando o conteúdo do ficheiro Excel no formato CSV (campos separados por carater de tabulação / tab, vírgula ou ponto e vírgula, neste caso o Excel opta por usar como separador o ponto e vírgula). A seguir é necessário fechar o Excel, quando aparecer a mensagem a dizer "Deseja guardar as alterações a '*.csv'" responder "Não Guardar". Esta mensagem inapropriada é causada por o Excel não perceber que não houve mais alterações efetuadas ao ficheiro CSV e tentar convencer-nos a voltar a usar o formato .xlsx, o que neste caso não faz sentido.
- No QGIS no menu selecionar "Camada / Adicionar Camada / Adicionar camada de texto delimitado...", e:
- Na Linha com o "Nome do ficheiro" escolher o ficheiro CSV clicando nas reticências
- Na codificação mudar de "UTF-8" para "latin1" (importante para que os carateres acentuados apareçam corretamente)
- No "Formato do ficheiro" escolher "Delimitadores personalizados" e a seguir escolher "Ponto e vírgula"
- Nas "Opções de registos e campos" ativar "Separador decimal é a vírgula" e deixar ativos "Primeiro registo tem o nome dos campos" e "Detetar tipos de campo"
- Na "Definição da geometria" deixar "Coordenadas de pontos" e no "Campo X" colocar "X (longitude)" e no "Campo Y" colocar "Y (latitude)", e no "SRC da geometria" colocar "EPSG:4326 WGS 84"
Verificar que a "Amostra de dados" aparenta ter os dados OK (ver com especial atenção carateres acentuados e se a quebra das colunas está a ocorrer no local esperado, se necessário usar o scroll / elevador vertical e horizontal) e premir "Adicionar" seguido de "Close"
- No QGIS esta nova camada deve aparecer com o ícone de um ponto redondo (símbolo de uma camada com pontos em vez de polígonos), fazer zoom to layer nessa camada (se isso não for possível fazer a camada foi mal importada) e a seguir verificar que está tudo OK na tabela de atributos
Pesquisa
Como é que se procura um valor numa coluna da tabela de atributos?
- Começar por abrir a tabela de atributos (por exemplo selecionando a camada e a seguir premindo a tecla F6 ou Fn+F6)
- Se for para procurar um dado texto ou valor somente numa coluna da tabela, no canto inferior esquerdo clicar no "Mostrar Todos os Elementos", escolher "Filtro de Campos" e depois escolher o campo onde se pretende procurar, começar a escrever o texto, selecionar na lista aquele que interessa, e premir ENTER
- Escrever o texto que se pretende procurar e a seguir premir ENTER, a tabela de atributos passa a mostrar somente as linhas que nesse campo contém esse texto
- Se se quiser ver esse registo no mapa basta clicar no extremo esquerdo da linha (no número de ordem) de modo à linha ficar toda selecionada (isto pode ser feito para mais do que uma linha ao mesmo tempo usando Ctrl-Click, Cmd-Click em macOS) e depois, na janela da tabela de atributos, premir o ícone com a lupa a amarelo, o que causa a parte correspondente no mapa a ficar selecionada e marcada a amarelo e o mapa a fazer zoom para mostrar somente a totalidade do que está selecionado
- Se se quiser voltar ao normal clicar de novo no canto inferior esquerdo e selecionar "Mostrar Todos os Elementos"
Como é que se localiza rapidamente um item no mapa a partir do valor de um atributo?
- Selecionar a camada que tem o item que se pretende localizar (nos exemplos abaixo só é relevante se se optar pelo comando f, se for para procurar em todas as camadas tanto faz qual é a camada que está selecionada)
- Premir Ctrl-K ou ir para a barra de localização no canto inferior esquerdo
- Escrever "comando texto" para procurar esse texto no contexto de:
- f (features): procura elementos na camada ativa, por exemplo procurar "f nespereira" com a camada "Cinfaes" selecionada permite obter o item com os limites da freguesia
- af (all features): procura elementos em todas as camadas, por exemplo "af nespereira" e depois na lista com os resultados selecionar na camada "edificio" o item "Bombeiros Voluntários de Nespereira" ou selecionar na camada "equipame" o "Cemitério de Nespereira".
Note-se que o mapa é centrado no item selecionado e que o objeto pisca 3 vezes a vermelho, no entanto é necessário que a camada esteja visível e sem nada a tapá-la para depois de ter terminado de piscar se continuar a ver o objeto (nada fica selecionado, o objeto é somente visualizado, o nível de zoom altera-se e o mapa é centrado nesse objeto). - a (algoritmos): procura algoritmos, por exemplo "a buracos" permite abrir rapidamente o algoritmo para eliminar buracos
- Pode-se configurar a forma como funciona a barra de localização clicando sobre a "Lupa" e depois escolhendo "Configurar..."
- Para fazer pesquisas aproximadas (palavras mal escritas ou aproximadas) pode-se instalar o plugin "Search Layers" (desenvolvido pela National Security Agency dos Estados Unidos) e depois selecionar o menu "Módulos / Search Layers" escolher a aba "Fuzzy search" e escrever por exemplo "nspereira", nas "Action when selecting features below" escolher por exemplo "Zoom to selected features", premir "Search", e deplois clicar na linha que interessar na tabela com os resultados da pesquisa. Ver também a documentação em qgis-searchlayers-plugin
Como é que se usa coordenadas obtidas do Google Maps no QGIS?
- No Google Maps clicar com o botão da direita do rato e copiar as coordenadas do ponto para a área de transferência
- Num editor trocar a ordem das coordenadas (o Google Maps usa "latitude, longitude" e precisamos de ter "longitude, latitude")
- Garantir que o mapa está no sistema de coordenadas WGS84, se não estiver é necessário mudar para esse sistema de coordenadas (depois de terminar pode-se repor o sistema de coordenadas original)
- Colar essas coordenadas "longitude, latitude" no canto inferior esquerdo na janela de pesquisa, o mapa fica centrado nessas coordenadas e um ponto vermelho pisca algumas vezes no centro do mapa
- Pode valer a pena ir a menu "Projeto / Propriedades", aba "Geral" e em "Apresentar coordenadas em" escolher "Graus decimais" de modo a em baixo na linha de status mostrar no mesmo formato que o Google Maps (se bem que na ordem inversa)
Ver também o plugin "Lat Lon Tools" desenvolvido pela NSA (National Security Agency) dos Estados Unidos: qgis-latlontools-plugin
Edição
Como é que se adiciona a um projeto atributos pertencentes a um ficheiro Excel ou CSV?
- Se o EXCEL ou CSV não estiver georreferenciado temos de usar um código que ele contenha e ligar através desse código a uma camada que esteja georreferenciada:
- 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
- Se o Excel estiver georreferenciado é necessário converter para CSV e depois fazer conforme descrito abaixo
- Se o CSV estiver georreferenciado usar o menu selecionar "Camada / Adicionar Camada / Adicionar camada de texto delimitado...", e depois FIXME
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 direito)
- Selecionar "Criar um novo campo" (verificar que não está selecionado "Apenas atualizar n elemento(s) selecionados")
- Escolher o "Nome do campo de saída"
- Escolher o "Tipo do campo de saída"
- Colocar o valor pretendido na "Expressão"
- 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 também 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), se se pretender que isso aconteça automaticamente é necessário criar um campo virtual (o normal é escolher-se campo não virtual a não ser que se ache que o valor vai poder variar ao longo do tempo)
Como é que se altera na tabela de atributos de uma camada o "valor" de um 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)
- Selecionar à direita "Atualizar campo existente" (verificar que não está selecionado "Apenas atualizar n elemento(s) selecionados")
- Logo em baixo (também à direita) selecionar na lista o nome do campo existente cujo valor se quer alterar
- Colocar o novo valor pretendido na "Expressão"
Como é que se altera na tabela de atributos de uma camada o "nome" ou o "tipo" de um campo?
- Para mudar o nome de um campo (coluna) existente na tabela de atributos usa-se o menu "Processamento / Ferramentas de processamento / Tabela vetorial / Rename field", aceitar que crie uma camada temporária e depois gravar essa camada (e talvez apagar a camada antiga).
- Para mudar o tipo de um campo existente na tabela de atributos cria-se um novo campo com o tipo correto e depois apaga-se o campo antigo.
Como é que se pode saber se um campo da tabela de atributos de uma camada é um campo "virtual" pelo que é atualizado automaticamente?
Existem pelo menos 3 maneiras alternativas de o fazer (a mais elegante é a 3ª forma aqui apresentada):
- Se na tabela de atributos se tentar editar o valor do campo clicando na célula nota-se que, ao contrário do que acontece nos campos "normais", os campos "virtuais" não podem ser editados/alterados
- Pode-se usar o Ábaco (é o 4º ícone contando a partir do lado esquerdo), selecionar à direita "Atualizar campo existente", e logo em baixo (também à direita) ver se o nome desse campo aparece na lista (se não aparecer é porque é virtual)
- Fazer duplo click no nome da camada para ver as propriedades da camada, selecionar a aba "Campos" e ver o ícone que aparece na linha desse campo na coluna mais à esquerda, se tiver o E de expressão é porque é um campo virtual
Como é que se desenha uma camada vetorial (com por exemplo a geometria dos 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 no vértice para o selecionar e a seguir clicar no novo local para que o vértice seja movido para esse novo local
- MOVER LINHA: clicar na linha 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 no novo local para que a linha seja partida em 2 segmentos que vão ligar a esse novo local
- REMOVER VÉRTICE: clicar no vértice e premir a tecla DEL (delete)
Se houver um erro de edição pode-se usar o menu "Editar / Desfazer" (ou premir Ctrl-Z) para voltar à situação anterior.
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 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 copia um polígono de uma camada vetorial para outra?
- Garantir que nada está selecionado ("Selection Toolbar / Remover seleção de elementos em todas as camadas")
- Colocar visíveis as 2 camadas, a de origem e a de destino
- Selecionar o polígono na camada de origem usando "Selection Toolbar / Selecionar Elementos" e clicando no polígono
- Copiar o polígono (menu "Editar / Copiar elementos")
- Garantir que a camada de destino está em modo de edição: "Barra de Digitalização / Alternar edição (2º ícone a contar da esquerda, lápis)"
- Colar o polígono (menu "Editar / Colar Elementos")
Se as 2 camadas tiverem algumas colunas com o mesmo nome então esses atributos são copiados para a coluna que possui o mesmo nome.
Como é que se muda o nome de uma camada de um geopackage ou se apaga uma camada de um geopackage?
Uma geopackage é uma base de dados. A única forma (sem ser usando um programa feito especificamente para esse fim) de se apagar uma camada de um geopackage ou de se alterar o nome de uma camada que se encontra num geopackage é usar o Navegador do QGIS para navegar até essa camada na geopackage e depois clicar com o botão direito do rato e selecionar "Alterar nome da camada..." ou "Eliminar Camada..."
Como é que se trabalha com somente uma parte dos dados de uma camada sem criar uma camada nova? (filtrar)
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".
Quais são os riscos e as vantagens de se duplicar uma camada?
Quando se duplica uma camada fica-se com 2 camadas que apontam para os mesmos dados:
- A vantagem é que se pode estar a usar uma forma de visualização na primeira dessas 2 camadas e outra forma de visualização na segunda dessas 2 camadas. Um exemplo disto encontra-se no Guião da Variação da População de Portugal.
- A desvantagem é que ao se editar os dados de uma das camadas (por exemplo alterar dados da tabela de atributos, apagar colunas ou adicionar colunas ou alterar a geometria) essas alterações repercutem-se automaticamente em ambas as camadas porque os dados armazenados no disco são os mesmos. E é fácil ficar com uma falsa sensação de segurança porque à primeira vista estamos a alterar uma camada que aparenta ser independente da outra camada quando na verdade representam simplesmente vistas diferentes sobre os mesmos dados. Na dúvida, a não ser que se seja disciplinado e se saiba o que se está a fazer é preferível evitar duplicar camadas.
- Visto que duplicar uma camada é uma operação potencialmente perigosa (principalmente se voltarmos a abrir o mesmo projeto passados 3 meses, já não nos lembrarmos que as camadas estão duplicadas, e nada no nome das camadas nos chamar a atenção para esse facto exceto se pararmos o cursor sobre o nome de cada uma das camadas e verificarmos que os dados no disco são os mesmos), se vamos editar uma camada mas gostaríamos de manter o original intacto então em vez de duplicar a camada devemos fazer o seguinte:
- Exportar a camada para um Geopackage ou uma Shapefile
- Quando isto é feito, por omissão a camada é igualmente adicionada ao projeto (a não ser que no fundo em baixo da janela de exportação desligássemos a checkbox "Adicionar ficheiro guardado ao mapa" o que neste caso não nos interessa fazer)
- A partir de agora podemos de uma forma segura trabalhar com esta cópia dos dados porque qualquer alteração feita nela não se repercute na camada original
Como é que se controla (restringe) os valores que podem ser colocados no formulário duma tabela de atributos?
Duplo click sobre a camada e escolher a aba "Formulário de atributos", nos "Widgets disponíveis" clicar no nome do campo e a seguir, à direita, se se pretende:
- Avisar se o valor estiver vazio (NULL): nas "Restrições" ativar a checkbox "Não é null" mas não ativar a checkbox "Forçar restrição não nulo", desta forma aparece um aviso ao preencher o formulário (um x a amarelo) mas não impede de gravar
- Impedir de gravar se o valor estiver vazio (NULL): nas "Restrições" ativar a checkbox "Não é null" e a checkbox "Forçar restrição não nulo", desta forma não se consegue gravar até se ter preenchido o valor do campo
- Escrever texto extenso (várias linhas): Tipo de widget: Editar texto; Checkbox "Multilinha" ativa
- Permitir reusar texto já existente ou adicionar novo texto: ativar checkbox "Editável" (para não ser um campo só de leitura), Tipo de widget: "Valores únicos" e ativar de novo a checkbox "Editável" (para poder adicionar textos novos), nas "Restrições" ativar checkbox "Único", não ativar checkbox "Forçar restrição único"
- Data e hora de criação: sugere-se a criação de um campo chamado "criado_em", não ativar a checkbox "Editável" (de modo a ser um campo só de leitura), do tipo "Data e hora", tipo de widget: "Data / hora", nas "Restrições" ativar a checkbox "Não é null", no "Padrões" no "Valor predefinido" colocar
now()
, não ativar checkbox "Aplicar valor padrão ao atualizar" - Data e hora de última alteração: sugere-se a criação de um campo chamado "modificado_em", não ativar a checkbox "Editável" (de modo a ser um campo só de leitura), do tipo "Data e hora", tipo de widget: "Data / hora", nas "Restrições" ativar a checkbox "Não é null", no "Padrões" no "Valor predefinido" colocar
now()
, e ativar a checkbox "Aplicar valor padrão ao atualizar" - Nome do utilizador que criou: sugere-se a criação de um campo chamado "criado_por", não ativar a checkbox "Editável" (de modo a ser um campo só de leitura), do tipo "texto", nas "Restrições" ativar a checkbox "Não é null", no "Padrões" no "Valor predefinido" colocar
@user_account_name
ou@user_full_name
conforme se pretende, respetivamente, o username (login) ou o nome completo do utilizador, não ativar a checkbox "Aplicar valor padrão ao atualizar" - Nome do utilizador que modificou em último lugar: sugere-se a criação de um campo chamado "ultima_modificacao", não ativar a checkbox "Editável" (de modo a ser um campo só de leitura), do tipo texto, nas "Restrições" ativar a checkbox "Não é null", no "Padrões" no "Valor predefinido" colocar
@user_account_name
ou@user_full_name
conforme se pretende, respetivamente, o username (login) ou o nome completo do utilizador, ativar a checkbox "Aplicar valor padrão ao atualizar" - Valor booleano: Tipo de widget: "Caixa de verificação"
- Escolher um de entre uma lista de nomes predefinidos: Tipo de widget: "Mapa de valor", e depois para tantas linhas quantas as necessárias colocar o "Valor" a armazenar (um código) e a "Descrição" (o texto que aparece, pode conter uma ou mais palavras), por exemplo:
- 1 Urbano, 2 Rústico
- 1 Contenção, 2 Colmatação, 3 Conversão, 4 Programação
Que atributos se sugere sejam colocados numa camada com os "comentários da CCDRN"?
O projeto foi recebido do exterior (dum Município), na resposta após análise adiciona-se uma única camada com um nome apropriado (AnaliseCCDRN?), a geometria deve ser do tipo polígono (Shapefile ou Geopackage) ou multi-polígono (Geo_package), qualquer uma destas geometrias serve, e sugerem-se pelo menos estes 10 atributos (ver também a questão imediatamente anterior):
- o atributo "id_municipio" com o mesmo identificador que os polígonos apresentados pelo município
- o atributo "versao" com um identificador que represente versões diferentes da proposta do município para o mesmo local
- o atributo "categoria" com a classificação dada pelo município, por exemplo "Espaços habitacionais", "Aglomerado rural", "Espaços centrais", "Edificação dispersa", "Espaço de Equipamentos e Infraestruturas", "Espaços Verdes", "Espaços Urbanos de Baixa Densidade", "Espaços Naturais e paisagísticos", "Espaços culturais", "Espaços de atividades económicas", "Espaço de exploração de recursos geológicos", etc.
- o atributo "analise_ccdrn" com 4 hipóteses de valores: Contenção, Colmatação, Conversão, Programação (ver Escolher um de entre valores predefinidos na questão anterior)
- o atribute "qualificacao" com 2 hipóteses de valores: Rústico, Urbano (ver Escolher um de entre uma lista de nomes predefinidos na questão anterior)
- o atributo "observacao" com texto livre de justificação da conclusão da análise, exemplos: "espaços habitacionais: falta saneamento", "edificação dispersa: não nos parece adequado", "edificação dispersa: espaço vazio com dimensão significativa", "espaços habitacionais: características espaços urbanos de baixa densidade", "espaços habitacionais: área linear extensa com pouca ocupação", "edificação dispersa: necessidade de programar - UOPG", "espaços centrais: no global perímetro muito disperso", "espaços habitacionais: não servido totalmente de infraestruturas"
- o atributo "data_criacao" com a data da criação deste registo (ver Data e hora de criação na questão anterior)
- o atributo "data_modificacao" com a data da última modificação deste registo (ver Data e hora de última alteração na questão anterior)
- o atributo "quem_criou" com o nome do utilizador que criou este registo (ver Nome do utilizador que criou na questão anterior)
- o atributo "quem_modificou" com o nome do utilizador que foi o último a atualizar este registo (ver Nome do utilizador que modificou em último lugar na questão anterior)
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? (processamento em série)
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, não distando mais de "x" metros uns dos outros, eliminando buracos com menos de "y" m2 ? (Áreas edificadas consolidadas e em consolidação: Parte 1)
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:
Assumir por exemplo n=30, x=50, y=5000 (meio hectare).
- Na camada edificios usar selecionar por expressão com a expressão $area > n para obter a camada 01_edificios
- Usar o algoritmo Juntar camadas vetoriais para combinar as camadas equipamentos_tipo1, equipamentos_tipo2, equipamentos_tipo3, e 01_edificios, dessa forma obtendo-se a camada 02_Edificios_Equipamentos
Nota: se uma camada for do tipo linha enquanto as restantes são do tipo polígono então este algoritmo irá dar erro, não é possível juntar as camadas porque todas elas têm de ter geometrias iguais ou pelo menos compatíveis. Se isso acontecer aplicar um buffer de 1 metro à camada do tipo linha, dessa forma criando uma camada do tipo polígono que já pode ser juntada às restantes camadas. - Usar o algoritmo Buffer (contorno exterior) para criar um buffer à volta dos edifícios e dos equipamentos, escolhendo como camada de entrada 02_Edificios_Equipamentos, 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 03_BufferZonaConstruida
- 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 03_BufferZonaConstruida 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 04_BuffersZonaConstruida com vários registos (várias linhas na tabela de atributos)
- Usar o algoritmo Eliminar buracos para eliminar os buracos menores que "y" m2 da camada 04_BuffersZonaConstruida dessa forma obtendo-se a camada 05_ZonaConstruida
- Na camada 05_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). O QGIS pode avisar que vai originar um número elevado de classes (centenas ou milhares) e nesse caso pergunta se quer continuar, deve-se responder que sim.
- A seguir usar o algoritmo Juntar atributos por localização, tem de se adicionar os atributos da camada 05_ZonaConstruida à camada 02_Edificios_Equipamentos pelo que a camada 02_Edificios_Equipamentos tem de ser a "Camada base" e a camada 05_ZonaConstruida tem de ser o "Join Layer" (a camada com que se liga, "Unir camada"), usa-se o predicado geométrico "intersecta", nos campos a adicionar clicar nas reticências (se as reticências não estiverem visíveis tem de alargar a janela) e adicionar somente o campo "oID", desta forma criando a camada 06_Edificios_Equipamentos_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 se for por exemplo para uma freguesia de Cinfães demora cerca de 2 minutos mas se for para todo o concelho de Cinfães pode demorar cerca de meia hora, e noutro computador mais fraco 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 06_Edificios_Equipamentos_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 07_ContornoEdificado.
- Existe no entanto um problema com esta camada 07_ContornoEdificado. O algoritmo Envoltória côncava (vizinho k mais próximo) é um algoritmo complexo que tem bugs, pelo que de vez em quando em vez de contornar um edifício pelo exterior confunde-se com os vértices do edifício pelo que o contorna pelo interior ou pelo meio do edifício, o que faz com que partes do edifício fiquem do lado de fora do polígono envolvente. Para corrigir isto faz-se o seguinte:
- Usar o algoritmo Recortar com a camada 06_Edificios_Equipamentos_oID como camada de entrada e a camada 07_ContornoEdificado como camada de sobreposição, obtendo-se assim a camada 08_PartesEdificiosDentro
- Usar o algoritmo Diferença com a camada 06_Edificios_Equipamentos_oID como camada de entrada e a camada 08_PartesEdificiosDentro como camada de sobreposição, obtendo-se assim a camada 09_PartesEdificiosFora (aqui é muito importante a ordem das camadas, se se trocar a ordem dá resultados errados)
- Adicionar um campo area_m2 à camada 09_PartesEdificiosFora
- Exportar (atenção que duplicar a camada não pode ser feito porque a fonte de dados seria a mesma) a camada 07_ContornoEdificado para um ficheiro geopackage com o nome 10_ContornoEdificadoCorrigido e de novo adicioná-la ao projeto, ficando assim neste momento com 2 camadas idênticas mas armazenadas em locais distintos pelo que se se alterar uma delas não se afeta a outra
- Com a tabela de atributos de 09_PartesEdificiosFora aberta ordenar por ordem decrescente da área, a seguir usar a lupa (com retângulo amarelo por trás) para navegar para esse polígono e a seguir editar o polígono correspondente na camada 10_ContornoEdificadoCorrigido (mudando-lhe a posição de alguns vértices) de modo a ele ficar correto
- Parar de fazer isso quando a diferença de áreas for demasiado pequena para valer a pena
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 maior ou igual a 0,1 m2/m2 ? (Áreas edificadas consolidadas e em consolidação: Parte 2)
Obter a envoltória côncava do edificado 07_ContornoEdificado conforme explicado na resposta anterior: obter polígonos que envolvem equipamentos e conjuntos de edifícios com mais de "n"=30 m2 de área que não distam mais de "x"=50 metros uns dos outros, eliminando buracos com menos de "y"=5000 m2 (isto é, meio hectare). A seguir fazer:
- Usando "Selecionar elementos pela expressão" selecionar na camada 07_ContornoEdificado os polígonos cuja área seja maior que 50000 m2 (isto é, 5 hectares) criando a camada 11_Envoltoria_5ha
- Contabilizar a área construída de cada polígono e da zona construída dentro de cada polígono:
- Intersetar a camada 06_Edificios_Equipamentos_oID com a camada 11_Envoltoria_5ha desse modo obtendo-se a camada 12_Edificios_Equipamentos_oID_relevantes
- Usar o algoritmo Agregar / Dissolver na camada 12_Edificios_Equipamentos_oID_relevantes mas "dissolvendo" o campo "oID", desta forma todos os itens que tenham o mesmo valor do "oID" são agregados ficando com uma geometria que é a agregação das geometrias do edificado que o compõe, desta forma obtendo-se a camada 13_Edificios_Equipamentos_oID_relevantes_agregados
- Adicionar à camada 11_Envoltoria_5ha o campo "area_env_m2" com o valor da área
- Adicionar à camada 13_Edificios_Equipamentos_oID_relevantes_agregados o campo "area_edif_m2" com o valor da área
- Calcular o índice bruto de ocupação (IBO):
- Duplo click sobre a camada 11_Envoltoria_5ha, selecionar do lado esquerdo "Uniões", clicar no sinal "+" em baixo, na "Camada a unir" selecionar a camada 13_Edificios_Equipamentos_oID_relevantes_agregados, no "Unir campo" colocar o campo "oID", no "Campo alvo" selecionar também o campo "oID", a seguir ativar a checkbox do "Prefixo personalizado do nome do campo" e colocar somente como prefixo o nome curto "13_"
- Adicionar à camada 11_Envoltoria_5ha o campo "IBO" (índice bruto de ocupação do solo) do tipo número decimal (real), atenção que se for um número inteiro não funciona, com a expressão
"13_area_edif_m2" / "area_env_m2"
- Usando "Selecionar elementos pela expressão" selecionar os polígonos de 11_Envoltoria_5ha com um "IBO" maior ou igual a 0,1 m2/m2 e colocar na camada 14_resultado_final_5ha_01m2
Este resultado representa uma primeira versão da delimitação das áreas edificadas consolidadas ou em consolidação (cálculo sistemático sem tentar interpretar o resultado obtido). Seguidamente, usando por exemplo uma camada com o Google Satellite em background, deve-se analisar o resultado e fazer os ajustes que se achar apropriados. A CCDR-N em "Ocupação Dispersa na Região do Norte", Seminário “Ocupação Dispersa”, Abril 2014 (pág. 21 do PDF) usa a seguinte definição:
Áreas edificadas consolidadas e em consolidação: polígonos de solo definidos pelas linhas fechadas que envolvem estritamente os núcleos edificados, onde predomina a contiguidade ou grande proximidade entre os edifícios existentes, acrescidos dos espaços de colmatação (terrenos não edificados situados entre edifícios que possuam área de implantação superior a 30 m2 e que não distem mais de 50 m entre si) e das áreas não edificadas com uso urbano estabilizado (espaços públicos de utilização coletiva, áreas verdes e áreas afetas a equipamentos) interiores ou contíguas aos referidos núcleos, devendo cada polígono cumprir as seguintes condições cumulativas:
- Uma área mínima de 5 hectares para o polígono na sua globalidade;
- Um índice bruto de ocupação do solo igual ou superior a 0,1 m2/m2 para a área do polígono descontada das áreas não edificadas com uso urbano estabilizado (espaços públicos de utilização coletiva, áreas verdes e áreas afetas a equipamentos).
Arquivo com o resultado da Parte 2, o projeto e os dados: Cinfaes_Nespereira-20211213.zip (132 MB), neste projeto os polígonos estão calculados para todo o concelho de Cinfães.
Como é que se obtém os polígonos de "Áreas de edificação dispersa"?
A CCDR-N em "Ocupação Dispersa na Região do Norte", Seminário “Ocupação Dispersa”, Abril 2014 (pág. 22 do PDF) usa a seguinte definição:
Áreas de edificação dispersa existente: polígonos de solo exteriores às áreas edificadas consolidadas e em consolidação em que se verifica disseminação do edificado, definidos pela linhas fechadas que envolvem estritamente conjuntos de edifícios existentes que possuam área de implantação superior a 30 m2 e que não distem mais de 100 metros entre si, devendo cada polígono cumprir individualmente as seguintes condições cumulativas:
- Um índice bruto de ocupação do solo compreendido entre 0,01 m2/m2 e 0,1 m2/m2;
- Uma área mínima de 5 hectares, ou uma área compreendida entre 2,5 hectares e 5 hectares em que existam pelo menos 10 edifícios que possuam área de implantação superior a 30 m2, não contíguos entre si.
A solução, assumindo que já se possui o resultado da questão anterior (delimitação das áreas edificadas consolidadas ou em consolidação), consiste em:
- Selecionar edifícios com mais de 30 m2 (já está feito, trata-se da camada 01_edificios)
- Usando selecionar por localização (camada 01_edificios intersecta com camada 11_resultado_final_5ha) selecionar os edifícios que se encontram dentro de áreas edificadas consolidadas ou em consolidação e depois inverter a seleção de modo a só selecionar os que se encontram fora desses polígonos, dessa forma obtendo 15_Edificios_Fora
- Aplicar um buffer de 50m (isto é, metade de 100m) a 15_Edificios_Fora ativando a checkbox "Resultado da agregação", obtendo 16_Buffer_Edif_Fora
- 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 16_Buffer_Edif_Fora 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 17_Buffers_Edif_Fora com vários registos (várias linhas na tabela de atributos)
- Na camada 17_Buffers_Edif_Fora 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 17_Buffers_Edif_Fora à camada 15_Edificios_Fora pelo que a camada 15_Edificios_Fora tem de ser a "Camada base" e a camada 17_Buffers_Edif_Fora 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 18_Edificios_Fora_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 pode demorar bastante 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 18_Edificios_Fora_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 19_EnvoltoriaEdificadoDisperso.
- Usar o algoritmo Contar quantos elementos existem dentro de um dado polígono para adicionar à camada 18_Edificios_Fora_oID o atributo "qtd", usar a expressão
count( $id ,"oID" )
, com a quantidade de edifícios que possuem o mesmo "oID" - Duplo click sobre a camada 19_EnvoltoriaEdificadoDisperso, selecionar do lado esquerdo "Uniões", clicar no sinal "+" em baixo, na "Camada a unir" selecionar a camada 18_Edificios_Fora_oID, no "Unir campo" colocar o campo "oID", no "Campo alvo" selecionar também o campo "oID", a seguir ativar a checkbox do "Prefixo personalizado do nome do campo" e colocar somente como prefixo o nome curto "18_"
- Usando "Selecionar elementos pela expressão" selecionar os polígonos de 19_EnvoltoriaEdificadoDisperso cuja área seja maior que 50000 m2 (isto é, 5 hectares), ou cuja área esteja entre 2.5 ha e 5 ha se tiver pelo menos 10 edifícios, obtendo-se a camada 20_Envoltoria_2.5ha_5ha, usar por exemplo a expressão
$area > 50000 or ($area > 25000 and "18_qtd" >= 10)
- Contabilizar a área construída de cada polígono e da zona construída dentro de cada polígono:
- Intersetar a camada 18_Edificios_Fora_oID com a camada 20_Envoltoria_2.5ha_5ha desse modo obtendo-se a camada 21_Edificios_Fora_oID_relevantes
- Usar o algoritmo Agregar / Dissolver na camada 21_Edificios_Fora_oID_relevantes mas "dissolvendo" o campo "oID", desta forma todos os itens que tenham o mesmo valor do "oID" são agregados ficando com uma geometria que é a agregação das geometrias do edificado que o compõe, desta forma obtendo-se a camada 22_Edificios_Fora_oID_relevantes_agregados
- Adicionar à camada 20_Envoltoria_2.5ha_5ha o campo "area_env_m2" com o valor da área
- Adicionar à camada 22_Edificios_Fora_oID_relevantes_agregados o campo "area_edif_m2" com o valor da área
- Calcular o índice bruto de ocupação (IBO):
- Duplo click sobre a camada 20_Envoltoria_2.5ha_5ha, selecionar do lado esquerdo "Uniões", clicar no sinal "+" em baixo, na "Camada a unir" selecionar a camada 22_Edificios_Fora_oID_relevantes_agregados, no "Unir campo" colocar o campo "oID", no "Campo alvo" selecionar também o campo "oID", a seguir ativar a checkbox do "Prefixo personalizado do nome do campo" e colocar somente como prefixo o nome curto "22_"
- Adicionar à camada 20_Envoltoria_2.5ha_5ha o campo "IBO" (índice bruto de ocupação do solo) do tipo número decimal (real), atenção que se for um número inteiro não funciona, com a expressão
"22_area_edif_m2" / "area_env_m2"
- Usando "Selecionar elementos pela expressão" selecionar os polígonos de 20_Envoltoria_2.5ha_5ha com um "IBO" maior ou igual a 0.01 m2/m2 e menor ou igual a 0.1 m2/m2 (
"IBO" >= 0.01 and "IBO" <= 0.1
) e usando "Editar / Copiar elementos" e "Editar / Colar elementos como camada temporária" criar a camada 23_edificacao_dispersa com esse conteúdo
Quais são os principais 19 algoritmos do QGIS para trabalho com camadas vetoriais?
Esses 19 algoritmos encontram-se listados e explicados na secção Algoritmos. NOTA: para além desses 19 algoritmos existem muitos mais, não só o menu Vetor possui 5 submenus que em conjunto identificam 45 algoritmos, como também o menu "Processamento / Ferramentas de processamento" permite aceder a muitos mais algoritmos (várias centenas).
Pode-se executar algoritmos que demorem bastante tempo a executar em background e continuar a usar o QGIS enquanto se espera?
Sim. Os algoritmos estão previstos poderem ficar a funcionar em background enquanto se continua a trabalhar no interface gráfico. Mas na prática, dado que às vezes pequenas operações aparentemente simples ainda causam que o QGIS dê erro e termine a aplicação, parece que em geral com a versão atual do QGIS é preferível esperar que o algoritmo termine em vez de se continuar a trabalhar normalmente, dessa forma a probabilidade é maior de que o algoritmo consiga executar até ao fim e logo a seguir se grave o resultado obtido antes de se continuar o trabalho.
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
- Usando "Adicionar Etiqueta" (o ícone com um T) adicionar texto no topo com um título, no lado direito na "Aparência" escolher a Fonte (tipo de letra), nomeadamente o seu tamanho, e o alinhamento (esquerda, centro, direita, justificar)
- Opcionalmente (pode não fazer sentido fazê-lo) usar "Adicionar Legenda" e colocar a legenda à direita do mapa. A seguir, com a legenda selecionada, nas "Propriedades do item", começar por desligar a checkbox "Atualização automática", e a seguir editar a legenda (por exemplo removendo referências a camadas irrelevantes carregando no sinal de menos "-"). Se algum dos textos na legenda estiver demasiado comprido, começar por fazer duplo click nele para aparecer a janela de edição do texto, e a seguir colocar uma quebra de linha no texto num local apropriado, para voltar ao ecrã principal clicar na seta azul ao lado de "Propriedades do item da legenda")
- 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 que se encontra no topo, nas "Propriedades do item" escolher "Insert /Edit Expression...", abre a janela para poder fornecer a expressão, em "campos e valores" escolher o campo "Freguesia" e fazer duplo click, a seguir nas propriedades principais (por cima do "Insert/Edit Expression...") editar o texto (por exemplo colocar uma mudança de linha entre o título e o campo freguesia)
- 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. Se necessário, para evitar que alguns nomes fiquem truncados, aumentar o tamanho do retângulo onde se encontra a etiqueta.
- Se na etiqueta se quiser colocar o número da página e a quantidade total de páginas separadas por uma barra "/", então adicionar à etiqueta
[% @atlas_featurenumber || ' / ' || @atlas_totalfeatures %]
- 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"
Dados Raster
Qual é a diferença entre camadas raster e camadas vetoriais?
- Camadas vetoriais consistem numa tabela de atributos (base de dados), em que cada linha da tabela (isto é, cada registo) tem associada uma geometria construída a partir de pontos (vértices) possivelmente ligados de modo a formar linhas ou polígonos fechados
- Camadas raster (dados em grelha, dados matriciais) funcionam da mesma forma que uma imagem. Uma imagem é uma matriz de pontos igualmente espaçados em que cada ponto representa um pixel que possui um dado valor (no caso de uma imagem uma dada cor). Embora as camadas raster possam servir para representar diversas propriedades de objetos, esses objetos não existem como objetos separados, são simplesmente representados a partir dos diferentes valores dos pixéis que os constituem
Como é que se agrega num único raster diferentes imagens raster que se complementam (raster virtual)?
- Usar o menu "Processamento / Ferramentas de processamento / GDAL / Rasters diversos / Criar raster virtual" ou o menu "Raster / Diversos / Criar raster virtual"
- Selecionar as camadas
- Verificar que está desligado "Place each input file into a separate band"
- Ao contrário do que é costume, neste caso não se pode deixar que o resultado da execução do algoritmo seja uma camada temporária (se isso for feito depois não se consegue usar o formato raster virtual pelo que essa camada nunca poderá ser gravada neste formato, só pode ser exportada para um ficheiro "real"), em vez disso na secção "Virtual" tem de se escolher "Guardar no ficheiro", e escolher por exemplo a pasta "dados-output" e o nome "raster-virtual", nesse caso será gravado no ficheiro "raster-virtual.vrt" que é um pequeno ficheiro (alguns KBytes) já que só funciona como um catálogo referenciando as restantes camadas
- Depois do algoritmo terminar pode-se remover do mapa as camadas que foram agregadas numa camada virtual
Qual é a diferença entre DEM, DTM/MDT, DSM/MDS, TIN?
- DEM - Digital Elevation Model (MDE - Modelo Digital da Elevação): é um raster que mostra a altitude da superfície da terra, sem vegetação e sem construções artificiais feitas pelo homem
- DTM - Digital Terrain Model (MDT - Modelo Digital de Terreno): em alguns países, nomeadamente em Portugal, um DTM é o mesmo que um DEM pelo que também é um raster. Nos Estados Unidos e nalguns outros países um DTM é uma camada vetorial que inclui pontos igualmente espaçados e vetores que representam características naturais como cumes e linhas de quebra
- DSM - Digital Surface Model (MDS - Modelo Digital de Superfície): é um raster que mostra a altitude dos objetos naturais, vegetação e objetos artificiais construídos
- TIN - Triangular Irregular Networks (Redes Irregulares Triangulares): é um conjunto de triângulos (não é um raster), cada um dos vértices é um ponto 3D (X, Y, X), que é utilizado para representar relevo em 3D
Como é que se cria uma visualização mais realista de um Modelo Digital do Terreno?
- Menu "Processamento / Ferramentas de processamento / Análises raster do terreno / Sombreamento" ou menu "Raster / Análise / Sombreamento"
- O algoritmo permite especificar a posição da fonte de luz: o azimute (ângulo horizontal) tem valores de 0 (Norte) a 90 (Este), 180 (Sul) e 270 (Oeste), enquanto o ângulo zenital (ângulo vertical) define a altura da fonte de luz (0 a 90 graus). Permite calcular as zonas de luz e sombra num dado momento do dia, mas para além disso pode igualmente servir para melhorar a visualização da topografia de uma paisagem
- A seguir a executar-se o algoritmo deve-se tornar a camada resultante (Sombreamento) 50% transparente
O que fazem os algoritmos mais comuns de análise raster?
- Sombreamento (menu "Raster / Análise / Sombreamento"): cria um mapa sombreado usando luz e sombra para fornecer uma aparência mais tridimensional para um mapa de relevo sombreado
- Declive (menu "Raster / Análise / Declive"): calcula o declive de cada célula em graus (com base na estimativa de derivada de primeira ordem)
- Exposição (menu "Raster / Análise / Exposição"): começa com 0 para direção norte, em graus no sentido anti-horário
- Índice de rugosidade do terreno (menu "Raster / Análise / Índice de rugosidade do terreno"): medida quantitativa da heterogeneidade do terreno, conforme descrito em "Riley, S. J., S. D. DeGloria and R. Elliot (1999). A terrain ruggedness index that quantifies topographic heterogeneity, Intermountain Journal of Sciences, vol. 5, No. 1-4, pp.23-27". Calculado para cada local, resumindo a mudança na elevação dentro de uma grelha de 3x3 pixels
- Relevo (menu "Ferramentas de processamento / Análises raster do terreno / Relevo"): cria um mapa de relevo sombreado a partir de dados digitais de elevação. Analisa a distribuição de frequência. O mapa de saída é uma cor multibanda com três bandas refletindo os valores RGB do relevo sombreado
- Curvas hipsométricas (menu "Ferramentas de processamento / Análises raster do terreno / Curvas hipsométricas): representação gráfica do relevo médio
Como é que se usa a calculadora de rasters?
- FIXME
Erros e Problemas
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.
O que é que pode fazer com que a tabela de atributos apareça num formato estranho?
A tabela de atributos possui no canto inferior direito 2 botões, o mais à direita permite que se visualize a tabela de atributos no seu formato "normal" (vista de tabela, um registo por linha), o outro botão permite que se visualize no formato de um registo de cada vez (vista de formulário). Como o QGIS "decora" o último formato de visualização que se utilizou, se inadvertidamente se mudar para a vista de formulário e se fechar a janela, quando se voltar a tentar ver a tabela de atributos ela aparece nesse formato. Mesmo que se feche o QGIS quando se voltar a abrir o modo de visualização mantém-se idêntico. A solução para resolver este problema é clicar no botão que se encontra no canto inferior direito de modo a repor o formato "normal" (vista de tabela).
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 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. NOTA: o resultado da aplicação desse algoritmo é sempre uma camada com geometria MultiPolygon (mesmo que a camada original tivesse geometria Polygon).
- 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 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, isso é mais fácil de acontecer do que o que possa parecer porque por omissão o formato do ficheiro de exportação é o mesmo do da exportação efetuada anteriormente, pelo que se exportarmos dados para um ficheiro Excel na próxima exportação o formato selecionado por omissão é "Folha de cálculo MS Office Open XML [XLSX]" e podemos não prestar atenção a isso, o que seria fatal porque perderíamos a geometria da camada temporária):
- 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 (atenção que por omissão o nome da camada é inicializado com o nome do geopackage, ora esse nome nunca nos interessa utilizar porque seria enganador, isto é, o nome do geopackage é o nome de uma base de dados e aqui estamos a dar nome a uma das camadas que se encontram nessa base de dados)
- 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
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)
Que problemas podem ocorrer ao selecionar elementos de uma camada para copiar e colar noutra camada?
Pelo menos 2 problemas distintos podem acontecer:
- Se se selecionar elementos numa camada que não está visível (mesmo que a camada esteja selecionada) então consegue-se selecionar mas depois quando se tenta usar o menu "Editar / Copiar elementos" essa opção está desativada. Solução: selecionar a camada, tornar a camada visível, selecionar os elementos, menu "Editar / Copiar elementos", menu "Editar / Colar elementos como / Camada temporária".
- Se se selecionar numa camada que está visível e depois se usar o menu "Editar / Copiar elementos" seguido do menu "Editar / Colar elementos como / Camada temporária" mas quando aparece a janela para atribuir o nome à camada temporária (por omissão está o nome "Colado") se optar por ir a outro local e copiar desse local o nome e a seguir se colar esse nome para ficar a ser esse o nome da camada, ao se fazer essa cópia do nome acabou de se destruir todos os objetos que estavam copiados pelo que a camada só vai ter um único elemento e não vai ter geometria. Solução: não se pode copiar e colar para atribuir o nome à camada, tem de se escrever o nome que se quer ou então deixar o nome por omissão ("Colado") e só depois alterar o nome da camada (aí já se pode usar copiar e colar).
O que acontece se tivermos uma camada ainda sem SRC atribuído e selecionarmos elementos dessa camada e com eles criarmos uma nova camada?
- Se uma camada for trazida para o projeto e essa camada não tiver SRC atribuído devemos de imediato atribuir-lhe o SRC apropriado (clicar sobre o ponto de interrogação que aparece à direita do nome da camada e escolher o SRC apropriado)
- Se isso não for feito e selecionarmos elementos dessa camada e com eles criarmos uma nova camada, mesmo que a seguir o SRC da camada original seja atribuído, já foi tarde demais, os elementos da nova camada foram (muito provavelmente) assumidos como estando em WGS84 pelo que todas as coordenadas geográficas estão erradas (a não ser que a camada original estivesse também em WGS84 o que normalmente não seria o caso). Se isto foi feito a camada derivada deve ser apagada e construída de novo
Como resolver um erro ao gravar causado por um 'unique constraint' não estar a ser cumprido? (FID)
- Alguns algoritmos originam como resultado camadas em que a tabela de atributos fica com colunas com valores errados. Por exemplo se aplicarmos o algoritmo Agregar / Dissolver ao CAOP para criar uma camada em que se dissolveu por concelho então a coluna "Freguesia" vai conter um valor aleatório que não só não corresponde à verdade como também não tem significado nenhum (se ficamos só com uma entrada por Concelho é impossível ter um valor válido na Freguesa a não ser que o Concelho só contivesse uma única Freguesia o que não é o caso). O mesmo pode acontecer com uma coluna que possua a área (porque a geometria alterou-se) ou uma coluna que possua um identificador, como é o caso do FID. O FID é um número inteiro, exclusivamente para uso interno do QGIS, que representa o número da linha na tabela de atributos, esse valor não pode ter duplicados
- Qualquer algoritmo que origine uma camada vetorial com uma tabela de atributos com FID's duplicados criou uma camada que tal e qual se encontra não pode ser gravada. As soluções possíveis são:
- Ao gravar o ficheiro (converter a camada temporária para uma camada permanente) dizer que não se quer gravar o FID
- Ou, em alternativa, antes de tentar gravar abrir a tabela de atributos e apagar a coluna FID (ao gravar essa coluna será recriada automaticamente pelo QGIS)
- Note-se que se a camada com FIDs duplicados foi tentada gravar num geopackage e deu erro (devido ao 'unique constraint' não estar a ser cumprido) então a camada foi criada embora não contenha uma parte dos dados. Por isso, quando se tentar gravar de novo deve-se gravar com o mesmo nome e dizer que se pretende "substituir a camada" quando aparecer o aviso de que esse nome de camada já existe
Porque é que ao se criar um ZIP do projeto o geopackage gravado na subpasta "dados-output" pode não ser incluído?
- Um geopackage é um ficheiro único com a extensão .gpkz (representa uma base de dados que pode ter várias camadas) mas enquanto ele estiver aberto no QGIS consiste em 3 ficheiros (ver .gpkg em Extensões e formatos de ficheiros): .gpkg, .gpkg-wal, .gpkg-shm, os 2 ficheiros adicionais são apagados quando o geopackage é gravado e fechado
- Mesmo que se feche o projeto, se não se fechar o programa QGIS pode acontecer que o geopackage não seja fechado (o geopackage está fechado quando os 2 ficheiros auxiliares não existem) e que fique bloqueado o seu acesso por outros programas, se isso acontecer o programa que está a criar o arquivo ZIP não vai conseguir ler e comprimir esse ficheiro pelo que ele não vai ficar a fazer parte do ZIP
- A única solução para este problema é fechar o programa QGIS antes de se tentar criar o arquivo ZIP
O que é que pode causar o erro ao fazer "Save" de que não é possível submeter as alterações na camada X?
- De alguma forma criar uma camada temporária chamada por exemplo "Resultado"
- Usando o ábaco (calculadora de atributos) adicionar uma nova coluna chamada por exemplo "area_m2" à tabela de atributos dessa camada temporária (sem gravar essas alterações, é isso que causa o problema)
- Tornar a camada temporária permanente gravando-a numa geopackage
- Gravar o projeto
- Tentar fechar o projeto, ao fazê-lo aparece o aviso "Quer guardar as alterações para a camada Resultado?", mas ao premir "Save" aparece o erro "Submeter erros: Não é possível submeter as alterações na camada Resultado" e ao clicar "Mostrar mais" aparece uma janela que diz "Erro OGR ao criar campo area_m2: ... failed: duplicate column name: area_m2"
O que aconteceu foi que embora se tenha adicionado (sem gravar) uma coluna a uma camada temporária, quando a seguir a isso gravamos a camada temporária num geopackage essa gravação inclui a nova coluna mas o QGIS continua (erradamente) a achar que essa coluna ainda não foi gravada (apesar de o ter sido como consequência da gravação da camada no geopackage) pelo que pede para gravar e ao tentar fazê-lo descobre que a coluna já existe e dá erro. A solução se isso acontecer é simplesmente quando aparecer a mensagem a dizer "Quer guardar as alterações para a camada Resultado?" responder "Discard", isso permite fechar o projeto. A seguir deve-se de imediato abrir o projeto de novo e verificar que a coluna existe e tem os valores corretos.
Uma maneira de evitar que isto possa acontecer é nunca gravar num geopackage uma camada temporária sem antes verificar que todas as alterações efetuadas à tabela de atributos dessa geopackage foram gravadas. Para isso basta abrir a tabela de atributos da camada temporária e clicar no lápis que aparece no extremo esquerdo da tabela de atributos, ao fazê-lo aparece a mensagem "Quer guardar as alterações para a camada Resultado?" e ao escolher "Save" essas alterações efetuadas à tabela de atributos são gravadas (embora a camada continue a ser uma camada temporária), a seguir já podemos tornar a camada temporária permanente gravando-a num geopackage.
O que é que pode originar o erro de escrita "duplicate column name" ao fazer "Save" de uma camada?
- Se for criada uma camada com um campo com o nome repetido, exceto uma diferença de maiúsculas e minúsculas (por exemplo existir um campo chamado "nome" e a seguir ser criado outro campo chamado "Nome") então ao se gravar a camada dá o erro de duplicate column name
- Para corrigir é necessário criar uma nova coluna com um nome que não seja repetido, usando uma expressão copiar os valores da coluna cujo nome está repetido para essa nova coluna, e seguidamente apagar a coluna com o nome repetido, só depois disso ter sido feito se consegue gravar a camada
O que é que pode originar o erro "não foi possível adicionar o novo campo ao fornecedor" ao se criar um novo campo?
Pode ser devido a esse nome de campo já existir.
O que acontece se no interface de "selecionar por expressão" se escolher "Recente (selection)" e se escolher uma fórmula que nesse contexto não existe?
Um dos riscos de se usar as fórmulas que se encontram na lista de fórmulas recentemente utilizadas é que se pode fazer referência a um campo que não exista nessa camada (se isso acontecer não existe mensagem de erro mas nada fica selecionado). Na dúvida criar a fórmula de raiz usando os campos presentes na lista de "Campos e valores"
Principais conteúdos não contemplados no curso de 20 Set-2021 a 13-Dez-2021
Camadas raster
Camadas em que cada uma delas representa uma matriz de pontos e em que cada ponto para além das coordenadas geográficas possui um (ou mais) valor(es) numérico(s) associado(s) a cada pixel. É equivalente aquilo que se encontraria numa fotografia georreferenciada. Não são relevantes para o cálculo de perímetros urbanos mas são relevantes, por exemplo, para o cálculo da REN.
Modelação Gráfica
A Modelação Gráfica permite criar um workflow (pipeline, embora em termos precisos seja mais flexível que uma pipeline pois representa um grafo dirigido) de algoritmos que são aplicados uns a seguir aos outros e em que o output de um algoritmo pode servir de input ao algoritmo seguinte. Permite automatizar tarefas repetitivas.