วิธีการใช้สัญลักษณ์ที่สอดคล้องกันระหว่างหลาย rasters ยืดใน ArcMap?


17

ฉันมีชุดภาพแรสเตอร์ต่อเนื่องที่แสดงปรากฏการณ์เดียวกันตลอดเวลาดังนั้นฉันจึงต้องใช้สัญลักษณ์ที่เหมือนกันในทุกภาพ

ดังนั้นฉันจึงตั้งค่าสัญลักษณ์ที่ยืดออกของแรสเตอร์แรกโดยมีทางลาดสีจากค่าต่ำสุด / สูงสุด:

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

ตอนนี้ในแรสเตอร์ที่สองฉันนำเข้าสัญลักษณ์จากแรสเตอร์แรก น่าเสียดายที่แม้ว่าป้ายกำกับจะตรงกัน แต่ค่าmin / maxจริงไม่เหมือนเลเยอร์แรก:

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

ดังนั้นสีแดงในแรสเตอร์ที่สองจึงสอดคล้องกับค่า 0.47 มากกว่า 0.66

ฉันจะมั่นใจได้อย่างไรว่าแรสเตอร์ทั้งสองใช้สัญลักษณ์ที่สอดคล้องกัน

คำตอบ:


18

ขอบคุณ @Erica มากสำหรับคำตอบซึ่งด้วยเหตุผลบางอย่างใช้ไม่ได้สำหรับฉัน

แต่มันทำให้ฉันอยู่ในเส้นทางที่ถูกต้องเพื่อค้นหาวิธีแก้ปัญหาซึ่งใช้การยืดขั้นต่ำ / สูงสุดรวมกับตัวเลือกแก้ไขค่าสูง / ต่ำสุด:

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

การนำเข้าสัญลักษณ์นี้ไปสู่ภาพแรสเตอร์อื่นทำให้เกิดการยืดที่ถูกต้องกับภาพทั้งหมด


วันนี้ฉันกำลังเจอปัญหาเดียวกันนี้ คุณใช้การตั้งค่าแบบกำหนดเองสำหรับสถิติหรือคุณใช้เพียงแค่ปล่อยไว้เป็นค่าเริ่มต้นหรือไม่
Devdatta Tengshe

2
นี่เป็นวิธีที่ง่ายและตรงไปตรงมาที่สุด @Devdatta Tengshe:ไม่จำเป็นต้องใช้การตั้งค่าแบบกำหนดเองร่วมกับการยืดขั้นต่ำสุดและค่าสูง / ต่ำสุดที่แก้ไข ยืดขั้นต่ำสูงสุดเป็นเส้นตรงเสมอ (เว้นแต่จะมีการเพิ่มเติมแกมมายืดถูกนำไปใช้) และแก้ไขสูง / ต่ำค่าแทนที่สถิติที่กำหนดเอง
lavarider

2
น่ากลัวผมได้เรียนรู้วิธีที่ง่าย :)
เอริก้า

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

5

คลิกขวาที่เลเยอร์แรสเตอร์ใน TOC แล้วเลือก "บันทึกเป็นไฟล์เลเยอร์" เพิ่มแผนที่เชิงภาพอื่น ๆ ของคุณไปที่แผนที่ไปที่คุณสมบัติเลเยอร์ - แท็บสัญลักษณ์คลิกนำเข้าค้นหาไฟล์เลเยอร์ที่บันทึกไว้ หรือคุณสามารถใช้สัญลักษณ์ของแรสเตอร์ใด ๆ ในเอกสารแผนที่ของคุณกับแรสเตอร์อื่น ๆ ในเอกสารของคุณได้ด้วยการคลิกนำเข้า แต่เลือกการนำเสนอสัญลักษณ์แรสเตอร์จากรายการ

แก้ไข: ค่าที่คุณเห็นในภาพหน้าจอของคุณ # 2 คือค่าต่ำสุดและสูงสุดของแรสเตอร์ที่มีสัญลักษณ์ที่คุณพยายามจับคู่กับแรสเตอร์ดั้งเดิมของคุณ (หากคุณตรวจสอบคุณสมบัติ - แท็บแหล่งที่มา - เลื่อนลงไปที่สถิติ - ขั้นต่ำและสูงสุด - ค่าเหล่านี้จะเหมือนกับค่าที่รายงานในแท็บสัญลักษณ์

เพื่อให้สัญลักษณ์ทั้งหมดตรงกันทุกค่า rasters ต้องอยู่ในช่วงเดียวกันของสัญลักษณ์

