1
ทำไมช่อง @ data @ values สำหรับ RasterLayer มีเพียงลอจิคัล (0) และไม่ใช่ค่าจริง
พยายามไปถึงจุดต่ำสุดของเหตุผลเมื่อฉันอ่านในแรสเตอร์ของ NDVI ช่อง @ data @ values ไม่ได้มีค่าจริงจนกว่าฉันจะตั้งค่าด้วยตนเอง ตัวอย่างเช่น: NDVI <- raster("./filename.tif", crs="+proj=longlat +datum=WGS84") NDVI@data@values ## returns: logical(0) สิ่งนี้ไม่ได้เกิดขึ้นกับแรสเตอร์อื่น ๆ ที่ฉันโหลดด้วยวิธีเดียวกันดังนั้นฉันจึงสับสน ฉันหวังว่าฉันจะเฉพาะเจาะจงมากขึ้น แต่ฉันจำไม่ได้ว่าทำอะไรที่แตกต่างมาก่อน ง่ายพอที่จะรับค่าด้วยตนเองโดยใช้: NDVI1@data@values <- getValues(NDVI19east) แต่มันก็เป็นความเจ็บปวดที่ต้องทำสำหรับไฟล์ทุกไฟล์ ดังนั้นคำถามสองส่วน: ทำไมสิ่งนี้ถึงเกิดขึ้นตั้งแต่แรก? ฉันเข้าใจว่าอาจมีบางอย่างเกี่ยวกับวิธีการจัดเก็บไฟล์แรสเตอร์ (เช่นไม่ว่าจะอยู่ในหน่วยความจำหรือไม่ก็ตาม) แต่ฉันไม่เข้าใจจริง ๆ ว่าการเปลี่ยนแปลงวิธีการที่ฉันควรใช้ในการเข้าถึงข้อมูล ... มีวิธีทำให้กระบวนการนี้เป็นอัตโนมัติ (อาจใช้วิธีที่คล้ายกับ lapply) เพื่ออ่านไฟล์ในรูปแบบ RasterLayers และเข้าถึงค่าสำหรับไฟล์เหล่านั้นหรือไม่? โครงการปัจจุบันของฉันเกี่ยวข้องกับการอ่านครั้งละ 6-10 ไฟล์สำหรับ NDVI, ปริมาณน้ำฝนและตัวแปรสภาพแวดล้อมอื่น ๆ เพื่อรวมเข้าด้วยกันและทำงานซ้อนทับแบบถ่วงน้ำหนัก มันจะเป็นประโยชน์ในการทำให้กระบวนการนำเข้าข้อมูลเป็นไปโดยอัตโนมัติ