Mehr

ArcMap-Python-Frage: Versuch, den Neigungsprozentsatz in Text per Feld zu berechnen


Ich habe einen Layer aus Polygonen, den ich räumlich mit einem Raster-to-Point-Layer mit Neigungsprozentsätzen verbunden habe. Meine Polygone haben jetzt den Prozentsatz der Steigung in einem Feld namens Avg_point. Ich möchte den Feldrechner verwenden, um diese Prozentzahl (etwa 22,345 oder 56,45 usw.) zu nehmen und sie in einen Text im Feld "Steigung" umzuwandeln (das war bereits in der Polygonschicht) und ich möchte, dass dieser Text sagt etwas wie "Steil (>25%)"

Also habe ich ein Drehbuch geschrieben

SLOPE=Slope Correct(!SLOPE!, !Avg_grid_code!)

PräLogik:

def Steigungskorrekt(slope, avg): wenn avg > 25: Steil zurückgeben

Ich erhalte keine Fehler, aber mein Feld "Steigung" wird einfach ausgefüllt. Ich habe andere Dinge ausprobiert, aber ich bekomme es anscheinend nicht zum Ausfüllen dieses Felds

Ich habe mich ein wenig umgesehen und dachte, dass dieser Thread hilfreich war, aber er liefert immer noch keine Ergebnisse ArcMap Calculate Field… wenn "Text" in !Field!


def hang_correct(slope, avg): if avg > 25: Rückgabe von "Holly Mist" elif 0 < avg <= 25: Rückgabe von "easy peasy" else: Rückgabe von "unknown"

Wie erzeugt man Vektorpfeile, die einem Rasterneigungs-Layer entsprechen?

Ich möchte Vektorpfeile generieren, die der Topographie/Neigung eines Raster-Datasets eines Flusseinzugsgebiets entsprechen.

Ich habe in ArcGIS ein Netz aus Punkten erstellt und möchte für jeden Punkt einer festgelegten Länge einen einzelnen Pfeil erstellen, der der Form der Steigung folgt, dh dem Weg des geringsten Widerstands folgt, die Linie folgt schrittweise kleinen Zahlen in ein 3 x 3 Raster.

Ich denke, ich kann die Vektorpfeile mit dem Vektorplot generieren. Ist es möglich, die Linien rasterkonform zu erreichen?

200.000 Linien, die ich aus einem Punktraster generiert habe. Ich werde diese mit R in ein Raster umwandeln und auf die gleiche Auflösung wie mein Neigungsraster einstellen.

Irgendwelche Ideen, wie man die Rasterlinien auf der Neigung schichtet, damit ich die Linien dazu bringen kann, den niedrigsten Werten der Neigung zu folgen?


Online-Grundkarten verwenden die Projektion 'Web Mercator', aber die Projektion 'Mercator' wird für die Navigation verwendet. Eine auf der Karte gezeichnete gerade Linie ist die Peilung, um ein Flugzeug oder ein Boot vom Startpunkt zum Ziel zu fliegen, aber dies verzerrt Entfernung und Fläche stark.

Im Folgenden sind mögliche Lösungen für das Problem aufgeführt.

Weisen Sie dem ArcMap-Datenrahmen eine geeignetere Projektion zu

Weitere Informationen finden Sie im folgenden Artikel Wählen Sie eine geeignete Kartenprojektion oder ein geeignetes Koordinatensystem aus. Der Artikel ist mit der Projektionstabelle verknüpft, die alle unterstützten Kartenprojektionen in ArcGIS for Desktop und ihre Eigenschaften auflistet.

Anwenden der ausgewählten Projektion auf den ArcMap-Datenrahmen

  1. Navigieren Sie zu Anzeigen > Datenrahmeneigenschaften > Registerkarte Koordinatensystem > Projizierte Koordinatensysteme.
  2. Suchen Sie die gewünschte Projektion, die die genauesten Ergebnisse liefert.
  3. Klicken Anwenden und OK.

Erhalten Sie die genaue Berechnungsausgabe

  1. Navigieren Sie in der Attributtabelle zu Tabellenoptionen, und wählen Sie Feld hinzufügen. Ein ... kreieren Doppelt Feld und weisen Sie einen Namen ohne Leerzeichen und mit einer Länge von nicht mehr als 10 Zeichen zu. Zum Beispiel ein Name wie Fläche_qkm eignet sich zum Speichern von Flächen in Quadratkilometern.
  2. Klicken Sie mit der rechten Maustaste auf die Feldüberschrift und wählen Sie Geometrie berechnen.
  3. In dem Geometrie berechnen Dialogfeld, wählen Sie die Option Koordinatensystem des Datenrahmens verwenden, und wählen Sie die gewünschten Einheiten als Anforderung aus. Der berechnete Wert wird in der Attributtabelle angezeigt.


Gebrauch von %

Brians Antwort (eine benutzerdefinierte Funktion) ist im Allgemeinen die richtige und einfachste Vorgehensweise.

Aber wenn du Ja wirklich wollte einen numerischen Typ mit einem (nicht standardmäßigen) '%'-Operator definieren, wie es bei Tischrechnern der Fall ist, so dass 'X % Y' X * Y / 100.0 bedeutet, dann können Sie ab Python 2.6 das neu definierenef mod() Operator:

Dies könnte gefährlich sein, wenn Sie den '%'-Operator jemals für eine Mischung aus MyNumberClasswithPct mit gewöhnlichen Ganzzahlen oder Floats verwenden.

