For Loop

ห่างหายไปนานกับการอัพเดต Blog วันนี้เลยมีโอกาสมาอัพเดตการทิบการใช้งานเล็ก ๆ น้อย ๆ

ถ้าใครเคยใช้งาน gdal แบบ Command line ด้วย OSGeo4W หรือ Fwtool มาบ้างคงคุ้นเคยกับการพิมพ์คำสั่งกันดี เช่น การจะ Convert ข้อมูล Raster โดยใช้ คำสั่ง

gdal_translate -of GTiff input.tif output.tif

ถ้าหากมีหลาย file ใน folder หากต้องการแปลงทีเดียวก็ใช้ For loop วน เช่น

for %i in (*.tif) do gdal_translate -of GTiff %i %~ni_output.tif

แต่ถ้าหากเราต้องการ วนลูปด้วยตัวเลขละ จะทำยังไง เช่น ใน file ข้อมูลภาพ raster ไฟล์นึง มี ข้อมูล อยู่ 100 band เราต้องการแยกออกมาเป็น 1 band 1 file เราจะใช้ For loop ยังไง

วิธีการใช้ For loop ดังนี้ แบบง่ายโดยการระบุช่วง range ให้เลย คือ

for %i in (1 2 3 4 5 6 7 8 9 10) do gdal_translate -of GTiff -b %i input.tif output_%i.tif

หรือ ถ้าหากมีตัวเลขมากเกินไป ใช้สูตรดังนี้

for /L %i in (start,step,end) do something command

เช่น for /L %i in (1,1,10) do gdal_translate -of GTiff -b %i input.tif output_%i.tif

ความหมายคือ ให้เริ่มต้นทำงานที่ค่า 1 ขยับที 1 ไปหยุดเมื่อค่าถึง 10 เวลาสั่ง run จะเห็นเป็น

gdal_translate -of GTiff -b 1 input.tif output_1.tif

gdal_translate -of GTiff -b 2 input.tif output_2.tif

gdal_translate -of GTiff -b 3 input.tif output_3.tif

gdal_translate -of GTiff -b 10 input.tif output_10.tif

ลองเอาไปใช้งานกันดู

Visualization ข้อมูลแผนที่ประเทศไทย

สวัสดีครับ ช่วงนี้สถานการณ์โรคไวรัสโควิดกำลังระบาด

คงจะเห็นแล้วว่าแผนที่เข้ามามีบทบาทในการแสดงผลข้อมูลเพื่อให้เข้าใจสถานการณ์ได้ง่ายมากขึ้น

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

ประมาณนี้แล้วใช้แสดงสัญลักษณ์หรือสีตามสิ่งที่ต้องการแสดง ซึ่งบางครั้งก็น่าเบื่อสำหรับการ Visualization

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

เราจึงได้เห็นแผนที่ประเทศไทยมีรูปร่างจากรูปทรงเรขาคณิตอย่างง่าย เช่น วงกลม สีเหลี่ยม ซึ่งต้องใช้ Software ทางด้าน Graphic เช่น illustrator, หรือการใช้ Tableau ในการ Visualization มาช่วย

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

โดยข้อมูล ใน Attribute จะมี ID ของจังหวัดอยู่ ซึ่งสามารถนำมา Join กับ Attribute แล้วนำมาแสดงผลได้เลย

Download

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

หรือหากใครต้องการดัดแปลงก็นำไปใช้ได้โดยสะดวกครับ

** กำลังทำรูปทรงแบบอื่นอยู่ครับ

***Update 26 มี.ค.2563 ตอนนี้ทำรูปที่เป็น ทั้ง หกเหลี่ยมและวงกลมเพิ่มแล้วนะครับ

Remote Sensing-การแปลตีความข้อมูลภาพดาวเทียมด้วยเครื่องคอมพิวเตอร์

ถ้าใครที่ได้เรียนภูมิศาสตร์, ภูมิสารสนเทศ หรือว่าได้เคยเรียนวิชา Remote Sensing มา

คงจะได้เรียนการแปลตีความข้อมูลภาพดาวเทียมด้วยเครื่องคอมพิวเตอร์อย่างแน่นอน

คือการจำแนกประเภทข้อมูลแบบกำกับดูแล (Supervised Classification) และ

การจำแนกประเภทข้อมูลแบบไม่กำกับดูแล (Unsupervised Classification)

