Wie zeichnet man automatisch Zwischenkonturen mit QGIS, GRASS GIS oder SAGA GIS?

10

Ich kartiere eine steile Bergkette. Mein Hauptkonturintervall beträgt 50 m und mein Zwischenkonturintervall 10 m. In steilen Gebieten ist das Intervall von 10 m zu klein, daher muss ich das 10-m-Intervall verlassen und stattdessen 20 m oder 25 m verwenden.

Gibt es eine Möglichkeit, dies in QGIS , SAGA GIS oder GRASS GIS automatisiert zu tun ?

KARTE
quelle

Antworten:

7

Sie können versuchen, Ihre Konturlinien mit dem Steigungsgitter zu überlagern und nur bestimmte Konturlinien anzuzeigen, abhängig vom Durchschnittswert der Steigung unterhalb dieser Konturlinie.

johanvdw
quelle
Interessante Lösung! Würden Sie eine räumliche Verknüpfung durchführen, um den Durchschnittswert der Steigung mit den Konturlinien zu verknüpfen?
Simbamangu
@ Simba Zonale Statistiken verwenden. Es könnte sogar noch besser funktionieren, Konturlinien zu löschen, deren zonale maximale Neigung zu steil ist.
whuber
2

Soweit ich weiß, gibt es in QGIS keine automatische Lösung für dieses Problem. Es sollte jedoch möglich sein, mit dem regelbasierten Renderer anzugeben, welche Konturen gezeichnet und welche weggelassen werden sollen.

Unterdunkel
quelle
2

Wenn ich das Problem richtig verstehe, arbeiten Sie mit einem Shapefile, auf dem bereits alle Konturen generiert wurden. Sie sollten eine Attributtabelle mit den Konturwerten als eines der Felder haben - zum Beispiel 'Kontur':

ID      contour
 1         1000
 2         1010
 3         1020
 4         1030

In QGIS können Sie einige Dinge tun. Eine Möglichkeit besteht darin, eine Kopie des Shapefiles zu erstellen und dann die nicht gewünschten Konturen zu entfernen:

  1. Starten Sie eine Bearbeitungssitzung, öffnen Sie die Attributtabelle und öffnen Sie den Feldrechner.
  2. Wählen Sie "Neues Feld erstellen" und machen Sie daraus ein ganzes Zahlenfeld. nenne es "behalten".
  3. Geben Sie in das Feld 'Ausdruck' einen Ausdruck ein, der Ihnen die Nummer 1 gibt, wenn die richtigen Bedingungen erfüllt sind. Sie möchten alle Konturen beibehalten, die ein Vielfaches von 20 sind. Also: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'(Diese Art von 'Matching'-Funktion ist nicht schön , aber QGIS fehlt die Modulo-Mathe-Funktion, die dies schöner machen würde - denke ich).
  4. Klicken Sie auf "OK" und Sie erhalten eine neue Spalte mit 1, in der die Konturen ein Vielfaches von 20 sind, und Nullen, in denen dies nicht der Fall ist.
  5. Suchen Sie nach allen Zeilen (wählen Sie sie aus), in denen keep = 0 ist, und löschen Sie sie. Ihr neues Shapefile hat jetzt jede andere Kontur ausgeschlossen.

Option zwei wäre, die Konturen, die Sie nicht anzeigen möchten, einfach nicht anzuzeigen . Das ist etwas eleganter.

  1. Öffnen Sie das Dialogfeld Eigenschaften und wählen Sie die Registerkarte Stil.
  2. Wählen Sie oben links "Regelbasiert".
  3. Fügen Sie eine Regel hinzu (klicken Sie auf die Schaltfläche "Hinzufügen") für Konturen, die den gewünschten Bedingungen entsprechen.
    • Geben Sie im Dialogfeld "Regeleigenschaften" eine Bezeichnung wie "20" ein.
    • Geben Sie im Feld Filter einen passenden Ausdruck ein, genau wie oben: contour LIKE '%00' OR contour LIKE '%20' OR contour LIKE '%40' OR contour LIKE '%60' OR contour LIKE '%80'
    • Wählen Sie einen Symbolstil aus, den Sie verwenden möchten, klicken Sie auf OK und wenden Sie den Stil an.

Zu diesem Zeitpunkt werden nur die Konturen angezeigt, die dem Ausdruck entsprechen.

Das Tolle an der zweiten Option ist, dass Sie Regeln für verschiedene Maßstäbe erstellen können - Sie können eine Regel haben, wenn Sie über einen bestimmten Maßstab hinausgezoomt sind, der möglicherweise nur die 100-Meter-Konturen anzeigt ('% 00' nur in der Ausdruck) und dann eine andere Regel, die die 20-Meter-Konturen beim weiteren Vergrößern usw. anzeigt.

Wenn Sie nach einer Methode suchen, um eine neue 25-m-Kontur zwischen den 100-m-Konturen zu erstellen , ist es wahrscheinlich besser, eine neue Konturdatei aus einem digitalen Höhenmodell zu erstellen. Ich bin mir nicht sicher, ob es Methoden gibt, mit denen eine neue 25-m-Kontur zuverlässig und korrekt zwischen anderen Konturen interpoliert werden kann .

Simbamangu
quelle
0

So mache ich das, wenn ich ein Kontur-Shapefile (oder eine Spatialite-Datenbank) habe, das Konturen in vertikalen Intervallen von 10 Metern enthält, und ich möchte nur die Konturen zeichnen, die in (sagen wir) 50-Meter-Intervallen auftreten.

Laden Sie das Shapefile und fragen Sie es mit diesem SQL-Fragment ab: '(ELEV% 50) = 0'. Wobei 'ELEV' das Attribut ist, das die Höhendaten enthält.

nhopton
quelle