ค้นหา

Excellent Map

GIS, GPS, Maps, and GeoDataScience

ผู้เขียน

pkgis

GeoData Science Lib(Python)

Python เป็นภาษาที่กลายเป็น tools สำคัญในงานด้าน Data Science ไปแล้วในปัจจุบัน ดูได้จากการเติบโตของ คอมมูนิตี้ และจำนวน user ที่ก้าวกระโดดในสองปีที่ผ่านมา

ผมเองใช้ Python ในงานด้าน Spatial analysis มาก่อนแล้ว พอมาทำด้าน Machine Learning พบว่ามันเป็นอะไรที่สะดวกมาขึ้น เพราะ Lib ใน Python มันมีเยอะ และเชื่อมเข้ากับงานด้าน spatial analysis ได้ทันทีเลย วันนี้ผมมาแนะนำ Lib สำคัญ ด้าน Spatial analysis สำหรับงาน geo data science ให้ผู้อ่านได้รู้จัก 4 ตัวที่ผมใช้งานประจำ

1. PySAL — Python Spatial Analysis Library

ตัวนี้เป็น Lib ที่ใช้เชิง Math ประมวลผลงานด้าน spatial analysis functionsได้ดีอีกตัว แถมทำงานกับ nunpy และ scipy ได้สะดวกมาก งาน app ด้าน Geostatistic เช่น Knn , IDW,Spatial Markov และอื่นๆ  ถ้าลองใช้ ตัวนี้แล้วรับรองไม่ผิดหวังครับ

https://pysal.readthedocs.io/en/v1.11.0/index.html

socal_2

2. Shapely

ถ้าต้อง process data ต้องปรับแก้ แปลงระบบพิกัด หรือประมวลผลตัว geometry object (Point, LineString, and LinearRing ) เลือก Shapely น่าจะเป็น tools ที่ดีในการทำงาน ความสามารถรองรับ format ของ geometry file หลากหลาย ประมวลผลข้อมูลขนาดจำนวนหลายหมื่นโหนด ได้เร็ว และมี algorithm ที่สุดติ่ง อยู่เบื้องหลัง lib ดังอย่าง GEOS ที่ทำงานใน Postgis หรือ JTS

687474703a2f2f6661726d332e737461746963666c69636b722e636f6d2f323733382f343531313832373835395f623538323230343362375f6f5f642e706e67

https://github.com/Toblerity/Shapely

3.GeoPandas

สาย Python คงรู้จัก Pandas ดีอยู่แล้ว ตัวนี้็คือ data model ด้าน geometry ที่เพิ่มเข้าไปในการทำงานร่วมกับ pandas เพิ่มประสิทธิภาพการ read / write file ด้าน geospatial data

การจัดการไฟล์แบบ GeoSeries และ GeoDataFrame สนับสนุนการประมวลผลเชิงเลข การรวมข้อมูล การวิเคราะห์ข้อมูล , รองรับการทำงานด้าน Mapping การกำหนดระบบ coordinate system และอื่นๆ นอกจากนี้ สามารถสร้างแผนที่จาก geometry object ในรูปแบบ ภาพ ได้อีกด้วย

holes

http://geopandas.org/index.html

4.pyproj
ทำงานด้าน GIS หนีไม่พ้นต้อง จัดการกับระบบพิกัดโลก ในรูปแบบต่างๆ รวมถึงการกำหนดรายละเอียดอ้างอิง การแปลงพิกัดให้กับ ข้อมูลเชิงพื้นที่ของเรา ด้านนี้ ทำให้งานง่าย ด้วย PROJ4 ตัวนี้เป็น Lib ที่ครอบคลุมระบบพิกัดแบบสากล และมีฟังก์ชั่น การแปลงระบบพิกัด ใน Python ก็มี Lib ชื่อ pyproj ที่เป็น interface สำหรับเรียกใช้งาน class ของ PORJ4 ในการประมวลผลข้อมูล ด้าน  transformations และ geodetic computation

https://pypi.python.org/pypi/pyproj

Spatio-temporal pattern recognition

พอดีทำงานเรื่อง Spatio temporal analysis ไปค้นบทความแล้วไปเจอ vdo นี้น่าสนใจมาก เลยเอามาแชร์ เนื้อหาสาระของคลิปนี้ Dr. Rajiv Maheswaran เขานำเสนอแนวคิดการนำ Data Science มาใช้ในกีฬา Basketball โดยทำการสอนให้ machine วิเคราะห์ moving dot data ที่เกิดจำนวนมหาศาลซึ่งเกินความสามารถของคนที่จะประมวลผล จากนั้นทำการวิเคราะห์ spatio-temporal pattern recognition เพื่อ สกัดเอา value ที่ได้จากข้อมูล

