เครื่องมือโอเพนซอร์สเพื่อแปลง DEM เป็นโมเดล 3 มิติ


11

ฉันต้องการแปลงไฟล์ DEM (Digitial Elevation Model) (เช่นจาก SRTM) เป็นแบบจำลอง 3 มิติที่ฉันสามารถแก้ไขด้วยเครื่องมือสร้างแบบจำลอง 3 มิติปกติ (เช่น Meshlab / Blender / etc) อย่างไรก็ตามฉันใช้ Ubuntu Linux

ดังนั้นมีโปรแกรม / เครื่องมือโอเพนซอร์ซที่สามารถทำสิ่งนี้ได้หรือไม่? และถ้าเป็นเช่นนั้นคุณสามารถให้คำแนะนำง่ายๆสำหรับฉันเกี่ยวกับวิธีการแปลง DEM เป็นแบบจำลอง 3 มิติ (โปรแกรมบรรทัดคำสั่งที่ถูกอ้างถึง)

คำตอบ:


7

Blender มี Python API ดังนั้นฉันใช้ Python ใน Blender และนำเข้าไลบรารี GDAL และสร้างตาข่าย Blender-native โดยตรงจากข้อมูล GIS สิ่งเดียวที่คุณต้องระวังคือเวอร์ชันของ GDAL ที่คุณใช้ตรงกับเวอร์ชันของ Python ใน Blender ที่คุณกำลังใช้อยู่

แก้ไขปลั๊กอิน:
หากคุณไม่ต้องการเขียนสคริปต์ของคุณเองโดยใช้ Blender Python API และ GDAL มีปลั๊กอินบางตัวที่ใช้งานได้ตามมาตรฐานซึ่งอาจช่วยได้:

  1. นำเข้าDXF
  2. มีผู้นำเข้าสำหรับ OBJ, X3D และ VRML และบางระบบ 3D GIS จะส่งออกไปยังเหล่านี้ (เช่น ArcScene และ NVIZ) แม้ว่าเส้นทางนี้อาจจำเป็นต้องใช้อย่างเคร่งครัด

มีส่วนเสริมสำหรับข้อมูล XYZแต่ไม่ได้มาตรฐานและมุ่งเน้นที่ข้อมูลโมเลกุลเป็นหลัก แต่บางทีคุณอาจโค้งงอตามความประสงค์ของคุณได้ สำหรับช่วงเต็มของผู้นำเข้าปิด -the-shelf สำหรับปั่นดูที่นี่ มีการนำเข้า PDS .IMG ใน Blender แต่ GDAL สามารถอ่านไฟล์ PDS IMG ได้เท่านั้น (เพื่อไม่ให้สับสนกับไฟล์ Erdas IMG ซึ่งแตกต่างกัน)

ดังนั้นทางออกที่ดีที่สุดของคุณถ้าคุณมี GeoTiff, ASC หรือ raster data อื่น ๆ ก็คือการเขียนสคริปต์เล็ก ๆ น้อย ๆ เพื่อย้ำผ่าน raster เนื่องจากไม่มีปลั๊กอินสำเร็จรูปสำหรับผู้ใช้ส่วนใหญ่เว้นแต่คุณจะสามารถ ส่งออก DTM ของคุณไปยัง DXF, VRML หรือ OBJ


มีปลั๊กอินเฉพาะหรืออะไรที่ฉันสามารถดาวน์โหลดและเล่นด้วยได้หรือไม่?
โรรี่

1
สิ่งที่ดีที่สุดของคุณคือการเขียนสคริปต์ของคุณเอง - ดูการแก้ไขของฉัน
MappaGnosis

4

ฉันพบว่า NVIZ (ซึ่งเป็นส่วนหนึ่งของแพ็คเกจ GRASS) เป็นเครื่องมือที่มีประโยชน์สำหรับการแสดงข้อมูล DEM เป็นแบบจำลอง 3 มิติ