Was an diesem Code auch mühsam ist, ist, dass Sie auch alle 21 anderen Methoden eines Integrals oder Real definieren müssen, um den folgenden lästigen und obskuren TypeError zu vermeiden, wenn Sie ihn instanziieren


Einführung

Obwohl in vielen verkehrssicherheitsrelevanten Studien eine Straßenausrichtung verwendet wird, fehlen in den ursprünglichen Straßennetzdatenbanken häufig Informationen darüber, ob es sich bei einem Straßenabschnitt um eine Kurve oder eine Tangente handelt. Die Identifizierung horizontaler Kurven aus Straßennetzdaten ist nach wie vor ein zeitaufwändiger und fehleranfälliger Prozess. Darüber hinaus können solche Arbeiten, wenn sie manuell abgeleitet werden, in Zukunft nicht reproduziert werden. Im GIS werden derzeit viele Straßennetzdaten mit ausreichender räumlicher Genauigkeit gespeichert, die eine automatisierte Datenverarbeitung ermöglicht. Es besteht daher Bedarf an einem vollautomatisierten Werkzeug zur Extraktion von Straßenverläufen aus digitalen Daten (z. B. [1, 2, 3]).

Ein Mangel an Daten zur Straßenführung und die Notwendigkeit, die Straßengeometrie manuell zu bestimmen, ist aller Wahrscheinlichkeit nach für die relativ geringe Anzahl von einzelnen horizontalen Kurven verantwortlich, die in den meisten Studien verwendet wurden. McBean [4] hatte beispielsweise beim Arbeiten mit Daten aus Großbritannien nur 100 horizontale Kurven, ebenso Othman et al. [5] bei der Untersuchung der Sicherheitsleistung von horizontalen Kurven aus naturalistischen Fahrdaten. Fitzpatricket al. [6] arbeitete mit 260 Kurven. Fink und Krammes [7] und Persaud et al. [8] verwendet eine höhere Anzahl von Daten, mehr als 500. Im Gegensatz dazu haben Zegeer et al. [9], Sakshaug [10] und Khan et al. [11] hatte mehr als 10.000 Kurven. Die Informationen über die Straßengeometrie erhielten sie aus nationalen Straßendatenbanken. Die meisten nationalen Straßendatenbanken enthalten in der Regel keine solchen Informationen für das gesamte Netz.

Bisherige Arbeiten zur automatisierten Identifizierung von horizontalen Kurven aus digitalen Daten

Derzeit existiert kein vollautomatisches Werkzeug, das horizontale Kurven und Tangenten aus digitalen Vektordaten präzise identifizieren kann. Die halbautomatische Identifizierung ist ein häufig verwendeter Ansatz [12, 13]. Ein Experte bestimmt auf einem Bildschirm die Endpunkte einer horizontalen Kurve und berechnet dann automatisch deren Radius und Länge. Dieser Ansatz ist jedoch für große Datensätze nicht geeignet. Ein typischer Vertreter dieser Methoden ist der „Curve Calculator“ [14].

Xu und Wei [3] stellten für jeden Straßenscheitelpunkt eine Methode vor, die auf Azimutberechnungen basiert. Sie argumentieren, dass die Arbeit mit GIS bei der Analyse großer Datensätze sowohl aus zeitlicher als auch aus wirtschaftlicher Sicht der effektivste Weg ist. Liet al. [1] haben ein vollautomatisches Verfahren für ein GIS entwickelt, das den "Peilungswinkel" berechnet. Bei der Entscheidung zwischen horizontalen Kurven und Tangenten wendeten sie einen Schwellenwert an. Liet al. [1] sagte, dass „Zusätzlich zu diesem halbautomatischen Ansatz, es wurde keine Literatur gefunden, die ein vollautomatisches Verfahren dokumentiert. Deshalb, CurveFinder ist wirklich innovativ und einzigartig, da es die Möglichkeit bietet, automatisch Kurvenposition und geometrische Informationen aus GIS-Straßenkarten zu erhalten. Wir stellen hier einen Ansatz vor, der CurveFinder übertrifft, da unser Ansatz nicht nur den Peilwinkel verwendet, um zu entscheiden, ob ein Straßenscheitelpunkt zu einer horizontalen Kurve oder zu einer Tangente gehört, sondern fünf weitere erklärende Variablen (EVs) der Straßengeometrie und eine Klassifizierung Verfahren anstelle eines einfachen Schwellenwerts (weitere Informationen finden Sie im Abschnitt Methoden weiter unten).

Crash-Modifikationsfaktoren für horizontale Kurven in verschiedenen Ländern

Crash Modification Factors (CMFs) für horizontale Kurven gehören zu den am häufigsten verwendeten Bereichen, in denen Straßengeometrie verwendet wird. Wir haben diese Anwendung ausgewählt, um die Leistungsfähigkeit der ROCA-Software im Rahmen von Studien zur Verkehrssicherheit zu demonstrieren.

