Mehr

QGIS berechnet die 3D-Oberfläche einer Region?

QGIS berechnet die 3D-Oberfläche einer Region?


Ich möchte die wahre Oberfläche einer Region aus DEM (2D-Höhendaten) berechnen.

Ist das mit QGIS möglich?

Und wenn ja, wie?

Ich habe es geschafft, eine 3D-Visualisierung der Höhendaten mit nviz (einem GRASS-Modul) zu erhalten, sehe aber keine Möglichkeit, die 3D-Oberfläche zu berechnen.


Ja es ist möglich. Das GRASS-Modul ist r.surf.area. Sie können verwenden OPEN GRASS Werkzeuge (GRASS-Plugin von QGIS). Seine Verwendung ist sehr intuitiv. Bei unregelmäßigen Oberflächen müssen Sie eine Maske verwenden.

1) Verwenden des Moduls im quadratischen Bereich (rot) des nächsten Bildes:

2) Ergebnisse im Ausgabefenster:


Wenden Sie einen Z-Faktor an, um die Genauigkeit der Volumenberechnungen sicherzustellen, wenn die Oberflächen-Z-Werte in einer anderen Maßeinheit als den XY-Einheiten ausgedrückt werden. Die Verwendung eines Z-Faktors ändert die Originaldaten nicht. Das Werkzeug bestimmt automatisch den geeigneten Z-Faktor, wenn die XY- und Z-Koordinatensysteme definiert sind.

In der Ausgabe-Textdatei werden der vollständige Pfad zur Oberfläche, die zum Generieren der Ergebnisse verwendeten Parameter sowie die berechneten Flächen- und Volumenmessungen gespeichert. Wenn dieselbe Ausgabedatei in mehreren Läufen des Tools angegeben wird, werden die bereits vorhandenen Datensätze beibehalten und die Ergebnisse an die Tabelle angehängt.


Mischen von Oberfläche und Streudiagramm in einem einzigen 3D-Plot

Ich untersuche die Verteilungsmuster von Walen um bestimmte Strukturen des Meeresbodens. Ich versuche, eine zu erstellen interaktiver 3D-Plot gleichzeitig zeigen:

  1. Bathymetrie als Oberfläche ( x = Länge, y = Breite, z = Tiefe) und
  2. Geographische Lage der Walgruppen ( x = Längengrad, y = Breitengrad, z = feste Tiefe -30 Meter zum Beispiel).

Koordinaten werden in ein UTM-Koordinatensystem projiziert.

Normalerweise arbeite ich mit R und dem ggplot2-Paket zum Erstellen von Figuren. Hier schien das Plot-Paket eine gute Option zu sein.

Ich begann mit einem Bathymetrie-Raster bathy_ras und einem data.frame von Punktpunkten.

Ich kann keine Möglichkeit finden, meine beiden Datensätze auf demselben Diagramm / derselben Achse zu kombinieren. Ich habe zwei Methoden ausprobiert, aber keine hat mir die gewünschte Ausgabe geliefert.

1) Erstellen des Plots in Rstudio mit dem Plotly-Paket.

2) Erstellen des Plots vollständig von der Plotly-Website aus. Zuerst habe ich das Raster "bathy_ras" in eine Matrix umgewandelt, die alle Koordinatenpunkte (x,y) und die Tiefe z . enthält

Ich habe ein Plotly-Konto erstellt. Ich habe zwei Datenrahmen als .txt-Dateien in mein Plotly-Konto importiert: bathy_df und points .

