Shapefile

Shapefile หรือ ESRI Shapefile เป็นไฟล์มาตรฐานรูปแบบหนึ่งของเทคโนโลยี GIS ซึ่งโดยความหมายแล้วไม่ได้หมายถึงไฟล์นามสกุล shp เท่านั้น จะเห็นว่าเวลาเซฟไฟล์จะได้ไฟล์ชื่อเดียวกันหลายนามสกุล ก็เลยจะอธิบายเพิ่มเติมว่าแต่ละตัวที่เก็บไว้นั้นใช้ทำอะไร

หมายเหตุ ทาง ESRI ทำ White Paper เอาไว้ อ่านรายละเอียดได้ที่เว็บของ ESRI

Shapefile

เรียกว่าตัวสำคัญเพราะถ้าขาดตัวใดตัวหนึ่งไปจะใช้งานไม่ได้ คือ

  • main file (.shp)
  • dBase File (.dbf)
  • index file (.shx)

ถ้าขาดตัวใดตัวหนึ่งใน 3 ไฟล์นี้จะไม่สามารถใช้งาน shapefile นั้นได้ ทั้งสามไฟล์นี้จะต้องมีชื่อเดียวกัน และจะต้องเก็บไว้ในที่เดียวกัน

สำหรับชื่อไฟล์นั้นแต่เดิมจะให้ชื่อไฟล์เพียง 8 อักขระ ซึ่งเป็นไปตามฟอร์แมตของ dos 8.3 ซึ่งปัจจุบันนี้ไม่ได้ยึดติดกับ 8 อักขระอีกต่อไปแล้วเพราะซอฟต์แวร์ใหม่ ๆ พัฒนาก้าวหน้ากว่าเดิมมาก

แต่คนรุ่นเก่า ๆ จะเข้าใจดีเวลาแปลงไฟล์ไปแล้วชื่อไฟล์เหลือแค่ 8 อักขระมาไม่ครบจะรู้สึกหงุดหงิด แต่ปัจจุบันก้าวหน้าไปมากแล้วไม่ค่อยเจอปัญหานี้ แต่ถ้าหากจะเอา “ปลอดภัยไว้ก่อน” ก็อย่าลืมตั้งไว้ไม่เกิน 8 อักขระ

ไฟล์หลัก

.shp ตัวหลัก เก็บข้อมูล geometry หรือ เว็กเตอร์ จำพวกจุด เส้น พื้นที่ จัดเก็บในรูปแบบตาราง เช่นถ้าเป็นข้อมูล Point จะเป็นข้อมูล X,Y เป็นต้น รายละเอียดมีอีกมากมายศึกษาได้จาก whitepaper ของ ESRI ได้โดยตรง

.dbf ตัวนี้คนทำงานด้านข้อมูลจะรู้จักกันดี dBASE table หรือตารางข้อมูลต่าง ๆ ที่ได้บันทึกไว้เมื่อสร้าง .shp หรือที่เรียกว่า Attribute Table ดังนั้น ถ้าต้องการใช้แต่ข้อมูล Attribute Table เปิด .dbf มาใช้ได้เลย MS Office กลับมาสนับสนุนไฟล์ dBASE อีกครั้งแล้ว ใน OFFice 365 หลังจากเลิกสนับสนุนไปหลายปี Excel เปิดได้แต่เซฟไม่ได้

.shx ตัวนี้เป็นอินเด็กซ์ไฟล์ เป็นสารบัญหรือดัชนี หรือตัวเชื่อมข้อมูลระหว่าง .shp กับ .dbf

สามตัวนี้คือไฟล์สำคัญ จำเป็นต้องมีสำหรับทำงานกับ ArcGIS ตัวอื่นที่อาจจะไม่สำคัญเท่าสามตัวแรก ไม่จำเป็นต้องมีก็ได้ แต่ถ้าขาดไฟล์ใดไฟล์หนึ่งในสามไฟล์นี้มีปัญหาแน่นอน

ไฟล์อื่นใน shapefile

นอกจากสามไฟล์ข้างต้นแล้ว ยังมีไฟล์อื่นที่ใช้งานร่วมอีก โดยแต่ละไฟล์จะใช้ชื่อเดียวกัน ซึ่งมีไฟล์ที่ปรากฎใน ESRI ดังนี้