ตอนเรียนผมก็ยังไม่ค่อยเข้าใจที่มา ว่า Supervised Classification และ Unsupervised Classification มายังไง

จนกระทั่งได้มารู้จัก Mechine Learning เมื่อ 2-3 ปีที่ผ่านมา ตอนแรกผมก็คิดว่าผมไม่มีความรู้อะไรที่เกี่ยวกับ Mechine Learning เลย

แต่ผมคิดผิด เพราะผมได้เคยเรียนมาบ้างแล้ว ในหลักสูตร Remote Sensing คือการแปลตีความข้อมูลภาพดาวเทียมด้วยเครื่องคอมพิวเตอร์นั่นเอง

พอย้อนกลับมาดูคำแปล Unsupervised Classification หรือ การจำแนกประเภทข้อมูลแบบไม่กำกับดูแล ผมคิดว่ามันไม่ถูกต้องซะทีเดียว จริงๆ แล้ว

Learning แบบ Unsupervised ไม่สามารถทำ “Classification” ได้ งงไหมครับ แต่จริงๆ แล้ว Unsupervised  สามารถทำอะไรได้ ถ้าตามนิยามของ Mechine Learning

สิ่งที่ Unsupervised ทำได้คือ “Clustering” ต่างหาก ไม่ใช่ “การจำแนก” แต่เป็น “การจัดกลุ่ม”

ดังนั้นเราควรที่พูดว่า การจำแนกข้อมูลภาพดาวเทียมด้วยเครื่องคอมพิวเตอร์ มี 2 แบบคือ

 

การจำแนกประเภทข้อมูลแบบกำกับดูแล (Supervised Classification) และ

การจัดกลุ่มประเภทข้อมูลแบบไม่กำกับดูแล (Unsupervised Clustering)

 

ปล. ถ้าคุยกันใน field ภูมิสารสนเทศเดียวกันก็คงเข้าใจ แต่ไว้เป็นข้อมูลเผื่อไปคุยกับคน field  Mechine Learning

 

Machine Learning-Feature Extraction

ณ ปัจจุบัน เราอยู่ในยุคที่ AI Disrupt ทุกอย่าง ไม่เว้นแม้แต่ในวงการ Geo-informatics

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

เนื่องจากการพัฒนาของ Machine Learning ที่มีความสามารถในการทำ Feature Extraction ได้

วันนี้ผมจะมาแนะนำ website สำหรับ Download ข้อมูล GIS Data

ซึ่งข้อมูลมาจากการใช้  Machine Learning ที่ชื่อ Robosat สำหรับการทำ feature extraction ที่เป็น deep learning แบบ Convolutional neural network.

Extracts ข้อมูลจาก Openstreet map data

จากที่ลองเปิดข้อมูลดูข้อมูลค่อนข้างดี แต่ feature ไม่ครบ เนื่องจาก free แต่มี Update ตลอด ซึ่งน่าจะเอาไปใช้งานเล็กๆ น้อยๆ หรือเอาไว้ edit ต่อได้
http://download.geofabrik.de/

 

การใช้งาน GPS Handheld เชื่อมต่อกับ ArcMap เพื่อทำ Real Time Tracking

สิ่งที่ต้องมี

  1. Notebook ที่ติดตั้ง Software ArcMap Version 10 ขึ้นไป (Version อื่นผมไม่ได้ทดลอง)
  2. GPS Handheld ที่รองรับการเชื่อมต่อกับเครื่องคอมพิวเตอร์ เช่น Garmin 60csx, Garmin GPSMAP 64s  ตัวอย่าง GPS 
  3. สายต่อ USB ระหว่าง Notebook กับ GPS
  4. Software GpsGate     สำหรับ การจำลอง USB Port เป็น COM Port  Download ที่ https://gpsgate.com/download/gpsgate_client

 

เมื่อทุกอย่างพร้อมก็ลุยกันได้เลย

วิธีการ

  • เชื่อมต่อ GPS Handheld กับเครื่อง Notebook
  • ติดตั้ง Software GpsGate เพื่อจำลอง USB Port เป็น COM Port เนื่องจาก Function GPS ใน ArcMap ต้องใช้การเชื่อมต่อกับ COM Port ซึ่งปัจจุบัน Notebook ส่วนใหญ่ตัดออกไปหมดแล้ว
  • Double Click ที่ Software GpsGate ที่ Download มา จะขึ้นหน้าจอ Search อุปกรณ์ GPS ดังรูป  > Next
  • Select Output > Next
  • Summary > Finish

 

