ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, November 23, 2011

เมื่อเริ่มเจอทางตันระหว่างทำงานวิจัย!!!

ผมเป็นคนหนึ่งที่มักเจอปัญหาระหว่างการทำงานวิจัย เช่น ไม่แน่ใจว่าวิธีการที่เรานำมาประยุกต์ใช้ในการทำงานจะสามารถแก้ไขปัญหาได้ ทดลองแก้ปัญหาด้วยเครื่องมือหรือวิธีการที่มีแล้วก็ยังไม่สามารถแก้ไขปัญหาได้หรือไม่รู้ว่าจะแก้ปัญหาอย่างไร เป็นต้น
จากตัวอย่างของปัญหา (ทางตัน) ที่กล่าวมา ทำให้ผมต้องมานั่งทบทวนสาเหตุของปัญหาและวิธีการที่จะแก้ไข (เพราะไม่มีทางไปแล้ว ฮ่าๆๆ) ซึ่งก็ได้ตัวช่วยอย่างดีคือ หนังสือ "การคิดเชิงวิเคราะห์" ของ ศาสตราจารย์ ดร.เกรียงศักดิ์ เจริญวงศ์ศักดิ์ (แนะนำให้ซื้อมาอ่านอย่างละเอียดครับ และสามารถอ่านคร่าวๆได้ ที่นี่ ครับ) ผมขออนุญาตแนะนำแนวทางที่ผมใช้ได้ผลมาแล้ว ดังนี้ครับ
การทำงานวิจัยต้องอาศัย 2 สิ่งที่สำคัญคือ "ความรู้" และ "ความเข้าใจ" สองคำนี้มีความสำคัญอย่างยิ่งครับ ผมขอยกตัวอย่างดังนี้ครับ เมื่อเจอปัญหาใดๆผมมักเริ่มต้นด้วยคำถามที่ว่า เรามีความรู้และความเข้าใจสำหรับการแก้ไขปัญหาแล้วหรือยัง ถ้ายังละก็ ต้องค้นหาเจ้าความรู้ก่อนเป็นอันดับแรกครับ วิธีการหาความรู้ทำได้หลายวิธีนะครับ เช่น การอ่านหนังสือ การค้นหาข้อมูลจากอินเตอร์เน็ต การสอบถามผู้เชี่ยวชาญ การเข้าคอร์สเรียนหรือการอ่านงานวิจัยของคนอื่นที่ได้ศึกษามาก่อนแล้ว เจ้าความรู้เหล่านี้จะเปรียบเสมือน เครื่องมือ ที่เรามีไว้ใช้ในการแก้ไขปัญหา ซึ่งความรู้บางอย่างนั้นสามารถช่วยเราแก้ไขปัญหาได้ ในขณะที่ความรู้บางอย่างก็ไม่สามารถช่วยเราแก้ไขปัญหา (ไม่มีความเชื่อมโยงหรือเกี่ยวข้องกับปัญหา) ตรงนี้ต้องพิจารณาไตร่ตรองดูนะครับ ว่าความรู้แบบไหนเกี่ยวข้องและไม่เกี่ยวข้องกับปัญหาของเรา ขั้นตอนการค้นหาเจ้าความรู้นี้ต้องอาศัย ความพยายามและความอดทนอย่างสูงครับ ส่วนใหญ่ที่พบเจอคือ เพื่อนๆพี่ๆน้องๆ จะหมดแรงและล้มเลิกกันในขั้นตอนนี้ครับ โปรดจำไว้เสมอว่า ถ้าเราไม่มีความรู้เป็นพื้นฐานแล้ว การทำงานหรือการแก้ไขปัญหาจะไม่มีทางประสบความสำเร็จครับ!!!
ต่อมาเมื่อเรามีเครื่องมือ หรือ เจ้า "ความรู้" ที่จำเป็นต้องใช้แล้ว เราก็ต้องรู้จักใช้ให้ถูกต้องและเหมาะสมกับปัญหา ซึ่งตรงนี้ต้องอาศัย เจ้า "ความเข้าใจ" ครับ ปัญหาของการได้มาซึ่งความเข้าใจ คือ แต่ละคนสามารถได้มาซึ่งความเข้าใจได้แตกต่างกัน หรือที่มักพบว่า "เข้าใจไปคนละทาง" นั่นแหละครับ หรือ บางคนเมื่อทำงานวิจัยไปแล้วพบว่า มีแต่ความรู้เต็มไปหมด แต่ขาดความเข้าใจ ซึ่งก็ไม่สามารถแก้ไขปัญหาได้นะครับ ผมเลยขออนุญาตแนะนำให้เพื่อนๆพี่ๆน้องๆ ให้นั่งคิดช้าๆและค่อยๆเรียบเรียงความคิดให้เป็นระบบ หรือวาดโครงร่างของการทำงานวิจัยออกมา แล้วค่อยๆมา "วิเคราะห์" ดูว่าเราจำเป็นต้องใช้ความรู้อะไรบ้าง มีความรู้แล้วหรือยัง ถ้ายังไม่มีก็จำเป็นต้องขวยขวายมาให้ได้นะครับ แม้จะต้องใช้เวลาและความพยายามสักหน่อย ส่วนความสามารถในการวิเคราะห์นั้น มนุษย์เรานั้นมีอยู่แล้วครับ ต่างกันที่ว่า เรจะทำอย่างไรให้สามารถประยุกต์ใช้กับงานของเรา จากประสบการณ์ของผม (ความล้มเหลวที่ผมเคยพบเจอ แฮะๆๆ) ผมพบว่า เราจะใช้ความรู้ที่มีในการแก้ปัญหาได้ก็ต่อเมื่อ เรารู้จัก "การคิดแบบวิเคราะห์" ครับ คนที่คิดวิเคราะห์บ่อยๆ ก็จะได้เปรียบครับ ซึ่งความสามารถในการ "เข้าใจปัญหา" นั้นจะต่างจาก "ความรู้" กล่าวคือ ค้นหาไม่ค่อยเจอครับ ต้องอาศัยการฝึกฝนครับ สำหรับผมคิดว่า มันเป็น สิ่งที่รู้ได้เฉพาะตน (เกิดจากความคิดมากกว่าการฟังหรือการอ่าน)
ถ้าจะให้เปรียบเทียบนะครับ "ความรู้" เปรียบเหมือนกับ เครื่องมือ ส่วน "ความเข้าใจ" เปรียบเหมือน วิธีการดำเนินงาน ครับ
งาน(ปัญหา)ใดๆจะสำเร็จต้องมีทั้ง "เครื่องมือและวิธีการดำเนินงาน" ฉันใด ทุกงานวิจัยจะสำเร็จได้ก็ต้องอาศัย "ความรู้และความเข้าใจ" ฉันนั้นครับ....
สิ่งสำคัญอีกประการ คือ การคิดบวก ส่วนตัวผมเชื่อว่า ไม่มีทางตันในงานวิจัย ซึ่งผมมีคติประจำใจเวลาทำงานวิจัยใดแล้วพบปัญหา คือ "ในเมื่อนักวิจัยอื่นๆสามารถทำได้ เราก็สามารถทำได้เช่นกัน" เพียงแต่หนทางในการบรรลุเป้าหมายอาจแตกต่างกันได้ ความเชื่อส่วนตัวของผม คือ มนุษย์เรานั้นมีจุดเด่นและจุดด้อย ที่แตกต่างกัน บางคนอาจมีสติปัญญาที่ล้ำเลิศ สามารถเรียนรู้และเข้าใจวิทยาการได้อย่างรวดเร็วในขณะที่บางคนอาจต้องอาศัยเวลาและความพยายามที่มากกว่าคนอื่นๆในการเข้าใจและเรียนรู้ แต่สุดท้ายแล้ว ถ้าเรามีความพยายามและตั้งใจจริงแล้ว ผมเชื่อว่า งานวิจัยทุกอย่างสามารถบรรลุวัตถุประสงค์ได้ครับ...
ผมจะขอยกตัวอย่างเรื่องของ ซุนวู เจ้าประโยคเด็ดที่ว่า "รู้เขารู้เรารบร้อยครั้งชนะร้อยครั้ง" ในขณะที่ซุนวูเป็นนักเรียนนั้น เขาเป็นคนที่เรียนรู้ได้ช้ากว่าเพื่อนๆในชั้นเรียน แต่สิ่งที่ซุนวูต่างจากคนอื่นคือ เขามีความพยายามในการเล่าเรียนอย่างมาก เช่น เมื่อนักเรียนร่วมชั้นคนอื่นๆ เข้าใจที่อาจารย์สอนหมดแล้ว ก็ต่างพากันกลับบ้าน หรือออกไปทำกิจกรรมอย่างอื่น แต่ซุนวูนั้นยังคงมุ่งมั่น ขบคิดและทำความเข้าใจเกี่ยวกับสิ่งที่อาจารย์ได้สั่งสอน (คิดช้าๆแต่รอบครอบ) จนกระทั่ง อาจารย์ได้ยกย่อง ซุนวู ว่าเป็นลูกศิยษ์ที่สามารถเรียนรู้และเข้าใจในเนื้อหาที่สั่งสอนอย่างท่องแท้ มากกว่าศิย์คนอื่นๆ ตรงนี้ผมอยากจะขอเสริมว่า เมื่อเล่าเรียนนั้น เราจะได้ความรู้แต่ถ้าเราสามารถประยุกต์ใความรู้เหล่านั้นได้ แสดงว่า เราเข้าใจ ครับ!!!
....ความเข้าใจย่อมมีประโยชน์มากกว่าความรู้ครับ.....
สุดท้ายนี้ ขอให้กำลังใจนักศึกษาและนักวิจัยทุกท่านครับ...