Jurewicz und Pyta [15] arbeiteten mit horizontalen Kurven, die zuvor in drei Gruppen eingeteilt wurden. Sie kamen zu dem Schluss, dass, wenn die Anzahl der Unfälle in Kurven mit einem Radius von mehr als 1500 m gleich 1 gesetzt wird, die entsprechenden Werte 1,422 für Kurven mit einem Radius zwischen 600 und 1500 m und 2,437 für Kurven mit einem Radius von weniger als 600 m betragen . Persaudet al. [8] nutzten Daten von horizontalen Kurven mit Radien zwischen 87 und 1150 m in ihrer Forschung zur Identifizierung gefährlicher Autobahnkurven. Sie fanden die 15 schlechtesten Kurven mit dem höchsten Risiko basierend auf der Berechnung der empirischen Bayes-Schätzung. Elvik [16] präsentierte eine Metastudie zu CMFs basierend auf Daten aus mehreren zuvor veröffentlichten Studien aus verschiedenen Ländern. Crashraten auf Kurven, bezogen auf die Länge der vorausgehenden Tangente, sind ebenfalls Gegenstand der Forschung (zB [17, 18]) sowie Crashratenunterschiede zwischen horizontalen Kurven und Tangenten (zB [19, 20] ).

Ziel dieser Arbeit ist es, die ROCA-Software vorzustellen, die in der Lage ist, die Effizienz der verkehrssicherheitsbezogenen Forschung, bei der Informationen zur Geometrie von Straßenabschnitten benötigt werden, erheblich zu steigern.


6 Antworten 6

Hier ist eine Bereinigung Ihrer Funktion, aber sie tut wahrscheinlich nicht das, was Sie wollen. Derzeit wird der Durchschnitt aller Werte in allen Spalten abgerufen:

Ich würde das CSV-Modul (das das CSV-Parsing erleichtert) mit einem Counter-Objekt zum Verwalten der Spaltensummen und einem Kontextmanager zum Öffnen der Datei verwenden (kein close() erforderlich):

Zuallererst, wie die Leute sagen, sieht das CSV-Format einfach aus, aber es kann ziemlich nicht trivial sein, insbesondere wenn Strings ins Spiel kommen. Monkut hat Ihnen bereits zwei Lösungen gegeben, die bereinigte Version Ihres Codes und eine weitere, die die CSV-Bibliothek verwendet. Ich gebe noch eine andere Option: keine Bibliotheken, aber viel idiomatischen Code zum Kauen, der Ihnen Durchschnittswerte für alle Spalten gleichzeitig liefert.

Zu beachten: In Ihrem Code ist f ein Dateiobjekt. Sie versuchen, es zu schließen, nachdem Sie den Wert bereits zurückgegeben haben. Dieser Code wird nie erreicht: Nichts wird ausgeführt, nachdem eine Rückgabe verarbeitet wurde, es sei denn, Sie haben es versucht. final construct, oder mit construct (wie ich es verwende - wodurch der Stream automatisch geschlossen wird).

map(f, l) oder das Äquivalent [f(x) für x in l] erzeugt eine neue Liste, deren Elemente durch Anwenden der Funktion f auf jedes Element auf l erhalten werden.

f(*l) "entpackt" die Liste l vor dem Funktionsaufruf und übergibt der Funktion f jedes Element als separates Argument.


2 Antworten 2

Ich habe das folgende Bild einer Ausgangskennlinie auf Wikipedia gefunden (beachten Sie, dass die y-Achse logarithmisch ist, sodass der Drain-Strom nie Null erreicht). Ich bin mit TFETs nicht vertraut, aber wenn das Prinzip dem von CMOS ähnelt, wird es uns gut gehen.

Der EIN-Strom wäre der Strom, den Sie bei einer logischen "hohen" Gate-Spannung erreichen. Diese Hochspannung hängt vom verwendeten Prozess ab. In ähnlicher Weise wäre der AUS-Strom der Drain-Strom mit einer logischen "niedrigen" Gate-Spannung. Das Verhältnis, so stelle ich mir vor, ist dann das Verhältnis dieser beiden Ströme. Beide Kurven wurden bei einer konstanten Drain-Source-Spannung gemessen, und wenn Sie das Worst-Case-Szenario messen möchten, möchten Sie vielleicht ein paar Kurven messen.

Sie müssen also nur wissen:

Von welcher Art von Kurven Sie diese Zahlen erhalten, spielt keine Rolle.


Gibt es einen Ersatz für die Verwendung eines InsertCursor zum Schreiben in eine Tabelle?

Ich verstehe ein bisschen mehr *was* passiert, um meinen Code zum Absturz zu bringen, aber ich weiß nicht genau, warum, weil mein CompSci-Fu sehr schwach ist. Anscheinend gibt es ein Problem damit, dass mein Code vergisst, nach Lese-/Schreibzugriff zu fragen, und dies geschieht höchstwahrscheinlich aufgrund eines Problems im zugrunde liegenden C-Code der arcpy-Funktionen. Mir steht der PyCharm-Debugger zur Verfügung, aber ich bin mir nicht wirklich sicher, wonach ich im Debugger suchen soll, um herauszufinden, was ich ändern muss, um meinen Code glücklich zu machen.

Ich würde meinen Code gerne *nicht* ändern, aber ich bin mir nicht sicher, ob ich eine Option habe, es sei denn, ich habe eine professionelle Intervention.

Mein Code stürzt an zwei Stellen ab: irgendwann zwischen den Zeilen 368 und 371 bei unterschiedlichen Iterationen durch die äußere Schleife ODER er stürzt nach Zeile 381 ab, wenn die Tabelle in Excel konvertiert und gespeichert wurde, aber bevor der Code von selbst fertig ist.

Es stürzt mit folgender Meldung in der Konsole ab: Prozess beendet mit Exitcode -1073741819 (0xC0000005)

