{"id":1516,"date":"2021-04-25T01:08:16","date_gmt":"2021-04-24T23:08:16","guid":{"rendered":"https:\/\/hannes.enjoys.it\/blog\/?p=1516"},"modified":"2023-06-26T23:31:14","modified_gmt":"2023-06-26T21:31:14","slug":"digitales-oberflachenmodell-von-hamburg","status":"publish","type":"post","link":"https:\/\/hannes.enjoys.it\/blog\/2021\/04\/digitales-oberflachenmodell-von-hamburg\/","title":{"rendered":"Digitales Oberfl\u00e4chenmodell von Hamburg"},"content":{"rendered":"\n<p>Ach nee, der LGV hat ein <a href=\"https:\/\/suche.transparenz.hamburg.de\/dataset\/digitales-hohenmodell-hamburg-bdom\">bildbasiertes DOM von Hamburg im Transparenzportal<\/a> ver\u00f6ffentlicht&#8230; Und sogar gleich zwei, eins von 2018, eins von 2020. Die Rasterweite ist 1 Meter, <a href=\"https:\/\/fragdenstaat.de\/anfrage\/digitales-oberflachenmodell\/\">ob das wohl so vorlag oder f\u00fcr die Ver\u00f6ffentlichung gefiltert wurde<\/a>?<\/p>\n\n\n\n<p>Egal. Das ist ja gro\u00dfartig! Da werden eine Menge von Anwendungen erm\u00f6glicht (Sichtachsen! Verschattungen! Vermaschung! VR! AR!) und verschiedenste Akteure werden die Daten absolut feiern. Auch wenn es mit 1 Meter Aufl\u00f6sung wirklich mies grob ist, auf ein 1 Meter Gitter gerastert ist (nicht ausged\u00fcnnt, d. h. es ist teilweise st\u00e4rker verf\u00e4lscht und &#8220;daneben&#8221;) und &#8220;nur&#8221; bildbasiert (nicht gescannt) ist, geht da schon einiges mit.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"617\" data-id=\"1524\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22-1024x617.png\" alt=\"\" class=\"wp-image-1524\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22-1024x617.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22-300x181.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22-768x463.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22-624x376.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-22.png 1330w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"555\" data-id=\"1523\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21-1024x555.png\" alt=\"\" class=\"wp-image-1523\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21-1024x555.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21-300x163.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21-768x416.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21-624x338.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-21.png 1386w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"723\" data-id=\"1522\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20-1024x723.png\" alt=\"\" class=\"wp-image-1522\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20-1024x723.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20-300x212.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20-768x542.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20-624x441.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-20.png 1093w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19.png\"><img loading=\"lazy\" decoding=\"async\" width=\"797\" height=\"757\" data-id=\"1521\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19.png\" alt=\"\" class=\"wp-image-1521\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19.png 797w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19-300x285.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19-768x729.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-19-624x593.png 624w\" sizes=\"auto, (max-width: 797px) 100vw, 797px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"669\" data-id=\"1520\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18-1024x669.png\" alt=\"\" class=\"wp-image-1520\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18-1024x669.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18-300x196.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18-768x502.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18-624x407.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-18.png 1098w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"667\" data-id=\"1519\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17-1024x667.png\" alt=\"\" class=\"wp-image-1519\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17-1024x667.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17-300x196.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17-768x501.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17-624x407.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-17.png 1350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"590\" data-id=\"1517\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15-1024x590.png\" alt=\"\" class=\"wp-image-1517\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15-1024x590.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15-300x173.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15-768x443.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15-624x360.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-15.png 1462w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"725\" data-id=\"1518\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16-1024x725.png\" alt=\"\" class=\"wp-image-1518\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16-1024x725.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16-300x212.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16-768x544.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16-624x442.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-16.png 1253w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><s>Ausprobieren! Im Browser!<\/s><\/h2>\n\n\n\n<p><s>Achtung, frickelige Bedienung! Am besten den WASD-M\u00f6wen-Modus nutzen, mit Speed 1000. Oder mit einem Doppelklick irgendwo hinzoomen.<\/s><\/p>\n\n\n\n<p><s><a href=\"https:\/\/hamburg.datenatlas.de\/DOM1_XYZ_HH_2018_04_30-colored.html\">https:\/\/hamburg.datenatlas.de\/DOM1_XYZ_HH_2018_04_30-colored.html<\/a><br><a href=\"https:\/\/hamburg.datenatlas.de\/DOM1_XYZ_HH_2020_04_30-colored.html\">https:\/\/hamburg.datenatlas.de\/DOM1_XYZ_HH_2020_04_30-colored.html<\/a><\/s><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Datenaufbereitung als LAZ<\/h2>\n\n\n\n<p>F\u00fcr 2018 liegen die Daten als 12768 einzelne XYZ-Kacheln vor, also als <a href=\"https:\/\/rapidlasso.com\/2020\/01\/13\/converting-rasters-from-inefficient-ascii-xyz-to-more-compact-laz-or-tif-formats\/\">super ineffiziente Textdateien<\/a>. Insgesamt sind es rund 22 Gigabyte. F\u00fcr 2020 sind es stattdessen 827 gr\u00f6\u00dfere Kacheln, aber ebenfalls in XYZ mit einem \u00e4hnlichem Platzbedarf.<\/p>\n\n\n\n<p>Sch\u00f6nerweise gibt es freie Tools wie <a href=\"https:\/\/lastools.github.io\/\">LAStools<\/a>&#8216; <code>txt2las<\/code>, was sie schnell und einfach ins super effiziente LAZ-Format umwandeln kann:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>txt2las -i DOM1_XYZ_HH_2018_04_30\/*.xyz -epsg 25832 -odir \/tmp\/laz\/ -olaz<\/code><\/pre>\n\n\n\n<p>Hat bei mir ungef\u00e4hr 5 Minuten gebraucht und da waren es nur noch 700 Megabyte. Das ZIP war \u00fcbrigens mehr als 3 Gigabyte gro\u00df.<\/p>\n\n\n\n<p>Zusammengefasst werden k\u00f6nnen die einzelnen Dateien mit lasmerge:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>lasmerge -i \/tmp\/laz\/*.laz -olaz -o DOM1_XYZ_HH_2018_04_30.laz<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Interaktive 3D-Webanwendung<\/h2>\n\n\n\n<p>Dann noch schnell in den gro\u00dfartigen <a href=\"https:\/\/github.com\/potree\/PotreeConverter\">PotreeConverter<\/a> von <a href=\"https:\/\/twitter.com\/m_schuetz\">Markus Sch\u00fctz<\/a> geschmissen mit<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>PotreeConverter DOM1_XYZ_HH_2018_04_30.laz -o web\/ --encoding BROTLI \\\n  --generate-page DOM1_XYZ_HH_2018_04_30 --title DOM1_XYZ_HH_2018_04_30<\/code><\/pre>\n\n\n\n<p>und 4 Minuten sp\u00e4ter ist die interaktive 3D-Webanwendung fertig, wegen der zus\u00e4tzlichen Octree-Struktur jetzt bei rund 3 Gigabyte.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Punktwolke mit Farben aus Orthophoto einf\u00e4rben<\/h2>\n\n\n\n<p>Die bereitgestellten Oberfl\u00e4chenmodelle sind so schlicht wie es nur geht, es sind reine XYZ-Daten ohne weitere Dimensionen wie Farbe o. \u00e4.<\/p>\n\n\n\n<p>Gl\u00fccklicherweise gibt es ja auch die Orthophotos, eventuell wurde sogar dasselbe Bildmaterial genutzt? Da m\u00fcsste mal jemand durch den Datenwust w\u00fchlen, die bei den DOPs werden die relevanten Metadaten nicht mitgeliefert&#8230;<\/p>\n\n\n\n<p>Theoretisch k\u00f6nnte man sie also einf\u00e4rben. Leider ist <code>lascolor<\/code> propriet\u00e4r und kommt mit gruseligen, b\u00f6sartigen Optionen, wenn man es wagt es &#8220;unlizenziert&#8221; zu nutzen (&#8220;Please note that the unlicensed version will (\u2026) slightly change the LAS point order, and randomly add a tiny bit of white noise to the points coordinates once you exceed a certain number of points in the input file.&#8221;) und kann JPEG in GeoTIFF nicht lesen (so hab ich mir die DOPs aufbereitet). Eine Alternative ist das geniale <a href=\"https:\/\/pdal.io\/\">PDAL<\/a>. Mit einer <a href=\"https:\/\/pdal.io\/workshop\/exercises\/analysis\/colorization\/colorization.html\">Pipeline<\/a> wie<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">{\n    \"pipeline\": [\n        \"DOM1_XYZ_HH_2020_04_30.laz\",\n        {\n            \"type\": \"filters.colorization\",\n            \"raster\": \"DOP20_HH_fruehjahrsbefliegung_2020.tif\"\n        },\n        {\n            \"type\": \"filters.assign\",\n            \"value\" : [\n                \"Red = Red * 256\",\n                \"Green = Green * 256\",\n                \"Blue = Blue * 256\"\n            ]\n        },\n        {\n            \"type\": \"writers.las\",\n            \"compression\": \"true\",\n            \"minor_version\": \"4\",\n            \"filename\":\"DOM1_XYZ_HH_2020_04_30-colored.laz\"\n        }\n    ]\n}<\/code><\/pre>\n\n\n\n<p>und<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>pdal pipeline DOM1_XYZ_HH_2020_04_30.laz+DOP20_HH_fruehjahrsbefliegung_2020_90.cog.tif.json<\/code><\/pre>\n\n\n\n<p>ist die Punktwolke innerhalb von Minuten coloriert und kann dann wie gehabt mit PotreeConverter in einen interaktiven 3D-Viewer gesteckt werden.<\/p>\n\n\n\n<p>Update 2023: <code>\"minor_version\": \"2\"<\/code> -&gt; <code>\"minor_version\": \"4\"<\/code>, damit LAS 1.4 rauskommt, um dann einfach COPC draus bauen zu k\u00f6nnen (Farben als 16-Bit, nicht 8-Bit). Und entsprechend noch ein Filter, um die Farben auf den 16-Bit-Wertebereich zu skalieren, das passiert leider nicht automatisch.<\/p>\n\n\n\n<p>Das Ergebnis ist besser als erwartet, da es scheinbar tats\u00e4chlich die selben Bilddaten sind (f\u00fcr beide Jahre). Andererseits ist es auch nicht wirklich schick, da die DOPs nicht als True Orthophoto vorliegen und damit h\u00f6here Geb\u00e4ude gekippt in den Bilder abgebildet sind. Sieht man hier sch\u00f6n am Planetarium.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"598\" data-id=\"1535\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26-1024x598.png\" alt=\"\" class=\"wp-image-1535\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26-1024x598.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26-300x175.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26-768x449.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26-624x365.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-26.png 1388w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"619\" data-id=\"1534\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25-1024x619.png\" alt=\"\" class=\"wp-image-1534\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25-1024x619.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25-300x181.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25-768x464.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25-624x377.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-25.png 1338w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"441\" data-id=\"1533\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24-1024x441.png\" alt=\"\" class=\"wp-image-1533\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24-1024x441.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24-300x129.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24-768x331.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24-624x269.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-24.png 1414w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"613\" data-id=\"1532\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23-1024x613.png\" alt=\"\" class=\"wp-image-1532\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23-1024x613.png 1024w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23-300x180.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23-768x460.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23-624x374.png 624w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/image-23.png 1356w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Cloud-Optimized Point Cloud<\/h2>\n\n\n\n<p>Als <a href=\"https:\/\/copc.io\/\">Cloud-Optimized Point Cloud<\/a> umwandeln kann man das Resultat einfach mit <code>untwine<\/code> (mit <code>pdal pipeline<\/code> braucht man immens viel RAM (&gt;64GB), da die Umwandlung nach COPC hier nicht den <a href=\"https:\/\/pdal.io\/en\/2.5.5\/pipeline.html#id2\">Streaming Mode<\/a> nutzen kann):<\/p>\n\n\n\n<p><code>untwine -i DOM1_XYZ_HH_2020_04_30-colored.laz -o DOM1_XYZ_HH_2020_04_30-colored.copc.laz --single_file<\/code><\/p>\n\n\n\n<p>Anschlie\u00dfend auf einem Server (mit entsprechenden <code>Access-Control-Allow<\/code>-Headern) gelagert, kann die Punktwolke super einfach mit <code>https:\/\/viewer.copc.io\/?resources=https:\/\/example.com\/pointcloud.copc.laz<\/code> im Browser verwendet werden. Ganz ohne Umwandlung in viele Unterdateien wie beim PotreeConverter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">DOM als GeoTIFF<\/h2>\n\n\n\n<p>Wer es lieber als GeoTIFF haben m\u00f6chte, hat es etwas schwerer, denn GDAL kommt mit dieser Art von Kacheln (mit L\u00fccken und in der bereitgestellten Sortierung) nicht gut klar. Mein Goto-Tool daf\u00fcr ist <a href=\"https:\/\/www.generic-mapping-tools.org\/\">GMT<\/a>.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gmt xyz2grd $(gmt gmtinfo -I- *.xyz) -Vl -I1 -G\/tmp\/gmt.tif=gd:GTiff *.xyz<\/code><\/pre>\n\n\n\n<p>Das so erstellte GeoTIFF kann anschlie\u00dfend mit GDAL optimiert werden (ab GDAL 3.2.3\/3.3):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\"><code>gdal_translate -of COG -co COMPRESS=DEFLATE -co PREDICTOR=2 \\\n  --config GDAL_NUM_THREADS ALL_CPUS --config GDAL_CACHEMAX 50%  \\\n  -a_srs EPSG:25832 \/tmp\/gmt.tif DOM1_XYZ_HH_2020_04_30.tif<\/code><\/pre>\n\n\n\n<p>Hier mal im Vergleich mit dem DGM1 als Schummerungen:<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1550\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2.png\" alt=\"\" class=\"wp-image-1550\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom2-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1547\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2.png\" alt=\"\" class=\"wp-image-1547\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm2-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1551\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3.png\" alt=\"\" class=\"wp-image-1551\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom3-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1548\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3.png\" alt=\"\" class=\"wp-image-1548\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm3-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1549\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1.png\" alt=\"\" class=\"wp-image-1549\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dom1-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1007\" height=\"822\" data-id=\"1546\" src=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1.png\" alt=\"\" class=\"wp-image-1546\" srcset=\"https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1.png 1007w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1-300x245.png 300w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1-768x627.png 768w, https:\/\/hannes.enjoys.it\/blog\/wp-content\/uploads\/dgm1-624x509.png 624w\" sizes=\"auto, (max-width: 1007px) 100vw, 1007px\" \/><\/a><\/figure>\n<\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Vermaschung als 3D-Modell<\/h2>\n\n\n\n<p>Leider habe ich keine gute L\u00f6sung f\u00fcr die 3D-Vermaschung gefunden. <a href=\"https:\/\/github.com\/heremaps\/tin-terrain\">tin-terrain<\/a> und <a href=\"https:\/\/github.com\/OpenDroneMap\/dem2mesh\">dem2mesh<\/a> kommen nicht mit so gro\u00dfen Datenmengen auf einmal klar und weiter hab ich nicht geschaut. Wer da was gutes wei\u00df kann sich bei mir bei n\u00e4chster Gelegenheit Kekse oder Bier abholen. ;)<\/p>\n\n\n\n<p class=\"has-small-font-size\"><strong>Daten hinter den Bildern und den Viewern<\/strong><br>Datenlizenz Deutschland Namensnennung 2.0, Freie und Hansestadt Hamburg, Landesbetrieb Geoinformation und Vermessung (LGV)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ach nee, der LGV hat ein bildbasiertes DOM von Hamburg im Transparenzportal ver\u00f6ffentlicht&#8230; Und sogar gleich zwei, eins von 2018, eins von 2020. Die Rasterweite ist 1 Meter, ob das wohl so vorlag oder f\u00fcr die Ver\u00f6ffentlichung gefiltert wurde? Egal. Das ist ja gro\u00dfartig! Da werden eine Menge von Anwendungen erm\u00f6glicht (Sichtachsen! Verschattungen! Vermaschung! VR! [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32,29,27,10,25,28],"tags":[],"class_list":["post-1516","post","type-post","status-publish","format-standard","hentry","category-german","category-gis","category-hamburg","category-open-data","category-photogrammetry","category-transparenz"],"_links":{"self":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1516","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/comments?post=1516"}],"version-history":[{"count":27,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1516\/revisions"}],"predecessor-version":[{"id":1925,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/posts\/1516\/revisions\/1925"}],"wp:attachment":[{"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/media?parent=1516"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/categories?post=1516"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hannes.enjoys.it\/blog\/wp-json\/wp\/v2\/tags?post=1516"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}