Friday, October 7, 2011

แหล่งเรียนรู้เรื่อง Wavelet

ช่วงนี้ต้องเขียนแนวคิดและทฤษฎีต่างๆที่ต้องใช้สำหรับการทำงานวิจัย ทำให้ต้องค้นคว้าข้อมูลตามแหล่งต่างๆมากมาย ทั้งตำราและเว็บไซต์ต่างๆ ระหว่างทำการแสวงหาข้อมูลอยู่นั้น บังเอิญไปเจอแหล่งข้อมูลที่อธิบายเกี่ยวกับ Wavelet ได้อย่างชัดเจนและง่ายต่อการเข้าใจ (สำหรับผม) เลยอยากนำมาแบ่งปันกันครับ

http://www.amara.com/IEEEwave/IEEEwavelet.html

Tuesday, August 30, 2011

หัวข้อวิจัย อะไรดี???

มีเพื่อนๆหลายคนสอบถามว่า จะทำวิจัย(วิทยานิพนธ์)เรื่องอะไรดี?
ส่วนตัวผมแล้ว มักจะเริ่มจากเรื่องที่เราถนัด (พอจะทำได้หรือมีความสามารถที่จะทำได้) ก่อน แล้วค่อยขยายไปยังเรื่องอื่นๆ ปัญหาที่ตามมาคือ หลายๆคนมักถามต่อว่า แล้วเราถนัดอะไร? คำถามนี้ ผมคงตอบแทนไม่ได้ แต่ผมพอจะแนะนำได้ว่า งานวิจัยหรือการทำงานต่างๆนั้น ต้องประกอบด้วยความรู้ 2 ส่วนหลัก คือ 1) ความรู้และความชำนาญที่มีอยู่แล้ว และ 2) ความรู้และคำชำนาญที่จำเป็นต้องศึกษาเพิ่มเติมเพื่อให้งานบรรลุผลสำเร็จ ประเด็นหลักที่พบคือ หลายๆคน ไม่อยากจะหาความรู้และความชำนาญใหม่ๆ ที่เรายังไม่เคยเรียนรู้หรือไม่เคยทดลองทำมาก่อน ซึ่งเหตุผลที่มักได้ยินเสมอได้แก่ มันยาก ไม่เคยทำ หาคนสอนไม่ค่อยได้ ตนเองไม่น่าจะทำได้ ฯลฯ ซึ่งผมอยากจะบอกไว้เลยว่า "กำแพงเมืองจีนจะเสร็จได้ ก็ต่อเมื่อ การก่ออิฐก้อนแรกเริ่มต้นขึ้น" ดังนั้นไม่ว่าความรู้ใหม่หรือเครื่องมือใหม่ๆ ที่เราไม่รู้จักหรือไม่คุ้นเคย จำเป็นต้องอาศัยเวลาและความอดทนในการศึกษาและทดลองด้วยตนเอง ตรงนี้สำคัญมากๆครับ เพราะเพื่อนๆหลายคนจะพ่ายแพ้หรือล้มเลิกในขั้นนี้เสมอ ทำให้งานวิจัยไม่ประสบความสำเร็จ
ประเด็นถัดมาคือ "ความลึกซึ้งเท่าใดถึงจะเป็นหัวข้อวิทยานิพนธ์" ตรงนี้ ผมคงตอบไม่ได้ เพราะสถานศึกษาแต่ละแห่งก็มีปรัชญาที่แตกต่างกันออกไป (หลายมาตรฐานนั่นเอง ฮ่าๆๆๆ) แต่ผมอยากให้เพื่อนๆจำไว้ว่า งานของเราต้องมีคุณสมบัติที่สำคัญดังนี้ (อย่างน้อยต้องมีสักข้อ)
1. ความใหม่ของเนื้อหา (First) หรือ เป็นคนแรกที่ทำการศึกษาในประเด็นต่างๆ ซึ่งอาจรวมถึงความใหม่ในเรื่องของการประยุกต์ใช้เทคนิคหรือเครื่องมือใหม่ๆในการแก้ไขปัญหา (ไม่เคยมีใครทำมาก่อน)
2. ความดีที่สุด (Best) หรือ การปรับปรุงเทคนิคหรือวิธีการเดิมเพื่อให้ได้ผลลัพธ์ที่ดียิ่งขึ้น เช่น การปรับปรุงแบบจำลองต่างๆเพื่อให้เหมาะสมกับเงื่อนไขเฉพาะหรือพื้นที่เฉพาะ
3. ความแตกต่าง (Difference) กล่าวคือ ต้องไม่เหมือนหรือซ้ำกับงานของคนอื่นๆ เพราะถ้าเหมือนกัน ก็คือ การคัดลอก (ทั้งแบบตั้งใจและไม่ตั้งใจ) ในส่วนนี้อาจต้องอาศัย การอ่านบทความให้เยอะเข้าไว้ เพื่อจะได้เปรียบเทียบกับงานวิจัยของคนอื่นๆว่ามีความแตกต่างกันหรือไม่ แต่!!! งานของเพื่อนๆต้องไม่ใช่ การศึกษาด้วยวิธีการหรือเทคนิคเดียวกันแต่เปลี่ยนพื้นที่ศึกษานะครับ (ยกเว้นเราต้องการศึกษาเบื้องต้นก่อนแล้วค่อยปรับปรุงหรือพัฒนาวิธีการหรือแบบจำลองเพื่อให้เหมาะสมกับลักษณะเฉพาะของพื้นที่ศึกษา)
หวังว่า ความคิดเห็น จากคนที่ไม่ค่อยมีความรู้อย่างผมน่าจะช่วยเพื่อนๆในการหาหัวข้อวิจัยได้บ้างนะครับ

