Algoritmos

Fonte: QGIS
Saltar para a navegação Saltar para a pesquisa

<-- Voltar à página hierarquicamente anterior

Algoritmos geométricos

Apresenta-se aqui uma pequena descrição dos algoritmos mais relevantes para o cálculo de perímetros urbanos:

Agregar

Agregar (menu "Vetor / Ferramentas de geoprocessamento / Agregar...", em inglês chama-se "Dissolve"): agrega todos os itens da camada de entrada criando uma nova camada com um único item que contém a geometria correspondente à agregação das geometrias dos itens originais. Atenção que na tabela de atributos resultante, que só tem uma única linha, muitas das colunas provavelmente irão conter dados errados (sugere-se que a seguir se apague essas colunas ou se corrija os seus valores).

Buffer (contorno exterior)

Buffer (contorno exterior) (menu "Vetor / Ferramentas de geoprocessamento / Buffer..." sendo que aparece o nome "Contorno exterior" em vez de "Buffer" nalgumas versões do QGIS, por exemplo aparece "Contorno exterior" na versão 3.16.5 mas já aparece "Buffer" na versão 3.16.12): permite criar uma nova camada com um multi-polígono à volta dos elementos da camada de entrada (input) até à distância definida. Normalmente só se quer definir a camada de entrada, a distância em metros, e costuma-se querer que a checkbox "Resultado da agregação" esteja marcada de modo a obter-se como resultado um único item (uma única linha na tabela de atributos).
NOTA: quando se tem problemas com a geometria (geometria inválida) pode-se também usar este algoritmo, só que desta vez com uma distância de zero metros, isso 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), a seguir pode-se comparar o resultado obtido com o que se encontra na camada que tem a geometria inválida.

Diferença

Diferença (menu "Vetor / Ferramentas de geoprocessamento / Diferença...", em inglês chama-se "Difference"): 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. Atenção que se usarmos as camadas na ordem errada o resultado vai ser uma camada vazia, se isso acontecer experimentar trocar a ordem das camadas. Ver também exemplo visual da diferença simétrica versus diferença (assimétrica).

Diferença Simétrica

Diferença simétrica (menu "Vetor / Ferramentas de geoprocessamento / Diferença simétrica...", em inglês chama-se "Symmetrical Difference"): extrai as partes das geometrias das camadas de entrada e de sobreposição que não se sobrepõem, as áreas sobrepostas entre as duas camadas são removidas. A tabela de atributos da camada resultante irá conter os atributos originais das camadas de entrada e de sobreposição, neste caso a ordem das camadas (isto é, qual é a camada de entrada e qual é a camada de sobreposição) é irrelevante.
Na tabela de atributos do resultado uma parte das linhas só tem dados relativos aos atributos que vieram da camada de entrada (os das colunas da camada de sobreposição estão a NULL), as linhas restantes só têm dados relativos aos atributos que vieram da camada de sobreposição (os das colunas da camada de entrada estão a NULL). Ver também exemplo visual da diferença simétrica versus diferença (assimétrica)

Eliminar buracos

Eliminar buracos (menu "Processamento / Ferramentas de processamento / Geometria vetorial / Eliminar buracos", em inglês chama-se "Delete holes"): pega numa camada que contenha polígonos e remove os buracos que se encontrem dentro de polígonos. Cria uma nova camada vetorial na qual os polígonos com buracos foram substituídos por polígonos com apenas o anel externo, os atributos não são alterados. Um parâmetro opcional de área mínima permite remover apenas os buracos que são mais pequenos do que essa área, se a área mínima for definida como 0.0 todos os buracos serão removidos.

Envoltória côncava (vizinho k mais próximo)

