ค้นหาข้อมูลในบล็อก (Search in this blog)

Sunday, July 18, 2010

shp2pgsql กับปัญหาของ Data type

เมื่ออาทิตย์ที่ผ่านมาได้มีโอกาสไปสอนน้องๆที่ มหาวิยาลัยนเรศวร พะเยา ใช้งานโปรแกรม PostgreSQL/PostGIS ซึ่งเป็นส่วนหนึ่งสำหรับสร้างการ Web Map Service ด้วย FOSS.
ปัญหาที่พบคือเมื่อใช้ shp2pgsql แล้วไม่สามารถนำไฟล์ SQL ไปสร้างฐานข้อมูลได้ โดยในขั้นตอนการแปลงจาก Shapefile ให้เป็น SQL ไฟล์ก็ไม่มีปัญหาอะไร แต่ที่น่าสังเกตคือ ผมลองใช้ SPIT ใน QGIS ก็ไม่สามารถทำงานได้เช่นกัน ทำให้ต้องมาลองดูวิธีที่พื้นฐานสุดๆอย่างการใช้เจ้า shp2pgsql
ข้อสังเกตที่พบคือ "Data type ใน SQL ไฟล์ไม่สอดคล้องกับข้อมูล" กล่าวคือ ข้อมูลอรรถาธิบาย หรือ Attribute ของ Shapefile นั้นมีความยาวมากกว่าที่เจ้า shp2pgsql กำหนดให้ซึ่งเมื่อดูใน SQL ไฟล์พบว่าเจ้า shp2pgsql กำหนดให้เป็น varchar (50) และเมื่อผมเปลี่ยนให้เป็น varchar (255) แล้วก็สามารถทำงานได้ตามปกติครับ (แต่ผมก็ยัง งง งง ว่าทำไมตอนผมทดลองกับเครื่องของผมเองก่อนการเรียนการสอนนั้นไม่เจอปัญหานี้ ทั้งๆที่การใช้คำสั่งสำหรับ shp2pgsql ก็เหมือนกันทุกอย่าง)

Wednesday, July 14, 2010

ทดสอบ GDAL Python Bindings

หลังจากติดตั้ง GDAL-x.x.x.win32-pyx.x.exe และ Extract GDAL package ไว้ที่ C:\ แล้วให้ทำการกำหนด path และ gdal_data ใน user env ดังนี้

PATH=C:\gdalwin32-1.6\bin
GDAL_DATA=C:\gdalwin32-1.6\data

ทดสอบการใช้งาน
>>> from osgeo import gdal
>>> from osgeo import ogr
>>> from osgeo import osr
>>> from osgeo import gdal_array
>>> from osgeo import gdalconst
หรือ
>>> from osgeo import gdal,ogr,gdal_array, gdalconst

หากพบปัญหาอื่นๆ สามารถดูเพิ่มเติมได้ที่ http://trac.osgeo.org/gdal/ticket/2688

Thursday, July 1, 2010

การสร้างภาพสีผสม (Color composition) ด้วย GDAL (ของฟรีและดีก็มีในโลก)

วันนี้ขอเสนอวิธีการสร้างภาพสีผสม (Color composition) ด้วยคลังโปรแกรม GDAL โดยข้อมูลที่ใช้ผมได้ทดลองนั้นมีรูปแบบข้อมูลคือ GeoTiff นะครับ (.tif) การทำงานนั้นแบ่งออกเป็น 2 ส่วนคือการสร้าง VRT ไฟล์และการแปลง VRT ให้เป็นไฟล์ภาพ

ตัวอย่างการทำงานมีดังนี้ครับ
1. การสร้าง VRT ไฟล์ด้วย gdalbuildvrt
>>gdalbuildvrt -separate 123.vrt band1.tif band2.tif band3.tif

2. การแปลง VRT ให้เป็นไฟล์ภาพ
>>gdal_translate -of GTiff b1b2b3.vrt b1b2b3.tif

ปล. สำหรับข้อมูลแบบ TIFF นั้น ช่วงคลื่นแรกที่ระบุจะเรียงตามแม่สีคือ แดง เขียว น้ำเงิน ตามลำดับ