Monday, August 1, 2011

Resampling ภาพด้วย gdalwarp

วันนี้ขอเสนอวิธีการ resampling ข้อมูลภาพเพื่อให้มีขนาดหรือจำนวนจุดภาพเท่าที่ต้องการ ตัวอย่างเช่น ภาพเดิมมีขนาด 300x300 จุดภาพ แต่ต้องการเพิ่มให้เป็น 1200x1200 จุดภาพ เรามาดูวิธีการกันเลยนะครับ
คำสั่งหรือโปรแกรมประยุกต์ที่ใช้คือ gdalwarp ส่วน option หรือ ทางเลือกที่จะใช้คือ -ts width height ดังนี้ครับ

>>>gdalwarp -ts width height inputfile outputfile

ตัวอย่างการใช้งานมีดังนี้ครับ

>>>gdalwarp -ts 1200 1200 abc300.tif abc1200.tif

ปล. หากต้องการระบุวิธี resampling ให้เพิ่มทางเลือก -r xxxx นะครับ เช่น -r bilinear, cubic, cubicspline หรือ lanczos. แต่ถ้าไม่ระบุโปรแกรมจะใช้วิธี nearest เป็นค่าเริ่มต้นครับ

Saturday, July 30, 2011

แปลงระบบพิกัด แบบหลายจุด ด้วย cs2cs