ในการติดตั้งปลั๊กอิน GRASS (ถ้าคุณติดตั้ง QGIS ไว้แล้ว) เพียงไปที่ปลั๊กอิน -> จัดการและติดตั้งปลั๊กอิน -> รับเพิ่มเติมและติดตั้ง GRASS ตรวจสอบให้แน่ใจว่ามีการตรวจสอบในรายการจัดการและติดตั้งปลั๊กอิน!

  1. เมื่อคุณติดตั้ง GRASS แล้วให้เริ่มต้นด้วยการเพิ่มเลเยอร์แรสเตอร์ของคุณ คุณสามารถทำได้โดยไปที่ Layer -> Add Raster Layer -> Select

  2. จากนั้นสร้าง mapset ใหม่ใน GRASS ทำได้โดยไปที่ปลั๊กอิน -> GRASS -> Mapset ใหม่หรือใช้แถบเครื่องมือ GRASS ที่ควรมองเห็น A. เลือกสถานที่สำหรับชุดข้อมูล GRASS ของคุณ B. ป้อนชื่อที่ตั้งใหม่ที่คุณเลือก C. เลือกการฉายที่คุณต้องการ D. เลือกภูมิภาคจากรายการแบบหล่นลงหรือเลือกด้วยตนเองโดยใช้พิกัดละติจูด / ลองจิจูด (คุณสามารถค้นหา lat / long ตำแหน่งของคุณบนเว็บ) E. ป้อนชื่อ mapset ใหม่แล้วคลิกเสร็จสิ้น

  3. ต่อไปคุณจะต้องโหลด DEM หรือเลเยอร์แรสเตอร์ลงใน GRASS คุณจะทำสิ่งนี้โดย A. นำทางไปยังปลั๊กอิน -> GRASS -> เครื่องมือ GRASS เปิด B. ภายใต้“ รายการโมดูล” เลือก“ r.in.gdal.qgis” C. ภายใต้“ โหลดเลเยอร์” เลือกเลเยอร์ของคุณจาก รายการดรอปดาวน์และตั้งชื่อไฟล์เอาต์พุต D. คลิก“ Run”

  4. ตอนนี้คุณต้องเพิ่มชั้นแรสเตอร์ GRASS ให้กับคุณ mapset A. นำทางไปยังปลั๊กอิน -> GRASS -> เพิ่มเลเยอร์แรสเตอร์ GRASS หรือคลิกที่ B. เลือกตำแหน่งและ mapset ของคุณแล้วเลือกเลเยอร์ของคุณแล้วคลิก“ ตกลง”

  5. คุณอาจต้องการสีแรสเตอร์ของคุณ ถ้าเป็นเช่นนั้น A. ตรวจสอบให้แน่ใจว่าคุณได้เลือกเลเยอร์แรสเตอร์เอาท์พุทที่ถูกต้อง B. นำทางไปยังปลั๊กอิน -> GRASS -> เปิดเครื่องมือ GRASS C. ภายใต้“ รายการโมดูล” ให้คลิกที่“ r.colors.table” D. เลือกเลเยอร์อินพุตจากนั้นเลือก“ ประเภทของตารางสี” E. กด“ Run”

  6. ตอนนี้เพื่อความสนุก การสร้างภาพใน 3D โดยใช้ NVIZ ดังนั้นคุณต้อง A. ตั้งค่าภูมิภาคของแผนที่เฉพาะสำหรับการสร้างแบบจำลอง 3 มิติโดยการนำทางไปยังปลั๊กอิน -> GRASS -> แก้ไขภูมิภาค GRASS ปัจจุบัน จากนั้นเลือกภูมิภาคที่ต้องการด้วยตนเองโดยการวาดกรอบสีแดงด้วยเมาส์หรือตั้งค่าพิกัดในกล่องโต้ตอบที่ปรากฏขึ้น (สิ่งนี้ช่วยให้ NVIZ กำหนดความละเอียดที่จะใช้) B. นำทางไปยังปลั๊กอิน -> GRASS -> เครื่องมือ GRASS แบบเปิด C. ภายใต้“ รายการโมดูล” เลือก“ nviz” D. เลือกแรสเตอร์สำหรับระดับความสูงและสี หนึ่ง) และคลิกที่ช่องสี่เหลี่ยมทางด้านขวา (ซึ่งหมายถึง“ ใช้พื้นที่ของแผนที่นี้”) E. กด "Run"

