Bauforum-Logo

Offenes Forum Bauingenieurwesen

log in | registrieren

zurück zur übersicht
Thread-Ansicht


Homepage E-Mail

Dortmund / Bochum,
09.03.2017, 15:35 Uhr
 

Höhenmodell Nordrheinwestfalen (Software)

Seit Beginn dieses Jahres sind digitale Höhenmodelle für ganz NRW frei herunterladbar. Die Dateien haben wahlweise eine Auflösung von einem Meter und folgen einem quadratischen Raster, wobei immer Bereiche von 2000×2000 Quadratmetern zu einer Datei zusammengefasst sind, oder sie haben eine variable Auflösung von im Mittel vier Punkten pro Quadratmeter bei unregelmäßiger Anordnung.

Die Digitalen Geländemodelle im 1-Meter-Raster lassen sich natürlich besonders einfach verarbeiten. Das Bild zeigt die Stadt Bochum in einem BricsCAD-Oberflächenmodell, für das zur schnelleren Verarbeitung nur ein Höhenpunkt pro 25 Meter in x- und y- Richtung verwendet wurde. Die Höhen wurden hier um den Faktor 10 vergrößert.

[image]
Datenquelle: https://www.opengeodata.nrw.de/produkte/geobasis/dgm/dgm1/dgm1_05911000_Bochum_EPSG4647_XYZ.zip
Lizenz: Datenlizenz Deutschland - Namensnennung - Version 2.0

Download: Geobasis NRW → Digitale Höhenmodelle → Digitale Geländemodelle (DGM)

Außer dem für Geländearbeiten notwendigen Digitalen Geländemodell sind noch weitere Daten verfügbar, beispielsweise ein Digitales Oberflächenmodell, auf dem auch Gebäude erfasst sind, sowie ein Digitales Gebäudemodell mit (vereinfachten) Darstellungen aller Gebäude in NRW.

Das von mir verwendete Pythonprogramm zum Auslesen der für Bochum heruntergeladenen Höhendaten und deren Umsetzung in ein Skript für AutoCAD oder BricsCAD sieht so aus:

import os

# Datenquelle:
# http://www.bezreg-koeln.nrw.de/
#        brk_internet/geobasis/hoehenmodelle/gelaendemodelle/

# Drei Werte sind ggf. von Hand zu ändern: ordner, nth und ü

# Die Dateien der ausgepackten ZIP-Datei sind in diesem Ordner:
ordner = "dgm1_05911000_Bochum_EPSG4647_XYZ"  # Bochum

# Ausdünnung: nur jeder n-te Punkt in x- und y-Richtung
nth = 100  # Zwischen 1 und 100!

# Überhöhung
ü = 10  # Standard: 1

with open("3dnetz.scr","w") as scr:
    scr.write("OSnapCoord 1 ")
    scr.write("APunkt -1,-2,2 ")

auszuwerten = os.listdir(ordner)
fn = 0

for f in auszuwerten:
    fn += 1
    print("Datei %i von %i: %s"%(fn,len(auszuwerten),f))

    # Möglicher Dateiname:
    # dgm1_32368_5700_2_nw.xyz
    fs = f.split("_")
    fx = float(fs[1])
    fy = float(fs[2])

    D =[]
    with open(ordner+"/"+f) as dgm:
        n = 0
        Z = []
        for zeile in dgm:
            # Beispiel:
            # 32372000.00 5706000.00   61.32
            Z.append(zeile.split())
            if ü != 1:
                Z[-1][2] = str(float(Z[-1][2])*ü)
            n += 1
            if n == 2000:
                D.append(Z)
                Z = []
                n = 0

    with open("3dnetz.scr","a") as scr:
        scr.write("rechteck %f,%f %f,%f "%(
            fx*1000,fy*1000,(fx+2)*1000,(fy+2)*1000))
        dxf.write("zoom g ")
        for X in range(100//nth):
            for Y in range(100//nth):
                dxf.write("3dnetz 21 21 ")
                for x in range(21):
                    for y in range(21):
                        try:
                            scr.write(
                                ",".join(D[(Y*20+y)*nth][(X*20+x)*nth])+" ")
                        except: # wenn Randelement 21 nicht verfügbar
                            x1 = 1 if x==20 else 0
                            y1 = 1 if y==20 else 0
                            scr.write(
                                ",".join(D[(Y*20+y)*nth-y1]
                                         [(X*20+x)*nth-x1])+" ")


print("Fertig. "
      "Script 3dnetz.scr kann in AutoCAD oder BricsCAD gestartet werden.")

--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums

Heute schon programmiert? Einführung in Python 3 (PDF)



Homepage E-Mail

Dortmund / Bochum,
11.03.2017, 12:52 Uhr

@ Martin Vogel
 

Bochum für 3D-Drucker

Fall sich jemand das Höhenmodell von Bochum auf einem 3D-Drucker selbst ausdrucken möchte: Eine entsprechende STL-Datei ist jetzt auf Thingiverse herunterladbar: Bochum[image]

Das STL-Modell hat den Längenmaßstab 1:1.000.000 und den Höhenmaßstab 1:100.000. Wenn das Druckbett mindestens 18×16 cm² groß ist, lässt sich der Maßstab auf 1:100.000/1:10.000 reduzieren. Die Auflösung entspricht im Gelände 50 Metern vertikal und 2 Metern horizontal, das sollte gut zur mechanischen Genauigkeit der meisten 3D-Drucker passen.

--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums

Heute schon programmiert? Einführung in Python 3 (PDF)



Homepage E-Mail

Dortmund / Bochum,
18.03.2017, 18:20 Uhr

@ Martin Vogel
 

Architekturfreie Daten

Das Digitale Geländemodell enthält übrigens kein einziges Werk der Architektur. Sämtliche Gebäude wurden aus den Daten herausgerechnet. Einige Bauwerke jedoch sind erhalten geblieben, weil die Landschaft ohne sie keinen Bestand hätte, so wie hier die Staumauer der Glörtalsperre:
[image]

Leider sind auch umgekehrt Landschaftsbestandteile weggerechnet worden, wenn der Filteralgorithmus sie für Gebäude hielt. Meinen Plan, mir ein 3D-Modell der Externsteine auszudrucken, muss ich deshalb leider noch ein wenig verschieben.

--
Dipl.-Ing. Martin Vogel
Leiter des Bauforums

Heute schon programmiert? Einführung in Python 3 (PDF)

zurück zur übersicht
Thread-Ansicht
Offenes Forum Bauingenieurwesen | Kontakt | Impressum
8442 Postings in 4026 Threads, 1077 registrierte User, 38 User online (0 reg., 38 Gäste)
powered by my little forum  RSS-Feed  ^
map | new