วันศุกร์ที่ 10 เมษายน พ.ศ. 2558

เริ่มต้นการใช้เครื่องมือ Raster Calculator ด้วยโปรแกรม QGIS

_______วันนี้มาทำการทดสอบการใช้เครื่องมือ Raster Calculator ใน QGIS ดูว่าจะใช้ง่ายหรือผมลัพธ์จะออกมาเป็นแบบไหน โดยผมได้เตรียมข้อมูลอยู่ 2 ข้อมูลคือ DEM (Digital Elevation Model) ของ SRTM DEM 90 เมตร และข้อมูลเส้นลำน้ำที่ผ่านการแปลงให้อยู่ในรูปแบบ Raster (Rasterize) แล้วโดยให้มีค่าข้อมูลเท่ากับ 5 ดังภาพด้านล่าง
   
              (SRTM DEM 90 Meter)                         (Stream raster data)



1. ไปที่เมนู Raster > Raster Calculator จากนั้นทำการเอา SRTM DEM - Stream ดังภาพด้านล่าง



2. ผลลัพธ์ที่ได้




วันอังคารที่ 7 เมษายน พ.ศ. 2558

การใช้เครื่องมือ Actions ร่วมกับ Google Maps ด้วยโปรแกรม QGIS

_______เครื่องมือ Actions ในโปรแกรม QGIS ถือเป็นอีกเครื่องมือนึงที่น่าสนใจและใช้ประโยชน์ได้มากพอสมควรเลยที่เดียว การทำงานของเครื่องมือนี้จะมีลักษณะคล้ายกับการทำ Hyper Link ในส่วนที่ผมยกตัวอย่างมานี้จะเป็นการใช้ข้อมูลขอบเขตตำบล เมื่อเราคลิกไปยังพื้นที่ใดๆในเขตตำบลที่เราต้องการ โปรแกรมก็จะทำการเปิดเว็บเบราว์เซอร์ไปยังหน้าของ Google Maps แล้วแสดงขอบเขตพื้นที่ของตำบลที่เราคลิกได้เลย และท่านสามารถเอาไปประยุกต์ใช้กับงานของตนเองได้ครับ

1. แสดงข้อมูลในเขตจังหวัดพิษณุโลก และใช้ Field ที่ชื่อว่า TAM_NAME


2. ไปที่เมนู Actions ใน Properties ของข้อมูลขอบเขตตำบล แล้วทำการตั้งค่าดังภาพ


3. จากนั้นเราจะได้เครื่องมือที่สร้างขึ้งเองดังภาพ


4. ตัวอย่างคลิกที่ ตำบลนครไทย จะเห็นว่ามีการเปิด Google Maps และแสดงพื้นที่ตำบลนครไทยดังภาพ



วันพุธที่ 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 ช่วยในการคำนวณฟิลด์ ดังภาพครับ