วิธีการเปรียบเทียบสกีมาจากฐานข้อมูลทางภูมิศาสตร์ของไฟล์ทั้งสอง?


13

เรามีเทมเพลตฐานข้อมูลภูมิศาสตร์ซึ่งเราส่งออกไปยังผู้สร้างข้อมูลระดับภูมิภาคของเรา พวกเขาอัพเดทฐานข้อมูลทางภูมิศาสตร์เหล่านี้และแปลงข้อมูลทั้งหมดจากภูมิภาคของพวกเขาในชั้นเรียนที่กำหนดไว้ล่วงหน้า

ตอนนี้เราได้รับฐานข้อมูลไฟล์ทางภูมิศาสตร์แล้วเราพบว่าบ่อยครั้งที่ฟีเจอร์คลาสต่างๆได้รับการแก้ไข อาจจะมีการเพิ่มหรือลบฟิลด์ ในบางกรณีฟีเจอร์คลาสนั้นจะถูกลบหรือสร้างขึ้นใหม่

ฉันต้องการรับรายงานที่ระบุว่าฟีเจอร์คลาสและตารางใดมีการเปลี่ยนแปลงรวมถึงฟิลด์ที่แตกต่างในตารางทั่วไปและฟีเจอร์คลาส

ฉันได้ดูคำถามหลายข้อแล้วเช่น:

แต่คำตอบที่ให้ไว้ในคำถามเหล่านี้ไม่ได้มีประโยชน์


ฉันไม่แน่ใจเกี่ยวกับโปรโตคอลที่ SE ในหัวข้อ necroing แต่ฉันมีคำถามที่เกี่ยวข้องกับคุณ Devdatta: มีเครื่องมือที่ใช้วิธีแก้ปัญหาของคุณจากการเพิ่ม X-ray และแก้ไขความแตกต่างระหว่าง GeoDBs / XML?
Kyle Shepard

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

คำตอบ:


9

มียอดเยี่ยมเพิ่มในเรียกว่าX-ray เพื่อ ArcCatalog มันมีคุณสมบัติมากมาย แต่สิ่งที่เราใช้คือเครื่องมือ 'วิเคราะห์ความแตกต่าง' จากเมนูเครื่องมือ

ค้นหาความแตกต่างระหว่าง Geodatabase กับเอกสารเวิร์กสเปซ XML เราเพิ่งส่งสคีมาของ Geodatabase เทมเพลตของเราไปยัง XML และเปรียบเทียบฐานข้อมูล Geod ที่แตกต่างกัน

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


มันดูดีมาก ใช้งานกับ 10.1 ได้หรือไม่
Fezter

@Fezter: นี่น่าจะเป็น 10.1 สำหรับ: arcgis.com/home/item.html?id=e1e911d7d7374285b1ef03d06b3ee642
Devdatta Tengshe

7

ฉันคิดว่าการเขียนสคริปต์หลามจะเหมาะที่สุดสำหรับสิ่งที่คุณพยายามหา ด้านล่างเป็นขั้นตอนการทำงานของสคริปต์ทั่วไป:

ก่อนอื่นให้เปรียบเทียบฐานข้อมูลภูมิศาสตร์ 1 (geo1) กับฐานข้อมูลภูมิศาสตร์ 2 (geo2)

  1. ค้นหา / วนผ่าน geo1 และรับ class feature (fc) 1 ชื่อและค้นหาชื่อ fc เดียวกันใน geo2 อื่น ๆ (หากชื่อ fc1 ไม่สามารถพบได้ใน geo2 จากนั้นเขียนชื่อ fc แรกลงในไฟล์ข้อความ)
  2. หากขั้นตอนที่ 1 fc1 == ชื่อ fc2 ให้ระบุรายการฟิลด์ใน fc1 และค้นหาฟิลด์ใน fc2 หากไม่พบชื่อฟิลด์ fc1 ใน fc2 จากนั้นเขียนชื่อฟิลด์ fc1 ลงในไฟล์ข้อความ
  3. ถัดไปค้นหาหรือแสดงรายการโดเมนภายใน geo1 จากนั้นค้นหาชื่อโดเมนเดียวกันใน geo2 หากโดเมน geo1 == โดเมน geo2 จากนั้นรับค่ารหัสแรกของโดเมน 1 และดูว่ามีอยู่ในโดเมน 2 หรือไม่ถ้าไม่เขียนชื่อโดเมน geo1 หรือค่ารหัสโดเมนไปยังไฟล์ข้อความ

ที่สองในการเปรียบเทียบย้อนกลับ geo2 กับ geo1

ทำตามขั้นตอนที่ 1-3 ด้านบน แต่ทำตามลำดับ geo2 กลับเป็น geo1

หลังจากสคริปต์เสร็จสิ้นการตรวจสอบไฟล์ข้อความผลลัพธ์เพื่อดูความแตกต่างที่เป็นไปได้


3

ดูเหมือนคุณจะมีคำตอบที่ดีอยู่แล้ว แต่สำหรับใครที่กำลังมองหาที่จะเข้าใจสกีมาฐานข้อมูลภูมิศาสตร์ของฉันฉันยังสามารถแนะนำArcGIS Diagrammerโปรแกรมสแตนด์อะโลนที่เขียนโดยหนึ่งในทีม Esri

ArcGIS Diagrammer เป็นเครื่องมือเพิ่มประสิทธิภาพสำหรับมืออาชีพ GIS ในการสร้างแก้ไขหรือวิเคราะห์คีมาฐานข้อมูล สคีมานำเสนอเป็นกราฟิกที่แก้ไขได้ในสภาพแวดล้อมที่ผู้ใช้ Microsoft Visual Studio คุ้นเคย เป็นหลัก ArcGIS Diagrammer เป็นโปรแกรมแก้ไขภาพสำหรับเอกสารพื้นที่ทำงาน XML ของ ESRI ที่สามารถสร้างใน ArcMap หรือ ArcCatalog


เพื่อชี้แจงว่าไม่ต้องใช้ Visio - แต่ดูเหมือนว่า "คุ้นเคยกับผู้ใช้ Visio" เล็กน้อยซึ่งเขาใช้เลย์เอาต์ที่คล้ายกัน
Stephen Lead

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