วิธีการนี้ ผมได้รับการแนะนำจาก พี่ วิโรจน์ (เทพองค์หนึ่งในงาน GeoInformatics ที่ใช้ Free.Open Source Software - FOSS) เมื่อนานมาแล้ว วันนี้ขอบันทึกไว้กันลืม ดังนี้ครับ
CS2CS นั้นเป็นโปรแกรมประยุกต์ตัวหนึ่งสำหรับการแปลงระบบพิกัดของค่าพิกัดแบบจุด (มีเฉพาะค่าพิกัดของแต่ละจุดเท่านั้น) นั่นหมายความว่า ข้อมูลต้องอยู่ในรูป คู่ของค่าพิกัด เช่น 525000 1800000 เป็นต้น
*** โปรแกรมประยุกต์นี้จะมีอยู่แล้วใน GDAL หรือที่ถูกรวมไว้แล้วใน FWTOOLS ครับ ดังนั้นไม่จำเป็นต้องดาวน์โหลดเพิ่มเติมครับ***
เรามาดูตัวอย่างกันเลยนะครับ ตัวอย่างผมมีข้อมูลแบบอักขระ (Text file) ที่เมื่อเปิดด้วย Text Editor ทั่วไป เช่น Notepad หรือ Notepad++ แล้วจะมีหน้าตาดังนี้ ชื่อไฟล์ EN.txt












