You are currently viewing Append (ArcGIS Pro)

Append (ArcGIS Pro)

Append ใน ArcGIS และ QGIS คือการผนวกชั้นข้อมูล (ตั้งแต่ 1 ชั้นข้อมูล) เข้าไปรวมในชั้นข้อมูลเป้าหมายที่มีอยู่ ชั้นข้อมูลที่จะนำเข้าไปผนวก จะเป็น ตาราง เชปไฟล์ หรือข้อมูลอื่นใดที่ซอฟต์แวร์รองรับ

TIPS: Append จะคล้ายคลึงกับ Merge เพียงแต่จะนำข้อมูลไปรวมเข้าที่ชั้นข้อมูลใดข้อมูลหนึ่ง แต่ Merge จะเป็นการสร้างชั้นข้อมุลใหม่

อย่าลืมว่า การผนวกข้อมูล จะทำใน geometry แบบเดียวกัน ท่านไม่สามารถผนวกชั้นข้อมูล เส้น (line) เข้าไปในชั้นข้อมูลประเภท จุด (point)

หาก geometry มีปัญหา อาจจะผนวกไม่สำเร็จ โปรดอ่านเรื่อง Repair Geometry

Append

ในตัวอย่างนี้ จะใช้ feature class ประเภท polygon เป็นตัวอย่าง มีทั้งหมด 3 ชั้นข้อมูล คือ base (ในตัวอย่างจะเป็นชั้นข้อมูลสีเทาเข้ม) zone01 (ในตัวอย่างจะเป็นชั้นข้อมูลสีแดง) และ zone 02 (ในตัวอย่างเป็นชั้นข้อมูลสีน้ำเงิน)

ชั้นข้อมูลหลัก หรือ Target จะเป็นชั้นข้อมูล base

สิ่งที่เราต้องการคือ จะนำชั้นข้อมูล zone01 และ zone02 ไปรวมในชั้นข้อมูล base