12-1-2016-3-06-39-pm

 

ความน่าสนใจคลิปนี้ Dr. Rajiv Maheswaran สาธิตเทคนิค pick&roll กลยุทธ์การเล่นของ 4 players(2 offense และ 2 defense) ที่กลายเป็น key ในการทำคะแนนของ modern basketball โดยนักวิจัยเอา machine leaning มาวิเคราะห์ข้อมูล moving dot สอนให้มันจำแนกการเกิด pick&roll ความท้าทายคือการวิเคราะห์ความสัมพันธ์ของ feature ต่างๆเช่น velocity, player movement, player location, ball location, distance และอื่นๆ จนทำให้ machine สามารถบอกได้ว่า จะเกิด pick&roll เมื่อไหร่, ความน่าจะเป็นในการสำเร็จเท่าไหร่และอื่นๆ insight นี้ช่วยให้ โค้ชวางแผนการรับมือ รูปแบบการเล่น pick&roll และสอนให้ player พัฒนารูปแบบการเล่น ให้ดียิ่งขึ้นด้วย

 

12-1-2016-3-08-49-pm12-1-2016-3-09-55-pm

นอกจากนี้ยังรวมไปถึงการ training จาก moving dot data ให้ machine มันดูเกมส์ Basketball รู้เรื่อง เข้าใจ แทคติกการเล่นต่างๆแบบอาชีพและมองเห็นการเล่นในมุมที่ต่างจากคน โดยการ tracking ข้อมูลแบบเรียลไทม์ ทั้งตำแหน่งบอลและผู้เล่นในสนาม การวิเคราะห์ ขั้นสูงทำให้เกิด value ต่างๆเช่น การประเมิน probability ในการทำคะแนน(shot) การรีบาว์ด(rebound) รวมถึงการประเมินคุณภาพการยิงทำคะแนน ของผู้เล่น ในสถานการณ์ยาก/ง่าย (ตรงนี้น่าสนใจเพราะมันได้กลายเป็น key การ valuation ค่าตัวนักบาสเก็ตบอล)

machine leaning เข้ามามีบทบาทใน NBA มากและทางทีมวิจัยเขาเชื่อว่า อนาคตมันเข้าเปลี่ยน ปรับปรุงเกมส์การเล่นให้ดีขึ้นและกลายเป็นอาวุธสำคัญในการแข่งขันต่อไป

เข้าฟังได้จาก

12-1-2016-3-15-23-pm

Geospatial+Data science

ยุคนี้ถ้ากระแสเทคโนโลยี ที่กำลังมาแรง คงหนีไม่พ้น Data science คำนี้ในช่วง 2 – 3 ปีที่ผ่านมากลายเป็น top hit และมีการเผยแพร่ความรู้ และมีการเติบโตของกลุ่ม community ทั่วโลกมากขึ้น ยิ่งเราเห็นภาพในสหรัฐที่ภาครัฐบาล และภาคเอกชนออกมาสนับสนุนเรื่องของ Data science อย่างมาก อันหนึ่งที่เป็นตัวขับดันสำคัญคงหนีไม่พ้นเทคโนโลยีคอมพิวเตอร์ที่เกี่ยวข้อง และรวมถึงความต้องการ นักวิทยาศาสตร์ข้อมูล ในบริษัท IT ใหญ่ๆ เพื่่อเข้ามาวิเคราะห์ สังเคราะห์ สร้างมูลค่าจากข้อมูลมหาศาลที่มี

Data science อธิบายง่ายๆ ก็คือ เรื่องของวิทยาศาสตร์ ที่มาผนวกรวมกับ ข้อมูล(Data) เรื่องราวของศาสตร์ที่ผนวกรวมเทคโนโลยีแขนงต่างๆขึ้นมา เพื่อใช้ในการสร้างกระบวนการทดลอง(เชิงวิทยาศาสตร์)และพัฒนาระบบประมวลผล รวมถึง algorithm (เครื่องมือในการทดสอบสมมติฐาน) เพื่อใช้ในการสกัดเอา คุณค่า(value) ออกจากข้อมูลขนาดใหญ่(Big Data)