Haben Sie Vorschläge für mich? Ich brauche keinen Zwischenschritt als GIS-Tabelle, ich kann sie direkt in eine CSV- oder Excel-Datei schreiben, denke ich. Ich bin besorgt, weil die Werte, die ich schreibe, Kommas enthalten und ich nicht möchte, dass dies die CSV-Datei vermasselt. Ich zögere auch, aus Gründen der Codepflege eine Bibliothek von Drittanbietern einzuführen.


Entscheidung und Implementierung eines Trending-Algorithmus in Django

Ich habe eine Django-Anwendung, in der ich einen einfachen Trending-/Ranking-Algorithmus implementieren muss. Ich bin sehr verloren als:

Ich habe zwei Modelle, Book und Reader. Jeden Abend werden meiner Datenbank neue Bücher hinzugefügt. Die Anzahl der Leser für jedes Buch wird auch jede Nacht aktualisiert, d. h. ein Buch hat mehrere Leserstatistikdatensätze (ein Datensatz für jeden Tag).

Über einen bestimmten Zeitraum (letzte Woche, vergangener Monat oder letztes Jahr) möchte ich die beliebtesten Bücher auflisten, welchen Algorithmus soll ich dafür verwenden?

Die Popularität muss in keiner Weise in Echtzeit erfolgen, da die Leserzahl für jedes Buch nur täglich aktualisiert wird.

Ich habe einen Artikel gefunden, auf den in einem anderen SO-Beitrag verwiesen wurde, der zeigte, wie Wikipedia-Trendartikel berechnet wurden, aber der Beitrag zeigte nur, wie der aktuelle Trend berechnet wurde.

Wie jemand auf SO betonte, handelt es sich um einen sehr einfachen Basistrendalgorithmus, der nur die Steigung zwischen zwei Datenpunkten berechnet.

Ich suche nicht nach einem überkomplexen Trending-Algorithmus, wie er in Hacker News, Reddit usw. verwendet wird.

Ich habe nur zwei Datenachsen, Leseranzahl und Datum.

Irgendwelche Ideen, was und wie ich implementieren sollte. Für jemanden, der noch nie mit Statistiken/Algorithmen gearbeitet hat, scheint dies ein sehr entmutigendes Unterfangen zu sein.


4.1. Zeit der Konzentration

Die Konzentrationszeit ist die Zeit, die überschüssiger Niederschlag benötigt, um vom am weitesten entfernten Punkt des Beckens zum Auslass zu gelangen. Am Ende dieser Zeit wird das gesamte Becken zur Strömung am Auslauf beitragen. In der Literatur stehen mehrere Gleichungen zur Berechnung der Konzentrationszeit zur Verfügung (ASCE, 1996). Nach Berücksichtigung der Verfügbarkeit von Parametern wird die folgende SCS-Gleichung für diese Studie ausgewählt.

Wo, Tc ist die Konzentrationszeit in Minuten, L ist der längste Fließweg des Beckens in Fuß, CN ist der durchschnittliche Kurvenzahlwert der Wasserscheide und S ist die durchschnittliche Wasserscheidensteigung. Längster Fließweg ist der Maximalwert von Flowlength Grid ( FlGrid ). Wie im nächsten Abschnitt beschrieben, repräsentiert das FlGrid die Wegstrecke jeder Zelle im Becken zum Auslass. In dieser Studie werden zwei FlGrids berechnet: für Gewichtskondition und keine Gewichtskondition. Der durchschnittliche CN-Wert des Beckens wurde mit 76 bestimmt. Die durchschnittliche Wassereinzugsneigung wird aus dem Neigungsraster (SGrid) des Beckens abgeleitet, das von DEM erhalten wird. Nach dem Beschneiden von SGrid mit der Wassereinzugsgrenze wird der Mittelwert des beschnittenen SGrid als 0,3327 bestimmt. Durch Einfügen dieser Werte in Gleichung 1 erhält man den Konzentrationszeitwert des Ulus-Beckens zu 8113,6 Minuten für den gewichteten Gitterzustand und 450,8 Minuten für den gewichtslosen Gitterzustand.

4.2. Speicherdämpfungskoeffizient

Der Speicherdämpfungskoeffizient, der die Speicherwirkung des Bachkanals darstellt, wird aus einer beobachteten Hochwasserganglinie des Beckens berechnet. Wie in Abbildung 4 beschrieben, wird R grafisch als Verhältnis des Volumens unter der Ganglinie nach dem zweiten Wendepunkt (unter der Rezessionskurve) zum Wert der Strömung am Wendepunkt (POI) berechnet (HEC, 1982).

Die beobachtete Hochwasserganglinie des Beckens wurde von den Staatlichen Hydraulikwerken der Türkei erhalten. Es handelt sich um den Sturm, der vom 23. bis 25. Juli 1995 aufgetreten ist. Unter Verwendung von Gleichung 2 wird der Speicherkoeffizient zu 410,1 Minuten erhalten.

Abbildung 4. Berechnung des Speicherdämpfungskoeffizienten (R)

4.3. Zeitbereichshistogramm

Das Gebiet des Beckens ist in Reisezeitzonen unterteilt. Jede Zone stellt den Teil des Beckens dar, der den überschüssigen Niederschlag des Geräts in einem bestimmten Zeitintervall zum Auslass ableitet. Die Auftragung dieser Gebiete in Bezug auf entsprechende Zeitintervalle ergibt das Zeit-Flächen-Histogramm des Beckens. Er ist der wichtigste Parameter der Methodik, da er die Abflussreaktion des Beckens auf die Niederschläge am Auslass widerspiegelt.

