Como plotar automaticamente contornos intermediários com QGIS, GRASS GIS ou SAGA GIS?

10

Estou mapeando uma cordilheira íngreme. Meu intervalo de contorno principal é de 50 me meu intervalo de contorno intermediário é de 10 m. Em áreas íngremes, o intervalo de 10 m é muito pequeno, então eu preciso sair do intervalo de 10 me usar 20 ou 25 m.

Existe uma maneira de fazer isso automatizado em QGIS , SAGA GIS ou GRASS GIS ?

MAPA
fonte

Respostas:

7

Você pode tentar fazer uma sobreposição de suas linhas de contorno com a grade de inclinação e mostrar apenas determinadas linhas de contorno, dependendo do valor médio da inclinação abaixo dessa linha de contorno.

johanvdw
fonte
Solução interessante! Você faria uma junção espacial para vincular o valor médio da inclinação às linhas de contorno?
Simbamangu
@Simba Use estatísticas zonais. Pode funcionar ainda melhor para excluir linhas de contorno cuja inclinação máxima zonal seja muito íngreme.
whuber
2

Até onde eu sei, não há solução automática no QGIS para esse problema. No entanto, deve ser possível usar o renderizador baseado em regras para especificar quais contornos devem ser plotados e quais devem ser deixados de fora.

underdark
fonte
2

Se entendi o problema corretamente, você está trabalhando com um Shapefile que já possui todos os contornos gerados. Você deve ter uma tabela de atributos com os valores do contorno como um dos campos - por exemplo, 'contorno':

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

No QGIS, você pode fazer algumas coisas. Um seria criar uma cópia do Shapefile e remover os contornos que você não deseja:

  1. Inicie uma sessão de edição, abra a tabela de atributos e abra a calculadora de campo.
  2. Selecione 'criar um novo campo' e faça dele um número inteiro; chame de 'manter'.
  3. Digite no campo 'expressão' uma expressão que fornecerá o número 1 se as condições corretas forem atendidas - você deseja manter todos os contornos com múltiplos de 20. Assim: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'(esse tipo de função 'correspondente' não é bonita , mas o QGIS não possui a função matemática do módulo que tornaria isso mais agradável - eu acho).
  4. Clique em 'OK' e você terá uma nova coluna com 1, onde os contornos são múltiplos de 20 e zeros, onde não.
  5. Procure (selecione) todas as linhas em que keep = 0 e exclua-as. Seu novo Shapefile agora excluiu todos os outros contornos.

A opção dois seria simplesmente não exibir os contornos que você não deseja mostrar. Isso é um pouco mais elegante.

  1. Abra a caixa de diálogo Propriedades e selecione a guia Estilo.
  2. Selecione "Baseado em regras" no canto superior esquerdo.
  3. Adicione uma regra (pressione o botão 'Adicionar') para contornos que correspondem às condições desejadas.
    • Na caixa de diálogo Propriedades da regra, insira um rótulo, como '20';
    • Na caixa Filtro, insira uma expressão para corresponder, assim como a acima: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • Selecione um estilo de símbolo que você deseja usar, clique em OK e aplique o estilo.

Nesse ponto, os únicos contornos exibidos serão os que corresponderem à expressão.

O melhor da segunda opção é que você pode criar regras para diferentes escalas - você pode ter uma regra quando diminuir o zoom após uma determinada escala que mostre, talvez, apenas os contornos de 100 metros ('% 00' apenas no expressão) e, em seguida, outra regra que mostre os contornos de 20 metros ao ampliar ainda mais, etc.

Se você está procurando um método para criar um novo contorno de 25 m entre os 100 m, provavelmente será melhor criar um novo arquivo de contorno a partir de um modelo de elevação digital. Não tenho certeza se existem métodos que interpolem de maneira confiável e correta um novo contorno de 25 m entre outros contornos.

Simbamangu
fonte
0

Eis como faço isso quando tenho um shapefile de contorno (ou um banco de dados Spatialite) contendo contornos em intervalos verticais de 10 metros e desejo plotar apenas os contornos que ocorrem em (digamos) intervalos de 50 metros.

Carregue o shapefile e consulte-o usando este fragmento de SQL: '(ELEV% 50) = 0'. Onde 'ELEV' é o atributo que contém os dados de elevação.

Nhopton
fonte