ตัวอย่างทางเลือก (Option) ที่น่าสนใจ
-E ใช้ในกรณีที่ต้องการนำค่าจากไฟล์นต้นฉบับหรือไฟล์นำเข้า (Input) ไปใส่ไว้ในไฟล์ผลลัพธ์ (Output) ด้วย
-f ใช้สำหรับกำหนดรูปแบบไฟล์ผลลัพธ์ เช่น ความละเอียด(ระดับจุดทศนิยม)ของผลลัพธ์ที่ต้องการ ตัวอย่างการใช้งานคือ -f "%.9f" จะได้ผลลัพธ์ทีี่มีจุดทศนิยมจำนวน 9 ตำแหน่ง เป็นต้น
-r ใช้สำหรับสลับค่าพิกัดขอไฟล์ต้นฉบับ จาก XY เป็น YX หรือ Lat, Long ให้เป็น Long, Lat
-s ใช้สำหรับสลับค่าพิกัดขอไฟล์ผลลัพธ์ จาก XY เป็น YX หรือ Lat, Long ให้เป็น Long, Lat
**** ตรงนี้น่าสนใจครับ เพื่อไม่ให้เกิดความสับสน ผมแนะนำทุกท่านเตรียมข้อมูลให้อยู่ในแบบ (Easting, Northing) สำหรับระบบพิกัดกริด UTM โดยไม่จำเป็นต้องระบุทางเลือก -r หรือ -s
ส่วนตัวอย่างการใช้งานมีดังนี้

>>>cs2cs -E -f "%.9f" +init=epsg:32647 +to +init=epsg:4326 EN.txt

ผลลัพธ์ที่ได้มีดังภาพ






หรือถ้าต้องการแปลงผลลัพธ์ให้เป็นไฟล์อักขระ (Text file) ใหม่อีกไฟล์หนึ่งสามารถทำได้ดังนี้ครับ

>>>cs2cs -E -f "%.9f" +init=epsg:32647 +to +init=epsg:4326 EN.txt > LongLat.txt

ส่วนการแปลงค่าระบบภูมิศาสตร์ให้เป็นระบบพิกัดกริด UTM นั้นแนะนำให้ใช้รูปแบบ (Long, Lat) ครับ

เพื่อไม่ให้สับสนและอาจมีการระบุรูปแบบผิด ผมขอสรุปและแนะนำอีกที ดังนี้
ในกรณีที่ไม่ใช้ทางเลือก -r หรือ -s นั้น
  • การแปลง UTM2Geog ถ้ารูปแบบไฟล์ต้นฉบับคือ (Easting, Northing) จะได้ผลลัพธ์คือรูปแบบ (Long, Lat)
  • ส่วนการแปลง Geog2UTM ถ้ารูปแบบไฟล์ต้นฉบับคือ (Long, Lat) จะได้ผลลัพธ์คือรูปแบบ (Easting, Northing)

Wednesday, July 27, 2011

ความแตกต่างระหว่าง Objective และ Subjective

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

Objective แปลโดย ศัพท์บัญญัติ ราชบัณฑิตยสถาน นั้น มีหลายความหมายได้แก่ เชิงวัตถุวิสัย, วัตถุประสงค์ หรือ ปรนัย ส่วน
Subjective นั้นแปลว่า ความรู้สึกแห่งตน, เชิงจิตวิสัย หรือ อัตนัย

