image processing service on ubuntu

อาทิตยที่ผ่านมา ผมใช้เวลาส่วนใหญ่กับการหา solution ในการสร้าง service บน Linux ubuntu server โดยตั้งใจจะให้ โปรแกรมที่พัฒนาโดย Python มันทำการ run แบบอัตโนมัติเมื่อมีการบูตเครื่อง ในรูปแบบ Service โดยโปรแกรมนี้จะทำหน้าที่ Process ข้อมูลภาพถ่ายดาวเทียม แบบอัตโนมัติ โดยทำการโหลดข้อมูลจาก image archive มาประมวลผลและ สร้างเป็น map service ต่อไป เรียกว่าลองอยู่หลายแบบทั้ง pydaemon (ขอบคุณพี่อาร์ท @sarawut ที่แนะนำ ยากมากครับพี่ ลองแล้วผมไม่สำเร็จ) และการสร้าง shell เพื่อทำงาน สุดท้ายมาจบที่ความช่วยเหลือของ cliechti ที่ผม email ไปถาม โปรแกรมเมอร์ใจดีช่วยตอบคำถามและแนะนำจนสำเร็จ คิดว่าคงมีหลายคนน่าจะได้ประโยชน์ขออนุญาติ นำ code มาแชร์

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

GeoScript

