วิธีการรวมเลเยอร์โดยใช้ Geometry หรือ Attribute
สรุป
ใน GIS การเชื่อมต่อ (joins) เป็นกลไกที่มีประสิทธิภาพสำหรับการรวมข้อมูลจากเลเยอร์ต่างๆ ตาม attribute ที่เหมือนกันหรือความสัมพันธ์เชิงพื้นที่ การเชื่อมต่อช่วยให้คุณสามารถรวมข้อมูล attribute จากเลเยอร์หนึ่ง (เลเยอร์ต้นทาง) กับอีกเลเยอร์หนึ่ง (เลเยอร์เป้าหมาย) โดยใช้ฟิลด์ทั่วไป หรือตำแหน่งเชิงพื้นที่ วิธีแรกคือการรวมข้อมูลโดยใช้คีย์ (attribute ในตาราง) โดยใช้ฟิลด์ทั่วไป เช่น คีย์ที่ไม่ซ้ำกัน คุณสามารถเชื่อมโยงเร็กคอร์ดในตารางหนึ่งกับเร็กคอร์ดในอีกตารางหนึ่งได้ อีกวิธีหนึ่งคือการรวมข้อมูลตามตำแหน่ง (เชิงพื้นที่) เราสนับสนุนทั้งสองแนวทางและมอบโอกาสให้คุณเลือกใช้ขึ้นอยู่กับความต้องการของคุณ
สมมติว่าคุณได้รับข้อมูลที่อธิบายเปอร์เซ็นต์การเปลี่ยนแปลงของประชากรสำหรับเขตต่างๆ และคุณต้องการสร้างแผนที่การเติบโตของประชากรหลายแผนที่ตามข้อมูลนี้ ในขณะที่ข้อมูลประชากรของคุณถูกเก็บไว้ในตารางในฐานข้อมูลของคุณและมีฟิลด์ทั่วไปกับเลเยอร์ของคุณ คุณสามารถรวมข้อมูลนี้เข้ากับออบเจ็กต์ทางภูมิศาสตร์ของคุณ และใช้ฟิลด์เพิ่มเติมสำหรับการติดป้าย การจัดหมวดหมู่ การสืบค้น หรือการวิเคราะห์ออบเจ็กต์เลเยอร์
โดยปกติคุณจะทำการเชื่อมต่อข้อมูลตามค่าฟิลด์ที่มีอยู่ในทั้งสองตาราง ชื่อฟิลด์ไม่จำเป็นต้องตรงกัน แต่ประเภทข้อมูลควรเหมือนกัน - ตัวเลขกับตัวเลข สตริงกับสตริง และอื่นๆ คุณสามารถดำเนินการเชื่อมต่อข้อมูลได้โดยใช้เครื่องมือ geoprocessing “Add Join” เมื่อทำการเชื่อมต่อ attribute ฟิลด์ที่เชื่อมต่อจะถูกเพิ่มลงในตารางที่มีอยู่แบบไดนามิก คุณสมบัติของฟิลด์ เช่น ชื่อแทน ความสามารถในการมองเห็น และการจัดรูปแบบตัวเลข จะได้รับการเก็บรักษาไว้เมื่อเพิ่มหรือลบการเชื่อมต่อ
ความสามารถในการเชื่อมต่อตามฟิลด์คีย์
- แนวทางนี้ช่วยให้คุณ เชื่อมโยงเร็กคอร์ดจากตารางต่างๆ ตามฟิลด์คีย์ทั่วไป คุณสามารถระบุฟิลด์คีย์ที่จะใช้สำหรับการเปรียบเทียบเพื่อสร้างความสัมพันธ์ระหว่างเร็กคอร์ดได้ สิ่งนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการรวมข้อมูลตามตัวระบุหรือ attribute ที่ไม่ซ้ำกัน
การระบุวิธีการเปรียบเทียบข้อมูลตามฟิลด์คีย์:
- คุณสามารถกำหนด วิธีการเปรียบเทียบที่แตกต่างกัน สำหรับฟิลด์คีย์เมื่อรวมข้อมูล ตัวอย่างเช่น คุณสามารถเลือกที่จะทำการจับคู่แบบแม่นยำ เปรียบเทียบตามรูปแบบ หรือภายในช่วงของค่าได้ สิ่งนี้ช่วยให้การกำหนดความสัมพันธ์ระหว่างเร็กคอร์ดมีความแม่นยำยิ่งขึ้น และควบคุมกระบวนการรวมข้อมูล
การระบุรายการชื่อ attribute ที่จะรวม:
- เมื่อรวมข้อมูล คุณสามารถระบุ attribute เฉพาะ ที่ควรจะรวมได้ ซึ่งช่วยให้คุณเลือกเฉพาะ attribute ที่จำเป็นสำหรับการรวมและจัดการโครงสร้างของตารางที่ได้ผลลัพธ์
ความสามารถในการเชื่อมต่อโดยใช้ Geometry
- แนวทางนี้ช่วยให้คุณสามารถเชื่อมโยงข้อมูลตาม ตำแหน่งเชิงพื้นที่ ได้ คุณสามารถกำหนดรัศมีการค้นหาภายในซึ่งออบเจ็กต์ geometry ที่ใกล้เคียงที่สุดจะถูกค้นหาเพื่อรวม สิ่งนี้มีประโยชน์เมื่อคุณต้องการเชื่อมต่อข้อมูลตามตำแหน่งทางภูมิศาสตร์ของมัน
การควบคุมรัศมีการค้นหาสำหรับการค้นหาออบเจ็กต์ geometry ที่ใกล้เคียงที่สุด:
- คุณสามารถควบคุม รัศมีการค้นหา เมื่อรวมข้อมูลตามตำแหน่งได้ โดยระบุค่ารัศมี คุณจะกำหนดระยะทางภายในซึ่งออบเจ็กต์ที่ใกล้เคียงที่สุดจะถูกค้นหาเพื่อรวม สิ่งนี้ช่วยให้คุณควบคุมว่าออบเจ็กต์ใดจะมีส่วนร่วมในกระบวนการรวมข้อมูลโดยพิจารณาจากความสัมพันธ์เชิงพื้นที่ของมัน
โครงการสาธิต
เพื่อให้เข้าใจฟังก์ชันการทำงานของไลบรารีของเราได้ดีขึ้น ลองพิจารณา ตัวอย่างการใช้งาน รหัสนี้แสดงให้เห็นวิธีการเชื่อมต่อเลเยอร์เวกเตอร์ตาม attribute หรือ geometry
โค้ดที่ให้มาประกอบด้วยสองวิธี JoinByIndex() และ JoinByCoords() ซึ่งแสดงการดำเนินการรวมข้อมูลโดยใช้คลาส LayerConstructor
ในวิธี JoinByIndex():
-
รายการของ geometries พร้อมกับ attributes ที่เกี่ยวข้องจะถูกสร้างขึ้น
-
ออบเจ็กต์ LayerConstructor ถูกเริ่มต้น
-
วิธีการสร้างเลเยอร์เวกเตอร์และเลเยอร์ geometry โดยใช้ geometries ที่ให้มา
-
เลเยอร์ geometry จะถูกเชื่อมต่อตามตัวระบุที่ไม่ซ้ำกัน (“Id”) โดยใช้เมธอด JoinLayersById()
-
เลเยอร์เวกเตอร์ที่เชื่อมต่อได้ผลลัพธ์จะถูกส่งคืน
ในวิธี JoinByCoords():
-
รายการของ geometries พร้อมกับ attributes ที่เกี่ยวข้องจะถูกสร้างขึ้น
-
ออบเจ็กต์ LayerConstructor ถูกเริ่มต้น
-
เลเยอร์ geometry จะถูกสร้างโดยใช้ geometries ที่ให้มา
-
เลเยอร์ geometry จะถูกเชื่อมต่อตามพิกัดที่ตรงกันโดยใช้เมธอด JoinLayersByCoords()
-
เลเยอร์เวกเตอร์ที่เชื่อมต่อได้ผลลัพธ์จะถูกส่งคืน
โดยสรุป วิธีการเหล่านี้แสดงให้เห็นถึงสองแนวทางที่แตกต่างกันในการรวมข้อมูล: หนึ่งอิงตามตัวระบุที่ไม่ซ้ำกัน และอีกวิธีหนึ่งอิงตามพิกัดที่ตรงกัน คลาส LayerConstructor ช่วยอำนวยความสะดวกในการดำเนินการรวมข้อมูลเหล่านี้
ตัวเลือกการเชื่อมต่อสำหรับ Index
คลาส JoinOptions มีชุดของตัวเลือกสำหรับการกำหนดค่าเลเยอร์ที่กำลังเชื่อมต่อ ลองเจาะลึกในแต่ละตัวเลือก:
-
JoinAttributeName: ตัวเลือกนี้ช่วยให้คุณสามารถระบุชื่อ attribute จากเลเยอร์ที่เชื่อมต่อซึ่งค่าจะถูกใช้ในการเปรียบเทียบเงื่อนไข มันสร้างการเชื่อมต่อระหว่างสองเลเยอร์ตาม attribute นี้
-
TargetAttributeName: ด้วยตัวเลือกนี้ คุณสามารถระบุชื่อ attribute จากเลเยอร์หลักที่จะนำไปเปรียบเทียบกับ attribute จากเลเยอร์ที่เชื่อมต่อ ช่วยในการกำหนดคุณสมบัติที่ตรงกันระหว่างเลเยอร์
-
JoinAttributeNames: ตัวเลือกนี้ช่วยให้คุณสามารถระบุรายการชื่อ attribute ที่คุณต้องการรวม หากรายการนี้ว่างเปล่าหรือตั้งค่าเป็น null attributes ทั้งหมดจากเลเยอร์ที่เชื่อมต่อจะถูกรวมไว้ในการดำเนินการเชื่อมต่อ อย่างไรก็ตาม โดยการเลือกชื่อ attribute เฉพาะ คุณสามารถควบคุม attributes ที่จะรวมได้ ซึ่งมีประโยชน์สำหรับการเพิ่มประสิทธิภาพการใช้หน่วยความจำและเวลาในการประมวลผล
-
ConditionComparer: ตัวเลือกนี้ช่วยให้คุณสามารถกำหนดตรรกะที่กำหนดเองสำหรับการเปรียบเทียบค่า attribute ระหว่างคุณสมบัติของทั้งสองเลเยอร์ โดยค่าเริ่มต้น จะใช้ตัวเปรียบเทียบ EqualityComparer.Default ซึ่งตรวจสอบความเท่าเทียมกัน อย่างไรก็ตาม คุณสามารถจัดเตรียมตัวเปรียบเทียบที่กำหนดเองของคุณเองซึ่งใช้งาน IEqualityComparer สำหรับข้อกำหนดการเปรียบเทียบเฉพาะ
-
JoinedAttributesPrefix: ตัวเลือกนี้ช่วยให้คุณสามารถระบุสตริงคำนำหน้าสำหรับชื่อ attribute ของเลเยอร์ที่เชื่อมต่อ ค่าเริ่มต้นคือ “joined_” ซึ่งหมายความว่า attributes ที่เชื่อมต่อจะถูกเติมด้วย “joined_” ในเลเยอร์ที่เชื่อมต่อได้ผลลัพธ์ คำนำหน้านี้ช่วยแยกแยะ attributes ที่เชื่อมต่อออกจาก attributes เดิมของเลเยอร์หลัก
คลาส JoinOptions มีความยืดหยุ่นและการควบคุมเหนือแง่มุมต่างๆ ของกระบวนการเชื่อมต่อเลเยอร์ คุณสามารถระบุ attributes ที่จะรวม ปรับแต่งตรรกะการเปรียบเทียบ และกำหนดคำนำหน้าสำหรับ attributes ที่เชื่อมต่อได้ผลลัพธ์ ตัวเลือกเหล่านี้ช่วยให้คุณปรับแต่งการดำเนินการเชื่อมต่อตามความต้องการเฉพาะของคุณและได้รับข้อมูลเชิงลึกที่มีความหมายจากเลเยอร์ที่รวมกัน
ตัวเลือกการเชื่อมต่อสำหรับ Geometry
คลาส JoinByGeometryOptions แสดงถึงตัวเลือกสำหรับการเชื่อมต่อเลเยอร์ตาม geometry ลองสำรวจฟังก์ชันการทำงานของแต่ละตัวเลือก:
-
Radius: ตัวเลือกนี้ระบุรัศมีภายในซึ่ง geometry ที่เชื่อมต่อจะถูกค้นหา มันกำหนดความใกล้ชิดภายในซึ่งคุณสมบัติจากเลเยอร์หลักจะจับคู่กับคุณสมบัติจากเลเยอร์ที่เชื่อมต่อตามความสัมพันธ์เชิงพื้นที่ของมัน
-
ConditionComparer: ตัวเลือกนี้ช่วยให้คุณสามารถกำหนดตรรกะที่กำหนดเองสำหรับการเปรียบเทียบค่า attribute จากคุณสมบัติของทั้งสองเลเยอร์ โดยค่าเริ่มต้น จะใช้ EqualityComparer.Default ซึ่งตรวจสอบความเท่าเทียมกัน อย่างไรก็ตาม คุณสามารถจัดเตรียมตัวเปรียบเทียบที่กำหนดเองของคุณเองซึ่งใช้งาน IEqualityComparer สำหรับข้อกำหนดการเปรียบเทียบเฉพาะ
-
JoinedAttributesPrefix: ตัวเลือกนี้ช่วยให้คุณสามารถระบุสตริงคำนำหน้าสำหรับชื่อ attribute ของเลเยอร์ที่เชื่อมต่อ ค่าเริ่มต้นคือ “joined_” ซึ่งหมายความว่า attributes ที่เชื่อมต่อจะถูกเติมด้วย “joined_” ในเลเยอร์ที่เชื่อมต่อได้ผลลัพธ์ คำนำหน้านี้ช่วยแยกแยะ attributes ที่เชื่อมต่อออกจาก attributes เดิมของเลเยอร์หลัก
คลาส JoinByGeometryOptions มีวิธีการปรับแต่งกระบวนการรวมเลเยอร์ตามความสัมพันธ์เชิงพื้นที่ของมัน โดยระบุรัศมีการค้นหา คุณสามารถควบคุมขอบเขตภายในซึ่ง geometries จะถูกจับคู่ สิ่งนี้ช่วยให้คุณปรับแต่งการดำเนินการเชื่อมต่อตามความใกล้ชิดที่ต้องการระหว่างคุณสมบัติ ตัวเลือกในการจัดเตรียมตัวเปรียบเทียบที่กำหนดเองช่วยให้คุณมีความยืดหยุ่นในการเปรียบเทียบค่า attribute และตัวเลือกในการเติมคำนำหน้าให้กับ attributes ที่เชื่อมต่อจะช่วยแยกแยะมันในเลเยอร์ที่เชื่อมต่อได้ผลลัพธ์
การใช้ตัวเลือกเหล่านี้ คุณสามารถทำการรวมข้อมูลที่มีความตระหนักในเชิงพื้นที่และได้รับข้อมูลเชิงลึกจากเลเยอร์ที่รวมกันซึ่งอิงตามความใกล้ชิดเชิงพื้นที่และค่า attribute ของมัน
สรุป
กลไกการรวมข้อมูลใน GIS ช่วยให้คุณสามารถรวมออบเจ็กต์ geometry กับ attributes ที่เกี่ยวข้องของมันจากเลเยอร์ต่างๆ สิ่งนี้ช่วยให้คุณสามารถวิเคราะห์และดึงข้อมูลโดยพิจารณาจากความสัมพันธ์เชิงพื้นที่และ attribute ภายในข้อมูล ตัวเลือกที่มีอยู่ช่วยให้คุณปรับแต่งกระบวนการเชื่อมต่อเพื่อตอบสนองความต้องการและการวิเคราะห์เฉพาะในข้อมูล GIS
การรวมข้อมูลอำนวยความสะดวกให้กับงานต่างๆ รวมถึง:
-
การค้นหาออบเจ็กต์ที่ตรงตามเกณฑ์เชิงพื้นที่เฉพาะ เช่น การระบุอาคารทั้งหมดภายในรัศมี 500 เมตรจากจุดที่กำหนด
-
การรวมข้อมูลทางภูมิศาสตร์เพื่อสร้างภาพรวมที่ครอบคลุมและให้ข้อมูลมากขึ้นของสถานการณ์
-
การวิเคราะห์ค่า attribute ของออบเจ็กต์ตามเงื่อนไขเชิงพื้นที่เฉพาะเพื่อระบุแนวโน้มและรูปแบบ
ตัวเลือกการเชื่อมต่อข้อมูลช่วยให้คุณสามารถกำหนดค่ากระบวนการจับคู่แบบออบเจ็กต์ได้อย่างแม่นยำ ตัวเลือกเหล่านี้รวมถึงการเลือก attributes ที่จะรวม การกำหนดตรรกะที่กำหนดเองสำหรับการเปรียบเทียบค่า attribute และการเพิ่มคำนำหน้าให้กับชื่อ attribute ของข้อมูลที่เชื่อมต่อ ตัวเลือกเหล่านี้ให้ความยืดหยุ่นและความสามารถในการปรับตัวเข้ากับกระบวนการเชื่อมต่อ ตอบสนองต่อข้อกำหนดเฉพาะและเป้าหมายของการวิเคราะห์ข้อมูลใน GIS
กลไกการรวมข้อมูลมีบทบาทสำคัญในการผสานรวมและการวิเคราะห์ข้อมูลทางภูมิศาสตร์ ทำให้เกิดความเข้าใจที่ครอบคลุมมากขึ้นเกี่ยวกับลักษณะเชิงพื้นที่และ attribute ของออบเจ็กต์ที่อยู่ภายใต้การตรวจสอบ