Das 10 x 10 m große digitale Höhenmodell des Beckens wird zur Bestimmung des Zeit-Flächen-Histogramms verwendet. Dazu wird zunächst die Strömungsrichtung jeder Zelle ermittelt. Durch Verfolgen der Fließrichtung wird dann die Fließstrecke der Strömung von jeder Zelle bis zum Beckenauslass berechnet. Diese Entfernungen werden in Reisezeitwerte umgewandelt. Schließlich wird durch Umwandeln der Anzahl von Zellen in Fläche das Zeitflächen-Histogramm abgeleitet. Diese Schritte werden in den folgenden Abschnitten erläutert.

Wie in Abbildung 3 beschrieben, wird zunächst das Fließlängengitter ( FlGrid ) der Wasserscheide entwickelt, um das Zeit-Flächen-Diagramm des Ulus-Beckens zu erhalten. Das FlGrid repräsentiert für jede Zelle die Gesamtstrecke des Wassertropfens von dieser Zelle bis zum Beckenauslass entlang der Fließrichtung. Erforderliche Eingaben für die Berechnung sind das Fließrichtungsraster (FdGrid) und Gewichtungsraster (WGrid), wobei die Verwendung von Gewichtungsraster optional ist.

In einer quadratischen Gitterumgebung ist jede Gitterzelle von acht Zellen umgeben. Wie in Abbildung 5 beschrieben, kann die Flussrichtung von einer Zelle durch Zuweisen einer Zahl repräsentiert werden, die eine der acht Richtungen repräsentiert. Unter Verwendung von GIS-Werkzeugen wird der Fließrichtungswert jeder Zelle im Einzugsgebiet aus dem DEM des Einzugsgebiets berechnet, dann wird ein Gitter mit diesen Werten erhalten und als Fließrichtungsgitter FdGrid bezeichnet.

Die Fließgeschwindigkeit in einem Gebiet variiert je nach Topographie und Landnutzungsbedingungen. Wasser bewegt sich langsam in einem leichten Hang oder über ein dichtes Weidegebiet und schneller auf einem kahlen Land. Um die Impedanz oder den Widerstand der Zelle gegenüber der Strömung darzustellen, kann ein Gitter vorbereitet werden. Der Wert an jeder Zelle in diesem Raster stellt den Widerstand pro Distanzeinheit dar, der durch die Zelle oder das Gewicht dieser Zelle fließt. Das Raster mit Werten, die das Gewicht jeder Zelle darstellen, wird als Gewichtungsraster ( WGrid ) bezeichnet.

Nachdem die Fließrichtung von einer Zelle zu einer der benachbarten acht Zellen bestimmt wurde, wird der Neigungsabstand zwischen den Mittellinien dieser Zellen berechnet. Dann wird dieser Abstand mit dem WGrid-Wert der ersten Zelle multipliziert, um den gewichteten Abstandswert zwischen diesen beiden Zellen zu erhalten. Schließlich werden die FlGrid-Zellenwerte durch Summieren dieser Werte entlang des Fließweges zum Auslass für jede Zelle erhalten. Wie bereits erwähnt, ist die Verwendung von WGrid bei der Berechnung von FlGrid optional. In dieser Studie wird neben der Gewichtungsgitterbedingung auch keine Gewichtungsgitterbedingung analysiert. Für ersteres wird ein Gewichtsgitter wie unten beschrieben erstellt und mit dem Fließrichtungsgitter zur Berechnung des Fließlängengitters verwendet. Für letzteres wird nur das Fließrichtungsraster zur Berechnung verwendet, wobei das Gewicht jeder Zelle als gleich und gleich 1 akzeptiert wird.

4.3.2. Gewichtsgitter: Aus der Anwendung der Manning-Gleichung für Überlandfluss

Die in der Strömungsmechanik häufig verwendete Manning-Gleichung (Gleichung 3) ist auch auf die Überlandströmung anwendbar. In dieser Studie wird Mannings Geschwindigkeitsgleichung verwendet, um das als VGrid bezeichnete Geschwindigkeitsgitter zu berechnen. Das Gitter repräsentiert die Fließgeschwindigkeit in jeder Zelle. Um ein Geschwindigkeitsgitter zu erhalten, werden alle Parameter der Gleichung (n, R und S) in Form von Gittern aufbereitet und wie in Gleichung 4 angegeben in Gleichung 3 eingesetzt.

Das Raster, das Werte enthält, die Mannings Rauheit darstellen, wird als nGrid bezeichnet und als Funktion des Vegetationstyps oder der Landnutzung bestimmt. Das Hangraster des Beckens wird aus dem DEM des Gebiets abgeleitet und als SGrid bezeichnet. Bei offenen Gerinnen ist der hydraulische Radius das Verhältnis von Fließfläche zu benetztem Umfang, bei Überlandströmung wird er jedoch als Fließtiefe akzeptiert. Das Raster mit hydraulischen Radiuswerten für Bäche und Fließtiefe für die anderen Teile des Beckens wird als RGrid bezeichnet. Die Manning-Gleichung liefert VGrid-Werte, die die Fließgeschwindigkeit in jeder Zelle darstellen.

Mannings Rauheitskoeffizient für Überlandströmung