Envoltória côncava (vizinho k mais próximo) (menu "Processamento / Ferramentas de processamento / Geometria vetorial / Envoltória côncava (vizinho k mais próximo)", em inglês chama-se "Concave hull (k-nearest neighbor)"): gera um polígono côncavo a partir de um conjunto de pontos (se a camada de entrada tiver uma geometria do tipo linha ou do tipo polígono usa os respetivos vértices). O número de vizinhos a considerar determina a concavidade do polígono de saída, um número menor resultará em um polígono côncavo que segue os pontos muito de perto, enquanto que um número maior terá uma forma mais suave. O número mínimo de pontos vizinhos a considerar é 3. Opcionalmente pode-se também definir um campo que se quer usar para agrupar, nesse caso para cada valor único desse campo será gerado um polígono côncavo com os pontos das geometrias correspondentes.

Interseção

Interseção (menu "Vetor / Ferramentas de geoprocessamento / Interseção...", em inglês chama-se "Intersection"): interseta 2 camadas de uma forma simétrica, tanto faz intersetar a camada "A" com a camada "B" como fazê-lo na ordem inversa. Este algoritmo extrai as partes sobrepostas das geometrias dos itens nas camadas de entrada e de sobreposição, às geometrias que ficam na camada de interseção de saída são associados os atributos dos recursos sobrepostos das camadas de entrada e de sobreposição.

Juntar atributos por localização

Juntar atributos por localização (menu "Vetor / Ferramentas de gestão de dados / Juntar atributos por localização...", em inglês chama-se "Join Attributes by location"): pega uma camada vetorial de entrada e cria uma nova camada vetorial que é uma versão estendida da camada de entrada, com atributos adicionais na sua tabela de atributos. Os atributos adicionais e os seus valores são obtidos de uma segunda camada vetorial, um critério espacial é aplicado para selecionar os valores da segunda camada que são adicionados a cada recurso da primeira camada na camada resultante.

Juntar camadas vetoriais

Juntar camadas vetoriais (menu "Vetor / Ferramentas de gestão de dados / Juntar camadas vetoriais...", em inglês chama-se "Merge vector layers"): combina (agrega) várias camadas vetoriais do mesmo tipo de geometria numa só camada, se as tabelas de atributos forem diferentes, a tabela de atributos da camada resultante irá conter os atributos de todas as camadas de entrada. Normalmente só se tem de escolher que camadas vetoriais se quer juntar, para isso clica-se nas reticências das "Camadas de entrada" e depois ativa-se as checkboxes correspondentes, quando se terminar de escolher as camadas clica-se na seta a azul no topo que permite voltar para a janela principal.

Múltiplas partes para partes únicas

Múltiplas partes para partes únicas (menu "Vetor / Ferramentas de geometria / Múltiplas partes para partes únicas...", em inglês chama-se "Multipart to Singleparts"): pega numa camada vetorial com geometrias multi-partes e gera uma nova camada vetorial na qual todas as geometrias contêm uma parte única. Os elementos com geometrias multi-parte são divididos em tantos elementos diferentes quantas as partes que a geometria contém, e são utilizados os mesmos atributos para cada um deles. Portanto o número de itens (linhas) na tabela de atributos irá aumentar.

Pontos aleatórios dentro de polígonos

Pontos aleatórios dentro de polígonos (menu "Vetor / Ferramentas de investigação / Pontos aleatórios dentro de polígonos...", em inglês chama-se "Random points inside polygons"): permite gerar um conjunto de pontos aleatórios dentro de polígonos, usado por exemplo para detectar geometrias inválidas (porque os pontos não são gerados dentro das geometrias inválidas). Basta dizer quantos pontos se quer ("Point count or density", por exemplo 10000).

Recortar

Recortar (menu "Vetor / Ferramentas de geoprocessamento / Recortar...", em inglês chama-se "Clip"): recorta uma camada vetorial de entrada usando os recursos da camada poligonal de sobreposição. Apenas as partes dos recursos na Camada de entrada que caem dentro dos polígonos da Camada de sobreposição serão adicionadas à camada resultante. Os atributos dos recursos não são modificados, embora propriedades como área ou comprimento dos recursos sejam modificados pela operação de recorte. Se tais propriedades forem armazenadas como atributos, esses atributos terão que ser atualizados manualmente.

Selection toolbar / Selecionar elementos pela expressão (select features using an expression)

