วิธีรับไฟล์แรสเตอร์จากรายการแรสเตอร์แบบซ้อนที่สร้างโดยแพ็คเกจภูมิทัศน์เมตริกใน R

แพ็คเกจ landscapemetrics สามารถคำนวณพื้นที่ของแต่ละแพตช์สำหรับไฟล์แรสเตอร์ที่กำหนด รูปร่างของแพตช์นั้น และอื่นๆ ฉันต้องการให้ไม่เพียงแต่ tibble-frame ที่คำนวณเมตริกของแพตช์เท่านั้น แต่ยังต้องการแรสเตอร์ใหม่ที่แต่ละพิกเซลภายในแพตช์เฉพาะจะมีค่าของพื้นที่ของแพตช์นั้น ตัวบ่งชี้รูปร่าง และอื่นๆ เราสามารถทำได้ด้วยฟังก์ชัน spatialize_lsm() (สร้างวัตถุที่ซ้อนกัน Large list โดยอาจมีวัตถุ RasterObject ภายใน):

library(landscapemetrics)

plot(podlasie_ccilc) # this raster data is provided with package

podlasie.metrics.area <- spatialize_lsm(podlasie_ccilc, what = 'lsm_p_area') # creates a list

plot(podlasie.metrics.area) # produces an error...

วิธีรับไฟล์แรสเตอร์ที่ต้องการพร้อมแพตช์เมตริกจากรายการนั้น ฉันเดาว่ามันเป็นคำถามของ raster แพ็คเกจหรืออย่างอื่น เนื่องจากเอกสารประกอบ landscapemetrics ไม่ได้บอกอะไรเกี่ยวกับขั้นตอนนี้

ฉันไม่ใช่ว่าข้อมูลนี้และแรสเตอร์ใหม่ไม่มีความละเอียดของพิกเซลเหมือนหน่วยเมตร (เช่น 30, 30 สำหรับภาพดาวเทียม Landsat) ดังนั้นเราจึงไม่สามารถพล็อตแรสเตอร์ใหม่ที่สร้างขึ้นได้:

podlasie.metrics.area[[1]]
plot(podlasie.metrics.area[[1]])

ดังนั้น ฉันเดาว่าภูมิเมตริกไม่สามารถจัดการกับแรสเตอร์ดังกล่าวได้ เรายังสามารถใช้ฟังก์ชันของมันเพื่อตรวจสอบความเหมาะสมของแรสเตอร์ก่อนหน้าสำหรับการค้นหาแพตช์:

check_landscape(podlasie_ccilc)

อัปเดต ฉันทำเพื่อชุดข้อมูล Landsat ที่มีความละเอียด 30, 30 และมันสร้างแรสเตอร์พื้นที่แพตช์ แต่อีกครั้งฉันไม่สามารถเปิด / แสดง / บันทึกเป็นแรสเตอร์ได้เนื่องจากข้อผิดพลาดเดียวกัน


person Maksym Matsala    schedule 12.02.2020    source แหล่งที่มา
comment
str(podlasie.metrics.area)แสดงอะไร?   -  person Val    schedule 13.02.2020
comment
Val, รายการ 1 $ :รายการ 1 ..$ lsm_p_area:คลาสทางการ 'RasterLayer' [แพ็กเกจแรสเตอร์] พร้อม 12 ช่อง .. .. ..@ ไฟล์ :คลาสทางการ '.RasterFile' [แพ็กเกจแรสเตอร์] พร้อม 13 ช่อง   -  person Maksym Matsala    schedule 13.02.2020
comment
โปรดอัปเดตคำถามของคุณเพื่อให้อ่านได้ง่ายขึ้น   -  person Val    schedule 13.02.2020
comment
ฉันเดาว่าเพราะ podlasie_ccilc มีความละเอียดไม่ใช่หน่วยเมตร เช่นเดียวกับชุดข้อมูลของฉันเองที่สร้างโดยอัลกอริทึม LandTrendR จากอนุกรมเวลา Landsat ในขณะที่ชุดข้อมูล Landsat ของฉันมีความละเอียด 30, 30 ม. ฉันต้องคิดออกว่าจะทำอย่างไร   -  person Maksym Matsala    schedule 13.02.2020


คำตอบ (1)


ผู้ดูแลแพ็คเกจช่วยแก้ปัญหา (ใช่ มันเกี่ยวข้องกับโครงสร้างของรายการ):

plot(podlasie.metrics.area[[1]]$lsm_p_area)
person Maksym Matsala    schedule 13.02.2020