Climate Change Scenarios GIS Data Portal

กุมภาพันธ์ 22, 2009

           เดี่ยวนี้เรื่องของ Climate Change กลายเป็นประเด็นใหญ่สำหรับโลกนี้ไปแล้ว โลกร้อนคนก็อยู่ลำบาก กลุ่ม Geoinfomatic ในช่วงนี้งานวิจัยหลายงานก็เข้าไปเกี่ยวข้องกับ Climate Change มากขึ้น ในอเมริกา NCAR ตั้ง “Climate Change Scenarios GIS Data Portal” ขึ้นครับ โดยเปิดให้นักวิจัยสามารถนำข้อมูลต่างๆที่เกี่ยวกับ Climate Change ซึ่งอยู่ในรูปแบบ GIS  ไปใช้งานได้ เช่น ข้อมูล  atmosphere , land surface. ซึ่งมีทั้งที่ที่เป็น Global Dataset และข้อมูลเฉพาะพื้นที่ เช่นในอเมริกา โดยข้อมูลเหล่านี้ถูกสร้างจาก NCAR Community Climate System Model ผู้ใช้สามารถดาวน์โหลดข้อมูลในรูปแบบ shapefile ท่านที่สนใจสามารถแวะเข้าไปดาวน์โหลดข้อมูลได้ที่ http://www.gisclimatechange.org/

        


About OSM in thailand

กุมภาพันธ์ 22, 2009

         OpenStreetMap (OSM)  เป็นโปรเจคการสร้างแผนที่ระดับโลก หลายคนเรียก OSM ว่าเป็น NGO แห่งโลก GIS ครับ ผมชอบแนวคิดที่กล้าหาญของผู้ก่อตั้ง OSM คุณ Steve Coastดีจัง โดยมีแนวคิดที่ตั้งใจให้คน(ที่รู้เรื่องแผนที่บ้าง) ทั่วโลกช่วยกันสร้างแผนที่ รายละเอียดของโลกนี้ กล่าวคือท่านสามารถสร้างหรือแก้ไขข้อมูล ทั้ง ถนน, POI และอื่นๆบนแผนที่ได้ โดยเฉพาะในประเทศหรือในพื้นที่ที่ยังไม่มีข้อมูลแผนที่ถนน หรือแผนที่สถานที่ต่างๆ โดยผู้ใช้ที่เป็นอาสาสมัครสามารถใช้เครื่องมือสร้างแผนที่แบบ online ผ่านทางอินเตอร์เน็ต หรือจะสร้างข้อมูลแผนที่จาก GPS หรือจะใช้โปรแกรม GIS ทั่วไปแล้ว import ข้อมูลเข้าระบบก็ได้ โปรเจคนี้ยังมุ่งเน้นไปที่การสร้างแหล่งข้อมูล Geospatial Free เพื่อใช้เป็นข้อมูลพื้นฐานในการนำไปวิเคราะห์ในด้านต่างๆ

         ปัจจุบัน OSM เดินทางมาเกือบจะห้าปีแล้วครับ มีสมาชิก 50,000 ทั่วโลกและมีโปรเจคที่ข้อมูลไปใช้งาน 5,000 แห่ง ที่สำคัญในต่างประเทศด้วยความที่เค้าคิดว่า แผนที่ เป็นสาธารณูปโภคที่ประชาชนควรจะเข้าถึงได้ เลยทำให้หลายๆหน่วยงานที่มีข้อมูลจึงได้บริจาคข้อมูล GIS ให้กับ OSM เพื่อนำไปใช้ประโยชน์ เช่น  Ordnance Survey ของอังกฤษและข้อมูล TIGER ของอเมริกา 

         OSM แตกต่างอย่างไรกับ Google Map ,Yahoo Map และอื่นๆ คำตอบคือ OSM นั้นฟรีครับ ภายใต้กรอบลิขสิทธิ์ของ Creative Commons 2.0 SA licence สามารถขอข้อมูลที่เป็น Spatial data จริงๆได้ด้วย แต่เฉพาะส่วนของข้อมูลที่สร้างขึ้นจาก community นะครับ ข้อมูลบางประเทศที่มาจากหน่วยงานก็อาจจะไม่สามารถดาวน์โหลดไปได้ กล่าวคือสามารถดูหรือจะนำข้อมูลแผนที่แบบ Map Service ได้อย่างเดียว สำหรับประเทศไทยข้อมูลมาตรส่วน 1:50000 ก็มีระดับหนึ่งครับ แต่ในกรุงเทพมีแผนที่ถนน และ POI ที่ใช้ได้ทีเดียว(สำหรับข้อมูลฟรี) เข้าไปอ่านรายละเอียดเพิ่มเติมที่ http://en.wikipedia.org/wiki/OpenStreetMap 

15

ภาพของแผนที่ประเทศไทย

16

ข้อมูลแผนที่ถนนในประเทศไทยบริเวณกรุงเทพครับ น่าเสียดาย label ยังเป็นภาษาอังกฤษอยู่

17

Zoom เข้ามาแบบ scale ใหญ่สามารถมองเห็น direction ของถนนในกรุงเทพด้วยครับ

 


ArcNews online

กุมภาพันธ์ 22, 2009

        เมื่อสัปดาห์ก่อนผมแวะเข้าไป update ข่าวที่เว็บของ ESRI เลยทำให้ทราบว่า ปัจจุบัน ArcNew มีให้บริการผ่านทาง online แล้ว สำหรับท่านที่ยังไม่รู้จัก ผมขออธิบายสั้นๆว่า ArcNew คือหนังสือพิมพ์ข่าวของ ESRI ที่มีคอลัมภ์ต่างๆซึ่งเขียนเกี่ยวกับ product ของบริษัท และมีตัวอย่างของการนำเอา GIS Technology ไปใช้ในด้านต่างๆ

        สำหรับผมเอง ArcNew เป็นหนังสือวารสารทาง GIS ฉบับแรกที่ได้อ่านตั้งแต่เริ่มทำงาน ผมชอบตรงที่ว่าใน ArcNew มีตัวอย่างการ implement ระบบ GIS ในงานด้านต่างๆที่สำคัญผู้เขียน ค่อนข้างมีความรู้ความชำนาญด้านเทคโนโลยีมันทำให้เราได้เปิดโลกทรรศอีกได้ ผมยอมรับว่าหลายๆโปรเจคที่ผมทำก็มีโอกาสนำไอเดียจากหนังสือเล่มนี้ไปใช้ สำหรับท่านที่อยากได้แต่ความรู้แต่ไม่อยากดูโฆษณา ผมว่าก็อาจจะไม่เหมาะที่จะอ่าน ArcNew เพราะแน่นอนว่าการปรากฏตัวของโฆษณาย่อมมีทุกส่วนของหนังสือเล่มนี้แน่นอน สำหรับท่านที่สนใจ ArcNew online สามารถเข้าไปลงทะเบียนได้ที่ http://gis.esri.com/newsletters/pub_form.cfm?news=ArcNews  เล่มนี้มีหัวข้อหนึ่งน่าสนใจดีครับเรื่อง Transport 2.0 อ่านรายละเอียดของ ArcNew ได้ที่ http://www.esri.com/news/arcnews/arcnews.html

 


Drupal&MAP Application

กุมภาพันธ์ 22, 2009

        มี Application แบบฮิปๆมาฝากกันอีกแล้วครับ แต่ครั้งนี้ไม่ขอ Review ในเรื่องเทคนิคแล้วเพราะว่าหลายอย่างผมได้เขียนไปแล้วในตอนของ EDT GUIDE สำหรับตอนนี้จะกล่าวแนะนำ Web Application หนึ่งชื่อ stumble safely โปรเจคนี้เป็น application ที่สร้างมาภายใต้แนวคิด web 2.0 มีการเปิดให้ผู้ใช้เข้ามามีส่วนร่วมในการแชร์ข้อมูล และประสบการณ์ แล้วก็มีช่องทางของการแลกเปลี่ยนพูดคุย ผ่านทาง twitter ตัว application พัฒนาจาก Drupal (CMS ขวัญใจผม) และมีการใช้เทคนิคประเทศ HeatMap ในการแสดงผลร้านอาการ ผับ บาร์ยอดนิยม แต่ที่แตกต่างไปก็คือนอกจาก web นี้จะแนะนำร้านที่ hangout แล้วยังมีข้อมูลการเกิดอาชญากรรม ชกชิง วิ่งราว จี้ ข่มขืน และอื่นๆใน Zone ต่างๆของสถานที่ท่องเที่ยวกลางคืน ทำให้เป็น Guide ในการท่องเที่ยวอย่างปลอดภัยตาม concept ของเว็บ stumble safely 

 

      การแสดงแผนที่และข้อมูลของเว็บนี้ก็ทำได้น่าสนใจดีครับ โดยแบ่งเป็นช่วงเวลา กลางวัน หัวค่ำ และก็กลางคืน ข้อมูลแผนที่มาจาก openstreetmap ข้อมูลข่าวอาชญากรรมมาจาก managingnews สำหรับกลุ่มพัฒนา Application ที่เก่งทั้ง CMS และ Mapping คือ Mapbox หรือ development Seed นั้นเอง

14

       สำหรับท่านที่สนใจลองแวะเข้าไปเล่นได้ที่ http://www.outsideindc.com/stumblesafely สำหรับพี่ๆน้องๆที่หาช่องทางการทำ webapplication ประเภทนี้ก็ลองเก็บไอเดียเอาไว้ได้นะครับ ผมยังเชื่อว่า website ประเภทนี้น่าจะยังโตได้อีกในบ้านเรา


Advance 3D Citymodel lecture

