ArcCatalog กล่าวว่าการอ้างอิงเชิงพื้นที่ไม่ตรงกับชุดข้อมูลคุณลักษณะและคลาสคุณลักษณะที่มีระบบพิกัดเดียวกันหรือไม่


31

ฉันมีชุดข้อมูลคุณลักษณะที่ใช้ GCS_WGS_1984 เป็นระบบพิกัดทางภูมิศาสตร์ มันมีคลาสฟีเจอร์ไม่กี่คลาส

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

ฉันคิดว่ามันจะไม่สำคัญที่จะใช้ ArcCatalog เพื่อลากคลาสฟีเจอร์จาก root ของ gdb ไปยังชุดข้อมูลของฟีเจอร์เนื่องจากพวกเขามีระบบพิกัดเดียวกัน ขออภัย ArcGIS ให้กล่องโต้ตอบข้อผิดพลาดที่แจ้งว่า:

Failed to paste points
The spatial references do not match

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

การอ้างอิงเชิงพื้นที่ของคลาสคุณลักษณะแตกต่างจากระบบพิกัด / การฉายภาพหรือไม่?

พยายามที่จะคัดลอกคลาสคุณลักษณะลงในชุดข้อมูลคุณลักษณะโดยกด ctrl ค้างไว้ในขณะที่ลากผลลัพธ์ใน ArcCatalog หยุดทำงานทุกครั้ง (อัปเดต ESRI)

ฉันเดาว่าฉันสามารถลองใช้วิธีอื่นในการย้ายคลาสฟีเจอร์ ใช้ CopyFeatures ในชุดข้อมูล โปรเจ็กต์จากคลาสคุณลักษณะเป็นคลาสคุณลักษณะใหม่ภายในชุดข้อมูลคุณสมบัติหรือไม่


คุณสามารถโพสต์ไฟล์ gdb ได้ที่ไหน? อาจลบคุณลักษณะทั้งหมดหรือบางส่วนหากมีขนาดใหญ่เสียงเหมือนสามารถทำซ้ำได้แม้ว่าจะมีคุณสมบัติว่างเปล่า
Kirk Kuykendall

