วันพุธที่ 25 มีนาคม พ.ศ. 2558

การคำนวณเนื้อที่ไร่ งาน และตารางวา จากข้อมูล Shapefile ในโปรแกรม QGIS

_______หลายๆท่านคงเคยลองคำนวณเนื้อที่เป็น ตารางเมตร ตารางกิโลเมตร หรือไร่ แต่เราจะทำอย่างไรดีที่จะทำการคำนวณเนื่อที่แบบ ไร่ งาน และวา ให้ออกมาคนละฟิลด์เลย วิธีการทำนั้นไม่ใช่เรื่องยากเลยครับ โดยเราใช้ฟังก์ชั่นที่อยู่ในเครื่องมือ Field Calculator ที่ชื่อว่า "floor" หรือ การปัดตัวเลขลงในส่วนของฟิลด์ไร่ กับ งาน เพื่อที่จะเอาค่าของทศนิยมที่เหลือนั้นมาทำการคำนวนต่อในส่วนของฟิลด์ งาน และตารางวา ครับ
1600 ตร.ม = 1 ไร่
1 ไร่ = 4 งาน
1 งาน = 100 ตารางวา

สามารถเข้าไปดูได้ที่ URL ด้านล่างนี้
https://gist.github.com/chingchai/2ebde82a5544e70f678f5a8f4e703caf



การคำนวณเนื่อที่ไร่


การคำนวณเนื่อที่งาน


การคำนวณเนื่อที่ตารางวา

ผลที่ได้



ศึกษาเพิ่มเติมได้ที่: http://docs.qgis.org/2.0/en/docs/user_manual/working_with_vector/field_calculator.html

วันอาทิตย์ที่ 15 มีนาคม พ.ศ. 2558

การ Capture ข้อมูลภาพจาก Google Map มีค่าพิกัดติดมาด้วย โดยใช้โปรแกรม Quantum GIS

_______การ Capture ข้อมูลภาพจาก google earth หรือ google maps นั้นสามารถทำได้หลากหลายวิธีมากเลยครับ แต่บางวิธีมันก็ยากและจะต้องนำภาพที่ capture มาต่อ(mosaic) ก่อนจึงจะนำมาตรึงค่าพิกัด (georeferencer) ซึ่งหลายท่านน่าจะคิดออกน่ะครับว่า ยกตัวอย่างเช่น เราจะ save ภาพจาก google earth มาจะเป็นแค่ภาพธรรมดามันไม่มีค่าพิกัดและทำให้เราต้องเสียเวลาเป็นอันมากในการทำตรึงค่าพิกัด (georeferencer) และวันนี้ผมมีวิธีการที่ง่ายๆ โดยใช้เจ้า QGIS นี่แหละครับ ซึ่งเรา save ภาพก็จะมีค่าพิกัดติดมาด้วยทันทีครับ จึงทำให้ไม่ต้องเสียเวลามาตรึงค่าพิกัดครับ โดยมีวิธีการดังนี้

1. เปิดโปรแกรม QGIS แล้วไปที่เมนู Setting >> Project Properties... แล้วทำการเลือก Projection เป็น Google Mercator (EPSG:900913)

2. จากนั้นให้เราใช้ Plugin "Openlayers Plugin" (ถ้าใครที่ยังไม่ได้ติดตั้ง Plugin ก็ให้ทำการติดตั้งด้วยน่ะครับ)

3. ถ้าท่านใดที่มี Block ในพื้นของตนเองอยู่แล้วก็ให้เอามาซ้อนทันได้เลยครับ เพื่อที่จะได้ Capture ได้ตรงตามที่ต้องการครับ

4. จากนั้นก็จะเริ่ม Capture ข้อมูลภาพ โดยไปที่เมนู File >> Save as Image... (สามารถเลือกประเภทของไฟล์ภาพหลายนามสกุลครับ ซึ่งผมเลือกเป็นแบบ *.tif)

5. ทำดั้งข้อที่ 4 และเลื่อนพื้นที่ให้ครบตามพื้นที่ที่ต้องการ ดังภาพ

6. ภาพทั้งหมดที่ Capture โดยเปิดขึ้นมาครับดังภาพครับ

7.ถ้าท่านไหนที่ต้องการจะ mosaic image หรือจะ Warp Projection ให้เป็น Projection ที่ต้องการก็แนะนำให้ใช้ GDAL เลยครับ โดยเรียกใช้จาก lib ของ QGIS ก็ได้ หรือจะใช้ FWTools ก็ดีครับ

Download Data Example (Powered by Google Drive)