กุมภาพันธ์ 19, 2009

        ไปปะโดยบังเอิญอีกแล้วกับ vdo งาน Google Tech Talks October 25, 2006 งานนี้แจ่มครับ คนพูดเป็น professor ชื่อ Avideh Zakhor จาก Berkeley เค้าพูดเรื่องของ automated generation of textured 3D city models คิดว่าน่าจะเป็นแนวคิดรากฐานของการพัฒนาระบบสำรวจแบบ 3D ของ Google ในปัจจุบัน โดยรถสำรวจล่าสุดของ Google ก็มีแนวคิดเรื่องการใช้ Laser Scan คู่กับเทคนิคแบบ Close range ซึ่งนอกจากการรังวัดพิกัดบนภาพที่ได้ และยังสามารถสร้าง Texture แบบ 3D solid model ซึ่งมีจุด photo control บนแต่ละภาพซึ่งจะทำให้สามารถเอา texture มาแมปติดกับ solid model ได้ ผมเล่าโดยสรุปนะครับเทคนิคโดยละเอียดค่อนข้างเยอะลองชมได้จาก clip vdo ที่ผมนำมาแปะไว้ ผลลัพธ์สุดท้ายเค้านำมา optimize และแสดงผ่าน web ด้วย VRML ซึ่งปัจจุบันปี 2009 Googleพัฒนาเรื่องการแสดงผลบน web ไปได้ไกลกว่า VRML แล้วครับ

 


Solar Phone Released

กุมภาพันธ์ 19, 2009

              ช่วงนี้เงินก็ฝืด แต่โทรศัพท์มือถือดันมารวนก็เลยมีแววจะต้องมองหามือถือใหม่ แวะไปเดินเล่นดูมือถือแถวมาบุญครอง กลับมาบ้านยังไม่อิ่มเลยนั่ง search เน็ตหามือถือแจ่มๆต่ออีก มาสะดุดเจอรุ่นหนึ่งที่โดนใจคือ  Coral-200-Solar ผมชอบตรงที่มันเป็นมือถือพลังงานแสงอาทิตย์ โดยสามารถชาร์จแบตจากแสงอาทิตย์ได้ ผมว่าแนวคิดนี้ไม่ใช่เรื่องใหม่อะไร แต่วันนี้ความคิดของการนำพลังงานแสงอาทิตย์มาใช้ในชีวิตประจำวันก็เกิดขึ้นแล้ว ความยากคงเป็นเรื่องของการจะทำอย่างไรให้มือถือสามารถชาร์จพลังงานได้อย่างต่อเนื่องและมีประสิทธิภาพ รวมไปถึงเรื่องการสร้างแผงโซลาร์เซลล์ขนาดเล็กและราคาถูก เพื่อเหมาะกับการผลิตมือถือแบบนี้ คาดว่ารออีกไม่นาน Coral-200 จะออกวางจำหน่ายในแถบเอเซีย ถ้ามือถือผมไม่เจ๊งไปซะก่อน ผมอาจจะได้ลงทุนควักกระเป๋าซื้อเจ้าตัวนี้มาใช้งานแน่นอน

 

 

อ่านรายละเอียดเพิ่มเติมที่

http://www.realwire.com/release_detail.asp?ReleaseID=11405


Satellite Crash Animation

กุมภาพันธ์ 19, 2009

       เป็นข่าวใหญ่ขึ้นหน้าหนังสือพิมพ์มาสักพักหนึ่งแล้วครับ กับกรณีที่ดาวเทียมชนกันบนอวกาศเป็นครั้งแรกระหว่าง ดาวเทียมสื่อสารของบริษัทอิริเดียมของอเมริกากับดาวเทียมปลดประจำการของรัสเซีย โดยจุดที่พุ่งชนกันอยู่ห่างจากพื้นโลกที่ระดับความสูง 780 กิโลเมตรเหนือไซบีเรีย  ซึ่งความสูงที่ชนกันเป็นระนาบของวงโคจรที่ดาวเทียมสื่อสารใช้งานกันจึงมีความกังวลกันมากถึงผลกระทบที่จะเกิดขึ้นจากเศษซากของดาวเทียมที่ลอยอยู่บนอวกาศ เท่าที่ผมอ่านดูจากหลาย web ในต่างประเทศก็ยังไม่มีใครออกมาสรุปถึงสาเหตุการชนกัน สมัยที่ผมเรียนจำได้ว่าอาจารย์ท่านหนึ่ง บอกไว้ว่าโอกาสที่ดาวเทียมจะชนกันในอวกาศมีเพียง 1 ใน 1000000 แต่วันนี้อะไรก็คงจะไม่แน่แล้วครับ เพราะว่าแม้โอกาสเพียงน้อยนิดแต่มันก็สามารถเกิดขึ้นได้

      ที่เขียนถึงเรื่องนี้เพราะว่าไปพบ animation ที่เค้าจำลองการชนกันครั้งนี้บนอวกาศเอาไว้ โดยใช้โปรแกรม Google Earth ในการนำเสนอผลลัพธ์ก็ดูตื่นตาตื่นใจเลยทีเดียวครับ ท่านที่สนใจลองดาวน์โหลด KML ไปเปิดดูได้ครับhttp://www.barnabu.co.uk/files/kmz/satellite_collision_nl.kmz 

 


libLAS 1.0.1

กุมภาพันธ์ 15, 2009

              ต้นเดือนกุมภาพันธ์ที่ผ่านมา libLAS ได้ออกเวอร์ชั่นใหม่ล่าสุดคือเวอร์ชั่น 1.0.1 มีการแก้ไข bug จากเวอร์ชั่นก่อน ตามที่มีการแจ้งไว้ ในเวอร์ชั่นปัจจุบันมีการเพิ่มความสามารถด้าน Get/set intensity, Improve LASPoint และเพิ่มฟีเจอร์ index number สำหรับ Las2txt ผมลองแล้วก็ใช้ได้เลยทีเดียวครับ

 

        สำหรับหลายท่านยังไม่คุ้นเคยกับ libLas ผมขออธิบายสั้นๆดังนี้ครับ liblas นั้นเป็นไลบารี่ที่ทำหน้าที่ Manage, Reading and writing ฟอร์แมท LAS ของ ASPRS LAS เป็นไบนารี่ฟอร์แมทที่ได้จากการสำรวจด้วย LIDAR technology โดยมีการนำไปใช้สำรวจข้อมูลแบบจำลองความสูงภูมิประเทศรายละเอียดสูง Airbone Lidar , หรือตัวอย่างพวก mobile Mapping ของ google ที่มีการติดตั้ง Sick Laser Scan ผลลัพธ์ที่ได้จากระบบคือแบบจำลองสามมิติที่มีความละเอียดถูกต้องสูง ผมมี vdo อธิบายรายละเอียดของ LIDAR Technology ให้มาดูด้วยครับ

           และมี vdo ของ Google ที่อธิบายการ Processing LIDAR Data in Google SketchUp ซึ่งมีการทำ presentation lidar ได้น่าสนใจดี

        ความท้าทายของการพัฒนาไลบารี่หรือโปรแกรมที่จัดการ LAS คือเรื่องของประสิทธ์ภาพครับ เพราะ LIDAR เป็นเทคโลยีการสำรวจด้วย LASER ผลลัพธ์ที่ได้คือ Could point (จุดมหาศาล) ซึ่งจะประกอบด้วยข้อมูลเบื้องต้น X,Y,Z,Time, intensity จำนวนหลายล้านเรคคอร์ด (ขึ้นกับขนาดของพื้นที่สำรวจและความถี่ของ Laser Gun) ดังนั้นการจะทำงานกับข้อมูลที่ได้จาก LIDAR ถ้ามีไลบารี่ดีๆอย่าง libLas ก็ช่วยได้มาเลยมีเดียวครับ ท่านที่สนใจใช้ liblas1.0.1 สามารถไปดาวน์โหลดได้ที่ http://liblas.org/wiki/1.0.1 โดยมีทั้งที่เป็นแบบ source codeและ binary ด้านล่างเป็นตัวอย่าง sourcecode ผมทดลองใช้ liblas ผ่านทาง Python ในการเรียกดูข้อมูลจาก lidar

 

>>> from liblas import file
>>> f = file.File('file.las',mode='r')
>>> for p in f:
...     print 'X,Y: ', p.x, p.y
        print 'scan angle: ', p.scan_angle
        print 'scan angle: ', p.classification
        print 'scan angle: ', p.time

  

 

บทความที่เกี่ยวข้อง

http://emap.wordpress.com/2008/04/24/lidar-opensource-tools/


Free Global Airport Data

กุมภาพันธ์ 15, 2009

         OpenFlights ได้ประกาศให้บริการข้อมูลสนามบินทั่วโลกฟรี และมีการให้บริการข้อมูลเส้นทางการบินบางส่วนแต่อาจจะต้องเสียค่าใช้จ่ายในการดำเนินการ ข้อมูลสนามบินก็จะประกอบด้วยค่าพิกัดตำแหน่ง(lat,lon) ข้อมูลเวลาท้องถิ่น ชื่อสามัญและชื่อเมือง โดยจัดเตรียมข้อมูลให้สามารถดาวน์โหลดได้ในรูปแบบเท็กไฟล์ .dat และที่ openflight ยังมีบริการเสริมให้ค้นหาสนามบินอีกด้วยครับ สำหรับท่านที่ต้องการข้อมูสามารถเข้าไปดาวน์โหลดและอ่านรายละเอียดเพิ่มเติมได้ที่ http://openflights.org/data.html

         ผมเอารูปแบบข้อมูลสนามบินในประเทศไทยบางส่วนจาก airport database มาให้ดูครับ

 ”Don Muang Intl”,”Bangkok”,”Thailand”,”DMK”,”VTBD”,13.912583,100.60675,9,7,”U”