เมื่อถึงขั้นตอนนี้ก็พร้อมทำงานแล้ว ต่อมาเปิด Software ArcMap

    • Click ขวา ที่พื้นที่ว่างๆ แถว Menu Bar เลือก GPS

    • หน้าต่าง GPS จะแสดงขึ้นมา
    • Click > GPS > GPS Connection Setup
      • ทำการ Setup GPS Connection > Click Detect GPS Port
      • เจอ GPS ต่อที่ COM2 > Click OK 
      • Click ที่ Open Connection
      • ถ้าเชื่อมต่อสำเร็จจะได้ดังรูป
      • ถ้าต้องการปรับเปลี่ยนการแสดงผลของ GPS > Display Option
      • สามารถปรับเปลี่ยนรูปแบบการแสดงผลของ GPS ได้
        • Icon ตำแหน่ง GPS
        • หน่วย
        • หางของตำแหน่ง GPS
        • การ Snapping กับ Shapefile เช่น เส้นถนน
        • สี
  • ลองปรับเปลี่ยนกันได้ครับ  เมื่อเรียบร้อยจะได้ดังรูป ก็พร้อมทำงานกันได้เลยครับ

Infographic – ความถูกต้องเชิงตำแหน่งของชั้นข้อมูลภาพดาวเทียมดัดแก้

ในการทำงานด้านแผนที่นั้น ด้วยมาตราส่วนขนาดใดก็แล้วแต่ นอกจากรายละเอียดจุดภาพข้อมูลภาพดาวเทียมที่ใช้แล้ว ยังมีคุณภาพของข้อมูลมาเกี่ยวข้องด้วย ซึ่งในชุดข้อมูลภูมิศาสตร์พื้นฐานของประเทศไทย หรือเรียกย่อๆ ว่า FGDS ได้กำหนดคุณภาพของข้อมูลภาพดาวเทียมดัดแก้ ในส่วนของความถูกต้องเชิงตำแหน่งด้วยการอ้างอิงตามมาตราฐาน ASPRS

ตัวอย่าง   ภาพดาวเทียมที่มีระยะบนพื้นดิน (GSD) 50 เซนติเมตร ความถูกต้องเชิงตำแหน่งของข้อมูลภาพดาวเทียมดัดแก้ไม่เกิน 1 เมตร หรือกล่าวได้ว่าเมื่อตรวจสอบข้อมูลภาพดาวเทียมที่ดัดแก้แล้วกับจุดตรวจสอบบริเวณเดียวกัน ต้องคลาดเคลื่อนไม่เกิน 1 เมตร ที่ระดับความเชื่อมั่น 68%

การแปลง Projection UTM Datum WGS-84 เป็น UTM Datum Indian1975 ด้วย Software Global Mapper

ก่อนหน้านี้ผมเคยเขียนถึงเรื่องการแปลงพิกัด จาก UTM WGS-84 เป็น UTM Indian1975 ด้วย Software ArcGIS มาแล้ว และเขียนถึงข้อจำกัดในการแปลงพิกัดด้วย ArcGIS ที่ไม่รองรับการแปลงด้วยการใส่ค่าพารามิเตอร์ x,y,z (หมายเหตุ: แก้ไขความผิดพลาดนะครับ ใน Software ArcGIS สามารถสร้าง Custom Geographic Transformation เองได้ ดังนั้นสามารถแปลงค่าพิกัดจากพื้นหลักฐาน WGS84 เป็น Indian 1975 โดยใช้พรารามิเตอร์ที่ประกาศจากกรมแผนที่ทหารได้) หากใครต้องการอ่านรายละเอียดให้ย้อนกลับไปที่บทความก่อนหน้านี้

วันนี้เลยจะมาเขียนวิธีการในการแปลงระบบพิกัด WGS84 เป็น Indian1975 ด้วย Software Global Mapper ซึ่งสามารถกำหนดค่าพารามิเตอร์ในการแปลงได้ทั้งแบบ 3 พารามิเตอร์, 7 พารามิเตอร์

วิธีการคือเปิดภาพด้วย Software Global Mapper จากนั้นเราจะทำการ Export ให้เป็นระบบพิกัดที่เราต้องการ สมมติว่าภาพที่เรามีเป็น WGS84 และต้องการแปลงไปเป็น Indian1975

ให้เราไป set เครื่องมือ configure ในรูป  

