Narzędzie Open Source do konwersji DEM na model 3D


11

Chciałbym przekonwertować plik DEM (Digitial Elevation Model) (np. Z SRTM) na model 3D, który mogę następnie edytować za pomocą zwykłych narzędzi do modelowania 3D (np. Meshlab / Blender / itp.). Jednak używam Ubuntu Linux.

Czy są jakieś programy / narzędzia typu open source, które mogą to zrobić? A jeśli tak, czy możesz dać mi prosty przewodnik, jak przekonwertować DEM na model 3D. (zalecane programy wiersza poleceń)

Odpowiedzi:


7

Blender ma interfejs API języka Python. Dlatego używam Pythona w Blenderze i importuję biblioteki GDAL i tworzę natywną siatkę Blendera bezpośrednio z danych GIS. Jedyną rzeczą, na którą musisz uważać, jest to, że wersja GDAL, którą masz, odpowiada wersji Pythona w używanej wersji Blendera.

EDYCJA Wtyczek:
Jeśli nie chcesz pisać własnego skryptu przy użyciu Blendera API Pythona i GDAL, istnieje kilka wtyczek, które są dostępne w standardzie, które mogą pomóc:

  1. Importuj DXF
  2. Istnieją importerzy OBJ, X3D i VRML i niektóre systemy 3D GIS będą do nich eksportować (np. ArcScene i NVIZ), chociaż ta droga może być koniecznie całkowicie darmowa.

Istnieje dodatek do danych XYZ, ale jest on niestandardowy i dotyczy głównie danych molekularnych, choć być może można go nagiąć do woli. Pełną ofertę gotowych importerów Blendera znajdziesz tutaj . W Blenderze jest importer PDS .IMG, ale GDAL może odczytywać tylko pliki PDS IMG (nie mylić z innymi plikami Erdas IMG).

Tak więc, naprawdę najlepszym rozwiązaniem dla GeoTiffa, ASC lub dowolnego innego rastra danych wysokości jest napisanie małego skryptu, który będzie iterował po rastrze, ponieważ nie ma gotowej wtyczki dla większości przypadków użycia, chyba że możesz eksportuj swój DTM do DXF, VRML lub OBJ.


Czy jest jakaś konkretna wtyczka lub coś, co mogę pobrać i grać?
Rory

1
Najlepsze jest pisanie własnych skryptów - zobacz moje zmiany.
MappaGnosis

4

Przekonałem się, że NVIZ (który jest częścią pakietu GRASS) jest przydatnym narzędziem do wizualizacji danych DEM jako modelu 3D.