“Kamphaeng Saen”,”Nakhon Pathom”,”Thailand”,”",”VTBK”,14.101975,99.917219,30,7,”U”
“Khok Kathiam”,”Lop Buri”,”Thailand”,”",”VTBL”,14.874561,100.663367,123,7,”U”

“U Taphao Intl”,”Pattaya”,”Thailand”,”UTP”,”VTBU”,12.679944,101.005028,42,7,”U”
“Watthana Nakhon”,”Prachin Buri”,”Thailand”,”",”VTBW”,13.7688,102.315492,200,7,”U”
“Lampang”,”Lampang”,”Thailand”,”LPT”,”VTCL”,18.270933,99.504167,811,7,”U”
“Phrae”,”Phrae”,”Thailand”,”PRH”,”VTCP”,18.132169,100.164664,538,7,”U”
“Hua Hin”,”Prachuap Khiri Khan”,”Thailand”,”HHQ”,”VTPH”,12.636225,99.951533,62,7,”U”
“Takhli”,”Nakhon Sawan”,”Thailand”,”",”VTPI”,15.277306,100.295861,107,7,”U”
“Sak Long”,”Phetchabun”,”Thailand”,”",”VTPL”,16.824322,101.251389,500,7,”U”
“Mae Sot”,”Tak”,”Thailand”,”",”VTPM”,16.699856,98.545056,690,7,”U”
“Nakhon Sawan”,”Nakhon Sawan”,”Thailand”,”",”VTPN”,15.672997,100.136794,113,7,”U”
“Phitsanulok”,”Phitsanulok”,”Thailand”,”PHS”,”VTPP”,16.782939,100.279122,154,7,”U”
“Khunan Phumipol”,”Tak”,”Thailand”,”",”VTPY”,17.234211,99.057911,492,7,”U”
“Khoun Khan”,”Satun”,”Thailand”,”",”VTSA”,6.661403,100.080317,18,8,”U”
“Narathiwat”,”Narathiwat”,”Thailand”,”NAW”,”VTSC”,6.519922,101.7434,16,7,”U”
“Krabi”,”Krabi”,”Thailand”,”KBV”,”VTSG”,8.095969,98.988764,93,7,”U”
“Songkhla”,”Songkhla”,”Thailand”,”",”VTSH”,7.186564,100.608031,12,7,”U”
“Pattani”,”Pattani”,”Thailand”,”PAN”,”VTSK”,6.785458,101.153569,8,7,”U”
“Samui”,”Ko Samui”,”Thailand”,”USM”,”VTSM”,9.547794,100.062272,64,7,”U”
“Cha Ian”,”Nakhon Si Thammarat”,”Thailand”,”",”VTSN”,8.471147,99.955625,44,7,”U”
“Phuket Intl”,”Phuket”,”Thailand”,”HKT”,”VTSP”,8.1132,98.316872,82,7,”U”
“Ranong”,”Ranong”,”Thailand”,”",”VTSR”,9.777622,98.585483,57,7,”U”
“Hat Yai Intl”,”Songkhla”,”Thailand”,”HDY”,”VTSS”,6.933206,100.392975,90,7,”U”
“Trang”,”Trang”,”Thailand”,”TST”,”VTST”,7.508744,99.616578,67,7,”U”
“Udon Thani”,”Udon Thani”,”Thailand”,”UTH”,”VTUD”,17.386436,102.788247,579,7,”U”
“Sakon Nakhon”,”Sakon Nakhon”,”Thailand”,”SNO”,”VTUI”,17.195142,104.118625,529,7,”U”
“Surin”,”Surin”,”Thailand”,”",”VTUJ”,14.868264,103.498256,478,7,”U”
“Loei”,”Loei”,”Thailand”,”LOE”,”VTUL”,17.439133,101.722064,860,7,”U”
“Khorat”,”Nakhon Ratchasima”,”Thailand”,”NAK”,”VTUN”,14.934514,102.078639,729,7,”U”
“Rob Muang”,”Roi Et”,”Thailand”,”",”VTUR”,16.07035,103.6459,459,7,”U”


 

 


EDTguide

กุมภาพันธ์ 14, 2009

       วันนี้ไปกินอาหารญี่ปุ่นมาครับ ร้านหายากมากแต่อร่อยดี ผมลากสังขารที่เดี้ยงๆที่เกิดจากอาการเจ็บหัวเข่า โชคดีที่ไม่ได้ต้องพักยาวเหมือนศูนย์หน้าขี้โรคของบางทีม แต่ก็คุ้มจริงๆครับอาหารอร่อย หอยใหญ่ ไข่แดง แหล่ง… เอ้ยไม่ใช่แล้วออกแนวเพ้อเจ้อ กลับมาบ้านเลยฟิตอัพบล๊อกซะหน่อย จริงๆแล้วอยากเขียนถึงเรื่อง mushup mapservice กับ social network และเรื่อง NSDI 2.0 แต่ตอนนี้ขอเอาแค่เรื่องเดียวก่อน

       อยากหยิบยกตัวอยากโปรเจคหนึ่งที่เปิดให้ใช้บริการแล้วมาแนะนำกัน ผมไปเจอ EDTguide (Eat, Drink ,Travel) ที่ blog ของคุณ MacroArt ชื่อ blog http://www.googlemaps.in.th/ ซึ่งเขียนเรื่องเกี่ยวกับ google map โปรเจคแบบ EDTguide  เป็น webapplication ประเภท Social Network คล้ายๆกับ Yelp, city8 หรือ mypunchbowl ที่ผมเคยเขียนถึงมาแล้ว แตกต่างกันที่ EDTguide นั้นเป็นของคนไทยเพื่อคนไทย เน้นไปที่ร้านอาหาร, ร้านนั่งดื่มและสถานที่ท่องเที่ยว (ไม่มีอาบอบนวดนะ) รวมถึงที่พักแรมด้วยครับ โดยผู้ใช้สามารถมาปักหมุด ร้านหรือสถานที่ที่โดนใจได้ และก็สามารถ share รูปภาพ,ข้อมูล รวมถึงรายละเอียดต่างๆ(ราคาและบริการ)ได้อีกด้วย โดยข้อมูลก็จะแสดงทั้งในรูปของแผนที่บน GoogleMap และข้อมูลประกอบบนกล่องข้อความ นอกจากนี้ยังมีในส่วนของการค้นหาสถานที่ และสามารถค้นหาได้ละเอียดสุดก็คือชื่อ ถนน ชื่อหมู่บ้านและ landmark  แต่ต่างจังหวัดอาจจะมีข้อมูลไม่มากเท่ากรุงเทพ

111

       ผมลองเข้าไปหาร้านอาหาร และร้านกาแฟดูแล้วก็ ok ใช้ได้ครับแต่หลังจากเล่นไปสักพักก็เกิดไอเดีย อยากช่วยคิดต่อ(ด้วยเจตนาดี) ผมจึงขอเสนอแนะไอเดียเพิ่มเติมเพื่อว่าพี่ๆน้องๆที่จะทำ project แนวนี้จะได้เอาไปทำต่อกัน

       1. ปักหมุดไม่ตรงตำแหน่ง

               ผมรู้สึกว่าการรายงานข้อมูลร้านอาหารหรือสถานที่ท่องเที่ยว ยังมีผิดที่ผิดตำแหน่งบ้าง ดังนั้นผมขอเสนอการนำเอง Geotagging ไปใช้ ปัจจุบันมือถือหรือ pocket pc ส่วนมากจะมี GPS และถ่ายรูปได้อยู่แล้ว โดยเฉพาะรุ่นใหม่ๆ จะมี software รองรับ geotagging คือสามารถถ่ายภาพและ embed ค่าพิกัดจาก GPS เข้ามายังภาพได้ทันทีผ่านทาง EXIF ดังนั้นถ้า application รองรับการ upload ข้อมูลภาพที่สามารถอ่าน exif ได้ท่านก็สามารถได้ทั้งภาพและค่าพิกัดของร้านอาหารหรือสถานที่ท่องเที่ยวที่ถูกต้องกว่าการปักหมุดได้ทันที นอกจากนี้ยังอำนวยความสะดวกผู้ใช้ในแง่การกำหนดตำแหน่งด้วยครับ

       ทำอย่างไงล่ะ…

               เดี่ยวจะโดนถากถางว่าพูดอย่างเดียวไม่รู้ว่าทำได้หรือไม่ดังนั้นผมจึงมี solution มาแนะนำด้วย เข้าอ่านได้ที่

http://emap.wordpress.com/2008/09/30/online-geotagging-application/

       2. รู้ตำแหน่ง แต่หาไม่เจอทำไงดี

               บางทีกรุงเทพ ตรอกซอกซอยก็เยอะ หรือถ้าเป็นต่างจังหวัดก็อาจจะไปไม่ถูก ดังนั้นฟีเจอร์ navigation ก็น่าสนใจไม่น้อยในการผนวกไปบน application ผลลัพธ์อาจจะแสดงเป็นแผนที่หรือข้อมูล KML ที่ load ไปเปิดบน map application บน pocket PC หรือ smart phone ได้ ขับรถไป เปิดดูแผนที่ไปถึงชัวร์ ฟันธง…

        ทำอย่างไงล่ะ…

               จริงๆเอาแบบง่ายๆก็ใช้ Google direction ที่สามารถ solve หาเส้นทาง(Route) จากตำแหน่งปัจจุบันของเราได้ หรืออยากจะ implement ให้ advance กว่านั้นก็ดู sourcecode ตัวอย่างของ OPTIMAP ได้ครับ

http://emap.wordpress.com/2008/09/30/optimap/

