Come tracciare automaticamente contorni intermedi con QGIS, GRASS GIS o SAGA GIS?


10

Sto mappando una ripida catena montuosa. Il mio intervallo di contorno principale è di 50 me il mio intervallo di contorno intermedio è di 10 m. Nelle aree ripide, l'intervallo di 10 m è troppo piccolo, quindi devo lasciare l'intervallo di 10 m e utilizzare invece 20 mo 25 m.

C'è un modo per farlo automatizzato in QGIS , SAGA GIS o GRASS GIS ?

Risposte:


7

Potresti provare a creare una sovrapposizione delle linee di contorno con la griglia di pendenza e mostrare solo determinate linee di contorno in base al valore medio della pendenza sotto quella linea di contorno.


Soluzione interessante! Faresti un join spaziale per collegare il valore medio della pendenza alle linee di contorno?
Simbamangu,

@Simba Usa le statistiche zonali. Potrebbe funzionare anche meglio per eliminare le curve di livello la cui pendenza massima zonale è troppo ripida.
whuber

2

Per quanto ne so, in QGIS non esiste una soluzione automatica per questo problema. Tuttavia, dovrebbe essere possibile utilizzare il renderer basato su regole per specificare quali contorni devono essere tracciati e quali devono essere esclusi.


2

Se capisco correttamente il problema, stai lavorando con uno Shapefile che ha già generato tutti i contorni. Dovresti avere una tabella degli attributi con i valori del contorno come uno dei campi, ad esempio "contorno":

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

In QGIS potresti fare un paio di cose. Uno sarebbe quello di creare una copia dello Shapefile, quindi rimuovere i contorni che non si desidera:

  1. Avviare una sessione di modifica, aprire la tabella degli attributi e aprire la calcolatrice sul campo.
  2. Seleziona 'crea un nuovo campo' e rendilo un campo numero intero; chiamalo "mantieni".
  3. Inserisci nel campo 'espressione' un'espressione che ti darà il numero 1 se vengono soddisfatte le giuste condizioni - vuoi mantenere tutti i contorni che sono multipli di 20. Quindi: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'(questo tipo di funzione 'matching' non è carina , ma QGIS manca della funzione matematica modulo che renderebbe questo più piacevole - penso).
  4. Fai clic su "OK" e avrai una nuova colonna con 1 in cui i contorni sono multipli di 20 e zero dove no.
  5. Cerca (seleziona) tutte le righe in cui keep = 0 ed eliminale. Il tuo nuovo Shapefile ora ha escluso ogni altro contorno.

L'opzione due sarebbe semplicemente non visualizzare i contorni che non si desidera mostrare. Questo è un po 'più elegante.

  1. Apri la finestra di dialogo Proprietà e seleziona la scheda Stile.
  2. Seleziona "Basato su regole" in alto a sinistra.
  3. Aggiungi una regola (premi il pulsante 'Aggiungi') per i contorni che corrispondono alle condizioni desiderate.
    • Nella finestra di dialogo Proprietà regola inserisci un'etichetta, come "20";
    • Nella casella Filtro inserisci un'espressione da abbinare, proprio come quella sopra: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • Seleziona uno stile di simbolo che desideri utilizzare, quindi fai clic su OK e applica lo stile.

A questo punto, gli unici contorni visualizzati saranno quelli che corrispondono all'espressione.

Il bello della seconda opzione è che puoi creare regole per scale diverse : puoi avere una regola quando esegui lo zoom indietro oltre una determinata scala che mostra, forse, solo i contorni di 100 metri ('% 00' solo nella espressione), quindi un'altra regola che mostra i contorni di 20 metri quando vengono ingranditi ulteriormente, ecc.

Se stai cercando un metodo per creare un nuovo contorno di 25 m tra i contorni di 100 m, probabilmente saresti davvero meglio creare un nuovo file di contorno da un modello di elevazione digitale. Non sono sicuro che esistano metodi che possano interpolare in modo affidabile e corretto un nuovo profilo di 25 m tra altri contorni.


0

Ecco come lo faccio quando ho un shapefile di profilo (o un database Spatialite) contenente contorni a intervalli verticali di 10 metri e desidero tracciare solo i contorni che si verificano a intervalli (diciamo) di 50 metri.

Caricare lo shapefile e interrogarlo usando questo frammento di SQL: '(ELEV% 50) = 0'. Dove "ELEV" è l'attributo che contiene i dati di elevazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.