Der Rauheitskoeffizient ist der wichtigste Parameter der Manning-Gleichung. Es hängt von der Vegetationsbedeckung oder dem Landnutzungstyp des Gebiets ab. Tabellen mit n-Werten für verschiedene Landnutzungstypen sind in der Literatur verfügbar. Rauheitswerte für das Ulus-Becken werden unter Verwendung der Landnutzungskarte des Beckens und Koeffiziententabellen ausgewählt, die zur Verwendung in Mannings Gleichung für Überlandabfluss vorbereitet wurden ( Fleckenstein, 1998 ), die in Tabelle 1 angegeben sind des Beckens wird unter Verwendung der Werte von Tabelle 1 abgeleitet. Diese Karte wird dann in ein Raster mit einer Auflösung von 10 m umgewandelt und als nGrid bezeichnet.

Tabelle 1. Rauheitskoeffizienten nach Manning für Landnutzungstypen

Hydraulischer Radius für Bäche und Überlandströmung

Der zweite Parameter der Manningschen Gleichung ist der hydraulische Radiuswert. Bei offenen Kanälen wird der hydraulische Radius aus dem Verhältnis von Strömungsfläche zu benetztem Umfang des Kanals berechnet. Um jedoch das Geschwindigkeitsraster des gesamten Einzugsgebietes zu erhalten, müssen neben Bachrinnen auch hydraulische Radiuswerte der Überlandflächen zugeordnet werden. Ein als RGrid bezeichnetes Gitter wird vorbereitet, das den hydraulischen Radiuswert jeder Zelle im Becken darstellt. In dieser Studie wird der hydraulische Radius in der Manningschen Gleichung für zwei Fälle betrachtet.

ein) Überlandfluss: In der Offenkanalhydraulik ist bekannt, dass der hydraulische Radius breiter rechteckiger Kanäle als Fließtiefe akzeptiert werden kann. Die Zellen im RGrid, die keine Flusskanäle bilden, werden als Überland-Flussgebiete akzeptiert. In Überland-Flussgebieten entsteht eine dünne Strömungsschicht, wo diese Zellen als breite Kanäle behandelt werden können. Da am Ende der Studie eine Einheitsganglinie ausgewertet werden soll, wird als Abflusstiefe eine Oberflächenabflusstiefe von 1 mm (0,001 m) angenommen.

b) Streams: Der hydraulische Radius offener Kanäle wird aus der Geometrie des Kanals berechnet. Aber in einer gitterbasierten Darstellung der Topographie ist es schwierig, die Zellen zu schätzen, die Flussbetten bilden. Dazu wird das als FaGrid bezeichnete Staugitter des Beckens verwendet. FaGrid wird aus dem FdGrid berechnet, das aus dem DEM des Beckens erhalten wird. Jeder Zellenwert von FaGrid gibt die Anzahl der Zellen an, die ihr gesamtes Oberflächenwasser an diese Zelle abgeben. Dann wird das Flussnetz extrahiert, indem die Zellen als Flussbetten akzeptiert werden, die einen FaGrid-Wert haben, der größer als ein vordefinierter Schwellenwert ist, der in dieser Studie als 1000 akzeptiert wird (Usul, 2002). Auf einem DEM mit 10 x 10 m großen Gittern repräsentieren 1000 Zellen ein Bacheinleitungsgebiet von 0,10 km 2 und die Zellen mit einer Entwässerungsfläche von mehr als 0,10 km 2 bilden das Bachnetz. Nach der Definition der Bäche werden die Werte des hydraulischen Radius dieser Zellen geschätzt. In einer ähnlichen Studie ( Fleckenstein 1998), die Mannings Gleichung mit einer Auflösung von 30 x 30 m verwendet, werden die in Tabelle 2 angegebenen R-Werte verwendet. Der in dieser Studie verwendete Schwellenwert für die Stromeinleitung beträgt 100 Zellen. Dann wird, wie in Tabelle 2 beschrieben, die Anzahl der Zellen, die Ströme bilden, in vier Gruppen gemäß ihren Durchflussakkumulationswerten geordnet, und jeder Gruppe wird ein einzelner hydraulischer Radiuswert zugewiesen. Auf dem 30 x 30 m DEM repräsentieren 100 Zellen eine Stromeinleitungsfläche von 0,09 km 2 . Wenn dieser Studienwert nahe genug an dem für das Ulus-Becken ausgewählten Wert angenommen wird, werden in dieser Studie die gleichen hydraulischen Radiuswerte verwendet und ein Raster gebildet, um die hydraulischen Werte (RGrid) darzustellen. Für die übrigen Zellen in FaGrid , die kein Bachnetz bilden, wird die Oberflächenabflusstiefe von 0,001 m als R-Wert zugewiesen.

Tabelle 2. Werte des hydraulischen Radius

Nach der Ableitung der Neigung des Beckens wird das Geschwindigkeitsgitter ( VGrid ) mit der Manningschen Gleichung (Gleichung 4) erhalten. Der VGrid stellt die Fließgeschwindigkeit in jeder Zelle des Beckens dar, die zur Berechnung des Gewichtsgitters verwendet wird. Das in dieser Studie verwendete Gewichtungsgitter wird als Inverse von VGrid berechnet und als WGrid bezeichnet (Gleichung 5). Schließlich wird dieses Gewichtungsgitter (WGrid) verwendet, um FlGrid des Beckens wie zuvor beschrieben zu berechnen.