แค่เพียงความหมายก็น่าจะพอสรุปได้ว่า Subjective นั้นต้องเกี่ยวข้องกับความเป็นตัวตนหรือส่วนบุคคล (อัต-) นั่นหมายถึงบริบทของคำนี้ ไม่อาจสรุปหรือประเมินได้อย่างเที่ยงตรง (ไม่เสถียร) หรือได้คำตอบเหมือนเดิมทุกครั้งในทุกๆการวัด เนื่องจากขึ้นอยู่กับสถานการณ์ ความรู้ ความชำนาญหรือเกณฑ์ของแต่ละบุคคลที่ใช้ในการวัด ดังเช่น ตัวอย่างความหมายของ Objective data และ Subjective data ที่มักพบเสมอในเรื่อง การตัดสินใจแบบหลายเกณฑ์ (Multi-Criteria Decision)

ดังนั้น ผมอาจสรุปได้ว่า Objective นั้นมีความเป็นสากล จริงแท้ เที่ยงตรง มากกว่า Subjective ซึ่งเกี่ยวข้องกับความเป็นส่วนบุคคล ครับ

ปล. การแปลความหมายจำเป็นต้องคำนึงถึงบริบทของคำศัพท์ด้วยเสมอนะครับ

Tuesday, June 21, 2011

ความแตกต่างระหว่าง Numerical methods และ Numerical Analysis

เป็นคำถามคาใจมานานมาก แต่ยังไม่ได้ค้นหาคำตอบอย่างจริงๆจังสักที ว่า "ความแตกต่างระหว่าง Numerical methods และ Numerical Analysis" คืออะไร วันนี้นึกครึ้มอะไรไม่รู้เลยเข้าห้องสมุดหาตำรามาเฉลยคำถามที่สงสัยมานาน...
จากการอ่านหนังสือ An Introduction to Numerical Methods and Analysis โดย James F. Epperson ผู้เขียนให้คำอธิบาย ความแตกต่าง คือ วิธีการเชิงเลข (Numerical methods) จะให้ความสำคัญการนำอัลกอริทึมไปทำให้เกิดผล (Implementation of algorithms) ซึ่งบางทีก็อาศัยทฤษฏีทางคณิตศาสตร์ในการอธิบายวิธีการทำงาน ส่วน การวิเคราะห์เชิงเลข (Numerical analysis) นั้นจะให้ความสำคัญกับทฤษฏีทางคณิตศาสตร์ (Mathematical theory) ผู้เขียนคิดว่า น่าจะดีกว่า ถ้าเราศึกษาทั้งสองอย่างไปพร้อมๆกัน
ซึ่งผมก็เห็นด้วยอย่างยิ่ง เพราะ การนำวิธีการและการวิเคราะห์เชิงเลขไปทำให้เกิดผล (Implementation) ในงานภูมิสารสนเทศ นั้น นอกจากความต้องการ ความรู้ ที่ใช้ในการแก้ไขปัญหาแล้ว ยังต้องอาศัย ความเข้าใจ เกี่ยวกับเทคนิคหรือวิธีการที่นำมาใช้ด้วย เนื่องจากปัญหาบางอย่าง ความรู้ เพียงอย่างเดียวไม่สามารถแก้ไขได้ครับ ต้องอาศัย ความเข้าใจ ด้วย....
ตัวอย่าง นะครับ
ทำไมเราต้องรับสัญญาณดาวเทียม อย่างน้อย 3 ดวง เพื่อหาตำแหน่งของเรา (ด้วยเครื่องรับสัญญาณ GPS) หรือ ทำไมจุดควบคุมสำหรับการอ้างอิงตำแหน่งโลก ถึงไม่สามารถวางตัวอยู่บนแนวเส้นตรงเดียวกัน เป็นต้น

Monday, May 30, 2011

การกรองความถี่สูงและความถี่ต่ำ (Hi & Low pass filtering)

สงสัยอายุที่เพิ่มขึ้นจะมีส่วนทำให้ความจำลดลง เพราะลืมทุกทีเมื่อต้องมาทำงานกับตัวกรอง (Filter) ทั้งสองแบบนี้ วันนี้เลยขอบันทึกความเข้าใจไว้กันลืม!!!

การกรองความถี่สูง (Hi pass filter)
เป็นการกรองสัญญานที่ยอมให้ข้อมูลความถี่สูงผ่านได้ ตัวอย่างการใช้งานคือ การเพิ่มความคมชัด (Sharpening)

