เปรียบเทียบแบบจำลองการยกระดับดิจิทัลสองรูปแบบ (DEM) จากไฟล์ LAS หรือไม่


12

ฉันมีไฟล์ LiDAR สองไฟล์ (.las) ไฟล์หนึ่งเป็นต้นฉบับแล้วสมมุติว่ามีจุด X และอีกอันคือสำเนาของไฟล์. Atlas แรก แต่มีจุด Y โดยที่ Y น้อยกว่า X

ตอนนี้ฉันต้องการเปรียบเทียบแบบจำลองการยกระดับแบบดิจิทัล (DEMs) ของไฟล์. Atlas สองไฟล์นี้และเห็นภาพว่ามันแตกต่างกันอย่างไร

ฉันต้องการได้รับข้อมูลเช่น RMSE ค่าเบี่ยงเบนมาตรฐานและการเปรียบเทียบประเภทอื่น ๆ

ฉันจะขอบคุณถ้าใครสามารถบอกฉันว่าซอฟต์แวร์และวิธีการรับข้อมูลการเปรียบเทียบ


1
บางทีคุณสามารถแก้ไขคำถามเพื่อใช้ M และ N (แทนที่จะเป็น X และ Y) ตอนอ่านครั้งแรกฉันคิดว่า X และ Y เป็นค่าพิกัด!
Mark Ireland

1
คุณจำเป็นต้องให้ข้อมูลเพิ่มเติมเพื่อรับความช่วยเหลือที่เกี่ยวข้อง คำถามปัจจุบันของคุณทำให้เกิดฉากน้อยมาก ฟิลด์ใดในไฟล์ las ของคุณกำลังเก็บค่า วิธีการจำแนกกราวด์ถูกกำหนดในรูปแบบ las เป็นฟิลด์การจัดหมวดหมู่และค่า z (ระดับความสูง) ไม่แตกต่างกัน ผู้ขายจะต้องใช้กับฟิลด์ที่ไม่ได้กำหนดเพื่อเก็บค่าต่าง z
Jeffrey Evans

คำตอบ:


8

วิธีเปรียบเทียบแบบจำลองระดับความสูงดิจิทัล (DEMs) ในรูปแบบ R

#-------------------------------------------------------------------------
#Creating a reproducible example

library(raster)

  #simulating raster_1

  f = system.file("external/test.grd", package="raster")
  DEM_1 = raster(f)

  #simulating raster_2

  DEM_2 = DEM_1
  # replacing values from raster_1 to create a new raster sample (raster_2)
    DEM_2[(DEM_2>500 & DEM_2<900)] = 550
    DEM_2[(DEM_2>200 & DEM_2<300)] = 500

#-------------------------------------------------------------------------
# Comparison 1 (DEM_3 resulted from subtracting DEM_2 from DEM_1)

  DEM_3 = DEM_1 - DEM_2

    par(mfrow=c(1,3))

    plot(DEM_1, main = "DEM_1")
    plot(DEM_2, main = "DEM_2")
    plot(DEM_3, main = "DEM_3 = DEM_1 - DEM_2")

      dev.off()

ป้อนคำอธิบายรูปภาพที่นี่

#-------------------------------------------------------------------------
#Comparison 2 (histogram)

  hist(DEM_1, prob=T, main="DEM_1", xlab="")
  hist(DEM_2, prob=T, main="DEM_2", xlab="")
  hist(DEM_3, prob=T, main="DEM_3 = DEM_1 - DEM_2", xlab="")

    par(mfrow=c(1,1))

  standard_deviation = sd(c(as.matrix(DEM_3)),na.rm=T)

    dev.off()

ป้อนคำอธิบายรูปภาพที่นี่

#-------------------------------------------------------------------------
#comparison 3 (RMSE)

  library(hydroGOF)

  DEM_1_matrix = c(as.matrix(DEM_1))
  DEM_2_matrix = c(as.matrix(DEM_2))

  rmse = rmse(DEM_1_matrix,DEM_2_matrix)
  rmse
  [1] 135.3675 # this is the root mean squared error (RMSE) result.

ดู @ คำตอบของ whuber เกี่ยวกับการเปรียบเทียบ TIN สองตัวที่สร้างขึ้นโดยใช้ ArcGIS for Desktop หรือไม่ สำหรับข้อมูลเชิงลึกทางทฤษฎีเกี่ยวกับปัญหานี้


5

คุณสามารถทำได้ผ่านการขยายการวิเคราะห์ ESRI ArcGIS Geostatistical - มีส่วนในการช่วยเหลือในการดำเนินการตรวจสอบในส่วนย่อย

คุณสามารถทำเช่นเดียวกันผ่าน GRASS ผ่านอินเตอร์เฟซที่ R Tomislav Hengl อธิบายในรายละเอียดบางส่วนวิธีการที่จะทำเช่นนั้นในหนังสือของเขาคู่มือการปฏิบัติเพื่อ Geostatistical แมป มันเปิดให้เข้าถึงได้ดังนั้น PDF สามารถดาวน์โหลดได้ฟรี


2

เท่าที่ฉันรู้ RMSE จะถูกระบุเฉพาะในระหว่างการสร้าง DEM และไม่ได้เป็นคุณลักษณะสำหรับการตอบโต้ต่อไปดังนั้นคุณต้อง "จับ" ด้วยตนเองในระหว่างการสร้าง DEM (ที่กล่าวว่าฉันไม่เคยทำ DEM จาก Lidar เฉพาะจากข้อมูลอื่น ๆ )

หากคุณต้องการเห็นความแตกต่างระหว่าง DATA ภายใน DEMS ทั้งสองฉันจะใช้การตัด / เติมซึ่งอยู่ในส่วนขยาย Spatial Analyst ของ ArcGIS (ภายใต้ "การวิเคราะห์พื้นผิว") การตัด / การเติมจะแสดงให้คุณเห็นในแผนที่เฉพาะเรื่องการเปลี่ยนแปลงระหว่าง DEM


3
การตัด / การเติมนั้นหยาบเกินไปเพราะมันไม่ได้คำนวณความแตกต่าง RMSE เป็นวิธีทั่วไปในการเปรียบเทียบสองชุดข้อมูล: ไม่เพียง แต่จะเป็นประโยชน์ในการเปรียบเทียบ DEM กับข้อมูลภาคพื้นดินเท่านั้น แต่ยังเป็นวิธีหนึ่งในการหาปริมาณความแตกต่างระหว่าง DEM สองตัว
whuber

2

ฉันต้องการ DEM แบบง่าย ๆ DEM2-DEM1 สิ่งนี้จะแสดงพื้นที่ทั้งหมดที่แตกต่างกันและเท่าไหร่

มีภาพให้มีความแตกต่างความละเอียดสูงในหน้าแรกของเว็บไซต์ของฉัน thadwester.com
ลองดูภาพซ้ายที่มีสีสัน

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