วันอาทิตย์ที่ 1 มีนาคม พ.ศ. 2558

การใช้ SQL CASE...WHEN สำหรับการคำนวณฟิลด์ (Field Calculator) ใน QGIS

_______CASE...WHEN...THEN เป็นคำสั่งสำหรับการกำหนดเงื่อนไขการแสดงฟิลด์ เพื่อช่วยลดความซับซ้อนในการคำนวณฟิลด์ใน QGIS ผมว่าหลายคนคงเคยเจอปัญหานี้แบบเดียวกับผม ยกตัวอย่างเช่น ในข้อมูล Shape file ขอบเขตจังหวัด เรามีฟิลด์นึงที่เป็นรหัสจังหวัด (PROV_CODE) แต่ทีนี้เราจะทำการคำนวณโดยการสร้างฟิลด์ใหม่ขึ้นมา และสร้างฟิลด์ชื่อจังหวัด (PROV_NAME) และเราจะใช้ CASE...WHEN ช่วยในการคำนวณฟิลด์ ดังภาพครับ





วันอังคารที่ 3 กุมภาพันธ์ พ.ศ. 2558

การนำเข้าข้อมูล Shape Files สู่ฐานข้อมูล PostgreSQL/PostGIS โดยใช้เครื่องมือ shp2pgsql

1. เข้าไปที่โฟลเดอร์ bin ==> CD C:\Program Files\PostgreSQL\9.4\bin



2. ทดสอบเครื่องมือ shp2pgsql โดยพิมพ์ shp2pgsql.exe ลงไป แล้ว Enter


3. นำเข้าข้อมูล Shapfile เข้าไปดังภาพ
shp2pgsql -I -s 32647 -W "TIS-620" province.shp public.province| psql -h myserver -d mydb -U myuser

4. นำเข้าสำเร็จ


5. ผลที่ได้




วันพฤหัสบดีที่ 8 มกราคม พ.ศ. 2558

วิธีปรับขนาดพื้นที่ Hard Disk ของ VirtualBox ให้มีขนาดพื้นที่ใหญ่ขึ้น

_______เป็นอีกหนึ่งวิธีที่ผมต้องทำการจดบันทึกไว้ ไม่งั้นเดี๋ยวลืมซึ่งมันเป็นประโยชน์มากสำหรับคนที่ต้องการที่จะขยายพื้นที่ Hard Disk ใน VirtualBox ของตนเองให้เพิ่มมากขึ้น

1. เริ่มจากเปิด Command prompt (cmd) ขึ้นมาแล้วเข้าไปที่ path "C:\Program Files\Oracle\VirtualBox"

2. จากนั้นใช้คำสั่ง VBoxManage.exe clonehd เพื่อใช้ในการแปลงไฟล์จาก *.vmdk ไปเป็น *.vdi ตัวอย่างด้านล่าง

VBoxManage.exe clonehd "osgeo-live-8.0.vmdk" "new-osgeo-live-8.0.vdi" --format vdi

3. ทำการใช้คำสั่ง VBoxManage.exe modifyhd เพื่อเพิ่มขนาดพื้นที่ให้กับ HDD โดยระบุขนาดเป็น MB

VBoxManage.exe modifyhd "new-osgeo-live-8.0.vdi" --resize 52000

4. เมื่อได้แล้วก็ทำการแปลงไฟล์จาก *.vdi ไปเป็น *.vmdk เหมือนเดิมครับ โดยไฟล์ใหม่ที่เราจะได้แนะนำให้สร้างโฟลเดอร์ (newdrive) ใหม่รองรับเลยครับ

VBoxManage.exe clonehd "new-osgeo-live-8.0.vdi" "/newdrive/new-osgeo-live-8.0.vmdk" --format vmdk

5. สามารถดูขั้นตอนการทำทั้งหมดจากภาพนี้ได้เลยครับ


6. จากนั้นไปที่โปแกรม VirtualBox ก็ทำการ remove ไฟล์ osgeo-live-8.0.vmdk ตัวเก่าทิ้งไป ดังภาพ


7. แล้วทำการเพิ่ม osgeo-live-8.0.vmdk ตัวใหม่ที่เราได้ทำการ resize แล้วแทนที่อันเก่า


8. จากนั้นก็เข้าไปที่ Lubuntu แล้วทำการติดตั้ง  GParted และทำการขยายพื้นที่ให้กับ HDD อีกครั้ง โดยทำตามจาก Youtube ด้านล้างนี้เลยครับ


9. อีกวิธีหนึ่งครับ สามารถดูจาก Youtube ได้เลยเช่นกันครับ