แล้ว click เลือก Projection

จากนั้นเราต้องกำหนดค่าพารามิเตอร์ให้กับระบบพิกัดที่เราต้องทำการแปลง โดย Click ที่ Add Datum ใส่ค่า

ส่วนค่าพารามิเตอร์ต่างๆ เอามาจากชุดข้อมูลภูมิศาสตร์พื้นฐาน FGDS ของประเทศไทย

จากนั้นจึงทำการ Export ภาพปรกติ

File > Export >Export Raster/Image Format

ผลลัพธ์จะได้ภาพที่มีระบบพิกัด UTM Datum Indian1975 ตามต้องการ

การ digitize ข้อมูล Polygon ที่เป็นสี่เหลี่ยม และ วงกลม

ในการใช้งาน Software GIS เช่น ArcGIS ในการนำเข้าข้อมูลเชิงพื้นที่บางครั้งก็เลี่ยงไม่ได้

ในการต้อง digitize ข้อมูลที่เป็นรูปแปลงที่มีขนาดแน่นอน เช่น ขนาด กว้างxยาว   40X40 เมตร เป็นต้น

ซึ่งปรกติแล้ว เรามักจะ digitize โดยใช้การประมาณค่าให้ได้ใกล้เคียง 40 เมตร ทั้งความกว้าง และความยาว

แต่จริงๆแล้ว Software ArcGIS สามารถ ระบุค่าของความกว้างและความยาวได้

วิธีการคือในระหว่างที่ Digitize จะเลือกเครื่องมือ Rectangle

เราสามารถระุความกว้างและความยาวของ Polygon ที่เราจะ Digitize ได้ โดยการ กด ปุ่ม W จะขึ้นกล่องข้อความมาให้ใส่ตัวเลขสำหรับความกว้าง และ กดปุ่ม L สำหรับระบุความยาว

สำหรับข้อมูลที่เป็นพื้นที่วงกลมเราสามารถระบุรัศมีได้เช่นกัน ลองทายดูสิครับใช้ปุ่มอะไร?

ถูกต้องนะครับ   ปุ่ม R หรือว่า Radius นั่นเอง

เป็นยังไงบ้างครับสำหรับ Tip เล็ก ๆ น้อย ๆ ที่นำมาฝากกัน

หวังว่าคงจะทำให้การทำงาน Digitize ของใครหลาย ๆ คน สะดวก และถูกต้องมากยิ่งขึ้นนะครับ

 

 

ธุรกิจที่เกี่ยวข้องกับการเงิน เช่นธนาคาร ประกันภัย เงินกู้ ต่างๆ ถ้าอยากประสบความสำเร็จต้องใช้ 3 นักวางกลยุทธ์

ใช้ 3 นัก เพื่อวางกลยุทธ์ของธุรกิจ
.
.
นักคณิตศาสตร์ประกันภัย (Actuary) วิเคราะห์ คาดการณ์ ปัจจัยเสี่ยงต่างๆ สร้างโมเดลคำนวณ ผลตอบแทน เพื่อให้ธุรกิจมีกำไรมากที่สุด
.
.
นักวิทยาศาสตร์ข้อมูล (Data-Scienctist) วิเคราะห์ข้อมูลขนาดใหญ่ ค้นหาความสัมพันธ์ต่างๆ ของปัจจัยต่างๆ ที่เกี่ยวข้อง หาเงื่อนไข ต่างๆ เพื่อนำมาใช้ในการวางแผน
.
.
นักภูมิสารสนเทศ (Geo-informatic Scienctist) วิเคราะห์พื้นที่ เอาปัจจัยต่างๆ ที่หาได้มาหาความสัมพันธ์กันเชิงพื้นที่ แสดงเป็นแผนที่ ลูกค้ากระจุกตัวอยู่ตรงไหน กำลังซื้อแต่ละพื้นที่ หาทำเลเปิดร้าน แม้ว่าปัจจบัน online จะมีควาสำคัญแต่ยังไงทำเลก็สำคัญอยู่ดี ธุรกิจบางประเภทต้องพึ่งทำเล และยิ่งลดการเปิด office หน้าร้าน มากเท่าไหร่ การวิเคราะห์ทำเลที่ตั้งยิ่งต้อง Focus ทำเลที่โดนจริง
.
.
โลกสมัยใหม่ขับเคลื่อนกันด้วยข้อมูล ใครมีข้อมูลมาก ข้อมูลดี คนนั้นสามารถนำมาใช้ประโยชน์ได้มากกว่า
.
.
เขียนไว้ตั้งแต่ปี 2017