http://emap.wordpress.com/2008/09/30/optimap/

 

 

 

       3. ไปแล้วอยากไปอีก หรือมีโปรโมชั่นเด็ดแนะนำ

               บางครั้งผู้ให้บริการ ร้านอาหาร โรงแรม อาจจะมีโปรโมชั่นใหม่ เช่น นาทีละ 5 บาท หรือแจ้งข่าวอื่นๆ ฟีเจอร์ของ RSS หรือ GEORSS ก็ไม่เลวนะครับ

       ทำอย่างไงล่ะ…

               Set up GEORSS Feed ซึ่งสามารถเขียน script ที่ดึงข้อมูลจากฐานข้อมูลบนระบบได้ แล้วแสดงผลลัพธ์บนแผนที่ Google Map ได้ทันทีเพราะ Google Map ก็ support การแสดงผลข้อมูลไดนามิคจาก GeoRSS ได้

http://emap.wordpress.com/2008/10/25/georss-on-whereyougonable/

http://emap.wordpress.com/2008/10/14/georss/

http://emap.wordpress.com/2008/08/19/xml-based-spatial-data-format/

code: https://secure.mysociety.org/cvstrac/rlog?f=mysociety/gny/includes/geoRSS.php

http://spindrop.us/2006/04/26/easy_yahoo_maps_and_georss_with_symfony/

 

 

      4. ร้านไหน Hot รู้ได้ไง

              คำถามนี้เกิดบ่อยครับ ผมเองก็มีประสบการณ์จาก webbord หลายที่ครับ ตัวผมเองก็เป็นสมาชิกใน bord ของพันธ์ทิพย์ การคอมเมนต์หรือการโพส สถานที่ท่องเที่ยว ร้านอาหาร บ้างครั้งก็มีคอมเมนต์มากมาย บ้างก็ว่าดี บ้างก็ว่าแย่ การตัดสินใจเลือกหาที่ดินเนอร์ เลยอาจจะไม่ง่ายนักครับ โดยเฉพาะสำหรับผู้ใช้ที่มีเวลาน้อย ประกอบกับมีนิสัยเป็นอาร์ทตัวแม่ ผมเลยของเสนอเทคนิค heatmap การแสดงผลคะแนนหรือความนิยมของ ร้านอาหาร สถานที่ต่างๆบนแผนที่ ซึ่งช่วยให้ดูและเข้าใจได้ง่ายภายใต้ concept ที่ว่า “Where is Hot”

          ทำอย่างไงล่ะ…

               ไม่อยากครับ ก็เก็บข้อมูลที่โหวต ร้านอาหาร หรือที่ท่องเที่ยวต่างๆ ผ่าน social network (webbord, comment, poll) ของ EDTguide แล้วก็นำข้อมูลมา interpolate แล้วแสดงบนแผนที่ Google Map โดยมี application ง่ายๆที่สร้าง heatmap อยู่แล้ว แต่ถ้าจะให้ยืดหยุ่นก็ต้องเขียน code เองให้ดึงข้อมูลไดนามิกจาก database

ทดลองสร้าง heatmap ผ่าน webapi ที่ http://imagine-it.org/google/geoiqmap.html

http://www.heatmapapi.com

http://maps.forum.nu/gm_heatmap.html

http://code.google.com/p/gheat/

http://research.microsoft.com/apps/pubs/default.aspx?id=69446

 

12

 

         สุดท้ายท้ายสุดอยากส่งเสริมให้มีการนำเอาข้อมูลเชิงพื้นที่ประเภท Map API แบบนี้ไปใช้งานเยอะๆครับ ปัจจุบันทางภาคธุรกิจก็เริ่มจะสนใจมากขึ้นแล้ว สังเกตุได้จาก email ที่เข้ามาปรึกษากับผมมีทั้งที่มาจากนักศึกษาที่เรียนด้าน MBA หรือกลุ่มที่ทำ realestate การใช้งานมากๆจะได้มีแรงผลักดันให้มีการพัฒนา Map API ต่อไปโดยเฉพาะในเรื่องของการปรับปรุงข้อมูลต่างๆให้ทันสมัย(ถ้าเมืองไทยใช้มากๆ Google หรือ Microsoft อาจจะลงทุนซื้อ POI ปีล่าสุดมา update ให้ก็ได้) และการเปิดเสรีในการนำข้อมูลเชิงพื้นที่ต่างๆไปใช้ในรูปแบบต่างตอบแทนเช่น การขาย transaction ในการเรียกดูข้อมูลแผนที่หรือการค้นหาข้อมูลตำแหน่งต่างๆ ในยุค web 2.0 จริงๆเมืองไทยเรามีการสำรวจและเก็บข้อมูลไว้หมดแล้วครับ โดยเฉพาะในกรุงเทพทั้ง บ้านเลขที่ แปลงที่ดิน POI ต่างๆ เก็บแม้กระทั่งตำแหน่งเสาไฟฟ้า แต่การนำมาใช้ประโยชน์ในภาคธุรกิจยังมีน้อยเมื่อเทียบกับต่างประเทศ แต่ยังไงผมก็ยังหวังว่าสักวันเราจะมีข้อมูลเชิงพื้นที่ซึ่งเป็น infrastucture ให้ใช้กันในอนาคต สำหรับท่านที่พัฒนา application แนวนี้มีเทคนิคดีๆก็สามารถแลกเปลี่ยนกันได้ครับ


Garmin&Asus

กุมภาพันธ์ 9, 2009

          มาเดี่ยวอาจจะไม่รุ่ง มาคู่น่าจะแรงกว่าล่าสุดเปิดตัวการ co-branded ระหว่าง Garmin และ Asus ภายใต้แบรนด์ Garmin-Asus เป็น smartphone อีกตัวที่น่าจับตามองครับ เพราะทั้งคู่ต่างมีจุดเด่นในเทคโนโลยีอยู่แล้ว โดยรุ่นแรกที่จะเปิดตัวคือ Nuvifone G60 ส่วน OS ยังไม่ได้เปิดเผยครับ อาจจะเป็นไปได้ทั้ง Android และ Window Mobile  แต่ดูเหมือนจะเป็น Window Mobile มากกว่าเนื่องจากเป็น platform หลักในปัจจุบัน

          สิ่งหนึ่งที่เห็นได้ชัดคือปัจจุบัน GPS กลายเป็นฟีเจอร์หลักใน smartphone ไปแล้ว ด้วยราคามือถือ 20000 กว่าๆก็สามารถจับจองเป็นเจ้าของได้แล้ว ยิ่งในอนาคตเครือข่าย 3G พร้อมที่จะให้บริการ การพัฒนา application หรือ mobile content ที่เกี่ยวข้องกับสารสนเทศเชิงพื้นที่ยิ่งน่าจะพัฒนาไปมากขึ้น การใช้ GPS อาจจะเข้ามาอยู่ร่วมกับ Mobile application อาจจะไม่เพียงแค่ Navigation หรือ LBS ทั่วไปแต่อาจจะพัฒนาไปสู่ application ใหม่เช่น Social network Content ก็เป็นไปได้

 

อ่านรายละเอียดเพิ่มเติมที่

http://i.gizmodo.com/5145954/garmin-and-asus-join-mobile-forces-launch-co+branded-nuvifone-line

 

 


Google Earth 5 – Video Showcase

กุมภาพันธ์ 9, 2009

          เขียนถึง Google Earth 5 มีหลายคนเข้ามาแลกเปลี่ยนถึง GE เวอร์ชั่นใหม่ ทั้งเรื่องการใช้งานและการนำไปพัฒนาต่อยอด แต่ก็มีไม่น้อยครับที่ยังไม่ได้ update เปลี่ยนไปใช้วันนี้ผมเลยนำ clip จาก GoogleEarth Blog มาแนะนำ

-Google’s official announcement video: บทแนะนำตัวว่า GE 5.0 มีอะไรใหม่

 

-Google Earth 5’s Ocean : 3D มุมมองใต้น้ำ

 

- Google Earth 5’s Mars feature : พาเดินเล่นชิวๆชมดาวอังคาร

 

- Google Earth historical imagery: Timing Imagery on Google Earth

 

- Google Earth Tour: Feature การสร้าง Screen Capture บน Google Earth

 

 


Python NMEA

กุมภาพันธ์ 9, 2009

            จากความเดิมตอนที่แล้ว กลัวว่าจะไม่เห็นภาพ ผมเลยนำ code ตัวอย่างภาษา python มาให้ดูครับ จริงๆแล้วไม่มีอะไรซับซ้อนเลยเป็นแค่การสร้างตัว parser ข้อมูล text ธรรมดาเอง หัวใจคือการเข้าใจ sentence ของ NMEA ครับ

class GPGGAParser(object):
 import logging
 
 def __init__(self, sentance):
  import time, logging
  
  logging.debug(“GPPGAParser started”)
  logging.debug(“Trying to parse: “+sentance)
  (self.format,
   self.utc,
   self.latitude,
   self.northsouth,
   self.longitude,
   self.eastwest,
   self.quality,
   self.number_of_satellites_in_use,
   self.horizontal_dilution,
   self.altitude,
   self.above_sea_unit,
   self.geoidal_separation,
   self.geoidal_separation_unit,
   self.data_age,
   self.diff_ref_stationID) = sentance.split(“,”)

  latitude_in=float(self.latitude)
  longitude_in=float(self.longitude)
  if self.northsouth == ‘S’:
   latitude_in = -latitude_in
  if self.eastwest == ‘W’:
   longitude_in = -longitude_in

  latitude_degrees = int(latitude_in/100)
  latitude_minutes = latitude_in – latitude_degrees*100
  
  longitude_degrees = int(longitude_in/100)
  longitude_minutes = longitude_in – longitude_degrees*100
  
  self.latitude = latitude_degrees + (latitude_minutes/60)
  self.longitude = longitude_degrees + (longitude_minutes/60)
  
  self.timeOfFix = time.strftime(“%H:%M:%S”, time.strptime(self.utc.split(“.”)[0],”%H%M%S”))
  self.altitude = float(self.altitude)
  logging.debug(“GPPGAParser finished”)