Selection toolbar / Selecionar elementos pela expressão (select features using an expression): (é o 2º ícone dessa toolbar) permite selecionar os elementos para os quais uma dada expressão dá resultado verdadeiro:

  1. Escolha dos campos ou dos valores: no painel do meio expandir "Campos e valores" e selecionar o campo relevante, a seguir no painel da direita usar "Todos os únicos" para perceber que valores esse campo contém, usar duplo click para transferir o nome do campo (colocando-lhe automaticamente as aspas duplas) ou para transferir um valor do campo (colocando-lhe automaticamente as aspas simples) para o painel da esquerda
  2. Reutilizar uma expressão recentemente utilizada: no painel do meio expandir "Recente (selection)" que contém as últimas 20 expressões utilizadas e fazer duplo click sobre a expressão relevante

Selection toolbar / Selecionar por localização

Selection toolbar / Selecionar por localização: (é o 4º ícone dessa toolbar) permite selecionar os elementos de uma dada camada para os quais a sua geometria "intersecta/intersect, toca/touch, contém/contain, sobrepõe/overlap, é separado/disjoint, está contido/are within, igual/equal, cruza/cross" ao comparar com os elementos de uma outra camada (podendo-se opcionalmente aplicar esta operação somente aos elementos que estavam selecionados). link = Camada um
Neste exemplo, o conjunto de dados do qual queremos selecionar (a camada "Selecionar elementos de") consiste nos círculos verdes, o retângulo laranja é o conjunto de dados com o qual está sendo comparado (a camada "Ao comparar com os elementos de"):

  1. intersecta / intersect: testa se uma geometria se cruza com outra. Retorna verdadeiro se as geometrias se cruzam espacialmente (compartilham qualquer parte do espaço - se sobrepõem ou se tocam) e falso se não. Na imagem, isso selecionará os círculos 1, 2 e 3.
  2. toca / touch: testa se uma geometria toca outra. Retorna verdadeiro se as geometrias têm pelo menos um ponto em comum, mas seus interiores não se cruzam. Apenas o círculo 3 é selecionado.
  3. contém / contain: retorna verdadeiro se e somente se nenhum ponto de b estiver no exterior de a, e pelo menos um ponto do interior de b estiver no interior de a. Na imagem, nenhum círculo é selecionado, mas o retângulo seria se se trocasse a ordem das camadas, pois contém um círculo completamente. Isso é o oposto de "está contido".
  4. sobrepõe / overlap: testa se uma geometria se sobrepõe a outra. Retorna verdadeiro se as geometrias compartilham algum espaço, são da mesma dimensão, mas não estão completamente contidas entre si. Apenas o círculo 2 é selecionado.
  5. é separado / disjoint: retorna verdadeiro se as geometrias não compartilham nenhuma parte do espaço (sem sobreposição, sem tocar). Apenas o círculo 4 é selecionado.
  6. está contido / are within: testa se uma geometria está dentro de outra. Retorna verdadeiro se a geometria a estiver completamente dentro da geometria b. Apenas o círculo 1 é selecionado.
  7. igual / equal: retorna verdadeiro se e somente se as geometrias forem exatamente iguais. Nenhum círculo será selecionado.
  8. cruza / cross: retorna verdadeiro se as geometrias fornecidas têm alguns, mas não todos, pontos internos em comum e se o cruzamento é feito numa dimensão inferior ao da geometria mais alta fornecida. Por exemplo, uma linha cruzando um polígono cruzará como uma linha (selecionada). O cruzamento de duas linhas se cruzará como um ponto (selecionado). Dois polígonos se cruzam como um polígono (não selecionado).

A explicação em inglês encontra-se aqui

Selection toolbar / Inverter Seleção dos Elementos

Selection toolbar / Inverter Seleção dos Elementos: (é uma das opções do 2º ícone dessa toolbar que também contém "Selecionar elementos pela expressão") se numa dada camada um conjunto de elementos estavam selecionados inverte essa seleção, ficando selecionados somente os elementos que não estavam selecionados

<-- Voltar à página hierarquicamente anterior