datasciencecircle

Data science เป็นเทอมที่รวมเอาศาสตร์และเทคโนโลยีแขนงต่างๆผูกโยงเข้าด้วยกัน เช่น Data Mining, Cloud computing , Machine Learning(ML) ,Statistic, Big Data

เราจะพบว่า งาน Data science จำเป็นต้องอาศัยผู้ร่วม พัฒนาที่มีความรู้หลายแขนง มาทำงานร่วมกัน โดยมี นักวิทยาศาสตร์ข้อมูล(Data Scientist) ผู้ที่มีพื้นฐานความรู้พื้นฐาน และเข้าใจในตัวข้อมูลอย่างดี เป็นผู้ประสานการทำงานระหว่างผู้เชี่ยวชาญด้านต่างๆ รวมถึงออกแบบการทดลอง สร้าง algorithm เพื่อ สกัดเอา Knowledge  ออกจากกลุ่มข้อมูล เพื่อทำให้เกิดมูลค่า เชิงธุรกิจหรือประโยชน์เชิงบวก จากข้อมูลเหล่านั้นมากที่สุด

Data_visualization_process_v1 (1)

Continue reading “Geospatial+Data science”

QGISกับการแสดงผลสามมิติ

ปัจจุบันการพัฒนาเครื่องมือการแสดงผล ยังไปไม่ถึง 3D แต่ถ้าเป็นภาพมุมเฉียง แบบ 2.5D ทำได้ครับ ถ้าเคยเล่นผ่านการส่งออกไป plug-in ชื่่อ  Qgis2threejs

แต่การแสดงผลในโปรแกรมนั้นยังไม่มี แต่ผมมีตัวอย่างโปรเจคหนึ่ง มาแนะนำ ว่าอนาคตคงมีให้ใช้แน่ๆ

งานนี้เป็นโปรเจคทดลอง ที่ พัฒนาตัวแสดงผล 2.5D objects คาดว่าจะออกมาในเวอร์ชั่น QGIS 2.14 ปัจจุบันตัว stable นั้นคือ version 2.12 การทำงานด้าน 3D จริงๆมีการพัฒนาจนได้ผลมาตั้งแต่ปีที่แล้ว แล้วโดยคุณ Matthias Kuhn ตอนนั้นเปิดระดมทุนและหาทีมสนับสนุนเพื่อทดลองกันอยู่

 

screenshot-2016-02-14-20-24-01

เขาใช้ภาพอาคารแบบ multiple features  จากภาพถ่ายทางอากาศ มา render แบบ 2.5D

 

qgis25d

จากนั้นก็ตั้งค่าการแสดงผล แบบ 2.5D ในส่วนแสดงรายละเอียดของโปรแกรม

qgis25d_googlemaps

เปรียบเทียบการ render ใน QGIS กับ การแสดงผลผ่าน threejs 3D library

อดใจรออีกสักนิด คงได้ใช้กันแบบเต็มๆ ครับ

 

อ้างอิงจาก
Experiments in the 3rd dimension

Open Source for image detection algorithm

งานด้าน Remote sensing เป็นอีกศาสตร์ที่ใช้เรื่องของ Image processing เป็นหลัก จำได้สมัยเลย ผมมีโอกาสได้เขียนโปรแกรม เล่นกับการประมวลผลภาพ เยอะมาก สมัยนั้น Opensource ยังมีไม่มาก Lib ฟรีดีๆหาได้ไม่เยอะ

วันนี้ไปเจอข่าวนี้มา คือ ที่ UCLA Engineering research group เขาปล่อย code ตัว Lib สำหรับทำ image detection โดยให้ algorithm ที่เป็นงานวิจัย ชี้นเอก ที่ได้รับการยอมรับ เปิดเผยออกมา

ตรงนี้มีประโยชน์มาก เพราะถ้าใครทำวิจัยด้าน image detection เช่น กรณีงาน ปรับแก้ภาพ การทำจุด common point ในคู่ภาพ งานขจัดเมฆ หรือแม้แต่ทำ Feature attraction ตัวโปรเจคนี้ และ Opensource ชุดนี้ก็น่าจะมีประโยชน์

algorithm พัฒนาโดย Lab ของมหาวิทยาลัย มีหัวหน้าโครงการคือคุณ Bahram Jalali ตำแหน่ง professor  จาก UCLA คณะ electrical engineering