การกรองความถี่ต่ำ (Low pass filter)
เป็นการกรองสัญญานที่ยอมให้ข้อมูลความถี่ต่ำผ่านได้ ตัวอย่างการใช้งานคือ การทำเบลอ (Blurring)

ส่วนรายละเอียดของการใช้ตัวกรองในการทำ PanSharpening ไว้มีโอกาสจะเข้ามาเพิ่มภายหลัง

Wednesday, March 23, 2011

gdal_merge ใน FWtools 2.4.7 ใช้งานไม่ได้

ผมลองใช้ gdal_merge ใน FWtools เวอร์ชัน 2.4.7 แล้วปรากฏว่า ไม่สามารถทำงานได้อย่างถูกต้อง กล่าวคือ โปรแกรมจะต่อชนภาพให้ แต่ภาพนั้นไม่มีค่า Digital Number (DN) วิธีแก้ไขง่ายที่สุดที่คิดได้คือ กลับไปใช้งานเวอร์ชัน 2.4.6 ปรากฏว่า Work!!! ใช้งานได้
จังอยากแนะนำทุกท่านที่อาจเจอปัญหาเดียวกับผม...

Thursday, February 24, 2011

PostGIS: สร้าางตารางข้อมูลใหม่จาก ข้อมูลที่สืบค้น

บางครั้งเราต้องการสร้างตารางข้อมูลใหม่ (ชั้นข้อมูลเชิงตำแหน่งใหม่) ในฐานข้อมูลเชิงตำแหน่ง (Spatial Database) ตัวอย่างเช่น ชั้นข้อมูลเส้นทางคมนาคมถนน ซึ่งในฐานข้อมูลนั้นมีข้อมูลอรรถาธิบาย (Attribute) มากมายเกินความจำเป็น อาทิ ชื่อถนน ความกว้างช่องจราจร ความยาวของส่วนย่อย ประเภทพื้นผิว สภาพถนน โดยที่เราต้องการชั้นข้อมูลใหม่ที่มีเพียงแค่ชื่อถนน (road name: rdname) และพิกัดของแต่ละจุดเท่านั้น (geometry: the_geom) เราจะทำอย่างไร???
หลังจากศึกษาในคู่มือของ Postgis พบว่าโปรแกรมได้เตรียมฟังก์ชัน create table as สำหรับการตอบวัตถุประสงค์ในครั้งนี้ เรามาดูตัวอย่างการใช้งานกันเลยนะครับ

SQL syntax: create table table_name as select *** from *** where ***

ตัวอย่าง
create table road_name as
select rdname, the_geom from road

Wednesday, February 9, 2011

แก้สมการ Overdetermined เพียงกระพริบตา (ปี๊บๆ)

Ex: จากตัวอย่างหนังสือเรื่อง GIS & MCDA ของ จาเซ็ค หน้าที่ 211 เราต้องการหาค่าแลมดา (Lamda: L) โดยมีสมการเงื่อนไขดังนี้
L1 = 0.5(L2) + 0.3(L3)
L2 = 0.7(L1) + 0.7(L2)
L1 + L2 + L3 = 1
ปรากฏว่าในหนังสือได้คำตอบคือ L1 = 0.4, L2 = 0.3 และ L3 = 0.3 จะพบว่าค่าที่ได้นั้นใช้ได้ในบางเงื่อนไขเท่านั้น (คำตอบมีได้หลายคำตอบหรือคำตอบนั้นไม่ใช่ Unique solution) ทำให้ผลลัพธ์อาจผิดพลาดได้ ........... แล้วเราจะทำอย่างไีีร
ก่อนอื่นเรามาดูเงื่อนไขหรือข้อมูลที่เรามีก่อนดังนี้ครับ
1. เรามีตัวไม่ทราบค่า (Unknown) 3 ตัวคือค่าแลมดา L1, L2, L3
2. เรามีสมการอย่างน้่อย 3 สมการ (ตามตัวอย่างในหนังสือ)
3. จากการศึกษาพบว่า ในหนังสือนั้นขาดการนำเอาเงื่อนไขบางอย่างมาสร้างสมการคือ L3 = 0.3(L1) + 0.5(L2)
4. เมื่อเรามีสมการเพิ่มขึ้นจะพบว่า เงื่อนไขของระบบสมการนี้จะเข้าสู่เงื่อนไขของ Overdetermined system (จำนวนสมการมากกว่าจำนวนตัวไม่ทราบค่า)
คราวนี้เรามาดูวิธีแก้ระบบสมการเชิงเส้นที่ Overdetermined ด้วยเมทริกซ์ดังตัวอย่างดังนี้