NMEA Sentence

กุมภาพันธ์ 9, 2009

                   คำถามที่ผมถูกถามบ่อยเกี่ยวกับ GPS ก็คงเป็นเรื่องของการเขียนโปรแกรมเพื่อไปรับ streaming data จาก GPS โดยเฉพาะใน application ประเภท GPS Tracking หลายท่านที่ทำ application ด้านนี้อาจจะไม่รู้จักหรือไม่คุ้นเคยทำให้คิดว่ายาก จริงๆแล้วไม่ยากเลยครับ ปัจจุบัน GPS ราคาถูกลงมาก หลายท่านอาจจะไม่รู้สึกนักแต่สำหรับผมหรือคนที่เคยใช้เครื่อง GPS แบบ handheld ราคาเครื่องละ 50000 มาก่อนอาจจะสัมผัสได้ จริงๆแล้ว GPS มีหลายแบบ หลายรุ่นตั้งแต่ราคาหลักหมื่นถึงหลักล้าน ที่สำคัญการเรียนรู้ด้าน GPS ก็เป็นอีกศาสตร์ที่มีรายละเอียดและองค์ความรู้ให้เราได้ศึกษากันมากมาย โดยเฉพาะเรื่องการรังวัดขั้นสูง การใช้งาน GPS ก็มีแพร่หลายทั้งที่อยู่ในรูปแบบ navigation และแบบที่อยู่บนมือถือ เรียกว่า GPS กลายเป็นฟังก์ชั่นหนึ่งของมือถือและ Pocket PC ไปแล้ว ดังนั้นจุดนี้จึงน่าจะเป็นอีกช่องทางในการพัฒนา application ปัจจุบันในเมืองไทยยังถือว่าน้อยเมื่อเทียบกับต่างประเทศ

                    ที่นี้ก็มาถึงเรื่องของ NMEA Sentence หลักการการทำงานของ mobile application ผมไม่ขอลงรายละเอียดนะครับ หลักๆก็คือการ connect กับ COM Port ที่ต่อกับ GPS จากนั้นก็เขียนโปรแกรมไปพาส streaming data ที่ได้ โดยทั่วไป GPS แถบจะทุกรุ่นมักจะใช้โปรโตคอลมาตรฐานคือ NMEA(NMEA 0183) ที่พัฒนาโดย National Marine Electronics Association (NMEA) ในตัว NMEA มีรายละเอียดและชนิดsentencesย่อยไปตามประเภทการใช้งาน แต่โดยรวมจะเก็บ infomation หลักๆของ GPS ไว้ เช่น position, velocity, time, DOP และอื่นๆ ปัจจุบันที่ใช้งานกันอยู่คือ NEMA 2.0-2.3 มีเพิ่ม message บางส่วนเกี่ยวกับ DGPS เข้ามา ที่ต้องเข้าใจคือ GPS แต่ล่ะยี่ห้องจะ support โปรโคอลของ NMEA ที่ต่างกัน มากบ้างน้อยบ้างตามการใช้งานดังนั้นก่อนพัฒนาต้องทราบรายละเอียดในจุดนี้ก่อน เช่น SiRF chipset รองรับ GPGGA, GPGLL, GPGSA, GPGSV, GPRMC, และ GPVTG รายละเอียดเหล่านี้อ่านได้จาก specification ของ NEMA ครับ ด้านล่างเป็นตัวอย่างประเภทของ Sentence บน NMEA

AAM – Waypoint Arrival Alarm
ALM – Almanac data
APA – Auto Pilot A sentence
APB – Auto Pilot B sentence
BOD – Bearing Origin to Destination
BWC – Bearing using Great Circle route
DTM – Datum being used.
GGA – Fix information
GLL – Lat/Lon data
GSA – Overall Satellite data
GSV – Detailed Satellite data
MSK – send control for a beacon receiver
MSS – Beacon receiver status information.
RMA – recommended Loran data
RMB – recommended navigation data for gps
RMC – recommended minimum data for gps
RTE – route message
VTG – Vector track an Speed over the Ground
WCV – Waypoint closure velocity (Velocity Made Good)
WPL – Waypoint information
XTC – cross track error
XTE – measured cross track error
ZTG – Zulu (UTC) time and time to go (to destination)
ZDA – Date and Time
HCHDG – Compass output
PSLIB – Remote Control for a DGPS receiver

                     GPS เป็นการรังวัดค่าพิกัดบน Geodetic Coordinate system บน ellipsoid WGS84 ซึ่งค่าความสูงที่ได้เป็น Ellipsoidal Height ไม่ใช้ความสูงเหนือ Geoid หรือเหนือน้ำทะเลปานกลางนะครับ รายละเอียดเบื้องต้นเหล่านี้เป็นส่วนที่ผู้พัฒนา GPS Application ต้องทราบ เพื่อให้เห็นภาพผมขอยกตัวอย่างชุดโปรโตคอลที่ใช้งานบ่อยคือ GPGGA เป็นส่วนที่เก็บข้อมูลสำคัญจากดาวเทียม GPS

                     $GPGGA,161229.487,3723.2475,N,12158.3416,W,1,07,1.0,9.0,M,,,,0000*18

Name Example Units Description
Message ID $GPGGA   GGA protocol header
UTC Time 161229.487   hhmmss.sss
Latitude 3723.2475   ddmm.mmmm
N/S Indicator N   N=north or S=south
Longitude 12158.3416   dddmm.mmmm
E/W Indicator W   E=east or W=west
Position Fix Indicator 1   See Table 1-4
Satellites Used 7   Range 0 to 12
HDOP 1   Horizontal Dilution of Precision
MSL Altitude 9 meters
Units M meters
Geoid Separation   meters
Units M meters
Age of Diff. Corr.   second Null fields when DGPS is not used
Diff. Ref. Station ID 0000
Checksum *18
<CR> <LF>     End of message termination

 

                         GPS บางรุ่นก็ใช้ GPRMC(Recommended Minimum Specific GNSS Data) ซึ่งสั้นกว่า

$GPRMC,161229.487,A,3723.2475,N,12158.3416,W,0.13,309.62,120598,,A*10

                        เมื่อเข้าใจรายละเอียดการเขียนโปรแกรมไป parse ชุดข้อมูลก็ไม่ยากแล้วใช่ไหมครับ สำหรับรายละเอียดเพิ่มเติมเข้าไปอ่านได้ที่ http://www.digitalmobilemap.com/index.php?slug=nmea-sentence เขียนอธิบายไว้ได้อย่างละเอียดและมียกตัวอย่าง output จาก GPS รุ่นต่างๆด้วย

1-copy

 


web coordinate transform

กุมภาพันธ์ 8, 2009

            นั่งเขียนโปรแกรม Coordinate transform อยู่ครับ เลยนึกขึ้นได้ถึงโปรเจคเก่าเก็บที่เคยทำเมื่อ สองปีที่แล้ว เลยลุกขึ้นมาเขียนเรื่อง web coordinate transform หลายคนอาจจะคุ้นเคยกับเรื่องการแปลง datum และการแปลงระบบพิกัดด้วยโปรแกรม GIS ซึ่งก็ไม่ได้มีขั้นตอนอะไรที่ยุ่งยากนัก แต่จริงๆแล้วเบื้องหลังการทำงานนั้นซับซ้อนนัก มีตั้งแต่ขั้นเทพที่ใช้ leastsqure ในการวน loop จนถึงแบบ Closed form ที่ใช้กัน

            การทำ Web GIS Application หนี้ไม่พ้นที่จะต้องศึกษาเรื่องนี้ เช่น กรณีที่นำข้อมูลค่าพิกัดจาก GPS (Geodetic WGS84 ) มาใช้กับแผนที่ภาพถ่ายดาวเทียม( UTM WGS84) หรือจะเป็นกรณีที่ web application สามารถทำ on the fly projection ก็ต้องใช้เทคนิคพวกนี้เช่นกัน วันนี้ผมมีไลบารีชนิด opensource มาแนะนำครับ Proj4 เป็นไลบารีชื่อดังที่อยู่เบื้องหลังโปรแกรมดังๆหลายตัวปัจจุบันมีเวอร์ชั่น javascript (OOP) แล้ว การใช้งานก็ง่ายแถมลดเวลาในการมานั่งเขียน code ในส่วนนี้อีกด้วย พัฒนาและดูแลโดย MetaCRS นอกจากนี้ยังมีส่วนขยายที่รองรับมาตรฐาน WCTS (OGC Web Coordinate transform System) เข้าไปดาวน์โหลดมาใช้งานได้ที่ http://trac.osgeo.org/proj4js/

<script src="http://svn.osgeo.org/metacrs/proj4js/trunk/lib/proj4js-compressed.js"></script>
...

var x = 100.0;
var y = 12.0;
var c = new Proj4js.Point(x,y);
Proj4js.transform(new Proj4js.Proj("EPSG:4326"), new Proj4js.Proj("EPSG:24047"), c);
alert(c.x + " " + c.y);


Bluetooth GPS simulator

กุมภาพันธ์ 7, 2009

             เมื่อสองสามวันที่แล้วมีโอกาสไปโม้เรื่อง GPS Navigation และการทำ GPS tracking ให้นักศึกษาที่มหิดลฟัง โดยน้องเค้าอยากทำโปรเจคที่เกี่ยวกับระบบ GPS Tracking โดยรายละเอียดไม่ขออธิบายนะครับ เดี่ยวจะเป็นการเสียมารยาท แต่โปรเจคน้องเค้าน่าสนใจดี ผมชอบคุยกับคนที่อยากทำอะไรมากมายแบบนี้จัง คุยและแลกเปลี่ยนแล้วมันมีไฟ นึกถึงตอนที่ตัวเองเพิ่งเริ่มทำงานใหม่ๆอะไรก็อยากทำ อะไรก็อยากเรียนรู้ แต่เดี่ยวนี้รู้สึกเริ่ม bias ทำงานมากแล้วคิดมากคิดโน้นคิดนี้ คิดไปถึงคุ้มไม่คุ้ม สำเร็จไม่สำเร็จ แต่น้องๆเหล่านี้มีไฟดีครับคิดเต็มที่ ไอเดียกระฉูด ผมเองได้แต่นั่งฟังไม่อยากขัด ในใจก็เป็นห่วงว่ามันจะทำเสร็จไหม แต่ไม่อยากขัดเดี่ยวไฟจะมอดพากันฝ่อไปเปล่าๆ ไปครั้งนี้ก็เตรียมเอา opensource โปรเจคประมาณนี้หลายตัวไปแนะนำ เพื่อจะได้ลดภาระการเขียนโปรแกรมลง งานสนทนากลุ่มเล็กแบบนี้ผมชอบจริงๆครับได้เจอคำถามใหม่ๆเยอะดี น้องๆคนไหนที่อยากทำโปรเจคประมาณนี้ลอง mail มาคุยกันได้จะรวมกลุ่มแล้วมาคุยกันก็ได้ ถ้าเป็นโปรเจคนักศึกษาหรือ thesis ให้คำปรึกษาฟรีครับไม่มีค่าใช้จ่ายอะไร เอาความตั้งใจมาก็พอ

           เข้าเรื่องสักหน่อยสืบเนื่องจากคำถามที่ได้รับ หลังจากลองค้นก็ไปเจอ code ของ    Bluetooth GPS simulator ภาษา Java  อธิบายง่าก็คือ มันจะจำลองตัวเองเป็น Bluetooth GPS receiver บนเครื่องมือถือ J2ME phone โค้ดนี้รองรับ protocol แบบ NMEA sentence ใช่สำหรับมือใหม่ที่อยากพัฒนา application แต่ยังไม่มี GPS ที่สำคัญไม่ต้องมานั่งรอสัณญาณ GPS เวลาทดสอบโปรแกรม code นี้มาจาก www.digitalmobilemap.com

/*————————————————–
* BlueGPS.java
*
*————————————————-*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.util.*;
import javax.bluetooth.*;
import javax.microedition.io.*;
import java.io.*;
public class BlueGPS extends MIDlet implements Runnable
{
private Display display; // The display
private TestCanvas canvas; // Canvas

LocalDevice localDevice;
ServiceRecord serviceRecord;

StreamConnectionNotifier notifier = null;
StreamConnection conn = null;
private static final UUID L2CAP_UUID = new UUID(256L); // simulate L2CAP service provided by real bluetooth GPS receiver.
private static String serverUrl = “btspp://localhost:” + L2CAP_UUID + “;authorize=false;encrypt=false”; // simulate no authorize and no encrypt required by real bluetooth GPS receiver.
OutputStream output;
InputStream input;

String[] sentence;
// Time in ms to wait until send next NMEA Sentence.
private static final long BREAK = 400;

public BlueGPS()
{
display = Display.getDisplay(this);
canvas = new TestCanvas(this);
display.setCurrent(canvas);
}

protected void startApp()
{
new Thread(this).start();
}

public void run()
{
DataInputStream in;
int i = 0, numSentence = 0;
String str;
long time;

canvas.message = “Starting BlueGPS…”;
canvas.paintScreen();

try
{
conn = null;
localDevice = LocalDevice.getLocalDevice();
localDevice.setDiscoverable(DiscoveryAgent.GIAC);
notifier = (StreamConnectionNotifier)Connector.open(serverUrl);
}
catch (BluetoothStateException e)
{
canvas.message = e.getMessage();
canvas.paintScreen();
return;
}
catch (IOException e)
{
canvas.message = e.getMessage();
canvas.paintScreen();
return;
}

numSentence = 18; // number of sentences
sentence = new String[numSentence];

// real bluetooth GPS recevier send a lot of different sentence types
// I only simulate 3 important sentence types:
// $GPGSA – GPS DOP and active satellites. This sentence provides details on the nature of the fix
// $GPGGA – Essential fix data which provide 3D location and accuracy data
// $GPRMC – Recommended Minimum Sentence C which provide essential gps pvt (position, velocity, time) data.
// you can modify these NMEA sentences as you wish
// you read more detail about NMEA sentence types hereNMEA sentences

sentence[0] = “$GPGSA,A,3,04,05,,09,12,,,24,,,,,2.5,1.3,2.1*39″;
sentence[1] = “$GPGGA,123519,0117.349,N,10350.488,E,1,08,0.9,545.4,M,46.9,M,,*47″;
sentence[2] = “$GPGGA,123519,0117.358,N,10350.495,E,1,08,0.9,545.4,M,46.9,M,,*47″;
sentence[3] = “$GPRMC,130843,A,0117.3740,N,10350.5070,E,005.0,315.0,011206,000.0,E*6F”;
sentence[4] = “$GPRMC,130844,A,0117.3890,N,10350.5190,E,005.0,315.0,011206,000.0,E*68″;
sentence[5] = “$GPRMC,130845,A,0117.3960,N,10350.5290,E,005.0,315.0,011206,000.0,E*69″;
sentence[6] = “$GPRMC,130846,A,0117.3980,N,10350.5420,E,005.0,315.0,011206,000.0,E*6A”;
sentence[7] = “$GPRMC,130847,A,0117.3970,N,10350.5460,E,005.0,315.0,011206,000.0,E*6B”;
sentence[8] = “$GPRMC,130848,A,0117.3940,N,10350.5640,E,005.0,315.0,011206,000.0,E*64″;
sentence[9] = “$GPRMC,130849,A,0117.3710,N,10350.6080,E,005.0,315.0,011206,000.0,E*65″;
sentence[10] = “$GPRMC,130850,A,0117.3420,N,10350.6470,E,005.0,315.0,011206,000.0,E*6D”;
sentence[11] = “$GPRMC,130851,A,0117.3200,N,10350.6740,E,005.0,315.0,011206,000.0,E*62″;
sentence[12] = “$GPRMC,130852,A,0117.2900,N,10350.7060,E,005.0,315.0,011206,000.0,E*6C”;
sentence[13] = “$GPRMC,130853,A,0117.2670,N,10350.7310,E,005.0,315.0,011206,000.0,E*6D”;
sentence[14] = “$GPRMC,130854,A,0117.2510,N,10350.7620,E,005.0,315.0,011206,000.0,E*6F”;
sentence[15] = “$GPRMC,130855,A,0117.2690,N,10350.7800,E,005.0,315.0,011206,000.0,E*68″;
sentence[16] = “$GPRMC,130856,A,0117.2930,N,10350.8010,E,005.0,315.0,011206,000.0,E*69″;
sentence[17] = “$GPRMC,130857,A,0117.3170,N,10350.8210,E,005.0,315.0,011206,000.0,E*6A”;

try
{
canvas.message = “Waiting to send…”;
canvas.sentence = sentence[0];
canvas.paintScreen();
conn = notifier.acceptAndOpen();
output = conn.openOutputStream();
}
catch (IOException e)
{
canvas.message = e.getMessage();
canvas.paintScreen();
}

i = 0;
while (true)
{
try
{
canvas.message = “Waiting to send…”;
canvas.sentence = sentence[i];
canvas.paintScreen();

output.write(sentence[i].getBytes());
// simulate carry return character
output.write(13);
output.write(10);
output.flush();
}
catch (IOException e)
{
canvas.message = e.getMessage();
canvas.paintScreen();
}

try
{
Thread.sleep(BREAK); // wait for a while before send next sentence
}
catch (Exception e) {}

if (i < numSentence – 1)
i++;
else
i = 0;
} // while (true)
}

protected void pauseApp() { }

protected void destroyApp( boolean unconditional ) { }

public void exitMIDlet()
{
destroyApp(true);
notifyDestroyed();
}
}

/*————————————————–
* Class TestCanvas
*
*————————————————-*/
class TestCanvas extends Canvas implements CommandListener
{
private BlueGPS midlet;
public String message;
private int width, height;
String sentence;

/*————————————————–
* Constructor
*————————————————-*/
public TestCanvas(BlueGPS pmidlet)
{
midlet = pmidlet;
setFullScreenMode(true);
width = getWidth();
height = getHeight();
message = new String();
sentence = new String();
setCommandListener(this);
}

public void paintScreen()
{
repaint();
serviceRepaints();
}

/*————————————————–
* Paint canvas
*————————————————-*/
protected void paint(Graphics g)
{
g.setColor(0xCCFFCC);
g.fillRect(0, 0, width, height);

g.setColor(0×0000FF);
g.drawString(message,0,g.getFont().getHeight()*1,g.BASELINE|g.LEFT);
g.drawString(sentence,0,g.getFont().getHeight()*2,g.BASELINE|g.LEFT);
g.drawString(“Press any key to exit”,0,g.getFont().getHeight()*3,g.BASELINE|g.LEFT);
}

protected void keyPressed(int key)
{
midlet.exitMIDlet();
}

public void commandAction(Command c, Displayable d) {}

}

 

การใช้งานก็ง่ายครับ

1. สร้าง project BlueGPS ทำการ settings :

JSR082: true
JSR172: false
JSR177: false
JSR179: false
JSR184: false
JSR211: false
JSR75: false
MMAPI: false
WMA0: true
WMA1.1: false
WMA2.0: false
configuration: CLDC1.0
platform: CUSTOM
profile: MIDP2.0

 

2.  Copy source code ข้างบน และทำการ save ชื่อ BlueGPS.java

3. Open BlueGPS.java และแก้ NMEA sentences สำหรับค่า latitude , longitude ที่เราต้องการ

5. Compile code สร้าง .jar file

6. Installและ run BlueGPS.jar บน มือถือ.

อ่านรายละเอียดเพิ่มเติมที่

http://www.digitalmobilemap.com/index.php?slug=bluetooth-gps-simulator-for-j2me-phone

 


QGIS 1.0 ‘Kore’

กุมภาพันธ์ 6, 2009

          QGIS 1.0 ออกแล้วครับ หลังจากที่ออกเบต้ามานาน เวอร์ชั่นนี้น่าสนใจตรงที่ว่ามีไลบารีหลายตัวได้มีการปรับปรุง เช่น GDAL และ OGR ส่งผลให้ประสิทธิภาพการทำงานของ QGIS ดีขึ้น มีการแก้ไข Bug เดิมทั้งสิ้น 265 bug รวมไปถึงการพัฒนา plug-in ใหม่ๆเช่น interpolation module

         ผมเองใช้ QGIS เป็น tool ในการ edit และแสดงผลข้อมูลจาก Postgis รู้สึกได้ชัดถึงความเร็วในการทำงานของ QGIS 1.0  นอกจากนี้มีการเพิ่งฟังก์ชั่นในส่วนของ GRASS Plug-in และมีการปล่อยชุด QGIS API ที่ stable ออกมาเพื่อให้นักพัฒนาสามารถพัฒนา extension หรือ plug-in ครอบบนตัวโปรแกรม QGIS ได้ โดยรองรับภาษา Python และ C++ , เพิ่มสัญลักษณ์ และการปรับปรุง GUI ต่างๆ โดยรวมนับว่าค่อนข้างดีเลยทีเดียวครับ ท่านที่สนใจสามารถไปดาวน์โหลดมาใช้งานได้ที่ http://download.qgis.org/downloads.rhtml

 

 หน้าตาของ GUI ใหม่ใน QGIS 1.0

 

 หน้าตาของ GUI ใหม่ใน QGIS 1.0

 อ้างอิงจาก

QGIS Blog

 


Google Earth 5 Released

กุมภาพันธ์ 6, 2009

             อาทิตย์นี้งานยุ่งไปหน่อยครับ ไม่ค่อยได้เข้ามา update blog เลยแต่จริงๆข่าวคราวใหม่ๆที่เกี่ยวกับเทคโนโลยีทางด้าน Geoinfomatic ก็เปลียนไปและก้าวไปเรื่อยๆ ทำให้พอวันนี้มีเวลาว่างต้องรีบกลับบ้านมานั่งเขียน blog ทันที ข่าวใหญ่คงเป็นเรื่องการเปิดตัวของ Google Earth5

             ตลอดสัปดาห์มีข่าวคราวและการพูดถึงอย่างมากจากนักพัฒนาสำนักต่างๆ เรียกว่าหลายกูรูก็ต่างลงความเห็นถึงเรื่องการเปลี่ยนแปลงครั้งใหม่ของ Google Earth ไม่เฉพาะแต่เรื่องเทคนิคของโปรแกรมเท่านั้นแต่มันรวมไปถึงเรื่องของนโยบายและแผนธุรกิจอีกด้วย โดยสรุปหลายสำนักพูดตรงกันว่า google ลงมาเล่นทางด้านนี้เต็มตัวแล้ว รวมไปถึงเรื่อง Time map หรือ Time Imagery ที่มีการขานรับจากหลายหน่วยงานในหลายประเทศ ที่มีการยกข้อมูลให้ google เพื่อใช้ในงานสาธารณะประโยชน์ โดยข้อมูลที่ส่งให้ก็สามารถผนวกรวมกับเทคโนโลยีของ google ได้ ตลอดจนการ update ข้อมูลไม่เพียงข้อมูลภาพถ่ายดาวเทียมรายละเอียดสูงจาก Geoeye2 ที่จะเริ่ม update หลังจากที่ดาวเทียมเริ่มบันทึกข้อมูล, รวมไปถึงข้อมูลถนน การขนส่ง (Transit Data) และอื่นๆ เดี่ยวโอกาสหน้าผมจะมาเล่าให้ฟัง วันนี้ขอเขียนเกี่ยวกับ software เวอร์ชั้นใหม่ก่อน Google Earth 5 มีการ update ทั้งข้อมูลและฟีเจอร์ต่างๆดังนี้

           ฟีเจอร์แรกเป็น Google Ocean  ของใหม่ที่มีการพูดถึงมานานแล้ว Google Ocean เป็นการเปิดประสบการณ์ใหม่พาผู้ใช้เข้าไปสัมผัสโลกใต้น้ำ โดยสามารถเดินดูข้อมูลสภาพภูมิประเทศใต้ทะเล ซึ่งมีเฉพาะบาง site ที่มีการสำรวจสภาพภูมิประเทศใต้ทะเลเท่านั้นและแน่นอนว่ายังไม่มีข้อมูลนี้ในส่วนของประเทศไทย ส่วนข้อมูลของ Ocean Suface ก็แสดงผลแบบ shade relief  นอกจากนี้ยังมีเอฟเฟค เพิ่มความตื่นเต้นให้กับผู้ใช้ด้วยคลื่นทะเลที่เคลื่อนที่

 

ภาพ Ocean Surface สวยงาม นั่งดูใน office แล้วอยากจะไปเที่ยวทะเลจัง

 

ภาพ terrain ใต้ท้องทะเลครับ

                ฟีเจอร์ที่สองเป็น Historical Imagery แสดงข้อมูลภาพถ่ายดาวเทียมแบบตามช่วงเวลาได้ ผู้ใช้สามารถใช้แถบ time slide ในการเลือกช่วงเวลาที่ต้องการดูข้อมูลได้ด้วย โดยไปที่  View > Historical Imagery 

                  3D Mar : เป็น 3D Terrain ของดาวอังคารและมีข้อมูลอื่นๆของ Mar ที่ได้จากการสำรวจด้วยดาวเทียม และมีภาพดาวเทียมรายละเอียดสูงของดางอังคารจาก HiRISE  รวมไปถึง anotaion ที่ต่างๆ โหมดนี้สุดยอดเลยครับเรียกว่าเหมือนกับได้มีโอกาสไปเที่ยดาวอังคารเลย

 

 

 

                  สุดท้ายเป็นฟีเจอร์ Recorded Tours ที่ให้ผู้ใช้สามารถ capture view ต่างๆบนโปรแกรม หรือจะ capture ข้อมูลการเดินทางรวมถึงการใส่ palce mark และ label สำหรับอธิบายและ สร้างเป็น KML โดยโปรแกรม Google Earth จะมีส่วนแสดงผลแบบภาพเคลื่อนไหว แต่ Mode ของ Recorded tours ไม่สามาถ record เป็นไฟล์ vdo ได้

 

 

             การ update โปรแกรม Google Earth ก็ง่ายนิดเดียวครับเข้าไปดาวน์โหลดโปรแกรมได้ที่ http://earth.google.com/ เท่านี้ก็ได้สนุกกับมุมมองใหม่ๆทั่วโลกแล้วครับ

 อ้างอิงจาก

 


Tele Atlas Mobile Mapping Van in thailand

กุมภาพันธ์ 5, 2009

       เมื่ออาทิตย์ก่อนได้แวะไปงานเปิดตัวรถสำรวจแบบ Mobile Mapping ของบริษัท Teleatlas มาครับ ทราบข่าวมาจากพี่ภาณุ จริงๆตั้งใจอยากไปดูเทคโนโลยี Mobile Mapping System ของบริษัทสำรวจระดับโลกอย่าง Tele Atlas (บริษัท Tele Atlas เป็นบริษัทในเครือของบริษัท TomTom N.V.) แบบใกล้ๆ เจ้ารถตู้แวนสีส้มสดใสแบบนี้ ผมเคยเขียนถึงไปแล้วรอบหนึ่งครับตอนที่เขียนเกี่ยวกับ Mobile Mapping Technology [http://emap.wordpress.com/2008/08/03/mobile-mapping-2/]คราวนี้มีโอกาสได้เห็นของจริง ต้องบอกว่าlสุดยอดอลังการไม่น้อยเลย ทางบริษัทก็ใจดีอนุญาติให้ผู้เข้าชมได้ทดลองนั่งรถและสาธิตการทำงานจริง โดยวิ่งเก็บข้อมูลบริเวณรอบๆโรงแรม แต่เสียดายงานนี้เป็นรอบ press เลยไม่มี technicial มาอธิบายรายละเอียดเชิงเทคนิคมากนัก ส่วนมากจะอธิบายรวมๆ ถึงนโยบายการนำไปใช้งานและเรื่องเกี่ยวกับโมเดลธุรกิจมากกว่า ซึ่งคงจะเป็นการกระตุ้นการเปลี่ยนแปลงในตลาด Navigation และระบบสารสนเทศที่เกี่ยวกับถนนได้ไม่น้อยทีเดียว สำหรับผมความน่าสนใจโดยเฉพาะการทำแผนที่และสำรวจข้อมูล มันคือการเปลี่ยนแปลงอีกยุคหนึ่งเลย เทคนิค Mobile Mapping การทำแผนที่จากรถสำรวจแบบนี้เมืองไทย ยังถือว่าเพิ่งเริ่มต้น แต่ต่างประเทศค่อนข้างจะ stable แล้วมีการทำเป็น product ขายเช่น ของ Trimble แต่ก่อนถ้าอยากจะได้ POI หรือข้อมูลพื้นฐาน เช่น ป้าย, เสาไฟฟ้า, ฝาท่อ ตามแนวถนนเร็วสุดอาจจะใช้ GPS RTK แต่ปัจจุบันถ้ามีรถสำรวจแบบนี้ก็สามารถเก็บข้อมูลได้เร็วกว่าเดิม

       เทคนิคการสำรวจแบบนี้ ทำให้เราสามารถได้ข้อมูล landmark ,poi ได้อย่างรวดเร็ว ด้วยจากการรังวัดบนภาพที่ได้จากกล้อง vdo ประสิทธิภาพสูง นอกจากนี้ Laser Scan (SICK) ยังสามารถนำข้อมูลมาสร้างเป็นแบบจำลอง สามมิติได้อีก โดยเฉพาะข้อมูลที่อยู่ตามแนวถนน ในแง่ application คงไม่ได้อธิบายมากเพราะหลายท่านได้เห็นตัวอย่างจาก Google Streetview มาแล้ว  (update ข่าว google streetview ก็เริ่มเข้ามาเก็บข้อมูลที่สิงค์โปรแล้วนะครับ คิดว่าไม่นานอาจจะแวะมาไทยก็ได้) ดูแนวโน้มแล้วอนาคตเทคโนโลยีแบบนี้น่าจะเติบโตและพัฒนาไปอีกมาก โดยเฉพาะในแง่ของราคาของระบบ ยิ่งถ้า GPS,IMU,Laser Scan และ กล้องถ่ายภาพ ถูกลงการนำเทคโนโลยีMObile Mapping มาใช้น่าจะแพร่หลายและสามารถนำมาใช้ในงานสำรวจข้อมูลมากขึ้น นอกจากนี้ก็สามารถนำไป apply กับงานต่างๆ เช่น ITS, LBS และสามารถนำข้อมูลฐานต่างๆที่ได้จากการสำรวจไปต่อยอดเป็นผลิตภัณฑ์และบริการอื่นๆได้

     รายละเอียดอื่นๆในงาน ท่านสามารถไปอ่านได้จาก link ด้านล่างครับ ผมเองคงไปเขียนซ้ำแต่อยากจะพาชมรถสำรวจของบริษัท tele atlas เพื่อท่านผู้อ่านจะได้สัมผัสถึงเทคโนโลยีระดับโลกกัน ปัจจุบัน Tele Atlas มีรถสำรวจแบบนี้เกือบ 50 คันทั่วโลก

 

11

ภาพรถสำรวจ อุปกรณ์ครบชุด มี GPS , LaserScan(3) และกล้องวิดีโอถ่ายแบบ sterio อีก 5 ตัว

2

ภาพรถตู้แวนก็เป็น เบนส์ป้ายแดง แจ่มสุดคือสามารถปรับตั้ง ระดับรถแบบอัตโนมัติ

5

Server และ Storage ที่ติดตั้งอยู่ด้านท้ายของรถแวน

 

IMU อุปกรณ๋สำคัญที่ช่วยเพิ่มความถูกต้องเชิงตำแหน่งจากการ GPS โดยเฉพาะกรณีที่วิ่งเก็บข้อมูลในเขตเมือง เมื่อไม่สามารถรับสัญญาณ GPS ได้

 

หน้าจอ ควบคุมระบบแบบอัตโนมัติ ทั้งระบบการถ่ายภาพและ laser ซึ่งจะสัมพันธ์กับการขับขี่รถของคนขับ

         รายละเอียดเกี่ยวกับข่าวและเทคโนโลยีรถสำรวจอัจฉริยะของ Tele Atlas สามารถอ่านได้เพิ่มเติมที่

http://www.gisdevelopment.net/news/viewn.asp?id=GIS:N_ordvewqkag

http://www.thaipr.net/nc/readnews.aspx?newsid=DFA586E7FD8F40665114591EE9497918&sec=&query=ysDSvg==

http://www.manager.co.th/CyberBiz/ViewNews.aspx?NewsID=9520000012333

 

ขอบคุณ พี่ภาณุ อุทัยศรี สำหรับรูปถ่ายของรถครับ

 


JGrass – Hydrological Modeling in Java

กุมภาพันธ์ 1, 2009

                 เมื่อสัปดาห์ก่อนผมมีโอกาสไปร่วมงาน International Conference Geoinfomatic technology for national disaster management งานนี้เป็นอีกงานที่พูดถึงการนำเทคโนโลยี Geoinfomatic เช่น GIS&RS&GPS&Photogrametry&LIDAR และอื่นๆมาใช้ในการรับมือและจัดการกับภัยพิบัติ มีนักวิจัยและหน่วยงานในหลายชาติมาพูดถึงการรับมือภัยพิบัติ มีหลายโปรเจคที่น่าสนใจงานนี้ผมมีโอกาสได้พูดคุยแลกเปลี่ยนระบบ พบว่าเทรนด์ของการนำ GIS ไปใช้ในการวางแผนและจัดการภัยพิบัติมีมากขึ้นแต่สิ่งหนึ่งที่หลายคนจากหลายชาติสรุปตรงกันคือ การขาดข้อมูลที่ทันสมัย รวมไปถึงปัญหาเรื่องการนำข้อมูลจากหลายๆหน่วยงานมาใช้ร่วมกัน

                  อีกสิ่งหนึ่งที่สังเกตุได้ก็คือ หลายๆประเทศโดยเฉพาะในแถบยุโรป ค่อนข้างตะหนักถึงเรื่องการรักษาทรัพยากรธรรมชาติ ซึ่งเป็นต้นเหตุของการเกิดภัยพิบัติมาก โดยเฉพาะเรื่องทรัพยากรน้ำ การจัดการน้ำดูจะเป็นเรื่องใหญ่ ทั้งการป้องกันเรื่องน้ำแล้งและน้ำท่วม แต่พอย้อนมองกับมาดูบ้านเราก็พบว่ายังต้องทำอะไรกันอีกมาก เพราะแล้งก็แล้งจัด น้ำท่วมก็ท่วมหนัก บ้านผมเองอยู่ใกล้แม่น้ำ น้ำก็ท่วมทุกปี ท่วมซ้ำซากจนกลายเป็นเรื่องปกติ แต่เชื่อผมเถอะว่าถ้าเลือกได้คงไม่มีใครอยากถูกน้ำล้อมรอบ บ้านเป็นเวลาหลายๆสัปดาห์มันไม่ใช่เรื่องสนุกเลย ขณะที่ภาคกลางบางส่วนน้ำท่วม ในปีเดียวกันภาคอีสานและภาคตะวันออกก็ต้องมีเรื่องขัดแย้งกันเพื่อแย่งชิงน้ำ ผมเคยอ่านเจอบทความหนึ่งใน NG ที่พูดเรื่องการจัดการน้ำของประเทศยุโรป โดยเค้าจ้างประชาชนในชนบทปลูกต้นไม้ โดยให้เป็นค่าดูแลรายปีที่สมน้ำสมเนื้อกับการดูแล จากนั้นก็นำต้นทุนนี้มาบวกกับค่าน้ำประปา เช่นอาจจะเพิ่มอีก 5 บาท/หน่วย แล้วนำ 5 บาทนั้นไปจ่ายให้กับชาวบ้านที่ปลูกป่า ปลูกต้นไม้ในโครงการ มีเงินหมุนเวียนในชนบท คนก็เข้ามาทำงานในเมืองหน่วยลง เกษตรกรสามารถนำเงินส่วนนี้มาหมุนลงทุนในภาคเกษตรได้ หรืออาจจะนำต้นไม้ที่ตัวเองมีเป็นสินทรัพย์ในการลงทุนหรือกู้ยืมได้อีกด้วย ส่วนคนในเมืองก็ไม่ต้องกังวลว่าจะไม่มีน้ำใช้เพราะป่าถูกทำลายหมดและเป็นผลดี สำหรับสิ่งแวดล้อม มีป่ามาก น้ำก็มากไม่แล้ว รากไม้ต้นไม้ช่วยเรื่องการฝังทะลายของดิน ช่วยอุ้มน้ำเมื่อฝนตกมาน้ำก็ไม่ไหลลงมาที่ราบหมด ส่วนประเทศก็จะมี Carbon credit สูงขึ้น แต่สิ่งพูดมาก็เริ่งเป็นจริงบางส่วนแล้วครับในเรื่องของธนาคารต้นไม้ ส่วนเรื่องอื่นดูแล้วยังห่างไกล

                 เขียนมาซะยาวจริงๆตั้งใจจะมาเล่าถึงโปรเจค JGrass ที่เป็น opensource software ที่ทำงานด้าน Hydrological Modeling บนระบบ GIS  ตัว JGrass เป็นโมดูลที่ทำงานบน UDIG Framework ซึ่งท่านที่มีการติดตั้ง uDig แล้วก็สามารถติดตั้ง plug-in ของ JGRASS เพิ่มเติมได้เลย JGRASS พัฒนาด้วยภาษา java โดยมีการนำ algoritm บางส่วนที่เกี่ยวกับ hydrology และ Raster analysis ใน GRASS มาใช้และมีการพัฒนาต่อ ซอฟท์แวร์ตัวนี้ดำเนินการและบำรุงรักษาโดย HydroloGIS สำหรับท่านที่สนใจสามารถเข้าไปดาวน์โหลดและใช้ศึกษาเพิ่มเติมได้ที่ http://www.jgrass.org/