เข้าไปดาวน์โหลดได้ที่ GITHUB
https://github.com/JalaliLabUCLA/Image-feature-detection-using-Phase-Stretch-Transform

หรือถ้าใช้ Matlab ก็สามารถไปโหลดชุดไลบารี่ได้ที่
https://www.mathworks.com/matlabcentral/fileexchange/55330-jalalilabucla-image-feature-detection-using-phase-stretch-transform

 

Moon+images_76b9f4f1-7fcf-45df-b215-abd75a96d1f9-prv

ตัวอย่างภาพ ซอฟท์แวร์นี้ จำแนก จุดตำแหน่งของดวงดาว ออกจากภาพถ่ายจากกล้องโทรทัศน์

อ้างอิงข่าวจาก
http://newsroom.ucla.edu/releases/ucla-researchers-release-open-source-code-for-powerful-image-detection-algorithm

GeoServer Explorer Plugin for QGIS

ถ้าจะหา tools ทำด้าน GIS Service แบบ online ตัว Geoserver เป็นอีก Opensouce ที่ดี และผมแนะนำให้ลองนำมาใช้ ทั้งด้าน Map service และ Feature service ที่มีประสิทธิภาพและสามารถรองรับมาตรฐานของ OGC

กรณีที่ต้องการทำงานด้าน work station เช่นการแก้ไขข้อมูล การส่งออก นำเข้าหรือการประมวลผล ปัจจุบันยิ่งสะดวกไปอีก เพราะ Geoserver มี Plug-in ที่ต่อเข้ากับตัว Workstion GIS อย่าง QGIS ทำให้การทำงาน สะดวกและง่ายขึ้นมากครับ

qgis_plugin_diagram1

GeoServer Explorer Plugin เพิ่มออกมาเป็น REST API ที่ทำด้าน Feature Service และเชื่อมการทำงาน แก้ไข และประมวลผล บน QGIS ได้เลย หรือจะเรียกดูเพื่อส่งออก ก็ได้ กรณีนี้ องค์กร ใหญ่ๆที่ต้องการใช้ vectore file หรือ ฐานข้อมูล ร่วมกัน ก็สะดวก ไม่ต้องมานั่ง copy ตัว shapefile หรือมากังวลเรื่อง update ข้อมูลที่ไม่ตรงกัน

การใช้งานร่วมกันก็ เอาข้อมูล GIS ขึ้น Server แล้วก็ทำ meta data เพื่อสร้าง catalog จากนั้น ก็เปิด service ให้เข้าถึงข้อมูลผ่าน internet หรือ intranet ส่วนใครจะ view จะ edit ก็จำกัด สิทธิ์การใช้ได้

qgis_plugin_install1

แถมไม่ใช่แค่ดูผ่านเว็บ อย่างเดียว เราเรียก Feature มาวิเคราะห์บนโปรแกรมอย่าง QGIS ได้อีก ไม่ต่างอะไรกับการใช้ GIS file แบบเดิมๆ ลองเข้าไปลองใช้งานได้ที่

http://blog.geoserver.org/2015/12/23/geoserver-explorer-plugin-for-qgis/

จำลองการไหลของน้ำจาก DEM

ไปพบโปรเจคของนักพัฒนาคนหนึ่ง คือ คุณ Tyler Mitchell ทาง Youtube เขาทำโปรเจค สร้าง แบบจำลอง 3D เสมือนจริง ด้วยโปรแกรม Game engine ที่ชื่อว่า unity3d.com

day1

โดย งานหนึ่งที่เขาทำ คือสร้างแบบจำลอง การท่วมและการไหลของน้ำ จากข้อมูล DEM จริงๆของภูมิประเทศ แล้ว แสดงผล ภาพการไหล จากการคำนวณ เป็น วิดีโอ ภาพเคลื่อนไหล เสมือนจริง

terrain-waterflow-gis-unity

ภาพเคลื่อนไหว

https://www.youtube.com/watch?v=6aOSOriB-l4

เห็นแล้วคิดว่า น่าจะมีประโยชน์เพื่ออนาคต บ้านเราน้ำท่วม หรือดินถล่ม อยากลองเอา GIS และโปรแกรม 3D engine ไปใช้บ้าง เข้าดูได้จาก link นี้

http://www.spatialguru.com/generate-terrain-with-flowing-water-from-dem-in-unity/

บลอกที่ WordPress.com .

Up ↑