_____ถ้าจะถามว่าภาษาอะไรที่จะเหมาะสมและมีความสามารถที่หลากหลายในงานด้าน GIS เวลานี้ผมนึกถึง Python เป็นเพียงภาษาเดียวด้วยความที่ เป็นภาษาที่มี Library ที่สามารถเข้าถึงการจัดการ Geometry object ของโครงสร้างข้อมูลได้ และยังมี Lib ที่ใช้ Processing และ analysis ข้อมูลเวกเตอร์และราสเตอร์ได้อีกด้วย ดังนั้นถ้าหากอยากจะเป็น GIS programmer ผมแนะนำว่าสมควรอย่างยิ่งในการเรียนรู้ Python เพราะเป็นภาษาที่ช่วยให้เราทำงานกับข้อมูลมากและซับซ้อนได้ง่ายขึ้น _____วันนี้ผมมีอีกหนึ่งซอฟต์แวร์ Library สำหรับ GIS ที่ชื่อว่า Geoscript มาแนะนำ Geoscript เป็นไลบารี่ที่เพิ่มเอาความสามารถในการจัดการและประมวลผลข้อมูลเชิงพื้นที่ เข้าไปอยู่ในภาษาแบบ script เช่น Python, Javascript, Groovy เป็นต้น โดยทำงานในลักษณะการ wrap เข้ากับ java code ชื่อดังอย่าง Geotools และ JTS ทำให้เราสามารถเรียกใช้งานฟังก์ชั่นผ่านภาษา script ได้ ผมเองได้ลองแล้วในส่วนของ Python โดยทำการติดตั้ง jython (ตัวช่วยให้เรา… More GeoScript

Dracones: a Web Mapping Framework

_______วันนี้มีข่าวประชาสัมพันธ์มาบอกครับ เนื่องจากคุยกับพี่ๆเพื่อนๆหลายท่านที่คิดว่าเราน่าจะมีสถานที่แลกเปลี่ยนและชุมชนเล็กๆที่ใช้พูดคุยแลกเปลี่ยนเรื่องที่เกี่ยวกับ Opensource GIS เพราะปัญหาหลักของการใช้ Opensource คือมันใช้งานแล้วขาดคู่มือหรือรายละเอียดการใช้งานที่ดี รวมถึงการแก้ปัญหาแบบ work around ที่ต้องเจอในขณะทำงาน ซึ่งแน่นอนว่าถ้าผู้ใช่ไม่สามารถถนัดในการอ่านภาษาอังกฤษ หรือมีความอดทนในการค้น mailing list  ท่านย่อมจะไม่สามารถหาวิธีการแก้ปัญหาได้แน่แท้ และแน่นอนว่าการ email มาถามผมอาจจะไม่ใช่ช่องทางที่ดีที่สุด เพราะผมเองก็มีข้อจำกัดในการตอบอีเมลทุกฉบับ ให้เร็วดังใจผู้ถาม ดังนั้นผมก็เลยเอา idea การสร้าง web board จากรัสเซียที่สร้างสังคมของนัก GIS จาก webboard แบบเดิม โดยเน้นไปที่การแลกเปลี่ยนประสบการณ์ เทคนิคและอื่นๆ ในเรื่องเทคโนโลยี โดยผมได้ใช้บริการ free web board โดยทุกท่านสามารถร่วมส่งคำถาม หรือจะเป็นผู้ร่วมสนทนาแรกเปลี่ยนความรู้ รวมถึงการตอบคำถามได้ที่ http://excellentmap.fix.gs/ ________ มาถึงเรื่องที่จั่วหัวแนะนำ Dracones ตัวนี้เป็น Web Mapping Framework อีกตัวที่ผมว่ามันใช้งานได้ง่ายและเข้าท่าดี โดย Dracones ทำงานบน Map Script รองรับทั้ง PHP และ Python… More Dracones: a Web Mapping Framework

Find you from Geolocation

______รู้สึกว่าปัจจุบันเรื่องของตำแหน่ง(location) นั้นกำลังเข้ามามีบทบาทใน Application ด้านต่างๆมากขึ้น สืบเนื่องมาจากเรื่องของอุปกรณ์บอกตำแหน่งเช่น GPS มีราคาถูกและกลายเป็น option ที่ปกติที่ติดกับอุปกรณ์สื่อสารผกพาเช่นโทรศัพท์มือถือ และที่สำคัญผู้พัฒนาโปรแกรมประยุกต์ต่างต้องการนำเอาค่าพิกัดตำแหน่งของผู้ใช้เข้าไปร่วมกับการประมวลผลต่างๆเช่นการประมวลผลสืบค้นข้อมูล ซึ่งแน่นอนว่าการสืบค้นประเภทนี้ย่อมมีการใช้ความสัมพันธ์เชิงตำแหน่งเข้ามาร่วมในการสืบค้น และรวมไปถึงการจัดเก็บข้อมูลบนฐานข้อมูลที่มีการสร้างความสัมพันธ์เชิงตำแหน่งร่วมเข้าไปด้วย ในรูปแบบ Spatial Database ______การหาค่าพิกัดตำแหน่งนั้น นอกจากจะคำนวณจาก GPS ซึ่งเป็นอุปกรณ์ระบุตำแหน่งด้วยดาวเทียมเพียงอย่างเดียวแล้วปัจจุบันเรายังมีทางเลือกในการคำนวณตำแหน่งจากเครือข่ายอินเตอร์เน็ต ทั้งแบบ wifi hotspot,Cell site  หรือจะคำนวณหาจากค่า Mac address รวมๆแล้วเรียกว่า เทคโนโลยีระบุตำแหน่งแบบ Geolocation ซึ่ง Geolocation นี้เป็นหนึ่งใน มาตรฐานของ HTML5 ที่อุปกรณ์พกพาและโปรแกรม web browser รุ่นใหม่ๆรองรับ เพื่อผนวกรวมเอาค่าพิกัด ณ ปัจจุบันของผู้ใช้ทั้งจาก GPS ,WIFI,Cellsite และจากวิธีอื่นๆมาใช้ใน Application โดยผู้พัฒนาเขียนโปรแกรมติดต่อการคำนวณหาตำแหน่งแบบมาตรฐานผ่าน Geolocation API บน layer นี้ซึ่งจะง่ายต่อการพัฒนา วันนี้ผมมีเทคนิคและวิธีการคำนวณหาค่าพิกัดด้วย Geolocation API มานำเสนอ Geolocation… More Find you from Geolocation

Good Map on-line

______หลังจากวันหยุดยาวทางเทศกาลงานบุญของชาวไทย ผมสังเกตุเห็นหลายคนเมื่อได้กลับบ้านไปทำบุญและพักผ่อน หน้าตาก็สดใสดูมีชีวิตชีวาขึ้นมาอีกครั้ง เหมือนกับว่าผลบุญส่งให้เกิดศิริมงคลแก่ชีวิต แต่นอนว่าก็ไม่มีใครที่ได้ทุกอย่างตามที่ปรารถนาถึงแม้จะขอพรจากพระที่ศักดิ์สิทธิ์มากแค่ไหน หลวงตาท่านสอนว่าจะประสบความสำเร็จต้องเริ่มจากการลงมือทำ และสิ่งที่สำคัญที่สุดคือการลงมือทำความดี ______พอพูดถึงความดีที่ใครๆก็รู้จักทำให้ผมนึกถึง Good Map Online หรือใช้ภาษาไทยว่า แผนที่ความดี ผมรู้จัก Good Map จากพี่ท่านหนึ่งที่โพสเรื่องนี้ไว้บน Facebook เลยตามเข้าไปดู พบว่ามีเรื่องราวน่าสนใจมากมาย ส่วนหนึ่งเป็นเรื่องราวที่เคยกล่าวถึงซึ่งมาจากรายการ คนค้นคน บุคคลต้นเรื่องผู้เสียสละ และมีอีกหลายส่วนที่ผู้คนทั่วไปสามารถ Post หรือส่งเรื่องราวของตนเองเข้าไปยัง Website ได้และระบบสามารถแสดงผลข้อมูลความดีจากคลังความดีในรูปแบบแผนที่แยกตามสถานที่ต่างๆบนแผนที่ Google Map รวมไปถึงการแสดง link เรื่องราวของเรื่องความดี ,ภาพและวีดีโอภาพเคลื่อนไหว โดยจำแนกประเภทความดีเป็นหัวข้อต่างๆเช่น ความซื่อสัตย์ การประหยัดอดออม,ความขยันหมั่นเพียร,การอนุรักษ์สิ่งแวดล้อมเป็นต้น เรียกว่าเริ่มต้นจากการทำความดีเล็กๆน้อย ไปถึงความดีแบบใหญ่ๆที่ผลต่อคนจำนวนมาก แต่ถึงจะเล็กหรือใหญ่ไม่สำคัญขอให้เป็นความดีที่เกิดมาจากความจริงใจและไม่หวังผลตอบแทนย่อมเพียงพอ แผนที่ความดีน่าจะเป็นอีกเครื่องมือในการจุดประกายในคนหันมาทำดีและเผยแพร่ความดีออกสู่สังคม เพื่อที่คนอื่นๆในสังคมจะได้มองดูเป็นอย่าง ค่านิยมความดีจะได้สืบต่อไป แวะไปดูเรื่องราวความดีและแจ้งเบาะแสความดีได้ที่ http://goodmap.kapook.com/# หน้าแรกของแผนที่ความดี (Good Map online) ______ผมเองชอบ Good Map และสดุดตากับ label ไอคอนแบบนี้ว่าเคยพบที่ไหนจนสุดท้ายก็นึกออกว่ามันคือ… More Good Map on-line

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