Condition Equation:
L1 = 0.5(L2) + 0.3(L3)
L2 = 0.7(L1) + 0.7(L2)
L3 = 0.3(L1) + 0.5(L2)
L1 + L2 + L3 = 1
A = [-1 .5 .3; .7 -1 .7; .3 .5 -1; 1 1 1]
X = [a; b; c]
L = [0; 0; 0; 1]

V = AX+L
N = transpose (A)*A
U = transpose (A)*L
Normal Equation:
transpose (X)* transpose (N) + transpose (U) = 0
หรือ N*X + U = 0 หรือ N*X = -U
X = - inv(N) * U

ส่วนวิธีการคำนวณด้วย Matlab มีดังนี้
a = [-1 .5 .3; .7 -1 .7; .3 .5 -1; 1 1 1]
l = [0; 0; 0; 1]
x = a\l
คำตอบที่ได้คือ
x = [0.2941; 0.4118; 0.2941] หรือ
L1 = 0.2941
L2 = 0.4118
L3 = 0.2941

Saturday, January 29, 2011

ตัวอย่างการใช้ While ด้วย Python

อ่านประวัติของ Archimedes อยู่ดีๆ ดันโยงไปที่ โยฮันน์ คาร์ล ฟรีดริช เกาส์ ซะงั้น เลยอดไม่ได้ที่จะทึ่งถึงความอัจฉริยะของ เกาส์ เมื่อมีอายุได้เพียง 7 ขวบ เหตุการณ์เกิดขึ้นเมื่อคุณครูได้สั่งให้นักเรียนบวกเลขตั้งแต่ 1 ถึง 100 ชั่่วขณะเพียงแค่หันหลัง เด็กชายเกาส์ก็ตอบขึ้นมาว่า 5,050 เมื่อถูกถามว่าได้คำตอบนั้นมาได้อย่างไร เด็กชายเกาส์เขียนอธิบายดังนี้

100+99+98+...+1 = 101+101+101+...+101 = 101×50 = 5050 ดังนั้นคำตอบคือ 5050

เป็นไงละครับ....ไม่ใ่ช่อัจริยะคิดไม่ได้นะเนี่ย
อ้างอิงจาก http://th.wikipedia.org/wiki/คาร์ล_ฟรีดริช_เกาส์

เรามาทดลองดูว่าการบวกเลขตั้งแต่ 1-100 นั้นหากเขียนด้วยภาษา Python โดยใช้ While loop นั้นต้องเขียนอย่างไร
############################
i = 1
total = 0
while (i<=100):
total = total + i;
i = i + 1;
print total
############################

Wednesday, January 19, 2011

Pansharpening: Brovey transformation

การแปลงแบบ Brovey นั้นจะอาศัยค่าความสว่าง (ฺBrightness Value - BV) ของข้อมูลภาพแบบหลายช่วงคลื่น (Multispectral image) และค่าความสว่างของข้อมูลภาพแบบช่วงคลื่นเดียว (Panchromatic image) มาทำการคำนวณหาค่าความสว่างของข้อมูลภาพที่ผ่านการหลอมรวม (Fused image) ดังภาพที่ 1 ดังนี้
ภาพที่ 1 สมการการแปลงแบบ Brovey





Wednesday, January 5, 2011

Factror/Variable/Parameter

ความแตกต่างของ Factror/Variable/Parameter (ปัจจัย/ตัวแปร/พารามิเตอร์) จากการค้นคว้าเบื้องต้นพบว่า ทั้ง 3 คำ นี้มีความเกี่ยวเนื่องกันอยู่โดยขอยกตัวอย่างเพื่อความเข้าใจดังนี้
โจทย์คือ ผมต้องการหาพื้นที่เหมาะสมสำหรับการเพาะปลูกข้าว
ปัจจัย (Factor) ที่ผมใช้พิจารณาสำหรับการหาพื้นที่เหมาะสมคือ ข้อมูลดิน
ตัวแปร (Variable) ที่ผมสนใจคือ แร่ธาตุในดิน เช่น ไนโตรเจน (N) โปแตสเซียม (P) และฟอสฟอรัส (K)
พารามิเตอร์ (Parameter) คือ ปริมาณของแร่ในดิน