Dadurch werden im Plotly-Konto zwei Raster erstellt. Ich kann leicht zwei separate 3D-Plots für diese beiden data.frames schreiben: Einer ist ein Oberflächenplot (siehe unten), der andere ist ein Streudiagramm. Ich habe versucht, das Streudiagramm nach diesem Tutorial (http://help.plot.ly/update-a-graphs-data/) als neue Spur in das Oberflächendiagramm aufzunehmen, aber die Option "insert into" scheint einfach nicht verfügbar zu sein, wenn das Streudiagramm scatter ist in 3D. Oberflächenplot, erstellt über das plotly Webinterface

Ist es möglich, ein Scatter3D- und ein Oberflächendiagramm in plotly zu kombinieren?

Hinweis: Ich habe raster::persp in Kombination mit points() ausprobiert, bin aber mit der allgemeinen Ästhetik des Oberflächenplots nicht sehr zufrieden, weshalb ich dies lieber mit plotly und/oder ggplot2 tun würde.


7 Antworten 7

Hier ist meine ungefähre C#-Übersetzung des C-Codes für Ihre Situation:

Ich habe ein paar Antworten positiv bewertet, die ich für richtig halte. Aber ich denke, der einfachste Weg, dies zu tun - egal ob in 2D oder 3D, besteht darin, die folgende Formel zu verwenden:

Beachten Sie, dass die Lösung nicht von der Projektion auf die x-Ebene abhängt, was meiner Meinung nach klobig ist.

Meinst du Fläche von ebenen 3D-Polygonen?

Ich weiß nicht, wie man diese Methode optimiert (ich habe es noch nie im Code gemacht), aber der Weg, sich mathematisch zu nähern, besteht darin, Ihre Form in Dreiecke aufzuteilen, deren Fläche dann leicht berechnet und summiert wird. (Denken Sie daran: Die Fläche eines Dreiecks ist Breite * Höhe * 0,5 - Sie müssen die Höhe von nicht rechtwinkligen Dreiecken berechnen.)

Wenn Sie diese Dinge in 3D tun, bedeutet dies im Allgemeinen, dass in jeder Phase eine weitere Berechnung erforderlich ist. Zum Beispiel wird in 2D der Abstand zwischen 2 Punkten (die Länge einer Seite Ihrer Form) ungefähr wie folgt berechnet (Pseduocode, da ich kein VS auf dieser Maschine habe):

In drei Dimensionen wird daraus:

Um eine Form in beliebige Dreiecke aufzuteilen, müssen Sie nur drei benachbarte Scheitelpunkte gleichzeitig auswählen, bis Sie bei Ihren letzten drei sind.

Eine andere Lösung, bei der Sie kein Polygonnetz erstellen müssen, besteht darin, ein Konturintegral um den Umfang zu erstellen. Sie verwenden den Satz von Green, um das Flächenintegral in ein Konturintegral umzuwandeln, und verwenden dann etwas Einfaches wie die Gauß-Quadratur, um jeden Beitrag zu integrieren und zu summieren. Sie müssen eine Definition des Umfangs haben.

Dieser Prozess kann auch mit 2D-Formen funktionieren, die Löcher haben. Sie müssen nur einen Schnitt definieren, der vom äußeren Umfang zum Loch verläuft, um das Loch herum integrieren und dann zum Umfang zurückgehen.

@Graviton Ich kann die obige Antwort nicht kommentieren, daher werde ich eine neue einreichen.

Dies mag mit der c#-Syntax nicht vertraut sein, aber ich glaube, in Ihrer Antwort fehlt das Punktprodukt mit dem Einheitsnormalenvektor. Die Formel sollte lauten:

wobei n sich auf den Einheitsnormalenvektor zur Ebene bezieht, . Punktprodukt und x Kreuzprodukt.

Die Normale kann mit 3 beliebigen Vektoren des Polygons berechnet werden:

Hier ist eine Javascript-Implementierung mit der Vector.js-Bibliothek:

Sie können die Lösung in Bezug auf die 2D-Lösung herleiten.

Betrachten Sie das Polygon, das aus einem Haufen kleinerer Dreiecke besteht.

Projizieren Sie jedes Dreieck zurück auf die XY-Ebene. Sie können zeigen, dass die Fläche des ursprünglichen Dreiecks 1/(n.k) mal die Fläche des projizierten Dreiecks beträgt. (Hier ist n die Einheit senkrecht zu der Ebene, die das Polygon enthält, und k ist der Einheitsvektor in z-Richtung)

Die Gesamtfläche des Originals ist also 1/(n.k) mal die Fläche des in die XY-Ebene projizierten Polygons. Welche Sie mit Ihrer bestehenden 2D-Formel berechnen können.

Sie können n berechnen durch (e1 x e2 ) / || e1 x e2 || wobei e1 und e2 2 beliebige nicht parallele Kanten Ihres Polygons sind.

Natürlich können Sie bessere (genauere) Ergebnisse erzielen, wenn Sie in die XZ- oder YZ-Ebene projizieren. Sie sollten diejenige auswählen, deren Normale der Ihrer Ebene am nächsten ist.


Rasterbasierte Geländeanalysetechniken pt2

In Fortsetzung des Beitrags der letzten Woche zeige ich Ihnen, wie Sie mit der Geländeanalyse Folgendes berechnen:

Neigung

Die Steigung wird berechnet, indem der Pixelwert an einer bestimmten Stelle relativ zu den umgebenden 8 Pixelwerten verglichen wird. Daraus ergibt sich die Steilheit der Steigung.

Das Dialogfeld Neigung ist sehr einfach:-

Dialogfenster Steigung berechnen

  • Wählen Sie den Höhen-Layer (dies ist das DGM-Raster)
  • Wählen Sie die Ausgabeebene
  • Ich habe das Ausgabeformat und den Z-Faktor als Standard belassen. Wenn der Boden sehr flach ist, kann eine Übertreibung des Z-Faktors die Darstellung der Neigungen erleichtern.

Aspekt

Der Aspekt zeigt die Kompasspeilung der Steigung

Das Raster hat je nach Neigungsaspekt Werte von 0-360 erhalten. Die dunkleren Bereiche mit den niedrigeren Werten sind die von Nord nach Nordost ausgerichteten Hänge, die hellsten Bereiche mit den höchsten Werten sind die von West nach Nordwest ausgerichteten Hänge.

Schummerung

Dies berechnet die Menge an Sonne oder Schatten für eine 3D-Oberfläche. Das Dialogfeld ähnelt den vorherigen, es gibt jedoch neue Optionen für den Sonnenwinkel:

Dialogfeld DEM Schummerung

Diese Analyse verwendet einen festen Sonnenstand, um die Auswirkungen von kahlen Hügeln und schattigen Tälern genau zu simulieren. Ich habe die Sonne nach Südwesten (200 Grad) gestellt, die Osthänge um die Mündung des Flusses Medina im Norden der Insel sind sehr schattig, im Gegensatz zu den hell erleuchteten Westhängen auf der anderen Flussseite.

Dies ist das visuell ansprechendste und am einfachsten verständliche Ergebnis und wird daher oft als Hintergrund für Karten mit anderen hinzugefügten Ebenen verwendet.

Robustheitsindex

Der Robustheitsindexwert wird für jeden Standort berechnet, indem die Höhenänderung innerhalb des 3ࡩ-Pixel-Rasters zusammengefasst wird. Robustheitsindexwerte sind in Kategorien gruppiert, um die verschiedenen Geländetypen zu beschreiben. Die Klassifizierungen sind wie folgt:

Robustheitsindexwert

Die Dialogbox für den Robustheitsindex ist die gleiche wie für die anderen oben genannten Analysearten. Der IOW wird im Robustheitsindex alle als Ebene oder fast Ebene kategorisiert. Dies ist, obwohl es ziemlich hügelig ist! Ich habe die Kontrastverbesserung "Stretch to MinMx" im Feld "Ebeneneigenschaften" verwendet:

Ein DEM mit angezeigtem Robustheitsindex

Das Ergebnis unterscheidet sich deutlich von den Relief- und Hügelschattierungs-Raster’s. Dies liegt daran, dass nicht versucht wird, die tatsächlichen Steigungen anzuzeigen, sondern die Höhenänderung kategorisiert, wie in der Robustheitsindextabelle gezeigt. Die Hügelkette, die sich von Osten nach Westen über die Insel kreuzt, ist immer noch gut zu erkennen.


QGIS berechnet die 3D-Oberfläche einer Region? - Geografisches Informationssystem

3D-Analyse und Oberflächenmodellierung

Eine der leistungsstärksten Funktionen in GIS ist die Fähigkeit, Oberflächen zu verwalten, anzuzeigen und zu analysieren. Die Rasteranalyse enthält Methoden zur Analyse von Oberflächendaten, wie wir sie in früheren Vorlesungen und Übungen gesehen haben. Obwohl die Rasteranalyse Methoden zum Analysieren und Anzeigen von dreidimensionalen Oberflächen enthält, ist die grafische Ausgabe jedoch normalerweise auf die planimetrische Anzeige beschränkt. Durch die Verwendung von 3D-Bildern wird eine große Menge an Informationen kommuniziert.

Die 3D Analyst Extension von ArcGIS bietet einige leistungsstarke und beeindruckende Werkzeuge für die Analyse und Anzeige von 3D-Oberflächen sowie die Integration mit herkömmlichen 2D-Raster- und Vektordatenquellen. Der 3D Analyst ist eine Erweiterung, die ArcGIS Unterstützung für 3D-Formen, Oberflächenmodellierung und Echtzeit-Perspektivansicht hinzufügt. Damit können Sie räumliche Daten mithilfe einer dritten Dimension erstellen und visualisieren, um Erkenntnisse zu gewinnen, Trends aufzuzeigen und Probleme zu lösen.

Hier ist eine typische 3D-Perspektivansicht der Pack Forest-Höhe mit Bächen und Straßen. Auf die Ansicht wurde eine 3-fache vertikale Überhöhung angewendet, die topografische Merkmale deutlicher hervorhebt. Für geübte Kartenleser ist es einfach, die Beziehung von Topographie, Straßen und Bächen als Landschaftssystem zu visualisieren. Das Lesen einer topografischen Karte erfordert jedoch bestimmte Kenntnisse und Erfahrungen, die nicht jeder besitzt. Selbst für erfahrene Kartenleser vermittelt ein solches Bild weitaus intuitivere Informationen als eine flache Papierkarte.

Häufig werden numerische Attribute mit abgestuften Farb- oder Größensymbolen abgebildet, um Merkmale mit hohen Werten hervorzuheben. Auch diese Art von Karten benötigen eine Art intellektuelle Interpretation. ArcScene wird normalerweise zum Anzeigen von Höhenoberflächen verwendet, kann jedoch auch verwendet werden, um alle Arten von Daten anzuzeigen, die als Antwortoberfläche angezeigt werden können. Raster- oder TIN-Oberflächen bilden den 3D-Rahmen für die Darstellung von Raster- oder Vektor-Layern. Vektordaten-Raster-Datenquellen können über Oberflächen drapiert werden. Formen können nach oben oder unten extrudiert werden, um Volumenhöhe oder -tiefe zu implizieren.

Diese beiden Bilder zeigen im Wesentlichen die gleichen Daten im gleichen Klassifikationsstil. Die Verwendung der dritten Dimension fügt jedoch mehr visuelle Wirkung und kommunikative Kraft hinzu. Im ersten Bild wird die Population in einer abgestuften Farbsymbologie angezeigt.

Es wird dieselbe Symbologie verwendet, jedoch wird eine zur Bevölkerungsdichte proportionale Extrusion verwendet, wodurch effektiv zwei Variablen gleichzeitig angezeigt werden.

Für die Anzeige von Choroplethen-Karten (abgestufte Farben) bestehen Einschränkungen. Nachdem etwa 5 Klassen verwendet wurden, wird die Karte unlesbar, da der Leser keine subtilen Farbänderungen erkennen kann. Mit der 3D-Karte können subtilere Änderungen in der Feature-Extrusion angezeigt werden, die mehr Informationen vermitteln können als eine einfache Farbklassifizierung. Bei der Feature-Extrusion kann jedes unterschiedliche Polygon verglichen werden, während bei der einfachen Farbklassifizierung nur die Klassen verglichen werden können.

Einige numerische Attributdaten können ohne 3D-Anzeige nicht visualisiert werden. Hier ist eine Karte mit US-Städten in einem abgestuften Farbsymbol basierend auf der Anzahl der Wohnmobile in jeder Stadt. Das Problem hierbei ist, dass die bloße Anzahl der angezeigten Städte die Sicht verstellt und einige Punkte mit niedrigem Wert auf Punkte mit hohem Wert ziehen.

Dieselben Daten wurden mit der Funktion Inverse Distance Weighting zu einem Raster interpoliert. Diese Szene, von Norden aus betrachtet, zeigt Orte innerhalb der kontinentalen USA mit einer großen Anzahl von Wohnmobilen, die mit Spitzen dargestellt sind, und die Gebiete mit wenigen Wohnmobilen sind relativ flach. Dies ist eine viel informativere Karte.

Eine neue ArcGIS-Anwendung: ArcScene

Zusammen mit dem 3D Analyst kommt eine neue ArcGIS-Anwendung: ArcScene. ArcScene wird verwendet, um Daten-Layer in der 3D-Perspektive anzuzeigen. Dieses Dokument ähnelt in vielerlei Hinsicht der ArcMap-Anwendung, verwendet jedoch keine einfache planimetrische Anzeige, sondern ein perspektivisches Rendering, bei dem Layer über Oberflächen drapiert, gekippt, gedreht und geneigt werden können.

Der ArcScene-GUI wurden mehrere neue Werkzeuge und Schaltflächen hinzugefügt. Diese Werkzeuge und Schaltflächen können auch passende Menüsteuerelemente haben.

Die Schaltflächen zum Identifizieren und Zoomen funktionieren genau wie in einer normalen planimetrischen Kartenansicht. Die neuen Werkzeuge sind:

Werkzeug

Name

Funktion

navigieren

Navigation (Zoomen, Schwenken, Drehen, Neigen)

fliegen durch

über/durch eine Szene fliegen

dynamischer Zoom

zoomt rein und raus

Das ArcGIS-Anwendungsfenster enthält außerdem eine neue Viewer-Schaltfläche. Das Neuer BetrachterDie Taste r öffnet eine neue Ansicht der aktuellen 3D-Szene.

Datenquellen für 3D-Darstellung und -Analyse

Um über Oberflächen drapierte Layer darzustellen, ist die erste Voraussetzung das Vorhandensein eines Oberflächenmodells. Ein Oberflächenmodell ist eine Datenschicht, die eine kontinuierliche Oberfläche darstellt. An jedem Punkt im Oberflächenmodell gibt es einen Z-Koordinatenwert. Dieser Wert kann ein beliebiges numerisches Attribut darstellen. Am häufigsten wird die Höhe dargestellt, aber jeder numerische Wert kann verwendet werden, um eine Fläche darzustellen, wie z. B. das mittlere Einkommen, die Anzahl der Kinder pro Haushalt oder die Anzahl der HIV-Fälle.

Normale Vektordaten eignen sich nicht gut zur Darstellung von Oberflächen. Weder Linien noch Punkte können als räumlich zusammenhängend betrachtet werden, da zwischen Punkten und Linien immer räumliche Lücken bestehen. Polygondaten sind, obwohl sie häufig räumlich kontinuierlich sind, in Bezug auf Attribute im Allgemeinen nicht kontinuierlich. Die beiden besten Quellen für Oberflächenmodelldaten sind das Raster und das Triangulated Irregular Network (TIN). Das Rasterdatenmodell wird in den vorherigen Abschnitten ausführlicher behandelt (Rasteranalyse I Rasteranalyse II).

Das TIN-Datenmodell wurde bisher nicht diskutiert, da sein stärkster Platz in der Oberflächendarstellung und -analyse liegt. Was genau ist eine TIN? Wie wir aus der Geometrie wissen, wird eine Ebene durch drei Punkte definiert. Die räumliche Orientierung (Neigung und Aspekt) einer Ebene wird durch die Höhe jedes Scheitelpunkts des Dreiecks bestimmt, das die Existenz der Ebene definiert. Da zwischen zwei beliebigen Punkten auf einer Ebene eine lineare Beziehung besteht, ist es einfach, die Höhe eines beliebigen Punktes auf einem gegebenen dreieckigen ebenen Abschnitt zu bestimmen. Eine komplexe Oberfläche kann dann durch die Verwendung einer Reihe miteinander verbundener und nicht überlappender Dreiecke modelliert werden. Bei komplexeren Oberflächenmerkmalen gibt es im Allgemeinen eine größere Anzahl kleinerer Dreiecke.

Dieses Diagramm zeigt die grundlegende Anordnung von zwei Dreiecken in einem TIN. Jedes Dreieck stellt einen ebenen Schnitt mit konstanter Neigung und Ausrichtung dar. Die X- und Y-Koordinaten der Scheitelpunkte sind nicht regelmäßig beabstandet. Der Oberflächen-Z-Wert jedes Scheitelpunkts steuert die absolute Ausrichtung jedes Dreiecks. Jedes Dreieck hat eine konstante Neigung und Ausrichtung, unabhängig von der Position auf dem Dreieck. Sofern ein Dreieck jedoch nicht flach und eben ist, ändert sich die Höhe kontinuierlich über das Dreieck.

Wo Oberflächen weniger komplex sind, gibt es weniger und größere Dreiecke. Auf diese Weise ist ein TIN potenziell ein wirtschaftlicheres und genaueres Oberflächenmodell als ein Raster, da ein TIN nur bei komplexeren Oberflächen mehr Daten enthalten muss. Ein Raster kann komplexe Teile einer Oberfläche unterabtasten und einfache Teile einer Oberfläche überabtasten.

Hier ist eine planimetrische Ansicht eines für Pack Forest entwickelten TINs mit Höhenschattierung. Die Linien sind Dreieckskanten.

TINs werden einem Datenrahmen genauso hinzugefügt, wie andere Layer-Typen zu Datenrahmen hinzugefügt werden. Wenn der 3D-Analyst aktiviert ist, TIN-Datenquelle ist eine zusätzliche Wahl im Datenquellentypen Dropdown-Liste.

2D-Shapefiles und Raster-Datasets

Alle unterstützten Vektor- oder Rasterdatenquellen können in der 3D-Darstellung und -Analyse verwendet werden, solange sie entweder (1) numerische Werte enthalten, die interpretiert und als Z-Koordinaten angezeigt werden können, oder (2) in Verbindung mit einem Oberflächenmodell angezeigt werden . Diese Feature-Layer, die Höhenattribute enthalten, können in 3D-Szenen geladen und entsprechend ihrem Z-Wert im 3D-Raum platziert werden. Shapefiles, Raster und Bilder ohne Z-Wert-Attribute können über vorhandene Oberflächenmodelle drapiert werden, indem eine Basishöhe aus dem Oberflächenmodell abgerufen wird. Diese können auch extrudiert oder um eine Konstante oder den Wert eines Attributs versetzt werden.

Hier ist ein Orthofoto, das über einem DEM-Gitter drapiert ist, zusammen mit Höhenkonturen und Bächen. Alle drei Layer beziehen ihre Höhen aus dem darunter liegenden Raster.

Alle bisher von uns verwendeten Datenquellen lassen sich durch die Kombination von kartesischen (X und Y) Koordinatendaten und relational-tabellarischen Attributdaten charakterisieren. In einigen Fällen stellen die Tabellendaten Z-Koordinatenwerte dar. Alle von uns verwendeten Rasterdaten können beispielsweise als Darstellung einer Oberfläche mit Punktabtastungen in regelmäßigen X- und Y-Intervallen betrachtet werden. Bei gerasterten DEM-Daten ist der Wert tatsächlich eine echte Z-Koordinate. Bei anderen Daten, wie gerasterten Linien-, Punkt- oder Polygondaten, sind die Zellenwerte normalerweise keine Darstellungen expliziter Raumkoordinaten. Jeder numerische Wert für Rasterdaten kann jedoch als Oberflächenwert interpretiert werden.

Zusammen mit der 3D-Erweiterung kommt ein neuer Shapefile-Standard, das 3D-Shapefile. Im Gegensatz zu anderen Feature-Daten, bei denen die Features in planimetrischen Koordinaten (X und Y) gespeichert sind, enthält das 3D-Shapefile tatsächlich Z-Werte als Teil der Koordinatendaten (nicht einfach als numerische Werte in der Layer-Attributtabelle). 3D-Shapefiles können dreidimensional dargestellt werden, ohne dass ein unterstützendes Oberflächenmodell erforderlich ist.

Jedes 2D-Shapefile kann in ein 3D-Shapefile umgewandelt werden. Die Z-Koordinate für das ausgegebene 3D-Shapefile kann aus einem konstanten Wert, aus einem numerischen Attribut oder aus einer vorhandenen Oberflächenmodell-Datenquelle (Raster oder TIN) stammen. Nach der Konvertierung in ein 3D-Shapefile benötigt dieser Layer kein Oberflächenmodell mehr, um die 3D-Anzeige zu ermöglichen.

Die Legendenbearbeitung für 3D-Szenen ähnelt der Legendenbearbeitung für 2D-Datenrahmen. Das Inhaltsverzeichnis wird verwendet, um bestimmte Ebenen zu aktivieren. Legenden können für aktive Layer genauso geändert werden wie für andere Layer.

Ausgenommen hiervon ist die Legende für TIN-Layer. TIN-Layer können als Multi-Feature-Layer angezeigt werden. Es ist möglich, gleichzeitig Dreiecksknoten (Punkte), Dreieckskanten (Linien) und Dreiecksflächen (Polygone) anzuzeigen. Layer-Eigenschaften für die Symbologie werden für TINs genauso konfiguriert wie für andere Layer, mit der Ausnahme, dass ein TIN in einer beliebigen Kombination auswählbarer Renderer angezeigt werden kann.

Klicken Sie auf die Bearbeiten Schaltflächen für jeden Feature-Typ öffnet den Legenden-Editor für diesen Feature-Typ. Diese entsprechen genau dem allgemeinen Legenden-Editor für 2D-Feature-Layer, einschließlich der Symbolbearbeitung und -klassifizierung.

Visualisierung von 2D-Features in 3D durch Drapieren und Extrudieren

Alle Features, ob Raster oder Vektor, 2D oder 3D, können in einer 3D-Szene angezeigt werden. Für die Darstellung von Landschaftsflächen (Ansichten) ist das Drapieren der gebräuchlichste 3D-Effekt. Features werden auf ein Oberflächenmodell drapiert, ähnlich wie ein Stoff über einem Drahtrahmen drapiert wird.

Um Features zu drapieren, ist es notwendig, auch wenn diese Features Teil des Oberflächenmodells sind, das die 3D-Szene definiert Eigenschaften (Basishöhen und/oder Extrusion und/oder Rendering) für jede drapierte Ebene.

3D-Layer-Eigenschaften steuern die Basishöhe eines Layers, entweder als Konstante, als numerisches Attribut oder als arithmetischer Ausdruck, aus einem Oberflächenmodell oder aus den Z-Koordinaten von 3D-Shapefiles. Es kann eine Z-Übertreibung angewendet werden, die jede Z-Koordinate mit einem konstanten Wert multipliziert.

Features können durch eine Konstante, ein numerisches Attribut oder einen arithmetischen Ausdruck von der Basishöhe versetzt werden. Dies kann verwendet werden, um Features über einer Oberfläche schweben zu lassen (z. B. Versorgungsleitungen). Manchmal werden Merkmale nicht direkt auf Oberflächenebene gut angezeigt, sodass ein leichter positiver Z-Versatz sie optisch hervorheben kann.

Features können auch aus der Oberfläche extrudiert werden, um Pole, Brunnen, Wände und andere geometrische Volumenkörper zu erstellen.

Features können gerendert (schattiert) werden, um ihnen ein realistischeres 3D-Aussehen zu verleihen. Schließlich können Ebenen so eingestellt werden, dass sie während der Interaktion nicht gezeichnet werden. Wenn 3D-Szenen durch Ändern von Perspektive, Zoom und Neigung geändert werden, können sie so eingestellt werden, dass sie nicht gezeichnet werden, bis die Szene für eine bestimmte Zeit an derselben Position gehalten wird.

Die meisten der in diesem Abschnitt beschriebenen Bilder sind Oberflächenvorhänge. In dieser 3D-Szene werden die CFI-Plots nicht über eine Oberfläche drapiert, sodass der Hintergrund flach erscheint. CFI-Plotzentren werden zweimal angezeigt, einmal als schwarze Punkte, die mit einem Wert proportional zum Holzvolumen versetzt sind, und erneut als extrudierte Linien in der Höhe proportional zum Holzvolumen-Attribut. Außerdem werden die Waldbestände in einer abgestuften Farbsymbolik nach Bestandsalter (jung = rot alt = grün) dargestellt.

Navigation und Bewegung in Echtzeit

Es ist einfach, sich in einer 3D-Szene zu bewegen. Schnelle Computer mit guten Grafikkarten werden in der Lage sein, schneller zu zeichnen und auf die Navigationssteuerung zu reagieren.

Das Navigationswerkzeug ist der Controller zum Drehen, Schwenken, Zoomen und Ändern der Ausrichtung der Oberfläche. Die Verwendung dieses Werkzeugs in Kombination mit Tastaturtasten und verschiedenen Maustasten steuert sein Verhalten (siehe Hilfe zum Navigieren in der 3D-Szene).

Wenn sich der Cursor während des Drehens, Schwenkens oder Zoomens im Anzeigebereich befindet, stoppt das Anhalten der Mausbewegung die Bewegung der Oberfläche in der Szene. Um die Bewegung fortzusetzen, bewegen Sie den Cursor außerhalb des Betrachters, während Sie die Maustaste gedrückt halten. Kleine Bewegungen der Maus außerhalb des Betrachters lösen die Bewegung aus und lassen sie weiterlaufen.

Konturieren wird in Raster Analysis II behandelt. Neben der Erstellung ganzer Konturdatensätze ist es mit dem 3D Analyst auch möglich, einzelne Konturen als einfache Grafiken mit Hilfe der Kontur Werkzeug .

Sichtlinienanalyse, Sichtbarkeitsanalyse und Oberflächenprofilierung

Die Spatial Analyst Extension enthält einige Funktionen für die Sichtlinien- und Sichtbarkeitsanalyse.

Das Werkzeug „Sichtlinie“ , das die Sichtbarkeit einer zwischen zwei Punkten gezogenen Linie analysiert. Orte der Landschaft, die entlang der Linie zwischen Beobachter und Ziel sichtbar sind, werden grün, nicht sichtbare Orte rot dargestellt.

Das Oberfläche > Sichtfeld berechnen Menüauswahl wird verwendet, um zu bestimmen, welche Teile der Landschaft von einem bestimmten Punkt aus sichtbar sind. Dies erzeugt ein Raster, das alle sichtbaren Bereiche anzeigt, anstatt nur die sichtbaren Stellen entlang einer Linie zwischen einem Ziel und einem Beobachter. Hier sind alle sichtbaren Bereiche grün.

Für 3D-Linien, die auf einem Datenrahmen gezeichnet wurden, oder für Features, die aus Line-Feature-Classes ausgewählt wurden, ist es auch möglich, Oberflächenprofile basierend auf zugrunde liegenden Oberflächendaten zu erstellen Profildiagramm erstellen Werkzeug .

Farbschattierungszuordnung

Der 3D Analyst enthält leistungsstarke Werkzeuge zur Visualisierung von Landschaften. Eines der stärksten ist die Farb-Schallschatten. Dies zeigt die Höhe in benutzerdefinierten Farben an, z. B. grüne > gelbe > rote Farbverläufe, wendet aber auch analytische Schummerung auf die Ansicht an. Dadurch wird ein visuelles Modell der Landschaft erstellt, in dem die Merkmale Volumen zu haben scheinen. Vergleichen Sie die beiden 3D-Szenen, eine mit analytischer Schummerung und eine ohne:

Die Option für die Schattierung wird durch das Kontrollkästchen im Layereigenschaften > Rendering Dialog.

Steilster Abstieg

Die im Abschnitt über Hydrologische Modellierung verwendeten Werkzeuge zur Abgrenzung von Wassereinzugsgebieten ermöglichen die Erstellung von Einzugsgebieten. Für jeden Punkt innerhalb einer Wasserscheide ist bekannt, wo sich der endgültige Auslasspunkt befindet. Aber wo fließt das eigentliche Wasser über die Oberfläche? Bei einem in einen Datenrahmen geladenen Oberflächenmodell wird die Steilster Pfad Werkzeug verfügbar wird. Wenn ein Punkt im Datenrahmen angeklickt wird, wird dem Datenrahmen eine grafische Linie hinzugefügt, die dem Pfad des steilsten Abstiegs folgt.

Dieses grafische Objekt kann kopiert und in ein neues Shapefile eingefügt und einer 3D-Szene hinzugefügt werden.

Neigungs- und Aspektberechnung

Viele physikalische Prozesse und Managementziele hängen mit Hang und Aspekt zusammen. Die Neigung ist definiert als (Höhenänderung / Änderung der planimetrischen Entfernung). Manchmal wird die Steigung im Gradmaß und manchmal im Prozentmaß definiert. Aspect ist die Himmelsrichtung des Hangs, die bergab zeigt.

Bei TIN-Oberflächenmodellen werden Neigung und Ausrichtung automatisch als Attribute jedes Dreiecks berechnet. Bei Höhengittern sind Neigung und Ausrichtung jedoch keine nativen Attribute. Es ist einfach, Neigung und Ausrichtung für Höhenraster zu berechnen Oberfläche > Ableitungsaspekt und Fläche > Neigung ableiten Menüauswahl.

ArcGIS berechnet die Neigung in Grad, die in eine prozentuale Neigung umgewandelt werden kann, indem der Tangens der Neigung (gemessen im Bogenmaß) mit 100 % multipliziert wird.

Hier ist ein Datenrahmen, der ein Neigungsraster enthält. Beachten Sie, dass sich die steilsten Hänge in den Tälern und Schluchten der Flüsse Mashel und Nisqually befinden.

Aspektklassen werden hier angezeigt. Beachten Sie, wie sich das Aussehen an Bachrinnen und Gratlinien abrupt ändert.


Wenden Sie einen Z-Faktor an, um die Genauigkeit der Volumenberechnungen sicherzustellen, wenn die Oberflächen-Z-Werte in einer anderen Maßeinheit als den XY-Einheiten ausgedrückt werden. Die Verwendung eines Z-Faktors ändert die Originaldaten nicht. Das Werkzeug bestimmt automatisch den geeigneten Z-Faktor, wenn die XY- und Z-Koordinatensysteme definiert sind.

In der Ausgabe-Textdatei werden der vollständige Pfad zur Oberfläche, die zum Generieren der Ergebnisse verwendeten Parameter sowie die berechneten Flächen- und Volumenmessungen gespeichert. Wenn dieselbe Ausgabedatei in mehreren Läufen des Tools angegeben wird, werden die bereits vorhandenen Datensätze beibehalten und die Ergebnisse an die Tabelle angehängt.


Fläche (nicht Oberfläche) und Umfang eines Netzes berechnen

Ich recherchiere derzeit, wie man geometrische Eigenschaften von architektonischen Formen basierend auf ihren 3D-Netzen berechnet und stecke seit einiger Zeit an der Bereich und Umfang Berechnungen.

Zuerst die Bereich: Vorausgesetzt, ich habe die Proportionen richtig eingestellt, wenn ich zum Beispiel eine Wand mit 3 Metern Höhe, 7,8 Metern Breite und 0,290 Metern Dicke habe, interessiert mich das Ergebnis Höhe * Breite (3 * 7,8) , was mir in diesem Fall 23,4 Meter ergeben würde. Meine Idee ist, eine 2D-Projektion dieses 3D-Netzes auf eine dazu parallele Ebene zu erhalten, die Oberfläche jedes Dreiecks zu berechnen und sie zu summieren, was mir die Netzfläche unabhängig von seiner Form geben würde, vorausgesetzt, es ist planar . Das Problem ist, wie genau kann ich diese triangulierte Projektion erhalten? Ich glaube, wenn das Netz an der Weltachse ausgerichtet ist, muss man einfach eine davon ignorieren, aber leider kann dies nicht angenommen werden, da Netze in Bezug auf eine oder mehrere Achsen gedreht werden , und das einfache Ignorieren einer Achse würde die Projektion verzerren. Gibt es außerdem eine Methode, die auch bei einem nicht-planaren Netz funktionieren würde?

Nun zum Umfang: Gibt es nach der Lösung des Flächenproblems einen robusten Algorithmus, der mir die Konturen dieser triangulierten 2D-Projektion liefert und der sowohl mit konvexen als auch mit konkaven Netzen funktioniert? Ich glaube, dass es dabei darum geht, einfach alle Kanten der Kontur zu addieren.


2 Antworten 2

Man kann DiscretizeRegion verwenden, um ein Mesh zu erhalten:

3D-Oberflächenplotter wie Plot3D können über 2D-Regionen plotten. Wir können Slice und Projizieren in 2D übernehmen:

Wenn der 3D-Schnitt in einer anderen Himmelsebene liegt, müssen wir mit anderen Koordinatenindizes projizieren. Hier ist ein Beispiel über einer y-z-Ebene:

Beachten Sie, dass Ihre Region

Deshalb beschwert sich die FEM-Netzgeneration. Sehen Sie, dass das funktioniert:

Beachten Sie den Unterschied im Verhalten für die Einbettungsdimension des zurückgegebenen Objekts zwischen DiscretizeRegion und der ElementMesh-Funktionsfamilie.

Betrachten wir nun ein anderes R . Sie können die berechneten Werte auf der Kreuzung visualisieren.


Angenommen, Sie haben 3 Punkte $mathbf$. Finden Sie den Winkel $ heta$ zwischen $mathbf$ und $mathbf$ mit Punktprodukt (d. h. $mathbfcdotmathbf=|mathbf||mathbf|cos heta$) und dann kannst du die Fläche des Dreiecks mit $ A=frac<1><2>|mathbf . ermitteln||mathbf|sin heta $

Wenn Ihre 3 Punkte A, B, C sind, können Sie direkt die (halbe) Kreuzproduktformel verwenden: $S=dfrac<|mathbf imesmathbf|>2=dfrac<|mathbf||mathbf||sin( heta)|>2 $ also (siehe Wikipedia-Link, um das Kreuzprodukt in $mathbb . zu erhalten^3$ ) : $S=frac 12 sqrt<(y_cdot z_-z_cdot y_)^2+(z_cdot x_-x_cdot z_)^2+(x_cdot y_-y_cdot x_)^2>$ wenn $mathbf=(x_,y_,z_)$ und $mathbf=(x_,y_,z_)$

Wahrscheinlich einer der besten (und möglicherweise am wenigsten rechenintensiven) Wege, dieses Problem anzugehen, sind Vektoren. In diesem Fall haben wir drei Punkte, die ich zur besseren Reproduzierbarkeit als willkürliche Variablen behalte.

$P_1(a_1,a_2,a_3) P_2(b_1,b_2,b_3) P_3(c_1,c_2,c_3)$

Diese drei Punkte können verwendet werden, um zwei Vektoren zu erstellen, die denselben Anfangspunkt haben. Es spielt keine Rolle, in welcher Kombination wir die Punkte wählen, solange wir zwei Vektoren mit dem gleichen Anfangspunkt erstellen, um dann ihren normalen (orthogonalen) Vektor mit dem zu berechnen Kreuzprodukt. Sobald wir die senkrecht, wir können es bekommen Größe, die dem 2-fachen der Fläche des genannten Dreiecks entspricht. (Die Größe des Orthogonalen gibt uns die Fläche eines Parallelogramms mit den gleichen benachbarten Seiten, daher halbieren wir diese Fläche am Ende, um die Fläche des Dreiecks zu erhalten).

Um die Vektoren aus einem Punktpaar zu erstellen, gehen Sie wie folgt vor:

$ vec = <b_1-a_1,b_2-a_2,b_3-a_3> = <x_1, y_1, z_1>$ $ vec = <c_1-a_1,c_2-a_2,c_3-a_3> = <x_2,y_2,z_2>$

Hier ist ein grundlegendes Bild von dem, was wir tun werden:

Sobald Sie beide Vektoren haben, können Sie ihre . berechnen orthogonaler Vektor indem sie ihre Kreuzprodukt, machst du es wie folgt:

$vec = vec mal vec$ $vec = egin mathbf i & mathbf j & mathbf k x_1 & y_1 & z_1 x_2 & y_2 & z_2 end\ $

$vec = egin y_1 & z_1 y_2 & z_2 endmathbf ich - egin x_1 & z_1 x_2 & z_2 endmathbfj + egin x_1 & y_1 x_2 & y_2 endmathbf k $

$vec = (y_1z_2-y_2z_1)mathbf i-(x_1z_2-x_2z_1)mathbf j+(x_1y_2-x_2y_1)mathbf k= <y_1z_2-y_2z_1, x_1z_2-x_2z_1, x_1y_2-x_2y_1 ,z_3>$

Sobald Sie den orthogonalen Vektor aus dem Kreuzprodukt haben, berechnen wir seine Größe:

Schließlich bleibt uns die Fläche eines Parallelogramms, das aus zwei unserer Dreiecke besteht. An diesem Punkt halbieren wir die Größe und wir haben das gewünschte Ergebnis.


Schau das Video: ArcGis 3d analyst Draping an image over a terrain surface