Aby zainstalować wtyczkę GRASS (jeśli masz już zainstalowany QGIS), po prostu przejdź do Wtyczki -> Zarządzaj i instaluj wtyczki -> Pobierz więcej i zainstaluj GRASS. Upewnij się, że jest zaznaczone na liście Zarządzaj i instaluj wtyczki!

  1. Po zainstalowaniu GRASS zacznij od dodania warstwy rastrowej. Możesz to zrobić, przechodząc do opcji Warstwa -> Dodaj warstwę rastrową -> Wybierz

  2. Następnie utwórz nowy zestaw map w GRASS. Zrób to, przechodząc do Wtyczki -> GRASS -> Nowy zestaw map lub użyj paska narzędzi GRASS, który powinien być widoczny. A. Wybierz lokalizację dla zestawu danych GRASS B. Wprowadź nową nazwę wybranej lokalizacji C. Wybierz żądaną projekcję D. Wybierz region z rozwijanej listy lub ręcznie wybierz region za pomocą współrzędnych szerokości / długości (możesz sprawdzić długość / długość swojej lokalizacji w Internecie) E. Wprowadź nazwę nowego zestawu map, a następnie kliknij przycisk Zakończ.

  3. Następnie będziesz chciał załadować swoją warstwę DEM lub rastrową do GRASS. Zrobisz to przez A. Przejście do wtyczek -> GRASS -> Otwórz narzędzia GRASS B. W „Liście modułów” wybierz „r.in.gdal.qgis” C. W „Załadowanej warstwie” wybierz warstwę z rozwijaną listę i nazwij plik wyjściowy D. Kliknij „Uruchom”

  4. Teraz musisz dodać warstwę rastrową GRASS do zestawu map A. Przejdź do Wtyczki -> TRAWA -> Dodaj warstwę rastrową GRASS lub kliknij. B. Wybierz lokalizację i zestaw map, a następnie wybierz warstwę i kliknij „OK”

  5. Możesz pokolorować swój raster. Jeśli tak, A. Upewnij się, że wybrałeś właściwą wyjściową warstwę rastrową B. Przejdź do Wtyczki -> GRASS -> Otwórz narzędzia GRASS C. W „Liście modułów” kliknij „r.colors.table”. D. Wybierz warstwę wejściową, a następnie wybierz „Typ tabeli kolorów” E. Naciśnij „Uruchom”.

  6. TERAZ dla zabawy. Wizualizacja w 3D za pomocą NVIZ. Więc chcesz A. Ustawić konkretny region mapy do modelowania 3D, przechodząc do Wtyczki -> GRASS -> Edytuj bieżący region GRASS. Następnie albo ręcznie wybierz żądany region, rysując myszą czerwoną ramkę, albo ustaw współrzędne w wyświetlonym oknie dialogowym. (Pomaga to NVIZ określić, której rozdzielczości użyć) B. Przejdź do wtyczek -> GRASS -> Otwórz narzędzia GRASS C. W „Liście modułów” wybierz „nviz” D. Wybierz raster dla rzędnej i koloru (mogą być takie same jeden) i kliknij kwadrat po prawej stronie (co oznacza „Użyj regionu tej mapy”) E. Hit „Run”

Następnie baw się z różnymi widokami, wysokościami i oświetleniem, aż uzyskasz pożądany obraz!

Mam nadzieję, że to pomoże i proszę o informację, jeśli masz jakieś pytania!


Zwrócę uwagę, że miałem problemy z projekcją podczas korzystania z warstwy SRTM. Czy ktoś ma jakieś sugestie?
Zizah

Jakie problemy?
markusN

2

Nigdy tego nie próbowałem, ale tutaj jest NVIZ . Wszystko czego potrzebujesz to QGIS, który możesz pobrać na Ubuntu Linux.


1

nviz nie jest samodzielną aplikacją, jest częścią GRASS GIS do wizualizacji i animacji 3D. Jeśli chcesz eksportować rastry, potrzebujesz GRASS GIS (lub GRASS w QGIS). Możesz eksportować DEM w różnych formatach plików , w tym Terragen Heightfield (.ter), VTK, PovRay, xyz itp.

Możesz także użyć Paraview do otwarcia plików VTK i wyeksportowania ich do innych różnych formatów

Ale Blender ma również wtyczki do bezpośredniego importowania DEMS, na przykład jako Blender Digital Elevation Importer lub importowania plików kształtów i rastrów ( import / eksport plików ESRI Shapefile i import rastrowych z georeferencjami ).

Kodex przedstawia również rozwiązanie do wizualizacji danych QGIS za pomocą Blendera w formacie SVG

Zobacz także Shaded Relief w Blenderze z danymi SRTM


1

Możesz po prostu dodać plik dem jako * .tif w blenderze z dodatkiem „importuj obraz jako płaszczyznę”. Zobacz ten post, w którym możesz zobaczyć, jak zrobiłem kilka map 3D w wysokiej rozdzielczości za pomocą dem w blenderze: -> https://gis.stackexchange.com/a/80842/24809

Po załadowaniu dema do blendera możesz również edytować go, tak jak możesz edytować obraz.



0

Czy próbowałeś importera USGS i GTOPO30 DEM ?


Niektóre zrzuty ekranu (i nazwy plików) na tej stronie sprawiają, że wygląda jak program MS Windows. Potrzebuję czegoś, co może działać w systemie Linux.
Rory

Nie jestem pewien, czy to działa w systemie Linux, czy nie. Być może możesz sprawdzić ich dokumentację.
Catlover


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.