ออกแบบสัญลักษณ์ของคุณด้วยช่วงที่สามารถรองรับ rasters ทั้งหมดของคุณ ในกรณีของแรสเตอร์ 2 ตัวคุณแสดง: สูง: 0.66196 ต่ำ: 0140288 (สูงจากแรสเตอร์ 1 และต่ำจากแรสเตอร์ 2) ในการทำเช่นนี้คุณต้องเปลี่ยนประเภทการยืดเป็นต่ำสุด - สูงสุด เมื่อคุณทำเช่นนั้นคุณจะแก้ไขค่าสูงและต่ำของสัญลักษณ์ที่คุณต้องการจากนั้นบันทึกเป็นไฟล์เลเยอร์ หาก rasters ทั้งหมดของคุณอยู่ในช่วงที่คุณระบุและคุณใช้ไฟล์เลเยอร์เดียวกันกับทุกคนสัญลักษณ์จะจับคู่

ฉันได้ทำอะไรบางอย่างที่คล้ายกับภาพทางอากาศของ RGB Composite tile แต่เพิ่งได้ทดสอบก็คือ rasters ที่ต่างกัน 2 แบบโดยสิ้นเชิง ข้อมูลที่ดิน Ontario DEM รุ่น 2 ความละเอียด 20 ม. และ SMRT3 DEM กว้างจังหวัด (ความละเอียด 90 ม.) และสัญลักษณ์จะตรงตามที่คาดไว้

รูปที่ 1: สมมติว่าฉันได้ปรับแต่งและบันทึกไฟล์เลเยอร์เป็นช่วง min-max ที่ฉันต้องการ (สูง 600, ต่ำ 300) ที่นี่ฉันกำลังเพิ่ม DEM แรสเตอร์ใหม่ในมิติและความละเอียดที่แตกต่างกัน แต่มีค่าต่ำสุดช่วงสูงสุดอยู่ในช่วงของสัญลักษณ์: ป้อนคำอธิบายรูปภาพที่นี่

หลังจากคุณโหลดสัญลักษณ์ลงในแรสเตอร์นี้: ป้อนคำอธิบายรูปภาพที่นี่

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

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


1
ขอบคุณสำหรับเคล็ดลับ - อย่างไรก็ตามนี่คือสิ่งที่ฉันกำลังทำในสกรีนช็อตที่สองของโพสต์ต้นฉบับซึ่งคุณสามารถเห็นค่าสูงสุดของทางลาดไม่ตรงกับป้ายกำกับ
สตีเฟ่นนำ

1
@StephenLead - ฉันเพิ่มข้อมูลเพิ่มเติมลงในคำตอบของฉัน
Jakub Sisak GeoGraphics

5

ในการใช้ไฟล์ Layer กับ python สำหรับ rasters ทั้งหมดที่มีชื่อหนึ่งสามารถใช้:

# read in mxd file
mxd=arcpy.mapping.MapDocument(r"Path_To_MXD_File")

# read in all rasters in the mxd which have names starting with "test"
rasters=arcpy.mapping.ListLayers(mxd,"test*") 

# apply the symbology lyr file to the rasters
for r in rasters:

     arcpy.ApplySymbologyFromLayer_management(r,r"Path_To_Lyr_File")

4

เป็นคำถามที่ดีมาก - ฉันต้องการทำสิ่งที่คล้ายกันเมื่อเร็ว ๆ นี้และมันก็ซ่อนเร้นอยู่! ในกล่องโต้ตอบ Symbology ที่คุณแสดงด้านบนคุณต้องเลื่อนลง ที่จะนำคุณไปสู่กล่องโต้ตอบ "ยืด"

Tเลื่อนลงเพื่อค้นหาฮิสโตแกรมที่เจาะจง

โดยค่าเริ่มต้น ArcMap จะวิเคราะห์ฮิสโตแกรมและคำนวณหาขนาดที่เหมาะสมที่สุดตามสถิติของภาพแต่ละภาพ สิ่งนี้จะปรับความลาดของสีให้เหมาะสมสำหรับแต่ละภาพ แต่ไม่ใช่สิ่งที่คุณต้องการ - คุณต้องการทางลาดเดียวสำหรับภาพจำนวนมาก เลือกประเภท "กำหนดเอง" และสถิติ "จากการตั้งค่าที่กำหนดเอง (ด้านล่าง)" จากนั้นป้อนค่าที่ครอบคลุมช่วงเต็มขั้นต่ำของแรสเตอร์ของคุณ


ขอบคุณดูเหมือนว่าเป็นสิ่งที่ฉันต้องการ น่าเสียดายที่ฉันพบว่ามันใช้งานไม่ได้จริง - แม้ว่าช่วงในกล่องโต้ตอบ Symbology จะแสดงค่า min / max ใหม่อย่างถูกต้องสัญลักษณ์บนแผนที่จะไม่เปลี่ยนแปลง (0.47 ยังคงเป็นสีแดง) ฉันจะทดสอบอีกแล้วบันทึกการโทรสนับสนุนหากจำเป็น
สตีเฟ่นนำ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.