การใช้รูปหลายเหลี่ยมเพื่อใช้ค่าที่ไม่ซ้ำกับเซลล์แรสเตอร์ทั้งหมดภายในรูปหลายเหลี่ยมเหล่านั้น


14

ใน ArcGIS 9.3 ฉันมีไฟล์แรสเตอร์ที่ฉันต้องการ "ปกปิด" ด้วยรูปหลายเหลี่ยมให้ค่าเดียวกับเซลล์แรสเตอร์ทั้งหมดที่ซ้อนทับรูปหลายเหลี่ยม

ฉันจะทำสิ่งนี้ได้อย่างไร

นี่คือสกรีนช็อตที่รูปหลายเหลี่ยมสีดำเป็นเลเยอร์รูปหลายเหลี่ยมของฉันและส่วนที่เหลือเป็นแบบแรสเตอร์

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

คำตอบ:


15

คุณสามารถใช้คำสั่งแบบมีเงื่อนไข ปัญหาที่มีคำแนะนำก่อนหน้าคือเมื่อคุณ rasterize รูปหลายเหลี่ยมของคุณ (ซึ่งจำเป็น) พื้นหลังที่ไม่มีรูปหลายเหลี่ยมจะเป็น NoData ส่งผลให้พื้นที่ที่สอดคล้องกันในผลลัพธ์ยังเป็น NoData คุณจะต้องกำหนดขอบเขตการวิเคราะห์ของคุณเป็นแรสเตอร์ดั้งเดิมของคุณจากนั้นตั้งค่าพื้นหลัง (เช่น 0) ไปที่แรสเตอร์รูปหลายเหลี่ยมที่แรสเตอร์โดยใช้ SetNull เมื่อคุณทำสิ่งนี้แล้วคำสั่งแบบมีเงื่อนไขในเครื่องคิดเลขแบบแรสเตอร์จะมีลักษณะดังนี้

Con ("praster"> 0, "praster", "OrgRaster")

"praster" เป็นคลาสคุณลักษณะ ploygon ที่มีค่าพื้นหลังเป็น 0 และ "OrgRaster" เป็น raster ที่คุณต้องการแก้ไข คำสั่งนี้จะบอกว่าถ้า praster มากกว่า 0 แล้วกำหนดค่าจาก praster อื่นกำหนดค่าจาก OrgRaster


1
ฉันสิ้นสุดการเปลี่ยนขอบเขตแรสเตอร์จากนั้นทำการจัดประเภทใหม่เพื่อเปลี่ยนค่าของโหนดเป็น 0 ขอบคุณ!
ลุค

4

คุณสามารถ rasterize ( ArcToolbox> เครื่องมือแปลง> To Raster ) รูปหลายเหลี่ยมของคุณจากนั้นรวม raster สองอันเข้าด้วยกันด้วยเครื่องมือนักวิเคราะห์เชิงพื้นที่> คณิตศาสตร์> ตรรกะ >สูง

ในขณะที่รูปหลายเหลี่ยม rasterizing ในหน้าต่างโต้ตอบรูปหลายเหลี่ยมถึง Rasterคุณจะต้องใช้ตัวเลือกสภาพแวดล้อม -> ตัวเลือกการประมวลผล Extent Snap Rasterเพื่อให้เซลล์สอดคล้องกับแรสเตอร์เริ่มต้นของคุณ


2
ในขณะที่รูปหลายเหลี่ยม rasterizing ในหน้าต่างโต้ตอบรูปหลายเหลี่ยมถึง Raster คุณต้องไปที่สภาพแวดล้อม -> การตั้งค่าทั่วไปและใช้ตัวเลือก Snap Raster เพื่อให้เซลล์สอดคล้องกับแรสเตอร์เริ่มต้นของคุณ
nadya

1

ฉันใช้วิธีอื่นเนื่องจากไม่สามารถหาวิธีแก้ปัญหาข้างต้นได้ ข้างต้นอาจเป็นเรื่องง่าย แต่อย่างใดฉันก็ล้มเหลว

แนวทางของฉันคือ:

  1. ทำการรวมกันกับ [รูปหลายเหลี่ยม] และ [Study_Area] ผลลัพธ์: [Polygon_StudyArea_Union]
  2. แก้ไขค่าของรูปหลายเหลี่ยมใน [Polygon_StudyArea_Union] เป็น 0 และผลลัพธ์เป็น 1
  3. แปลง [Polygon_StudyArea_Union] เป็น raster ผลลัพธ์: [Polygon_StudyArea_Union_Raster]
  4. ทำการคำนวณแรสเตอร์: [The แรสเตอร์ที่คุณต้องการแก้ไข] * [Polygon_StudyArea_Union_Raster]
  5. จากนั้นจัดประเภทเป็นค่าใดก็ได้ที่คุณต้องการให้ค่าศูนย์ (0) เป็น

อาจมีหลายขั้นตอนมากเกินไป แต่หวังว่านี่จะช่วยได้บ้าง


0

คุณสามารถแปลงค่าแรสเตอร์เป็นรูปหลายเหลี่ยม

จากนั้นเข้าร่วมเชิงพื้นที่กลับไปที่รูปหลายเหลี่ยมของโซน

จากนั้นแปลงโซนรูปหลายเหลี่ยมเป็นแรสเตอร์ทำให้ฟิลด์จากการรวมเชิงพื้นที่

ถ้าอย่างนั้นฉันคิดว่าคุณควรทำให้มันเข้าด้วยกันโดยรักษา raster 'บนสุด' นั่นคือค่าของ raster โซน (แทนที่จะเป็น sum / min / max / median) ...

รู้ว่าฉันหมายความว่าอย่างไร?

-mb

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