FlGrid des Beckens wird dann aus den Eingabegittern von FdGrid und WGrid bestimmt.

Nach der Berechnung der Fahrstrecke jeder Zelle ( FlGrid ), ist der nächste Schritt die Berechnung der Reisezeitwerte. Der Maximalwert des FlGrid gehört der am weitesten entfernten Zelle des Beckens zum Auslauf. Die Fließzeit von dieser Zelle zum Auslass gibt den Konzentrationswert des Beckens an. Gleichung 6 wird verwendet, um die Werte von FlGrid anteilig zu berechnen und in Zeitwerte umzuwandeln (Kull und Feldman, 1998). Das Fahrzeitraster des Beckens wird dann aus Gleichung 6 bestimmt und als TtGrid bezeichnet.

In Gleichung 6 ist Maximum der Zellweglänge der Maximalwert von FlGrid und Tc der Konzentrationswert des Beckens zum Zeitpunkt der Konzentration. Zwei Laufzeitraster werden unter Verwendung der beiden Fließlängenraster und Gleichung 6 für Gewichtsraster- und Nichtgewichtsraster-Bedingungen berechnet.

Der dritte Parameter der Clark-Methode, das Zeitbereichshistogramm des Beckens, wird aus dem TtGrid des Beckens bestimmt. Zunächst werden Histogramme des TtGrid für verschiedene Zeitintervalle abgeleitet. Es wird beobachtet, dass die Form des Histogramms mit kleiner werdendem Intervall komplexen Ganglinien ähnelt, und wenn sie größer wird, sieht die Form ungefähr wie eine einzelne Spitzenganglinie aus. Das Ziel des Ausprobierens mehrerer Intervallwerte besteht darin, eine Histogrammform nahe einer einzelnen Spitzengangform mit dem kleinstmöglichen Intervall zu bestimmen. Nach dem Ausprobieren mehrerer Werte wird ein Zeitintervall von 400 Minuten für den Gewichtsrasterzustand und 55 Minuten für den Nichtgewichtsrasterzustand gewählt (Abbildung 6).

Abbildung 6. Histogramme des Fahrzeitrasters mit unterschiedlichen Zeitintervallen für den gewichtslosen Rasterzustand

Die IUH des Beckens wird abgeleitet, wenn das gewählte Zeitintervall unendlich klein ist. Es ist praktisch unmöglich, das Histogramm von TtGrid mit einem unendlich kleinen Zeitintervall zu erhalten. Daher wird das kleinstmögliche Zeitintervall gewählt, um die Clark-Technik anzuwenden.

Das Histogramm von TtGrid hat Zeitwerte auf der Abszisse und die Anzahl der Zellen auf der Ordinate. Das Zeit-Flächen-Histogramm des Beckens wird aus dem Histogramm von TtGrid berechnet, indem die Anzahl der Zellen in die Fläche umgewandelt wird (100 m 2 für 10 x 10 m Raster). Die Zeitflächendiagramme des Ulus-Beckens werden für Gewichtsgitter (Abbildung 7) und ohne Gewichtsgitterbedingungen erhalten.

Abbildung 7. Zeitflächen-Histogramm des Ulus-Beckens für die Gewichtungsgitterbedingung

4.4. Übersetzung Hydrograph

Nach der Bestimmung der drei Parameter der Clark-Methode wird die überschüssige Niederschlagseinheit gleichmäßig über das Becken verteilt. Anschließend wird dieser Niederschlag über eine Translationsganglinie zum Beckenauslauf befördert. Dazu wird das im vorherigen Schritt erhaltene Zeitbereichshistogramm des Beckens verwendet. Wie in Abbildung 7 dargestellt, stellt das Zeitbereichshistogramm den Prozentsatz der Beckenfläche dar, der in jedem Zeitintervall zur Strömung am Auslass beiträgt.

Nach sofortiger Anwendung der Einheitsniederschlagsmenge wird die Gesamtwassermenge, die am Beckenauslass beobachtet wird, durch Multiplizieren der Beckenfläche (955 km 2 ) mit der Niederschlagstiefe (1 mm) bestimmt. Dann wird aus dem Zeitbereichshistogramm des Beckens der prozentuale Anteil des Gesamtvolumens berechnet, der in jedem Zeitintervall zum Durchfluss am Auslass beiträgt. Die Volumina werden dann für entsprechende Zeitintervalle in Entladungen umgerechnet. Schließlich wird durch Auftragen dieser Werte auf die Mittelwerte der Zeitintervalle die Translationsganglinie bestimmt. Ähnlich wie beim Zeitflächendiagramm werden zwei Translationsganglinien erhalten, einer für den gewichteten Gitterzustand (Abbildung 8) und der andere für den nicht gewichteten Gitterzustand.

Abbildung 8. Die Translationsganglinie des Ulus-Beckens für die Gewichtsgitterbedingung

4.5. Lineares Reservoir-Routing

Wie bereits erwähnt, wird der momentane Überschussniederschlag der Einheit durch zwei Komponenten zum Beckenauslass geleitet: eine Translationsganglinie und eine lineare Reservoirführung. Die Translationsganglinie stellt die Niederschlags-Abfluss-Beziehung des Beckens nur anhand der Oberflächenströmung dar. Die Auswirkung der Stromkanalspeicherung auf die Ganglinie spiegelt sich in der linearen Lagerstättenführung wider. Die im vorherigen Abschnitt erhaltene Translationsganglinie wird durch Gleichung 7 (HEC, 2000) geleitet.

