DEM을 3D 모델로 변환하는 오픈 소스 도구


11

DEM (Digitial Elevation Model) 파일 (예 : SRTM)을 3D 모델로 변환하여 일반 3D 모델링 도구 (예 : Meshlab / Blender 등)로 편집 할 수 있습니다. 그러나 나는 우분투 리눅스를 사용하고 있습니다.

그렇다면 이것을 할 수있는 오픈 소스 프로그램 / 도구가 있습니까? 그렇다면 DEM을 3D 모델로 변환하는 방법에 대한 간단한 가이드를 제공해 주시겠습니까? (명령 줄 프로그램 선호)

답변:


7

블렌더에는 Python API가 있습니다. 따라서 블렌더에서 파이썬을 사용하고 GDAL 라이브러리를 임포트하고 GIS 데이터에서 직접 블렌더 네이티브 메시를 구성합니다. 주의해야 할 것은 가지고있는 GDAL 버전이 사용중인 Blender 릴리스의 Python 버전과 일치한다는 것입니다.

플러그인 편집 :
Blender Python API 및 GDAL을 사용하여 자체 스크립트를 작성하지 않으려는 경우 표준으로 사용할 수있는 플러그인이 있습니다.

  1. DXF 가져 오기
  2. OBJ, X3D 및 VRML에 대한 수입 업체가 있으며 일부 3D GIS 시스템은 이러한 경로 (예 : ArcScene 및 NVIZ)로 수출 할 것입니다.

XYZ 데이터 에 대한 애드온이 있지만 비표준 적이며 주로 분자 데이터를 목표로하지만 아마도 당신의 의지에 구부릴 수 있습니다. Blender의 모든 기성품 수입 업체는 여기를 참조 하십시오 . 블렌더에는 PDS .IMG 임포터가 있지만 GDAL은 PDS IMG 파일 만 읽을 수 있습니다 (다른 Erdas IMG 파일과 혼동하지 말 것).

따라서 GeoTiff, ASC 또는 다른 높이 데이터 래스터가있는 경우 가장 좋은 방법은 대부분의 사용 사례에 대한 기성 플러그인이 없기 때문에 래스터를 반복하는 작은 스크립트를 작성하는 것입니다. DTM을 DXF, VRML 또는 OBJ로 내 보냅니다.


특정 플러그인이나 다운로드하여 사용할 수있는 것이 있습니까?
Rory

1
최선의 방법은 자신 만의 스크립트를 작성하는 것입니다. 편집 한 내용을 참조하십시오.
MappaGnosis

4

NVIZ (GRASS 패키지의 일부)는 DEM 데이터를 3D 모델로 시각화하는 데 유용한 도구라는 것을 알았습니다.