จากนั้นเล่นกับมุมมองความสูงและแสงที่แตกต่างกันจนกว่าคุณจะได้ภาพที่ต้องการ!

หวังว่านี่จะช่วยได้และโปรดแจ้งให้เราทราบหากคุณมีคำถาม


ฉันจะทราบว่าฉันมีปัญหากับการฉายภาพเมื่อใช้เลเยอร์ SRTM ไม่มีใครมีข้อเสนอแนะใด ๆ ?
Zizah

มีปัญหาอะไร
markus


1

nvizไม่ใช่แอปพลิเคชันแบบสแตนด์อโลนมันเป็นส่วนหนึ่งของGRASS GISสำหรับการสร้างภาพสามมิติและภาพเคลื่อนไหว หากคุณต้องการส่งออกแรสเตอร์คุณต้อง GRASS GIS (หรือ GRASS ใน QGIS) คุณสามารถส่งออก DEMs ในรูปแบบไฟล์ต่าง ๆรวมถึง Terragen Heightfield (.ter), VTK, PovRay, xyz เป็นต้น

คุณยังสามารถใช้Paraviewเพื่อเปิดไฟล์ VTK และส่งออกไปยังรูปแบบอื่น ๆ

แต่ Blender ยังมีปลั๊กอินสำหรับการนำเข้า DEMS โดยตรงเช่นBlender Digital Elevation Importerหรืออิมพอร์ต Shapefiles และ rasters ( การนำเข้า / ส่งออกของ ESRI Shapefile และการนำเข้าแรสเตอร์เชิงภูมิศาสตร์ )

Kodex นำเสนอโซลูชันสำหรับการแสดงผลข้อมูล QGIS ด้วย Blenderด้วยรูปแบบ SVG

ดูShaded Relief ใน Blenderด้วยข้อมูล SRTM


1

คุณสามารถเพิ่มไฟล์ dem เป็น * .tif ด้วย blender พร้อมกับ addon "import image as plane" ดูโพสต์นี้ที่คุณสามารถดูว่าฉันทำแผนที่ 3 มิติความละเอียดสูงโดยใช้เดมในเครื่องปั่น: -> https://gis.stackexchange.com/a/80842/24809

หลังจากโหลดเดโมลงในเครื่องปั่นคุณสามารถแก้ไขได้ตามที่คุณต้องการแก้ไขรูปภาพ



0

คุณได้ลองผู้นำเข้า USGS & GTOPO30 DEM แล้วหรือยัง


ภาพหน้าจอบางส่วน (และชื่อไฟล์) ในหน้านั้นทำให้ดูเหมือนโปรแกรม MS Windows ฉันต้องการบางสิ่งที่สามารถทำงานบน Linux
โรรี่

ฉันไม่แน่ใจว่ามันใช้งานได้บน Linux หรือไม่ บางทีคุณสามารถตรวจสอบเอกสารของพวกเขาสำหรับสิ่งนี้
Catlover

0

IMO การรวมกันของgdal2xyz.pyและสามเหลี่ยมและการกำหนดค่าใหม่ของไฟล์เอาต์พุตของรูปสามเหลี่ยม (.node, .ele) ในรูปแบบข้อความที่สนับสนุนรูปแบบข้อความอย่างใดอย่างหนึ่งของเครื่องปั่นหรือ meshlab ควรทำงานได้


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.