Dies ist der Befehl r.viewshedgrass, der im kostenlosen OnWorks-Hosting-Provider über eine unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, Windows-Online-Emulator oder MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
r.viewshed - Berechnet den Sichtbereich eines Punktes auf einer Höhen-Rasterkarte.
Standardformat: NULL (unsichtbar), vertikaler Winkel bzgl. Ansichtspunkt (sichtbar).
SCHLÜSSELWÖRTER
Raster, Sichtfeld, Sichtlinie
ZUSAMMENFASSUNG
r.viewshed
r.viewshed --help
r.viewshed [-krbe] Varianten des Eingangssignals:=Name Möglichkeiten für das Ausgangssignal:=Name Koordinaten=Osten Norden
[Beobachter_Elevation=Wert] [Zielhöhe=Wert] [maximale Entfernung=Wert]
[Brechungs_Koeffizient=schweben] [Erinnerung=Wert] [Verzeichnis=Schnur] [--überschreiben] [--Hilfe]
[--ausführlich] [--ruhig] [--ui]
Flaggen:
-c
Berücksichtigen Sie die Erdkrümmung (aktuelles Ellipsoid)
-r
Berücksichtigen Sie den Effekt der atmosphärischen Brechung
-b
Ausgabeformat ist unsichtbar = 0, sichtbar = 1
-e
Ausgabeformat ist unsichtbar = NULL, sonst aktuelle Höhe - viewpoint_elev
--überschreiben
Ausgabedateien erlauben, vorhandene Dateien zu überschreiben
--help
Nutzungszusammenfassung drucken
- ausführlich
Ausführliche Modulausgabe
--ruhig
Leiser Modulausgang
--ui
Starten des GUI-Dialogs erzwingen
Parameter:
Varianten des Eingangssignals:=Name [erforderlich]
Name der Eingabe-Höhen-Rasterkarte
Möglichkeiten für das Ausgangssignal:=Name [erforderlich]
Name für Ausgabe-Rasterkarte
Koordinaten=Osten Norden [erforderlich]
Koordinaten der Betrachtungsposition
Beobachter_Elevation=Wert
Anzeigen der Höhe über dem Boden
Standard: 1.75
Zielhöhe=Wert
Offset für Zielhöhe über dem Boden
Standard: 0.0
maximale Entfernung=Wert
Maximaler Sichtradius. Standardmäßig unendlich (-1)
Standard: -1
Brechungs_Koeffizient=schweben
Brechungskoeffizient
Option: 0.0 1.0
Standard: 0.14286
Erinnerung=Wert
Zu verwendende Speichermenge in MB
Standard: 500
Verzeichnis=Schnur
Verzeichnis für temporäre Dateien (sie können groß sein)
BESCHREIBUNG
r.viewshed ist ein Modul, das den Sichtbereich eines Punktes auf einem Raster-Terrain berechnet. Das ist,
Bei gegebenem Höhen-Raster und der Position eines Beobachters wird eine Rasterausgabe generiert
Karte, die zeigt, welche Zellen von der angegebenen Position aus sichtbar sind. Der zugrunde liegende Algorithmus
r.viewshed minimiert sowohl die CPU-Operationen als auch den Datentransfer zwischen Hauptspeicher
und Scheibe; als Ergebnis r.viewshed läuft schnell auf sehr großen Rastern.
ANMERKUNG
Zu rennen r.viewshed, muss der Benutzer einen Eingabe-Höhenkartennamen, eine Ausgabe-Rasterkarte
Name und die Position des Aussichtspunkts.
Vorerst der Standpunkt (Koordinaten Parameter) wird angenommen, dass sie sich im Inneren befindet
das Gelände. Die Position des Aussichtspunkts wird in Kartenkoordinaten angegeben.
Die Ausgabe-Rasterkarte kann eines von drei möglichen Formaten haben, je nachdem, welche Flags
gesetzt.
Wenn kein Flag gesetzt ist, befindet sich die Ausgabe standardmäßig im Winkelmodus und jeder Punkt in der Ausgabe
Karte wird als NULL markiert, wenn der Punkt nicht sichtbar ist oder der entsprechende Punkt in der Höhe
map ist NULL. Andernfalls ein Wert in [0, 180], der den vertikalen Winkel bezüglich
zum Ansichtspunkt, in Grad, wenn der Punkt sichtbar ist. Ein Wert von 0 liegt direkt unter dem
angegebenen Betrachtungsposition, 90 ist horizontal fällig. Der Winkel zur Zelle, die das enthält
Die Betrachtungsposition ist undefiniert und auf 180 eingestellt.
Besitzt das -b Flag ist gesetzt, die Ausgabe erfolgt im booleschen Modus und jeder Punkt in der Ausgabekarte ist
markiert als:
· 0, wenn der Punkt keine Daten/Null enthält oder nicht sichtbar ist
· 1, wenn der Punkt sichtbar ist.
Besitzt das -e Flag ist gesetzt, die Ausgabe erfolgt im Höhenmodus und jeder Punkt in der Ausgabekarte
ist gekennzeichnet als:
· no-data (null), wenn der jeweilige Punkt in der Höhenkarte no-data (null) ist
· -1, wenn der Punkt nicht sichtbar ist
· der Höhenunterschied zwischen dem Punkt und dem Aussichtspunkt, wenn der Punkt
sichtbar
Wenn Sie den Bereich der Karte identifizieren möchten, der sich innerhalb des Suchradius befindet, aber nicht
sichtbar, eine Kombination aus r.Puffer und r.mapcalc kann verwendet werden, um ein Negativ des zu erstellen
Ansichtskarte.
Standardmäßig werden die Höhen nicht an die Erdkrümmung angepasst. Der Benutzer kann
schalte dies mit der Flagge ein -c.
Standardmäßig wird davon ausgegangen, dass der Beobachter eine Höhe von 1.75 Karteneinheiten über dem Gelände hat. Die
Benutzer kann dies mit Option ändern Beobachter_Elevation. Der eingegebene Wert ist gleich
Einheiten als Höhe.
Standardmäßig wird davon ausgegangen, dass das Ziel eine Höhe von 0 Karteneinheiten über dem Gelände hat. Die
Benutzer kann dies mit Option ändern Zielhöhe um festzustellen, ob Objekte einer gegebenen
Höhe wäre sichtbar. Der eingegebene Wert hat die gleichen Einheiten wie die Höhe.
Standardmäßig gibt es keine Beschränkung der maximalen Entfernung, die der Beobachter sehen kann.
Der Benutzer kann mit der Option . eine maximale Sichtweite einstellen maximale Entfernung. Der Wert
Die eingegebene Größe hat dieselbe Einheit wie die Zellengröße des Rasters.
Hauptspeichernutzung: Standardmäßig r.viewshed geht davon aus, dass es 500 MB Hauptspeicher hat und richtet sich ein
seine internen Datenstrukturen, so dass es nicht mehr als diese Menge an RAM benötigt.
Der Benutzer kann die vom Programm verwendete Speichermenge einstellen, indem er die Speichernutzung zu
die Anzahl der MB Speicher, die sie verwenden möchten.
Memory Modus
Der Algorithmus kann in zwei Modi ausgeführt werden: im internen Speicher, was bedeutet, dass er alles behält
notwendigen Datenstrukturen im Speicher während der Berechnung. Und im externen Speicher, der
bedeutet, dass die Datenstrukturen extern sind, dh auf Platte. r.viewshed entscheidet welcher Modus
mit der vom Benutzer angegebenen Menge an Hauptspeicher laufen. Der interne Modus ist
(viel) schneller als der externe Modus.
Im Idealfall sollte der Benutzer in der Befehlszeile die Größe des physischen Speichers angeben, der
kostenlos für das Programm zu verwenden. Eine Unterschätzung des Speichers kann dazu führen, dass r.viewshed Laufen
im externen Modus statt im internen, was langsamer ist. Überschätzung der kostenlosen Menge
Speicher kann dazu führen, dass r.viewshed läuft im internen Modus und verwendet virtuellen Speicher, was
ist langsamer als der externe Modus.
Die Algorithmus
r.viewshed verwendet das folgende Modell zur Bestimmung der Sichtbarkeit: Die Höhe einer Zelle ist
als variabel angenommen, und die tatsächliche Höhe eines Punktes, der in eine Zelle fällt, aber nicht
identisch mit der Zellmitte, wird interpoliert. Somit wird das Gelände als glatt angesehen
Oberfläche. Zwei Punkte sind füreinander sichtbar, wenn sich ihre Sichtlinie nicht schneidet
das Gelände. Die Höhe für einen beliebigen Punkt x im Gelände wird aus dem 4 . interpoliert
umliegenden Nachbarn. Dies bedeutet, dass dieses Modell eine bilineare Interpolation von
Höhen. Dieses Modell eignet sich sowohl für niedrig- als auch für hochauflösende Raster sowie
Gelände mit flachen und steilen Hängen.
Der Kern des Algorithmus besteht darin, für jede Zelle die Sichtlinie und ihre
Schnittpunkte mit den Zellen im Gelände. Für ein (quadratisches) Raster von n Zellen, kann es sein
Auf 1 / 2) Zellen, die die LOS schneiden. Wenn wir jede einzelne dieser Zellen für jeden Punkt testen
im Raster ergibt dies O(n3/2) testet. Wir können all diese Tests schneller durchführen, wenn wir sie wiederverwenden
Informationen von einem Punkt zum nächsten (zwei Gitterpunkte, die nahe beieinander liegen, werden
von vielen gleichen Punkten geschnitten werden) und die Berechnung anders organisieren.
Genauer gesagt verwendet der Algorithmus eine Technik namens Linie kehren: Es betrachtet a
Halblinie zentriert am Blickpunkt und dreht sie radial um den Blickpunkt, 360
Grad. Während des Sweeps verfolgt es alle Zellen, die die Sweeplinie schneiden
zu jener Zeit; Diese heißen die aktiv Zellen. Eine Zelle hat 3 verknüpfte Ereignisse: wenn sie
wird zuerst von der Sweep-Linie getroffen und in die aktive Struktur eingefügt; wann es das letzte mal begegnet ist
durch die Sweep-Linie und aus der aktiven Struktur gelöscht; und wenn die Sweep-Linie passiert
über seinem Mittelpunkt, zu welchem Zeitpunkt seine Sichtbarkeit bestimmt wird. Um das festzustellen
Sichtbarkeit einer Zelle Alle Zellen, die die Sichtlinie schneiden, müssen aktiv sein, damit sie
befinden sich in der aktiven Struktur. Der Algorithmus betrachtet alle aktiven Zellen zwischen
den Punkt und den Aussichtspunkt und findet die maximale Steigung zwischen diesen. Wenn die Zelle
ist der Gradient höher, wird er als sichtbar markiert, wenn er niedriger ist, wird er als . markiert
unsichtbar.
Für ein (quadratisches) Raster von n Insgesamt verwendet der Standard-Viewshed-Algorithmus Auf
Quadrat(n))= O(n3/2) Zeit, während der Sweep-Line-Algorithmus Auf lg n) Zeit. Diese
Algorithmus ist effizient in Bezug auf CPU-Operationen und kann auch in Bezug auf effizient gemacht werden
von I/O-Operationen. Für alle Details siehe die REFERENZEN unten.
Die Sweep-Linie. Die aktiven Zellen.
Beispiele:
Verwenden des North Carolina-Datasets: Berechnen des Sichtfelds von einem Beobachtungspunkt (Koordinaten:
638728.087167, 220609.261501), die 5 Meter über dem Boden liegt:
g.region raster=elev_lid792_1m -p
r.viewshed Eingabe=elev_lid792_1m Ausgabe=elev_lid792_1m_viewshed
Koordinaten=638728.087167,220609.261501 Observer_Elevation=5.0
Sichtfeld Verwenden des Spearfish-Datasets: Berechnung des Aussichtspunkts von der Spitze eines Berges:
g.region raster=elevation.10m
r.viewshed Eingabe=Höhe.10m Ausgabe=Viewshed
Koordinaten=598869,4916642 mem=800
REFERENZEN
· Computing Visibility auf Terrains im externen Speicher. Herman Haverkort, Laura Toma
und Yi Zhuang. In ACM Journal on Experimentell Algorithmen (JEA) 13 (2009).
· Computing Visibility auf Terrains im externen Speicher. Herman Haverkort, Laura Toma
und Yi Zhuang. In dem Verfahren of 9. Workshop on Algorithmus Process Engineering und
Experimente / Workshop on Analytisch Algorithms und Kombinatorik (ALENEX/ANALCO
2007).
Verwenden Sie r.viewshedgrass online mit den onworks.net-Diensten