ในตัวอย่างนี้ ชั้นข้อมูล base จะมีฟิลด์เหมือนกับ zone01 ทุกประการ แต่ zone02 จะมีฟิลด์ไม่เหมือนอีก 2 ชั้นข้อมูล คือ แทนที่จะเป็น ORG_ID (ในรูปแบบ text หรือ ข้อความ) ดันเป็น LAND_ID  (ในรูปแบบตัวเลข และข้อมูลที่ควรจะเป็นฟิลด์ชื่อ Filename ดันกลายเป็นฟิลด์ชื่อ TEMP และฟิลด์ข้อมูลก็น้อยกว่าจำนวนฟิลด์ของชั้นข้อมูล base และ zone01

สิ่งที่ต้องสำรวจก่อน

ก่อนที่จะ ผนวกหรือว่ารวมชั้นข้อมูล เราควรตรวจสอบ schema หรือคุณลักษณะของชั้นข้อมูลก่อนว่า scheme เหมือนกันหรือไม่ ถ้าชื่อฟิลด์ตรงกัน จะผนวกไปยังฟิลด์นั้น แต่ถ้าชื่อฟิลด์เดียวกัน แต่ data type คนละประเภท เช่น ชั้นข้อมูลหนึ่งเป็นข้อความ แต่อีกชั้นข้อมูลหนึ่งเป็นตัวเลข ท่านอาจได้รับ Error 001156 ใน ArcGIS

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

The Basic

ไปที่ริบบอน Analysis เลือก Tools จะมีหน้าต่าง Geoprocessing ปรากฏขึ้นมา

Analysis / Tools / Geoprocessing

แท็บ Toolboxes เลือก data management tools > general > append จะมีหน้าต่าง append ปรากฏขึ้นมา (หรือเพื่อความรวดเร็ว จะพิมพ์หาในช่อง Find Tools ก็ได้)

geoprocessing

แท็บ parameter

ช่อง Input Datasets ให้เลือกชั้นข้อมูล zone01 และ zone02

ช่อง expression เราข้ามไปก่อน ยังไม่ต้องไปยุ่งกับมัน

ช่อง Target Datasets ให้เลือกชั้นข้อมูล base

Append

ช่อง Field Matching Type จะมี 3 ตัวเลือก

Input fields must match target fields จะผนวกข้อมูลเมื่อ schema (คุณลักษณะฟิลด์) ของชั้นข้อมูล มีรูปแบบข้อมูลเหมือนกับชั้นข้อมูล Target

Use the field map to reconcile field differences จะเป็นการจับคู่ฟิลด์ ซึ่ง schema (คุณลักษณะของฟิลด์) ไม่จำเป็นต้องตรงกับข้อมูลในชั้น Target แต่ต้องมีการ map field เพื่อเป็นการกำหนดว่าจะไปอยู่ใน ฟิลด์ ไหน ฟิลด์ที่ไม่ตรง และไม่ได้กำหนด map filed จะไม่โดนนำไปรวมในชั้นข้อมูล Target

Skip and warn if schema does not match ข้อมูล schema ต้องตรงกับชั้นข้อมูล Target หากมีฟิลด์ที่ไม่ตรงกับฟิลด์ใน Target จะไม่นำเข้า และจะแสดงข้อความเตือน

อย่างที่บอกข้างต้น สิ่งที่ต้องระวังอย่างแรก ก่อนจะ append ชั้นข้อมูลก็คือ Attribute Table มีข้อมูลเหมือนกันหรือไม่ เราจะจัดการกับสิ่งที่ไม่เหมือนกันอย่างไร ซึ่งในตัวอย่างนี้ ชั้นข้อมูล zone02 จะมี attribute ไม่เหมือนกับอีก 2 ชั้นข้อมูล ซึ่งตรงนี้ จะมีผลต่อการ append ตาม Field Matching Type ที่เราเลือก

ถ้าเลือก input fields must match target fields

ผลลัพธ์ที่ได้จะเป็น error 000465 zone02 does not match the schema of previous inputs นั่นคือ เกิดความผิดพลาด และจะไม่นำ zone01 ซึ่งไม่มีปัญหาอะไร แต่จะไม่ดำเนินการทั้งหมด

append error
แจ้ง error ว่า zone02 มีปัญหา

ถ้าเลือก Skip and warn if schema does not match

ผลลัพธ์ที่ได้ จะเกิด warning (โปรดสังเกตว่า ถ้าเป็น warning จะเป็นสีเหลือง แต่ถ้าเป็น error จะเป็นสีแดง) warning 003413 zone02 does not match the schema of previous inputs and hence will not be appended

นั่นคือ บอกว่า zone02 มีปัญหา

คำเตือนที่แจ้งว่า ไม่ได้ดำเนินการผนวก zone02 เข้าไป

แต่ว่าผลลัพธ์จะต่างไปจากวิธี input fields must match target fields เพราะ zone01 ซึ่งไม่มีปัญหาอะไร จะนำไป ผนวกรวมเข้าชั้นข้อมูล base

ผลลัพธ์ จะผนวกเฉพาะ zone01 ที่ไม่มีปัญหา

ถ้าเลือก Use the field map to reconcile field differences

ในกรณีที่ attribute ไม่เหมือนกัน หรือ schema ต่างกัน เรามีตัวเลือกที่จะดำเนินการต่อ 2 ทาง

ทางแรก ไปแก้ไข attribute ให้ตรงกัน แล้วดำเนินการใหม่ อันนี้แล้วแต่ว่าจะขยันหรือไม่ เพราะบางทีเราก็ไม่ได้เป็นเจ้าของผู้สร้างชั้นข้อมูลนั้นก็อาจไม่อยากปรับเปลี่ยนอะไร

ทางสอง เลือก Field Matching Type ให้เป็น Use the field map to reconcile field differences แล้วจัดการเรื่อง map field

เมื่อเราเลือก Use the field map to reconcile field differences จะมี Field Map ปรากฏขึ้นมา เพื่อให้เราจัดการข้อมูล

ทางฝั่งซ้ายมือ ฝั่ง Output Fields จะเป็นข้อมูลฝั่ง Target ซึ่งจะเป็นตัวต้น ในตัวอย่างนี้ก็คือ ฟิลด์ที่อยู่ในชั้นข้อมูล base

โปรดสังเกต ในตัวอย่างนี้ มีชั้นข้อมูลที่จะนำมาผนวกเข้าในชั้น base อยู่ 2 ชั้นข้อมูล ท่านจะเห็นว่า มี (2) ต่อท้ายชื่อฟิลด์ นั่นคือ ฟิลด์นั้นจะรับข้อมูลจาก 2 ชั้นข้อมูล

และดูที่ ORG_ID จะเห็นว่า ไม่มีอะไรต่อท้ายชื่อฟิลด์ นั่นคือ ตรงนี้ที่ยังมีปัญหาอยู่ เมื่อคลิกดู จะเห็นว่าในฝั่ง SOURCE มีเฉพาะข้อมูลของ zone01

เราจะนำ LAND_ID ใน zone02 มาผนวกเข้าไป เราก็คลิก Add New Source

จะมีหน้าต่างเล็ก ๆ ขึ้นมา มีแท็บ zone01 กับ zone02 คลิกเลือก zone02 จะมีชื่อฟิลด์ในไฟล์ที่จะผนวกเข้ามา เลือกที่ฟิลด์ที่ต้องการนำไปรวม ซึ่งในที่นี้ก็คือ LAND_ID แล้วกด add selected

ถึงแม้ว่า LAND_ID ใน zone02 จะเป็น ตัวเลข แต่เมื่อโดนผนวกไปอยู่ใน base จะกลายเป็นข้อความ

แต่ในทางกลับกัน ถ้าหากใน zone02 เป็นข้อความ ถ้าโดนผนวกไปอยู่ใน base ที่ฟิลด์เป็นตัวเลข จะไม่นำเข้าเพราะผิดรูปแบบ

ในตัวอย่างนี้ จะไม่ map field กับ Filename เพราะเดี๋ยวจะแสดงให้เห็นว่า ถ้าไม่ map field ผลจะเป็นอย่างไร

เลือกเรียกร้อยแล้วกด run ได้เลย

ผลก็คือ ผนวกข้อมูลสำเร็จ แต่ในฟิลด์ที่ชื่อ Filename ข้อมูลที่มาจาก zone2 ก็จะไม่มี เป็น null

นี่คือการ append โดยทั่วไป

Append แบบมีเงื่อนไข

บางครั้ง เราอาจไม่จำเป็นต้องนำ shapefile ไปผนวกรวมทั้งหมด เราอาจจะคัดกรองคุณลักษณะจาก attribute table ก่อน

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

ในหน้าต่าง Append นอกจากเลือกเหมือนหัวข้อข้างต้นแล้ว

ในหัวข้อ Expression

ช่อง Where ให้เราเลือก UTMMAP4

Is Equal (มีค่าเท่ากับ)

และใส่เลข 11

ส่วนอื่น ๆ ทำเหมือนเดิม

ผลลัพธ์ก็จะมาเฉพาะข้อมูลที่ค่า UTMMAP4 เท่ากับ 11 เท่านั้น

นี่คือวิธี append ชั้นข้อมูลแบบง่าย ๆ

ข้อมูลอ้างอิง เว็บไซต์ ESRI


Discover more from Data Revol

Subscribe to get the latest posts sent to your email.