.cpg ตัวนี้ไม่จำเป็นนักไม่มีก็ได้ แต่สำหรับคนไทยน่าจะจำเป็นเพราะเป็นตัวเก็บว่า character set ที่ใช้ ซึ่งเรามักจะมีปัญหาเพราะใช้ utf-8 บ้าง tis-620 บ้าง ถ้ามีตัวนี้กำกับอยู่จะเห็นว่าเก็บค่าอย่างไรไว้ ปกติถ้าไม่มีการตั้งค่าอะไรไว้เป็นพิเศษ สำหรับเครื่องวินโดว์ทั่วไปจะได้เป็น OEM 874 โดยอัตโนมัติ (คือ Windows 874 นั่นแหละ แต่เป็นระบุว่า ระบบ หรือ system ยกเว้นจะมีการตั้งค่าวินโดว์เป็น encoding อื่น) ถ้าไม่มีไฟล์นี้อยู่ ArcGIS จะใช้ encoding แบบที่ระบบใช้อยู่ ซึ่งถ้าตรงกับต้นทางก็จะอ่านภาษาไทยได้ แต่ถ้าต้นทางกำหนด encoding มาอีกแบบก็จะกลายเป็นตัวอักขระอ่านไม่ออกไปแทน

Shapefile - cpg

ใครที่ใช้ QGIS แล้วมีปัญหาเรื่องอ่านภาษาไทยไม่ได้ ใช้วิธีนี้แก้ปัญหาก็ได้อยู่ สร้างไฟล์ที่มีนามสกุล .cpg ขึ้นมา (ใช้ notepad สร้างแล้วแปลงนามสกุลภายหลังก็ได้) แล้วพิมพ์ว่า OEM 874 บันทึกไฟล์ให้ตรงกับชื่อไฟล์ .shp ทุกประการ เพียงเท่านี้เครื่องที่ใช้วินโดวส์ปกติไม่ดัดแปลงปรุงแต่งอะไรมากนัก ก็น่าจะอ่าน attribute ภาษาไทยได้แล้ว (หรืออจะเปลี่ยนเป็น Tis-620 หรืออะไรก็ได้ตามความต้องการ)

.xml ตัวนี้เก็บ Metadata ของเชฟไฟล์ที่ใช้ใน ArcGIS ถ้าไม่อยากใช้ก็ทิ้งได้ แต่เก็บไว้ก็ไม่เสียหาย

Shapefile - xml

.prj เก็บข้อมูลเกี่ยวกับ cordinate system ที่ใช้สำหรับเชฟไฟล์นั้น ถ้าไม่มีไฟล์นี้ก็ไม่เป็นไร ArcGIS จะขึ้นเตือนตอนนำเชฟไฟล์เข้าว่า unknown coordinate system ซึ่งแก้ปัญหาง่ายมาก แค่ ใช้ define projection สร้างขึ้นมาใหม่

Shapefile prj
ข้อมูลในไฟล์ prj

.sbn กับ .sbx ตัวนี้ทำงานเสริม .shx คือทำหน้าที่เป็นดัชนีเก็บข้อมูล spatial features แต่เป็นดัชนีที่ผ่าน Query มาแล้วซึ่งจะช่วยให้โหลดข้อมูลได้เร็วขึ้น

ไฟล์ที่ไม่ค่อยได้ใช้

ตัวอื่นก็ไม่ค่อยได้เห็นใช้งานกัน แต่ก็ยังมีประปราย

.fbn กับ .fbx คล้ายสองตัวข้างบน แต่เป็นสำหรับ Read Only

.ain กับ .aih ตัวนี้เก็บ attribute index

.atx ตัวนี้เป็นอินเด็กซ์อีกประเภทหนึ่งที่ ArcCatalog สร้างขึ้น

.ixs เก็บข้อมูล Geocoding index ของเชฟไฟล์

.mxs เก็บ Geocoding index ของเชฟไฟล์ในรูป ODB

ไฟล์เหล่านี้ คือไฟล์ที่จะต้องนำมาใช้งาน ArcGIS ที่ต้องรู้จักและทำความเข้าใจกันไว้

แนะนำให้อ่านเรื่อง GeoPackage VS Shapefile เพิ่ม


บล็อก

ใน

%d bloggers like this: