My Sensor Web Project

ช่วงนี้กลับมาทำงานเกี่ยวกับ sensor web อีกรอบ จากปีที่แล้วเวลาส่วนใหญ่ไปกับ GPS Tracking และระบบ Fleet management ซึ่งทำให้ผมมีโอกาสเรียนรู้ เรื่อง Data Management ค่อนข้างมาก เพราะ GPS Tracking ต้องติดตามข้อมูลจากกลุ่มรถจำนวนมาก และเก็บข้อมูลทุกๆ 30 วินาที ทำให้ Database Server ค่อนข้างใหญ่ (ปัจจุบันมีกว่า 5 ล้านเรคคอร์ด) ซึ่งทำให้ต้องมีการพัฒนา script เพื่อบริหารจัดการข้อมูล บำรุงรักษา และเพิ่มประสิทธิภาพในการเข้าถึงเช่น การทำ Temporal indexing เป็นต้น

multi-geometry generalization

มีคนโทรมาปรึกษาเรื่องการทำระบบ Spatial Database สำหรับงานการบริหารการใช้ที่ดินที่หนี้ไม่พ้นการเก็บข้อมูล  landuse อันต้องสร้างจากการแปลภาพถ่ายทางอากาศหรือภาพถ่ายดาวเทียม แน่นนอนว่าถ้าท่านที่เคยทำงานด้านนี้จะพบ ว่าข้อมูล landuse เป็นข้อมูลที่มีความซับซ้อนของ polygon ที่มากในรูปแบบ muti polygon จำนวนมาหาศาล ยิ่งต้องมาใช้ทำงานหรือเปิดดูข้อมูลภาพยิ่งช้า นี้ยังไม่นับการนำมาใช้ทำระบบ map service ที่ต้องแสดงข้อมูลที่มีความละเอียดสูง วันนี้ผมมีเทคนิคการประมวลผลข้อมูลพวกนี้ผ่าน database มาแนะนำครับ

Spatial Database Replication with Slony-I

มีคนมาปรึกษาเรื่องการพัฒนาระบบ Clearing House โจทย์ยากกว่าปกติตรงที่เป็นเรื่องของ การ Synchronize ข้อมูล Spatial Database ที่ตรงการแชร์และแลกเปลี่ยนกันโดยตรงระหว่างโหนดที่ทำงานร่วมกัน ถ้าเป็นเฉพาะ Textfile หรือ XML แบบ Metadata คงไม่ยากเท่าไหร่ แต่พอมาเรื่องข้อมูลจำนวนมากๆ อันนี้เริ่มมีปัญญาแล้ว ช่องทางหนึ่งที่แนะนำและอยากให้ลองคือช่องทางของเรื่องการ Replication  บน Database Server แต่ก็มีข้อจำกัดที่ต้องออกแรงไม่สามารถทำงานได้ทันทีทันใด บน Postgresql เองมี Replicate engine ที่น่าสนใจหลายตัว ผมเองเคยศึกษา Pgpool และ Slony-I แต่โดยส่วนตัวชอบ Slony มากกว่าเพราะมันค่อนข้างไม่ซับซ้อนและมีประสิทธิภาพที่ดี   Postgresql 9.0 มาพร้อม streaming replication แต่ Slony(synchronous replication) ก็ยังเป็นอีกช่องทางที่สามารถนำมาเสริมได้อีก เพราะ ยังมีข้อจำกัดที่ตัว Slave ที่ต้องอยู่บน Version เดียวกันระบบเดียวกัน รองรับแค่ 1 salve และที่สำคัญ Slave… More Spatial Database Replication with Slony-I

Spatial Raster Database

ราสเตอร์เป็นรูปแบบการจัดเก็บข้อมูลเชิงเลข ในรูปแบบกริดที่ได้จากการสำรวจจากเซนเซอร์บนดาวเทียมหรือ อุปกรณ์บันทึกภาพชนิดต่างๆ แบบสุ่มเก็บแล้วทำการจัดเก็บข้อมูลในรูปแบบของแถวและคอลัมน์ลงบนกริดแบบเป็นระเบียบและต่อเนื่อง ข้อมูลที่จัดเก็บบนราสเตอร์ในงานภูมิสารสนเทศจะมีรูปแบบเป็นสี่มิติคือ X, Y, Z และ T โดยข้อมูลดิจิตอลจะจัดเก็บแบบไฟล์ (Files base system) บน OS ซึ่งในกรณีที่มีข้อมูลจำนวนมากๆ การบริหารจัดการข้อมูลทำได้ยาก โดยเฉพาะประเด็นเรื่องการสืบค้นข้อมูลจากเงื่อนไขที่ซับซ้อน เช่นเงื่อนไขเชิงพื้นที่ เงื่อนไขเชิงเวลา และเงื่อนไขอื่นๆ การนำแนวคิดและเทคโนโลยีของฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ซึ่งเป็นรูปแบบการจัดเก็บข้อมูลที่ความสัมพันธ์กันอย่างเป็นระบบโดยใช้ทฤษฏีของเซตเป็นพื้นฐานมาช่วยในการจัดการข้อมูลราสเตอร์ โดยมีการจัดเก็บข้อมูลดิจิตอลในรูปแบบของ BLOB และจัดเก็บข้อมูลเรขาคณิตของราสเตอร์ (GeoReference data ) บนฐานข้อมูลโดยใช้แนวคิดของฐานข้อมูลเชิงพื้นที่(Spatial Database) สร้างความสัมพันธ์ระหว่างข้อมูลเรขาคณิต(Geometry) กับข้อมูลไบนารี(BLOB) บนฐานข้อมูล การจัดเก็บข้อมูลราสเตอร์บนฐานข้อมูล อาศัยเทคนิคการจัดเก็บค่าดิจิตอลในรูปแบบ HEX WKB และเก็บข้อมูลเรขาคณิตของภาพราสเตอร์บน Geometry Object ในฐานข้อมูล ข้อมูลราสเตอร์จะถูกจัดแบ่งเป็นสี่เหลี่ยมย่อย (Tile) และจัดเก็บข้อมูลแบบ Pyramid ในรูปแบบ Overview Table เพื่อเพิ่มประสิทธิภาพในการเข้าถึงข้อมูล ซึ่งทั้ง Tile… More Spatial Raster Database

OSGeo Live GIS 4.0

_____OSGeo Live GIS 4.0 เป็นเวอร์ชั่นล่าสุดที่ออกมาให้ผู้ใช้งานโปรแกรม Opensource GIS ได้ใช้งานกัน โดยตัว OSGeo Live GIS มีแจกในงาน Foss4G 2010 ที่กำลังดำเนินอยู่ อยากจะนำ OSGeo Live GIS มาโปรโมทเพราะต้องการให้คนที่จะเริ่มต้นใช้งาน Opensorce GIS ทั้งผู้ใช้ทั่วไป และ นักพัฒนา ได้ทดลองใช้งานโปรแกรมโดยที่ไม่ต้องติดตั้งโปรแกรมเองก่อน เพื่อลดความยุ่งยากและอุปสรรค์ที่บั่นทอนกำลังใจ ที่สำคัญ OSGeo Live GIS มาในรูปแบบ Live Ubuntu 10.04 ที่ลดภาระเรื่องการติดตั้ง Linux ไปด้วย ทำให้ง่ายมากต่อการใช้งาน เพียงแค่ บูต OS จากแผ่นก็สามารถทำงานได้แล้ว โดยใน OSGeo Live GIS บรรจุโปรแกรม OSGeo Live GIS ครบทุกด้านพร้อมใช้งาน ตั้งแต่ Desktop… More OSGeo Live GIS 4.0

WITH on Postgresql

_____คงจะไม่มีอะไรที่จะมีความสุขเท่าการได้นอนพักผ่อนในวันหยุดยาวๆแบบนี้ จากที่ทั้งต้องทำงานหนักมาทั้งปี การได้พักผ่อนและหยุดให้เวลาบนเข็มนาฬิกาเร่งรีบเร่งรัดการดำเนินชีวิตเป็นอะไรที่ดีอย่างบอกไม่ถูก ผมใช้เวลาตอนเช้าในการพักผ่อนตื่นไปทำบุญที่วัดและทำกิจกรรมกับครอบครัว รู้สึกอิจฉาคนที่ใช้ชีวิตอยู่ต่างจังหวัดจริงๆ ไม่ต้องเจอกับควันผิดและรถติด ถึงจะไม่โก้หรูแต่ก็มีความสุขสบายบนความเรียบง่าย ตอนค่ำๆก็มานั้งอ่านเมล์และตอบกระทู้สนทนาตามเว็บบอร์ดที่เป็นสมาชิก ผมไปเจอเรื่องเกี่ยวกับ WITH ที่น่าสนใจบน Postgresql บน Blog ของ Paul Ramsey ที่เขียนไว้อย่างน่าสนใจมาก เลยอยากนำมาฝากท่านที่ใช้งาน Spatial Database หรือเป็น DBA ______ผมเองใช้งาน WITH อยู่บน Postgresql 8.4 มาตั้งแต่แรกที่ Upgrade โปรแกรมจาก 8.3 เป็น 8.4 แล้วเพราะด้วยความสะดวกในการสร้าง Subquery ขนาดใหญ่หรือแบบที่ซับซ้อมมันค่อนข้างสะดวกและมีประสิทธิภาพแบบเดิม หลายท่านที่ยังไม่เคยใช้งานผมมีตัวอย่างง่ายๆมาแนะนำเช่น WITH c_pro AS (SELECT *,st_area(the_geom)/1000000 AS area_ FROM province WHERE st_area(the_geom) > 5000000000), a_pro as (SELECT SUM(tot_all)… More WITH on Postgresql

Install PostgreSQL on Ubuntu

________วันอาทิตย์สุดสัปดาห์เลยได้โอกาสจัดการกับเครื่องโน๊ตบุคเก่าเป็นโน๊ตบุคตัวแรกยี่ห้อ Acer ที่ผมหาซื้อด้วยน้ำพักน้ำแรงจากการทำงานตั้งแต่สมันเรียน มาถึงตอนนี้ปู่ก็เฒ่าชะแรแก่ชราไปมากเหลือเกินครั้นจะทิ้ง ก็ไว้เปล่าก็เสียดายเลยจับ format และลง Linux ubuntu ซะเอาไว้ทำ server เล่นๆ Linux เป็นอะไรที่ง่ายดายกว่าอดีตเยอะมาแล้วครับใช้งานง่ายมี GUI ใช้คำสั่งไม่กี่คำสั่ง วันนี้ไหนต้องลงโปรแกรมแล้วก็ขอนำมาฝากพี่ๆน้องๆเผื่อว่าท่าใดอยากลองมาใช้ Ubuntu บ้างจะได้รู้ว่ามันไม่ได้ยากอย่างที่คิดเลย ผมนำตัวอย่างการลง Spatial Database ตัวเก่ง Postgresql + Postgis บน Ubuntu มาแนะนำครับ Step I : Postgresql 8.3 1. เพื่อให้ง่ายก็ไม่ต้อง hardcore ไป compile เองครับเพราะจะเหนื่อยโดยใช่เหตุ ติดตั้งผ่าน apt-get ง่ายสุด $ sudo apt-get install postgresql-8.3 2. ติดตั้งส่วนของ Database client คือ pgadmin $ sudo apt-get… More Install PostgreSQL on Ubuntu