การสร้างภาพจำลอง 3 มิติ จาก UAV ด้วย Opensource WebGL “Potree”

สวัสดีครับ หลังจากห่างหายในการเขียนบทความลง Blog ไปพอสมควร

วันนี้ผมจะมาเล่าวิธีการสร้างภาพจำลอง 3 มิติ จาก UAV ด้วย Opensource WebGL แล้วนำมาเผยแพร่ทางอินเตอร์เน็ตกันนะครับ

 

เนื่องด้วยผมได้ไปออกภาคสนามโครงการนึงซึ่งต้องใช้ UAV บินสำรวจ

แล้วต้องนำข้อมูลที่ได้มาจัดเป็นผลิตภัณฑ์ ทั้งข้อมูลภาพ ข้อมูลความสูงภูมิประเทศ ข้อมูล 3 มิติ ข้อมูลอื่นๆ ที่สามารถนำมาใช้ได้

ก่อนหน้านี้ผมเคยพอจะรู้เกี่ยวกับการสร้างแบบจำลอง 3 มิติ จาก Photogrammetry ด้วยภาพจากการถ่ายหลายๆ มุมมาบ้าง

แต่ยังไม่มีโอกาสได้ลองทำ ครั้งนี้เมื่อข้อมูลพร้อม เลยได้โอกาสลงมือทำ

 

เล่าให้ฟังสำหรับคนที่รู้จัก UAV มาบ้างเล็กน้อย ส่วนผู้ชำนาญการก็ข้ามไป เวลาที่เราใช้ UAV ถ่ายภาพเพื่อนำมาทำเป็นแผนที่

เราต้องมีถ่ายให้ภาพมีบริเวณซ้อนทับซึ่งก็ขึ้นอยู่กับรายละเอียดงานต้องการซ้อนทับกันกี่ % ซึ่งถ้าซ้อนทับกันน้อยไปเวลานำมาภาพมาต่อกันเป็นผืนใหญ่ก็ยาก

เพราะ Software จะไม่สามารถ Matching จุดระหว่างภาพได้ แต่ถ้าซ้อนทับกันมาก อาจจะต้องเปลืองเวลาและงบประมาณในการบินถ่าย

เมื่อไปบินถ่ายและได้ภาพมาแล้ว ก็นำมาภาพมาเข้าสู่ Software เพื่อจะต่อภาพให้กลายเป็นผืนใหญ่ ซึ่ง Software ที่หน่วยงานใช้งานคือ PIX4D

 

ความสามารถของ PIX4D คือการสร้าง Point Cloud จากภาพหลายๆ มุมมองได้ ด้วยหลักการทาง Photogrammetry เราก็ได้ file ออกมา file นึง ที่เป็นนามสกุล .las

ที่นี้ผมก็มานั่งหาข้อมูลว่า ถ้าผมต้องการเอาข้อมูล Point Cloud นี้มาแสดงผลทางเว๊บไซต์ต้องทำอย่างไร

หาข้อมูลจนมาเจอ คนทำ Opensource เพื่อแปลงข้อมูล Point Cloud เพื่อให้แสดงผลทางเว๊บ ได้ ชื่อ Potree ลองเอาไป search ใน google ได้วิธีการไม่ยาก

ซึ่งผมทำออกมาแล้วก็ค่อนข้างน่าพอใจ สำหรับครั้งแรก ลองดูได้ที่ Web นี้  https://terminal.gistda.or.th/vap-3d/hubkapong.html

จากข้อมูลที่ทำจะเห็นว่ามีบริเวณที่ไม่มีข้อมูล นั้นคือมีสาเหตุมาจากภาพส่วนที่ซ้อนกันไม่สามารถ Matching จุดกันได้

ซึ่งอาจจะมาจากถ่ายคนคนละมุม โดนบังด้วยความสูงของวัตถุ หรือ ภาพมีความเหมือนกัน เช่นบริเวณพื้นน้ำ

วิธีการคืออาจจะต้องบินซ่อมในส่วนที่ไม่มีข้อมูลหรือใช้วิธีการอื่นในการได้มาซึ่งข้อมูล

ลองเอาไปทดลองทำดูครับ หากมีข้อมูลสงสัยตรงไหนก็สอบถามมาได้