GRASS 플러그인을 설치하려면 (QGIS가 이미 설치되어있는 경우) 플러그인-> 플러그인 관리 및 설치-> 추가 정보로 이동하여 GRASS를 설치하십시오. 플러그인 관리 및 설치 목록에서 선택되어 있는지 확인하십시오!

  1. GRASS가 설치되면 래스터 레이어를 추가하여 시작하십시오. 레이어-> 래스터 레이어 추가-> 선택으로 이동하여이를 수행 할 수 있습니다

  2. 그런 다음 GRASS에서 새 맵셋을 만듭니다. 플러그인-> GRASS-> 새 맵셋으로 이동하거나 보이는 GRASS 툴바를 사용하십시오. A. GRASS 데이터 셋의 위치를 ​​선택합니다. B. 원하는 새 위치 이름을 입력합니다. C. 원하는 투영을 선택합니다. D. 드롭 다운 목록에서 영역을 선택하거나 위도 / 경도 좌표를 사용하여 영역을 수동으로 선택합니다. 웹에서 위치의 위도 / 경도) E. 새 맵셋 이름을 입력 한 다음 마침을 클릭합니다.

  3. 다음으로 DEM 또는 래스터 레이어를 GRASS에로드하려고합니다. 플러그인으로 이동-> GRASS-> GRASS 도구 열기 B.“Modules List”에서“r.in.gdal.qgis”를 선택하십시오. C.“Loaded layer”에서 레이어를 선택하십시오. 드롭 다운 목록에서 출력 파일 이름을 지정하십시오. D. "실행"을 클릭하십시오.

  4. 이제 GRASS 래스터 레이어를 맵셋 A에 추가해야합니다. 플러그인-> GRASS-> GRASS 래스터 레이어 추가로 이동하거나을 클릭하십시오. B. 위치와 맵셋을 선택한 다음 레이어를 선택하고 "확인"을 클릭하십시오.

  5. 래스터를 색칠하고 싶을 수도 있습니다. 그렇다면 A. 올바른 출력 래스터 레이어를 선택했는지 확인하십시오. B. 플러그인-> GRASS-> GRASS 도구 열기로 이동하십시오. C. "모듈 목록"에서 "r.colors.table"을 클릭하십시오. D. 입력 레이어를 선택한 다음 "Type of color table"을 선택합니다. E. "Run"을 누릅니다.

  6. 이제 재미있는 부분입니다. NVIZ를 사용하여 3D로 시각화. A. 플러그인-> GRASS-> 현재 GRASS 지역 편집으로 이동하여 3D 모델링을위한 특정지도 지역을 설정하십시오. 그런 다음 마우스로 빨간색 프레임을 그려 원하는 영역을 수동으로 선택하거나 나타나는 대화 상자에서 좌표를 설정하십시오. (이는 NVIZ가 어떤 해상도를 사용할지 결정하는 데 도움이됩니다.) B. 플러그인으로 이동-> GRASS-> GRASS 도구 열기 C.“모듈 목록”에서“nviz”를 선택하십시오. D. 고도와 색상에 대한 래스터를 선택하십시오 하나) 오른쪽에있는 정사각형을 클릭하십시오 ( "지도의 영역 사용"을 의미 함) E. "실행"을 누르십시오.

그런 다음 원하는 이미지가 나올 때까지 다양한 뷰, 높이 및 조명으로 놀아보십시오!

도움이 되길 바랍니다. 궁금한 점이 있으면 알려주세요.


SRTM 레이어를 사용할 때 프로젝션에 문제가 있음을 알 수 있습니다. 누구든지 제안이 있습니까?
Zizah

어떤 문제가 있습니까?
markusN


1

nviz 는 독립형 애플리케이션이 아니며 3D 시각화 및 애니메이션을위한 GRASS GIS의 일부입니다 . 래스터를 내보내려면 GRASS GIS (또는 QGIS의 GRASS)가 필요합니다. Terragen Heightfield (.ter), VTK, PovRay, xyz 등을 포함한 다양한 파일 형식으로 DEM을 내보낼 수 있습니다 .

당신은 또한 사용할 수 있습니다 받은 Paraview를 VTK 파일을 열고 다른 다양한 형식에 수출

그러나 Blender에는 Blender Digital Elevation Importer 와 같은 DEMS를 직접 가져 오거나 모양 파일 및 래스터 가져 오기 ( ESRI Shapefile 가져 오기 / 내보내기 및 지리 참조 된 래스터 가져 오기 )를위한 플러그인도 있습니다 .

Kodex 는 SVG 형식의 Blender를 사용하여 QGIS 데이터시각화 하는 솔루션도 제공 합니다.

또한 봐 음영 기복은 블렌더에 SRTM 데이터와


1

"평면으로 이미지 가져 오기"애드온과 함께 믹서기에서 dem 파일을 * .tif로 간단히 추가 할 수 있습니다. 블렌더에서 dem을 사용하여 고해상도 3D 맵을 만드는 방법을 볼 수있는이 게시물을 참조하십시오 :-> https://gis.stackexchange.com/a/80842/24809

dem을 블렌더에로드 한 후 이미지를 편집 할 수 있으므로 편집 할 수도 있습니다.



0

USGS & GTOPO30 DEM Importer 를 사용해 보셨습니까 ?


해당 페이지의 스크린 샷 (및 파일 이름) 중 일부는 MS Windows 프로그램처럼 보입니다. Linux에서 작동 할 수있는 것이 필요합니다.
Rory

Linux에서 작동하는지 확실하지 않습니다. 아마도 이것에 대한 문서를 확인할 수 있습니다.
Catlover

0

IMO gdal2xyz.pytriangle 의 조합 과 지원되는 블렌더 또는 meshlab의 텍스트 형식 중 하나에서 삼각형 (.node, .ele)의 출력 파일 재구성이 작동해야합니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.