############################################################################### 3D-Stadtmodell ############################################################################### Lernziele =============================================================================== - Umgang mit 3D Daten in ArcGIS Pro - Erstellung eines TINs / digitalen Geländemodells - Überlagerung mit 2D-Daten (Drape) - Übergang in den 3D-Raum Hintergrund der Übung =============================================================================== Digitale Höhenmodelle (DHM) kommen in einer Vielzahl von Anwendungen zum Einsatz. Sichtbarkeitsberechnungen, Ermittlung von Solarpotentialen, Katastrophenmanagement, Lärmanalysen oder 3D-Gebäudemodelle sind nur einige Beispiele. Die benötigten Daten können per Hand über Tachymeter, GPS und Digitalisierung von Höhenlinienkarten oder über Radar, Luftbilder und Laserscanning ermittelt werden. Zusätzlich gibt es zahlreiche Möglichkeiten, wie Gitterlinien (Grids), TINs, Höhenlinien, Schummerungen und Kombinationen daraus, ein digitales Höhenmodell graphisch darzustellen. Digitale Höhenmodelle ------------------------------------------------------------------------------- Bei der Befliegung mit einem Laserscanner wird die Geländeoberfläche mit einem Laserstrahl abgetastet. Der Laserstrahl kann dabei nur einfach (z.B. Gelände) oder aber auch mehrfach (z.B. zuerst von Blättern und danach vom Boden) reflektiert werden. Die erste Reflektion wird als *First Pulse* bezeichnet, die letzte Reflektion als sogenannter *Last Pulse*. Aus dem *First Pulse* wird das **Digitale Oberflächenmodell (DOM)**, aus dem *Last Pulse* das **Digitale Geländemodell (DGM)** abgeleitet. Das DGM stellt die reine Oberfläche der Erde **ohne Bebauung, Vegetation, Fahrzeuge etc.** dar. Das DOM hingegen beinhaltet zusätzlich auf der Erde befindliche Objekte. .. figure:: media/domvsdgm.PNG :align: center :name: 05_domvsdgm Vergleich von DOM und DGM **Frage: Wie können diese Informationen genutzt werden, um herauszufinden wieviele Gebäude in einem bestimmten Bereich Höher als 10 Meter sind und wo sich diese befinden?** TINs ------------------------------------------------------------------------------- TINs (Triangulated Irregular Network) werden zur Darstellung von dreidimensionalen Oberflächen verwendet. Dies kann z.B. über ein PointFeature geschehen, welcher mit dreidimensionalen Koordinaten angelegt wird, in dem die jeweiligen Punkte mit ihren Höhenwerten gespeichert werden können. Diese Punkte können entsprechend der Datenquelle entweder ein regelmäßiges Raster bilden oder beliebig verteilt auftreten. Je mehr Punkte für einen bestimmten Raum verfügbar sind, desto genauer wird das fertige Modell. Jedoch erhöht sich dabei die Datenmenge und damit auch die Rechenzeiten enorm. Als nächstes werden die Punkte so miteinander verbunden, dass dabei Dreiecke entstehen (Dreiecksvermaschung). Für diesen Schritt gibt es verschiedene Methoden (z.B. Delaunay-Triangulation), jedoch erhält man in jedem Fall im Anschluss ein vektorbasiertes Datenmodell. In einer Delaunay-Triangulation erfüllen alle Dreiecke des Dreiecksnetzes die sogenannte Umkreisbedingung: Der Umkreis eines Dreiecks des Netzes darf keine weiteren Punkte der vorgegebenen Punktmenge enthalten. Die dadurch entstandenen Dreiecke werden nun mit einer Flächenfüllung versehen, welche linear interpoliert wird. Man erhält ein dreidimensionales Geländemodell (3D-Darstellung in ArcGIS Pro), das in ArcGIS Pro zweidimensional und Höhen-farbcodiert dargestellt wird. .. figure:: media/image1.jpeg :width: 6.0625in :height: 1.75in :align: center :scale: 100 % :name: 05_erstellung_tin Erstellung eines TINs (ESRI, RESOURCE CENTER) Ziel der Übung =============================================================================== Es soll ein 3D-Stadtmodell eines Ausschnitts aus München unter Verwendung eines DGM und DOM erzeugt werden. Zweidimensionale Daten werden über das TIN gelegt (*Drape*). Gebäude werden durch Extrusion vom 2D-Raum in den 3D-Raum erhöht. Durch Erzeugung von Puffern sollen linienhafte Straßen exemplarisch definierte Breiten erhalten. Abschließend soll eine einfache Analyse mit den erstellen 3D-Gebäudemodellen durchgeführt werden. - **Übungsziel 1 - Bestimmung der Gebäudehöhen** Zu Beginn werden die Gebäudehöhen für das 3D-Stadtmodell berechnet. Da keine Gebäudehöhen vorliegen, müssen diese zunächst hergeleitet werden. Dies geschieht durch Differenzbildung zwischen DOM-Höhe und DGM-Höhe. - **Übungsziel 2 - TIN-Erstellung** Für das zweite Übungsziel werden Sie mithilfe gegebener Laserpunktdaten ein TIN erstellen; dies dient als Grundlage für die Überlagerung der 2D-Daten. - **Übungsziel 3 - Überlagerung von 2D-Daten** Im Anschluss werden die zweidimensionalen Layer auf das TIN überlagert (*Drape*). Diese werden somit an die Topographie des Geländes angepasst. - **Übungsziel 4 - Übergang zu 3D und Analysen im 3D-Stadtmodell** Zuletzt müssen die Gebäude anhand ihres Grundrisses und der berechneten Höhe extrudiert werden. Dabei entstehen dreimensionale *Klötzchen-Modelle* (= Level of Detail (LoD) 1). Die Straßen sollen von Linien in Flächen übergehen. Dazu steht eine vorgegebene Breiteninformation für die verschiedenen Straßentypen bereit. Dies geschieht durch Pufferung. Abschließend soll eine einfache Analyse der 3D-Daten durchgeführt werden. Übungsumsetzung =============================================================================== Vorbereitung ------------------------------------------------------------------------------- - Erstellen Sie auf dem Desktop einen Abgabeordner mit passendem Namen (z.B. GIS_UE_4) - Laden Sie die Zip-Ordner für die Übung 4 von Moodle herunter (DGM_points und Uebung4Datensatz), kopieren Sie diese in Ihren gerade erstellten Abgabeordner und entpacken Sie diese. - Öffnen Sie **ArcGIS Pro**. Erstellen Sie ein neues Projekt (geben Sie den Speicherpfad zu Ihrem Abgabeordner an) und wählen Sie dabei **Local Scene** (nicht Map wie in den bisherigen Übungen. *Map* = 2D / *Scene* = 3D). - Sollten Sie versehentlich *Map* gewählt haben, so können Sie im Projekt im Reiter *View* --> *Convert* --> *To local Scene* wechseln. - Verbinden Sie in ArcGIS Pro die Geodatenbank mit **Add Folder Connection** nach einem Rechtsklick auf *Folders* im *Catalog*. Klicken Sie anschließend mit einem Rechtsklick auf die Geodatenbank und wählen Sie **Add To Project**. Unter *Databases* können Sie nun die Geodatenbank mit einem Rechtsklick und **Make Default** zur Standarddatenbank machen. (Dies ist wichtig, da so alle Ergebnisse in dieser Datenbank gespeichert werden). - Fügen Sie aus der Geodatenbank den Layer *Gebäude* hinzu sowie das Point-Feature *DGMHoehen*, wobei Sie diesen gleich wieder ausblenden, indem Sie das Häkchen in der Box links neben dem Layer in *Contents* deaktivieren. - Bevor Sie mit dem nächsten Schritt fortfahren, machen Sie sich mit den Navigationswerkzeugen der *Scene* vertraut. Klicken Sie zunächst auf die Erdkugel (*Full Extent*), um zu einer Gesamtansicht zu gelangen: |Navigation| Probieren Sie die Navigationstools aus. Unten links in der *Scene* gibt es noch weitere Navigationsmöglichkeiten. Klicken Sie auf *Full Extent*, um zur Gesamtansicht zurückzukehren. Wenn Sie einen bestimmten Layer betrachten wollen, rechtsklicken Sie dazu auf den Layer und wählen Sie *Zoom To Layer*. Die Navigation ist natürlich auch mit der Maus möglich (Mausrad gedrückt halten für 3D-Rotationen). - Speichern Sie das Projekt in Ihrem Abgabeordner Umsetzung - Bestimmung der Gebäudehöhen ------------------------------------------------------------------------------- Der Layer *DGMHoehen* enthält die erforderlichen Geländehöhen. Verknüpfen Sie diese mit dem Gebäudelayer, indem Sie einen *Join* durchführen. Abhängig von der Lage des Gebäudes werden auf dieses Gebiet fallende Geländehöhen dem Gebäude zugeordnet. Verwenden Sie die Join-Operation, um diese Aufgabe zu bewerkstelligen: - Rechtsklicken Sie dazu auf den Layer *Gebaeude*, navigieren sie zu *Joins and Relates* und klicken Sie auf *Spatial Join* - In *Join Features* wählen Sie für den Layer **DGMHoehen** - In *Output Feature Class* geben Sie dem Layer einen aussagekräftigen Namen wie z.B. **GebaeudeMitDGMHoehen**. In neueren Versionen von ArcGIS Pro werden Attribute direkt in den bestehenden Gebäude-Layer übernommen. In diesem Fall benennen Sie den Layer *Gebäude* zu *GebaeudeMitDGMHoehen* um. Im Attribut Table des Layers können Sie sehen, ob die Attribute übernommen wurden. - Führen Sie den Join mit *OK* durch .. figure:: media/image19.png :width: 4.3in :height: 4in :align: center :scale: 100 % :name: 05_spatial_join Spatial Join der Gebäudehöhen Betrachten Sie mit einem Rechtsklick auf den Layer unter *Attribute Table* das Ergebnis. Es sollte eine zusätzliche Spalte *grid_code* vorhanden sein, welche die DGM-Höhen beinhaltet. Fügen Sie nun den Layer *GebaeudeMitDOMHoehen* hinzu. Dieser beinhaltet die bereits prozessierten DOM-Höhen für die Gebäude. Verbinden Sie diese Höhen mit den vorher erzeugten DGM-Höhen, um einen neuen Layer zu erstellen, welcher dann die beiden Datensätze beinhaltet. Damit kann dann die Differenz und somit die Gebäudehöhe bestimmt werden. Verwenden Sie erneut die Spatial-Join-Operation: - Rufen Sie mit einem Rechtsklick auf Ihr eben erstelltes Feature **GebaeudeMitDGMHoehen** wieder das Spatial-Join-Menü auf - *Join Features* ist das gegebene Feature **GebaeudeMitDOMHoehen** - Join Operation: **JOIN_ONE_TO_ONE** - Match Option: **ARE_IDENTICAL_TO** - Führen Sie die Operation aus In neueren Versionen von ArcGIS Pro werden die zusätzlichen Attribute erneut direkt in den Layer *GebäudeMitDGMHöhen* übertragen. Benennen Sie diesen daher in *GebaeudeMitDGMHoehen_SpatialJoin* um. Entfernen Sie im Table Of Contents die Layer *GebaeudeMitDGMHoehen*, *GebaeudeMitDOMHoehen* und *Gebaeude*. Sie benötigen ab jetzt nur Ihren Gebäude-Layer aus dem 2. Spatial Join! Sie können nun mit dem neuen Layer aus dem Spatial Join die Differenz zwischen DOM und DGM ausführen. Gehen Sie dazu zur Attributtabelle des Layers. Verwenden Sie für die Höhenberechnung *Calculate Field* in der *Attribute Table* des neuen Layers: - Erstellen Sie zuerst eine neue Spalte, die das Ergebnis der Berechnung enthalten soll - Klicken Sie dazu auf **Add** - Die neue Spalte **Gebaeudehoehe** ist vom Typ **Double** - Speichern Sie die neu erstellet Tabellenspalte durch einen Klick auf das Speichersymbol (Save, oben in der Mitte des Bildschirms) .. figure:: media/image5.png :width: 7in :height: 3.5in :align: center :scale: 100 % :name: 05_add_field Hinzufügen einer neuen Spalte im *Attribute Table* - Rechtsklicken Sie im Attribut Table auf den Namen der neuen Spalte und wählen Sie *Calculate Field* - Ziehen Sie die DGM-Höhe **grid_code** von der DOM-Höhe **DOMHoehe** ab - Bestätigen Sie bei möglichen Warnungen mit *Ja* - Das Ergbnis sind positive Werte, sollten Sie negative Werte erhalten haben Sie *gird_code* und *DGMHoehe* vertauscht. Führen Sie in diesem Fall die Berechnung erneut korrekt aus. .. figure:: media/image6.png :width: 3.5in :height: 4in :align: center :scale: 100 % :name: 05_calcualte_field Berechnung der Gebäudehöhen Umsetzung - TIN Erstellung ------------------------------------------------------------------------------- Das Point-Feature *DGM_points* stellt die Punktwolke dar, die dazu genutzt werden soll, um ein TIN zu erstellen. Durch die Dreiecksvermaschung erhält man für die Punkte eine Höheninformation (d.h. 2,5D). Verwenden Sie das *Create TIN*-Tool: *Geoprocessing* --> *3D Analyst Tools* --> *TIN Dataset* --> *Create TIN* - *Input Features*: **DGM_points** - Geben Sie für *Output TIN* einen Namen an - Bestätigen Sie dann die Auswahl mit *Run* .. figure:: media/image7.png :width: 3in :height: 3.5in :align: center :scale: 100 % :name: 05_create_tin Erstellung des TIN Umsetzung - Überlagerung von 2D-Daten ------------------------------------------------------------------------------- Nun werden die Layer auf das erstellte TIN *hochgezogen* (*Drape*). Beginnen Sie zunächst mit den *Baulich geprägten Flächen*. - Fügen Sie die Feature-Class **Baulich_gepraegte_Flaechen** hinzu - Verschieben Sie ihr eben erstelltes TIN-Layer in *Contents* in den Bereich **Elevation Surfaces** unter *Ground* - Entfernen Sie ggf. den Haken beim vorgegebenen Geländelayer *WorldElevation3D/Terrain3D* - Der Layer der *Baulich geprägten Flächen* sollte automatisch die neue Grundhöhe annehmen. Falls nicht, überprüfen Sie mit einem Rechtsklick auf das Layer in *Contents* unter *Properties*, das in dem Reiter *Elevation* bei *Features are* die Einstellung *On the ground* ausgewählt ist. .. figure:: media/image8.png :width: 3.5in :height: 1in :align: center :scale: 100 % :name: 05_drape_layer Drape der Grundfläche Umsetzung - 3D-Stadtmodell ------------------------------------------------------------------------------- Die Gebäudeflächen werden nun unter Verwendung der berechneten Gebäudehöhen auf diese Höhen *hochgezogen* (Extrusion). - Verschieben Sie das Gebäudelayer aus dem Spatial Join in den *Contents* Bereich **3D Layers** - Wählen Sie oben in der Menüleiste den Reiter **Appearance** (in neueren Versionen heißt der Reiter **Feature Layer**) - Unter *Extrusion* legen Sie als *Type* die Einstellung *Min Height* fest - Als *Field* wählen Sie *Gebaudehoehe* (Dieses Feld haben Sie oben in der Attribute Table hinzugefügt) - Sie sollten nun eine 3D-Darstellung des Layers sehen .. figure:: media/image10.png :width: 5in :height: 3in :align: center :scale: 100 % :name: 05_extrusion_layer Extrusion des Layers Anwendnung - Einfache Analyse im 3D-Stadtmodell ------------------------------------------------------------------------------- Es gibt verschiedene Möglichkeiten, Analysen mit diesem einfachen 3D-Modell durchzuführen (z.B. mit Abfragen). **Selection by Attributes:** - Ermöglicht eine SQL-Abfrage - Ausgewählte Merkmale werden nur hervorgehoben - Das Speichern ist ohne weitere Aktionen nicht möglich **Definiton Query:** - SQL-Abfrage ist ebenfalls möglich - Nur die ausgewählten Merkmale können verwendet werden - Nicht selektierte Features können nicht verwendet werden, bis die Abfrage aufgehoben wird (durch Löschen oder Ändern der Abfrage) - Beim Speichern des Projekts bleibt die Abfrage erhalten Verwenden Sie die wie folgt eine **Definition Query** für die folgende Aufgabe: - Öffnen Sie die Eigenschaften (Properties) von *GebäudeMitHöhen_SpatialJoin* - Wählen Sie die Registerkarte *Definition Query* und klicken Sie auf die Schaltfläche *New Definition Query*. - Führen Sie eine SQL-Abfrage aus, um nur Gebäude mit einer Höhe von mehr als 10 Metern auszuwählen (oder ein beliebiger anderer sinnvoller Höhenwert). - Bestätigen Sie Ihre Auswahl mit Übernehmen und OK. .. figure:: media/query.png :align: center :scale: 80 % :name: 05_query - Wählen Sie mit einem Rechtsklick auf dem Layer *GebaeudeMitDGMHoehen_SpatialJoin* die *Symbology* aus. - Wählen Sie für die *Primari Symbology* abgestufte Farben (Graded Colors) mit einer geeigneten Anzahl von Klassen. Wählen Sie ein Farbschema (abweichend von dem im Screenshot unten). Die Gebäude werden nun entsprechend der jeweiligen Gebäudehöhe eingefärbt. - Erstellen Sie eine Karte oder einen Screenshot in der Ihr 3D-Stadtmodelle mit Analyseneinfärbung zu sehen ist und fügen Sie diese Ihrem Abgabeordner hinzu. - Speichern Sie Ihr Projekt in Ihrem Abgabeordner - Laden Sie den Abgabeordner auf Moodle hoch. .. figure:: media/queryresult.png :align: center :name: 05_queryresult Weiterführende Informationen ------------------------------ - Unter folgendem Link finden Sie einige Beispiele für 3D Stadtmodelle (u.a. NYC) https://wiki.tum.de/display/gisproject/Online+Demo+Collection Referenzen ******************************************************************************* - `Offizielle Dokumentation `_ - `Spatial Join `_ - `Calculate Field `_ - `Create TIN `_ - `Buffer `_ - `Definition Query `_ .. |Navigation| image:: media/image3.png :width: 2in :height: 0.8in .. |image6| image:: media/image7.png :width: 4.61458in :height: 3.20351in .. |image13| image:: media/image14.png :width: 0.24792in :height: 0.24028in