การจัดกลุ่ม Raster โดยใช้ QGIS


10

ฉันกำลังมองหาวิธีที่จะแปลงแรสเตอร์แยกประเภทให้เป็นรูปหลายเหลี่ยมตามกลุ่มเชิงพื้นที่ภายในแต่ละชั้นเรียน เพื่อให้กลุ่มได้รับการพิจารณาว่าถูกต้องฉันต้องการให้พวกเขาประกอบด้วยเปอร์เซ็นต์ขั้นต่ำของเซลล์จากหนึ่งในชั้นเรียน

ตัวอย่างเช่น:พื้นที่ที่ประกอบด้วยเซลล์ 70% (หรือมากกว่า) ของคลาส "1" จะถูกพิจารณาเป็นกลุ่มของคลาส "1" แม้ว่าพื้นที่นั้นจะถูกผสมกับเซลล์ 30% ที่กำหนดให้กับคลาสอื่น การวิเคราะห์การจัดกลุ่มจึงควรขึ้นอยู่กับระยะห่างระหว่างเซลล์ของคลาสเดียวกัน

ตัวเลือกอื่นอาจเป็นการจัดกลุ่มฐานตามจำนวนเซลล์ขั้นต่ำภายในคลาสที่กำหนดพร้อมกับคำจำกัดความของพื้นที่การค้นหาสูงสุด

ตัวอย่างเช่น:ภายในพื้นที่ที่ระบุควรมี 100 เซลล์ของ "class 1" เพื่อให้พิจารณาเป็นคลัสเตอร์  

เครื่องมือส่วนใหญ่ที่เกี่ยวข้องกับการจัดกลุ่มดูเหมือนจะใช้ได้เฉพาะกับเวกเตอร์เท่านั้น ฉันได้ดูการวิเคราะห์กลุ่มเครื่องมือ SAGA แต่มันไม่สอดคล้องกับวัตถุประสงค์ของฉัน ความคิดเห็นใด ๆ สำหรับการแก้ปัญหานี้หรือเครื่องมืออื่นใดที่อาจมีประโยชน์?


คุณสามารถแปลงแรสเตอร์เป็นเวกเตอร์และใช้เครื่องมือการจัดกลุ่มเวกเตอร์
csk

นั่นเป็นตัวเลือก แต่ฉันคิดว่ามันง่ายกว่าที่จะทำการวิเคราะห์ในรูปแบบแรสเตอร์ถ้าเป็นไปได้ การแปลงเป็นเวกเตอร์อาจสร้างรูปหลายเหลี่ยมที่รายละเอียดจำนวนมากหายไปในการรวมกันของ rastercells หรือมีวิธีจัดการกับจุดมากเกินไป (ชุดข้อมูลขนาดใหญ่)
Spiran

3
ฉันรู้ว่านี่ไม่ใช่วิธีการแก้ปัญหา QGIS แต่คุณสามารถใช้ python หรือ R เพื่อสร้างฟังก์ชั่น Neighborhood เพื่อให้คุณสร้างแรสเตอร์ใหม่ที่มันดูแต่ละเซลล์และถ้า> 70% ของเซลล์ในละแวกนั้นอยู่ในชั้นเรียน เซลล์นั้นจะถูกจัดประเภทใหม่ในคลาสนั้นหรือไม่
เลียม G

ที่สามารถใช้งานได้แน่นอนขอบคุณ! ฉันใหม่กับ Python แต่มันก็คุ้มค่าที่จะลอง
Spiran

คำตอบ:


5

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

หากแพทช์ที่คุณต้องการลบมีขนาดค่อนข้างใหญ่คุณควรใช้ "ตะแกรง" (แรสเตอร์> การวิเคราะห์> ตะแกรงใน QGIS 3.2 ซึ่งขึ้นอยู่กับ gdal_sieve.py)

สคริปต์ gdal_sieve.py ลบรูปหลายเหลี่ยมแรสเตอร์ที่เล็กกว่าขนาดเกณฑ์ที่ระบุ (เป็นพิกเซล) และแทนที่จะแทนที่ด้วยค่าพิกเซลของรูปหลายเหลี่ยมเพื่อนบ้านที่ใหญ่ที่สุด ผลลัพธ์สามารถเขียนกลับไปยังแถบแรสเตอร์ที่มีอยู่หรือคัดลอกลงในไฟล์ใหม่

หากคุณมีบางอย่างเช่นเอฟเฟกต์ "เกลือและพริกไทย" (พิกเซลแยกต่างหากหลายคลาส แต่เพียงไม่กี่พิกเซลต่อเส้นทางเล็ก ๆ คุณควรใช้ตัวกรองส่วนใหญ่ (เช่นไปที่เครื่องมือเพิ่มเติมจาก GRASS> raster> r) เพื่อนบ้าน> เลือก "โหมด" ตัวเลือก) โปรดทราบว่าตัวกรองนี้จะ (เล็กน้อย) ส่งผลกระทบต่อขอบเขตของคุณ

r.neighbor - ทำให้แต่ละค่าหมวดหมู่ของเซลล์เป็นฟังก์ชันของค่าหมวดหมู่ที่กำหนดให้กับเซลล์รอบ ๆ และเก็บค่าของเซลล์ใหม่ในเลเยอร์แผนที่แรสเตอร์เอาท์พุท

คุณจะพบฟิลเลอร์ตัวเดียวกัน (Majority filter, sieving classes) และอันอื่น (สัณฐานวิทยา) ในเครื่องมือ SAGA (SAGA> raster filter) หากคุณต้องการ


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