In Gleichung 7 ist I(t) die berechnete Translationsganglinie, R ist der Speicherdämpfungskoeffizient und Dt ist das ausgewählte Zeitintervall für das Routing. Q( t), das nach dem Routing erhalten wird, ist die momentane Einheitsganglinie des Beckens. Der Fräsvorgang wird so lange fortgesetzt, bis unter der Ganglinie eine Überlauftiefe von 1 mm erreicht ist. Die momentane Einheitsganglinie des Ulus-Beckens wird für Gewichtsgitter und keine Gewichtsgitterbedingungen separat erhalten.

In dieser Studie werden zwei Instantaneous Unit Hydrographs erhalten. Zuerst wird ein Gewichtungsraster erstellt und als Eingabe verwendet, um ein Zeitflächenhistogramm des Beckens abzuleiten. Das Gewichtsraster spiegelt den Strömungswiderstand jeder Zelle im Becken gemäß den topografischen und pflanzlichen Bedeckungsbedingungen wider. Zweitens wird kein Gewichtsgitterfall verwendet, bei dem angenommen wird, dass alle Zellen im DEM des Beckens den gleichen Strömungswiderstand haben.

Dann werden diese Ganglinien mit der beobachteten Einheitsganglinie des Beckens verglichen, die in einer anderen Studie ermittelt wurde (Usul, 2002). Da die beobachtete Einheitsganglinie eine Dauer von 60 Minuten hat, werden auch Einheitsganglinien gleicher Dauer unter Verwendung dieser IUHs bestimmt. Die drei Einheitsganglinien (beobachtet, Clark-Gewicht, Clark -kein Gewicht) sind in Abbildung 9 dargestellt. Die Spitzenabfluss-, Zeit-zu-Spitzen- und Basiszeitwerte der drei UH60 sind in Tabelle 3 aufgeführt.

Tabelle 3. Eigenschaften für Einheitsganglinien

Wie in Fig. 9 gezeigt, hat die Clark-Einheitsganglinie ohne Gewicht einen frühen und höheren Peak als der Peak der beobachteten Einheitsganglinie. Da in diesem Fall kein Gewichtsraster verwendet wird, gibt es keine Verzögerung in der Strömung und es wird ein früherer Ganglinienpeak gebildet. Außerdem ist dieser Wert aufgrund der schnellen Entwicklung des Abflusses höher als der beobachtete. Um den Spitzenwert zu senken, sollte der Strömungswiderstand im Becken reflektiert werden.

Abbildung 9. Synthetische und beobachtete 1-stündige Einheitsganglinien des Ulus-Beckens

Im zweiten Fall wird ein Gewichtsraster erstellt, um die topographischen und vegetativen Bedeckungsbedingungen des Beckens darzustellen. Die Verwendung des Gewichtsgitters führt jedoch zu einem späten Kommen und einem niedrigeren Spitzenabfluss als der Spitzenwert der beobachteten Einheitsganglinie. Das Gewichtsgitter, das aus der Manningschen Gleichung entwickelt wurde, führt zu einer hohen Verzögerung in der Strömung. Die Entladungsentwicklung erfolgte also langsam und es bildet sich ein später Ganglinienpeak. Daraus wird geschlossen, dass der Widerstandseffekt der Manning-Gleichung auf die Strömung größer ist als die tatsächlichen Beckenbedingungen. Der wichtigste Parameter der Manningschen Gleichung ist der Rauheitskoeffizient. Die zur Ermittlung der Koeffizienten verwendeten gedruckten Boden- und Landnutzungskarten waren alt und spiegeln daher möglicherweise nicht die tatsächlichen Bodenverhältnisse wider. Nach Berücksichtigung des signifikanten Unterschieds zwischen den beiden synthetischen Einheitsganglinien wird auch der Schluss gezogen, dass die Verwendung des Gewichtsrasters in dieser Methodik sehr wichtig ist und ein überarbeitetes Gewichtsraster die Abweichungen im Ergebnis beheben kann.

ASCE, 1996: American Society of Civil Engineers Hydrology Handbook, 2. Auflage, ASCE, USA.

Clark, CD, 1945: Storage and the Unit Hydrograph, ASCE Transactions, 110, p. 1419-1446.

Esri, 1997: ArcView Watershed Delineator User s Manual, Esri Publ . , USA .

Esri, 1998: ArcView User s Manual, Esri Publ . , USA .

Esri, 1999: Arc/Info User s Manual, Esri Publ . , USA .

Fleckenstein , J., 1998: Using GIS to derive Velocity Fields and Travel Times to Route Excess Rainfall in a Small-Scale Watershed, Univ. of California Davis web site.

HEC, 1982: Hydrologic Engineering Center: HEC-1 Training document No.15, U.S. Army Corps of Engineers, Davis , California , USA .

HEC, 2000: Hydrologic Engineering Center HEC-HMS User s Manual, Davis , California .

Kull , D. W. and Feldman, A. D., 1998: Evaluation of Clark s Unit Graph Method to Hydrologic Engineering Center Spatially Distributed Runoff, Journal of Hydrologic Engineering.

Usul , N., 2002: A Pilot Project for Flood Analysis by Integration of Hydrologic-Hydraulic Models and Geographic Information Systems (in Turkish), METU, Ankara , Turkey


Schau das Video: Integrating Deep Learning with ArcGIS using Python (Oktober 2021).