4
ฉันหวังว่าฉันมีเวลาที่จะวิ่งลงไปทุกจุดเล็ก ๆ น้อย ๆ ที่ฉันวิ่งเข้าหา w / ArcGIS บ่อยครั้งที่ฉันต้องอยู่กับมันและหาวิธีแก้ปัญหาที่น่าพอใจน้อยที่สุดต่อไป ฉันใช้การจัดการข้อมูล -> คัดลอกฟีเจอร์เพื่อคัดลอกไปยังคลาสคุณลักษณะใหม่ (ชื่อชั่วคราว) ลบคลาสฟีเจอร์เก่าเปลี่ยนชื่อคลาสฟีเจอร์ใหม่เพื่อจับคู่เก่า การใช้ ArcGIS ไม่จำเป็นต้องได้รับปริญญาในการทดสอบซอฟต์แวร์ = (
mindless.panda

2
"ไม่จำเป็นต้องได้รับปริญญาในการทดสอบซอฟต์แวร์" , chat.stackexchange.com/transcript/message/1116371
matt wilkie

มันเป็นเพียงชื่อพวกเขาสามารถจับคู่ แต่ถ้าพวกเขามีชื่ออื่นมัน chucks ออกข้อความนี้ไม่สนใจ
หากคุณไม่ทราบ - เพียงแค่ GIS

คำตอบ:


21

เดียวกันระบบพิกัดไม่เคยเหมือนกันระบบพิกัด ฉันพบสถานการณ์ที่การดำเนินการและเครื่องมือการประมวลผลทางภูมิศาสตร์บางอย่างจะคิดว่าคลาสคุณลักษณะไม่ได้ใช้ระบบพิกัดร่วมเนื่องจากชื่อเชิงพรรณนาของการฉายภาพแตกต่างกัน ("Yukon Albers" vs "Albers - custom") แม้ว่าพารามิเตอร์จะเหมือนกันหรือเพราะ ของตำแหน่งทศนิยมที่แตกต่างกัน (false northing 500000.00 เทียบกับ 500000.0000)

สิ่งที่ฉันมักจะทำคือให้แน่ใจว่าชุดข้อมูลคุณลักษณะ (และ F.class) ระบบพิกัดถูกสร้างขึ้นด้วยไฟล์. prj มาตรฐานของเราที่วางไว้ด้านบนของC:\path\to\ArcGIS\Desktop10.0\Coordinate Systems(ทำให้ CS พร้อมใช้งานด้วยการคลิกน้อยลง) และ / หรือคัดลอก CS จากเทมเพลตคลาสคุณลักษณะต้นแบบ เก็บไว้ในมือเสมอ

ส่วนหนึ่งในการตอบสนองต่อปัญหานี้ฉันยังมีชุดข้อมูลคุณลักษณะที่ว่างเปล่า ( D:\s.gdb\_template) ซึ่งฉันส่งข้อมูลทั้งหมดของเราผ่านทางตัวกรองขั้นตอนแรกก่อนที่จะทำสิ่งอื่นใดกับพวกเขา ในระบบพิกัดทั่วไปนี้ยังช่วยให้มั่นใจได้ว่าความแม่นยำและโดเมนอวกาศเป็นเหมือนกัน

อัปเดต:ดูคำตอบของแอนดี้เกี่ยวกับการใช้ python เพียง 2 บรรทัดเพื่อคัดลอกระบบอ้างอิงชุดข้อมูลเชิงพื้นที่จากคลาสคุณลักษณะเทมเพลต สิ่งนี้ใช้ได้กับฉันใน ArcCatalog 10.3 เมื่อวิธีการโต้ตอบของการกำหนด SR โดยการเลือกคลาสคุณลักษณะเพื่อนำเข้าอันหนึ่งไม่ทำงาน


การเปลี่ยนแปลงเล็กน้อยเหล่านี้ในชื่องานพิมพ์สวย ๆ หรือตำแหน่งทศนิยมที่คุณพูดถึงจะปรากฏในไฟล์. prj ที่ส่งออกด้วยตัวเลือกบันทึกเป็นหรือไม่ ถ้าเป็นเช่นนั้นเหตุใดไฟล์ diffj จึงไม่แสดงอะไรเลย ฉันสงสัยว่าความแตกต่างเล็กน้อยใน x การแก้ปัญหา y อาจทำให้เกิดความขัดแย้งได้เช่นกัน
mindless.panda

1
อาจเป็นไฟล์. prj ที่สร้างด้วย "Save As" ไม่เหมือนกับไฟล์ที่จัดเก็บภายใน ฉันใช้ชุดข้อมูลฟีเจอร์ "ตัวกรอง" เพื่อให้แน่ใจว่าความละเอียดเชิงพื้นที่ทั่วไปและอื่น ๆ
matt wilkie

3
ฉันจะเพิ่มแง่มุมเพิ่มเติมหนึ่งรายการ: บางครั้งชุดข้อมูลจากแหล่งอื่น ๆ จะถูกสร้างขึ้นซึ่งมีค่า M และ Z เมื่อพวกเขาไม่มี M หรือ Z จริง ๆ แล้วฉันพบว่าเครื่องมือ ESRI บางตัวตรวจจับระบบพิกัด Z ที่ว่างเปล่า การจับคู่แม้ข้อเท็จจริงที่ว่าระบบพิกัด X / Y จะจับคู่กัน
DPierce

16

นี่คือคำอธิบายมากกว่าคำตอบ

เรา (Esri) ทำการทดสอบอย่างเข้มงวดเกี่ยวกับชื่อและค่าอ้างอิงของระบบพิกัด การทดสอบ 'เท่ากับ' จะไม่ส่งคืนความล้มเหลวเมื่อเปรียบเทียบ 500000.00 และ 500000.000000 แต่อาจล้มเหลวหากหนึ่งคือ 500000.0 จริง ๆ และอีก 500000.00000005 เรากำลังดำเนินการเพิ่มชื่อแทนเพื่อให้ 'มีค่าเท่ากัน' จะผ่านมากขึ้น

ดังที่ mindless.panda และ matt wilkie พูดถึงความแตกต่างอาจอยู่ในค่าอื่นของการอ้างอิงเชิงพื้นที่ การอ้างอิงเชิงพื้นที่รวมถึงระบบการอ้างอิงพิกัดและค่าการจัดเก็บ / การประมวลผล สำหรับการจัดเก็บ: xy, z และวัดความละเอียดและขอบเขต สำหรับการประมวลผล: xy, z และวัดค่าความอดทน ความแตกต่างในสิ่งเหล่านี้อาจทำให้เกิดข้อผิดพลาดไม่เท่ากัน


6
คำตอบของคุณได้รับการชื่นชมมาก ฉันอยากเห็นการจัดการข้อผิดพลาดโดยเฉพาะในสิ่งที่ผู้ใช้รายงานเพื่อปรับปรุงใน ArcGIS ต้องการข้อผิดพลาดที่ให้ข้อมูลเพิ่มเติมพร้อมตัวเลือกในการรับข้อมูลที่ละเอียดยิ่งขึ้นหากต้องการ อีกครั้งขอบคุณ ESRI ที่สละเวลาตอบ
mindless.panda

2
ฉันสองข้อเสนอเพื่อให้ข้อมูลเพิ่มเติมเกี่ยวกับข้อผิดพลาด ในช่วงสองสัปดาห์ที่ผ่านมาฉันได้รับข้อผิดพลาดเดียวกัน ( Error code: 999999: Error executing function. Description: This is a generic error for which the cause of the error does not have an appropriate error ID. ) เนื่องจากปัญหาต่าง ๆ นี่เป็นข้อความที่ทำให้โกรธที่ได้รับเนื่องจากฉันไม่สามารถทำอะไรได้นอกจากลองใช้สิ่งที่ฉันทำเป็นครั้งที่สองเพื่อดูว่าเกิดข้อผิดพลาดซ้ำหรือยอมแพ้และใช้วิธีอื่น (หรือซอฟต์แวร์ซึ่งเพิ่มขึ้นเรื่อย ๆ )
djq

9

นี่คือสิ่งที่ฉันทำเพื่อแก้ไขปัญหา (ใช้ arcpy ใน ArcGIS 10.0) -

สิ่งนี้จะถือว่าสิ่งต่อไปนี้:

  • FGDB - C: \ gisdata \ Test.gdb
  • การจำแนกคุณลักษณะ - C: \ gisdata \ Test.gdb \ bldg

คุณสามารถแก้ไขพา ธ และชื่อวัตถุของคุณในรหัสและวางลงในหน้าต่างหลามใน ArcCatalog

sr = arcpy.Describe(r'C:\gisdata\Test.gdb\bldg').spatialReference
arcpy.CreateFeatureDataset_management(r'C:\gisdata\Test.gdb', 'MyFeatureDataset', sr)

หลังจากสร้างชุดข้อมูลคุณลักษณะแล้วคุณสามารถลากและวางคลาสคุณลักษณะได้


1
ขอขอบคุณ! สิ่งนี้ใช้ได้กับฉันในวันนี้ในสถานการณ์ที่ใช้เครื่องมือแบบโต้ตอบเพื่อกำหนดชุดคุณลักษณะระบบพิกัดใหม่โดยการเลือกคลาสคุณลักษณะที่มีอยู่ไม่ทำงาน (v10.3)
matt wilkie

7

ปัญหานี้กำลังฆ่าฉัน! หลังจากบันทึกคลาสฟีเจอร์มากมายจากไฟล์ CAD ฉันพยายามหลายครั้งเพื่อกำหนดระบบพิกัดของพวกเขาจากนั้นจัดเรียงพวกมันให้เป็นชุดข้อมูลฟีเจอร์ ฉันพยายามกำหนด f.classes และ f.datasets ที่จำเป็นทั้งหมดจากการฉาย WGS_1984_UTM_42N อย่างเป็นทางการจาก ESRI รวมทั้งการตั้งค่าการฉายสำหรับชุดข้อมูลจากนั้นจึงนำเข้าการฉายภาพนั้นสำหรับ f.classes โดยใช้เครื่องมือกำหนดฉายภาพ f.classes จะไม่มีการวางในหรือ 1 จะและคนอื่นจะไม่

ขอบคุณ @Matt Wilkie ในบทความนี้เครื่องมือFeature Class to Feature Classน่าจะแก้ปัญหาได้แล้ว มันนำเข้า f.classes เข้าสู่ชุดข้อมูลที่ต้องการได้สำเร็จแม้ว่าฉันจะยังไม่ได้กำหนดระบบพิกัดสำหรับ f.class ที่เป็นปัญหา

นอกจากนี้ฉันพบว่าสคริปต์Feature Class to Geodatabase (หลาย ๆ ตัว) ใช้งานได้ดีสำหรับการย้าย f.classes ไปยัง f.dataset เป็นกลุ่มยกเว้นสิ่งนี้จะต้องทำจาก Geodatabase ไปยังอีก (ไม่ได้อยู่ใน f.dataset ภายในฐานข้อมูลเดียวกัน) . สิ่งนี้ดูเหมือนจะเป็นเพราะสคริปต์ไม่ได้เปลี่ยนชื่อ f.classes โดยอัตโนมัติเมื่อพวกเขาถูกคัดลอก (หรือขอชื่อใหม่จากโอเปอเรเตอร์เช่นใน Feature Class to Feature Class) อย่างไรก็ตามตามที่คนอื่นชี้ให้เห็น (เธรดเดียวกันที่เชื่อมโยงด้านบน) ข้อผิดพลาดที่ระบุคือ 999999 ทั่วไป


4

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

ฉันไม่รู้ว่าทำไมการอ้างอิงเชิงพื้นที่แตกต่างกัน


สวัสดี @Alan! ขอบคุณสำหรับการแบ่งปันประสบการณ์ของคุณและยินดีต้อนรับสู่เว็บไซต์ของเรา
whuber

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

1
ฉันพบปัญหานี้ - แม้ว่าฉันจะสร้างชุดข้อมูลคุณลักษณะและใช้กลไกการนำเข้าและเลือกระดับคุณลักษณะฉันยังไม่สามารถลาก / คัดลอกคลาสคุณลักษณะลงในชุดข้อมูลคุณลักษณะที่สร้างขึ้นใหม่ได้โดยไม่มีข้อผิดพลาดดังกล่าว
mindless.panda

3

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

ฉันได้พบขั้นตอนการใช้คุณสมบัติการคัดลอก ArcToolbox เพื่อแก้ไขข้อผิดพลาดที่เกิดขึ้นเมื่อใช้กลไกการนำเข้าหรือคัดลอก ที่นี่เราจะขึ้นอยู่กับขั้นตอนกล่องเครื่องมือคัดลอกคุณสมบัติเพื่อแก้ไขความแตกต่างของการอ้างอิงหรือการฉายอย่างถูกต้องก่อนที่จะแนะนำคลาสคุณลักษณะในชุดข้อมูลคุณลักษณะ

ฉันได้ลองสร้างชุดข้อมูลคุณลักษณะด้วยระบบการฉายที่กำหนดไว้ในเวลาที่สร้างชุดข้อมูลแล้วฉายคลาสของคุณสมบัติลงในชุดข้อมูลคุณสมบัติโดยใช้เครื่องมือการฉาย ArcToolbox ด้วยการฉายภาพเดียวกันและยังคงได้รับข้อผิดพลาดที่อธิบายไว้ที่นี่ หรือคัดลอกคลาสคุณลักษณะลงในชุดข้อมูล

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


1

ตกลง. ฉันได้พบวิธีแก้ปัญหา! คลิกขวาที่ฟีเจอร์ชุดข้อมูลใน GDB แล้วคลิกนำเข้า เลือกคุณสมบัติที่คุณต้องการจากนั้นตกลง


0

ลองใช้เครื่องมือคัดลอกคุณสมบัติภายใต้เครื่องมือการจัดการข้อมูล / คุณสมบัติ ไม่เช่นนั้นฉันจะได้รับข้อผิดพลาดไม่ว่าฉันจะทำอะไรก็ตาม


-1

คุณลองนำมาใช้กับ ArcMap และตั้งค่าเลเยอร์เป็น GCS_WGS_1984 ของคุณแล้วส่งออกเลเยอร์ทั้งหมดไปยังฐานข้อมูลไฟล์ทางภูมิศาสตร์หรือไม่

หากคุณมีชั้นหนึ่งหรือหลายชั้นที่อยู่ในการฉายภาพที่แตกต่างกันคุณสามารถส่งออกได้ แต่เปลี่ยนกรอบข้อมูลเป็น GCS_WGS_1984

ฉันไม่แน่ใจใน ArcGIS 10 ฉันยังไม่มี แต่ใช้ 9.3.1


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