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

Loading...

Sunday, May 12, 2013

วิธีการสร้าง Tile ข้อมูลภาพ

การสร้าง Tile ให้ข้อมูลภาพนั้นจะช่วยให้การเรียกอ่านข้อมูลภาพมีประสิทธิภาพมากยิ่งขึ้น วิธีการสร้างสามารถทำได้หลายแนวทาง วันนี้จะขอเสนอวิธีการหนึ่งที่ผู้ใช้งาน GDAL หรือ FWTOOLS สามารถทำงานได้ทันทีโดยไม่ต้องติดตั้งโปรแกรมอื่นๆเพิ่มเติม (LibTIFF จะถูกรวมอยู่แล้วใน GDAL)
ตัวอย่างการทำงาน ผมต้องการแปลงระบบพิัดข้อมูลภาพพร้อมทั้งสร้าง TILE ข้อมูลภาพไปพร้อมกัน ผมสามารถทำได้ดังนี้
>>gdalwarp -t_srs epsg:4326 -co "TILED=YES" -co BLOCKXSIZE=512 -co BLOCKYSIZE=512 image.tif tiled_image.tif
เมื่อ -co คือการเรียกใช้งานทางเลือกพิเศษ (Create Options) โดยทางเลือกที่เรียกใช้งานมีดังนี้
              "TILED=YES"                        การทำ Tile ข้อมูล
              "BLOCKXSIZE=n"                การระบุขนาดของ Tile ทางแกน X
              "BLOCKYSIZE=n"                การระบุขนาดของ Tile ทางแกน Y
ภายหลังจากการสร้าง Tile ข้อมูลภาพแล้วสามารถเรียกดูผลลัพธ์ได้จากการใช้งาน gdalinfo โดยสังเกตจากขนาดของ Block ดังนี้
ตัวอย่างข้อมุลภาพที่มีการทำ Tile ด้วยขนาด 512x512 จุดภาพ

Saturday, December 15, 2012

ปัญหาที่พบระหว่างการทำงานกับไฟล์ข้อมูลภาพจำนวนมาก

ชีวิตช่วงนี้ยุ่งๆกับการทำงานวิจัยของตัวเอง บังเอิญมีปัญหาที่หลากหลายในการทำงานจึงอยากเอามาแบ่งปัน เผื่อว่าบางท่านอาจจะเจอปัญหาในลักษณะเดียวกัน ดังนี้ครับ

  1. โปรแกรม xxx ไม่สามารถโมเสคไฟล์ถาพจำนวนมากได้ (แค่ 3,000 กว่าไฟล์เอง ทำเป็นใจเสาะ ตายเอาดื้อๆซะงั้น) วิธีการแก้ไขของผม คือ แยกไฟล์ที่มีเลขระวางหมวดเดียวกันไว้ด้วยกันก่อน  (ในกรณีของข้อมูลที่อาศัยระบบเลขระวาง อาจใช้เลขระวางสามหรือสี่ตัวแรกของชื่อไฟล์ในการจัดหมวดหมู่) แล้วทำการโมเสค ที่ละหมวดๆ แล้วค่อยนำมาโมเสคกันภายหลัง เช่น ไฟล์ทั้งหมด สามพันกว่าไฟล์เมื่อทำการจัดหมวดหมู่แล้ว อาจจะเหลือเพียงแค่ สิบหมวดหลัก (ที่มีตัวเลขสี่ตัวแรกเหมือนกัน) ซึ่งวิธีการทำงานนั้นสามารถใช้การเขียน Batch ช่วยในการคัดแยกไฟล์ หรือการใช้เครื่องหมาย * ต่อท้ายชือไฟล์สามหรือสี่ตัวแรก เพื่อทำการจัดกลุ่มข้อมูล หลังจากทำการจัดหมวดหมู่ (จัดกลุ่ม) แล้วก็ให้ทำการโมเสคต่อกันในแต่ละหมวดเข้าด้วยกัน แล้วค่อยนำผลที่ได้มาโสเสคกันอีกครั้งเพื่อให้ได้ไฟล์ภาพที่โมเสคทั้งหมดทั้ง  3,000 กว่าไฟล์
  2. การโมเสคอาจเกิดช่องว่างระหว่างแถวหรือคอลัมน์ อันเนื่องมากจากการโมเสคของแต่ละหมวดข้อมูลภาพ (ถ้าโมเสคพร้อมกันทั้งหมดจะไม่เกิดปัญหานี้) วิธีการแก้ไข ผมใช้วิธีการสุ่มโมเสคที่ละหมวดก่อน หากหมวดไหนที่มีปัญหาการเกิดแถวช่องว่าง ผมจะโมเสค หมวดนั้นรวมกันกับหมวดอื่นๆพร้อมกันในคราวเดียว (อาจมีปัญหาขนาดไฟล์มากเกินไปจะโปรแกรมไม่สามารถทำงานได้)
  3. โปรแกรม xxx และ gdal_merge ไม่สามารถโมเสคไฟล์ที่มีชนิดข้อมูลที่ต่างกันได้ วิธีการแก้ไขก็ตรงไปตรงมาคือ ทำการแปลงชนิดข้อมูลก่อนแล้วจึงทำการโมเสคภาพ
  4. มีข้อมูลผิดพลาดในไฟล์ เช่น ค่าจุดภาพที่มากหรือน้อยเกินจริง เพียงไม่กี่จุดภาพ ซึ่งไม่มีการแสดงผลในส่วนของ Image information วิธีการแก้ไขคือ ทำการแปลงให้อยู่ในรูปของไฟล์ CSV แล้วเรียกดูด้วยโปรแกรมพวก Spreadsheet แล้วทำการเรียง (Sorting) เพื่อดูค่าดังกล่าว โดยผู้ใช้งานโปรแกรมอาจแก้ไขได้ โดยการเปลี่ยนค่าในไฟล์ CSV ก่อนแล้วจึงนำไฟล์ CSV นี้ไปทำการแปลงกลับให้เป็นข้อมูลภาพ
  5. ค่าของจุดภาพคลาดเคลื่อนไปจากจุดภาพข้างเคียงไม่มากนัก (กรณีของข้อมูลแบบจำลองภูมิประเทศเชิงเลข) วิธีการสังเกตให้ใช้เครื่องมือจำพวก Image Enhancement เพื่อทำให้เห็นจุดภาพเหล่านั้น เด่นชัดมากขึ้น

Thursday, September 20, 2012

QGIS: วิธีแก้ปัญหา Labels ซ้อนทับกัน

วันนี้ขอเสนอวิธีการแก้ปัญหาการซ้อนทับกันของ Labels จากการใช้งานโปรแกรม QGIS ก่อนอื่นผมขอแสดงตัวอย่างของปัญหาก่อนนะครับ สมมุติว่าผมต้องการทำ  Labels ของ Polygons ปกติผมก็จะทำการกำหนดค่าโดยเลือกที่ชั้นข้อมูลแล้วกำหนดที่แท็บ  Labels ดังภาพที่ 1

ภาพที่ 1 การกำหนดค่าของ  Labels  แบบปกติ
หลังจากนั้นจะได้ตัวอย่างผลลัพธ์ดังภาพที่ 2 ดังนี้



ภาพที่ 2 ตัวอย่าง Labels ที่ซ้อนทับกัน
จะสังเกตได้ว่าทุกๆ Polygons นั้นมีค่าของ Labels เหมือนกัน แต่เนื่องจาก Polygons ต่างๆนั้นอยู่ชิดติดกันเกินไป (เมื่อเทียบกับมาตราส่วนการแสดงผล) ทำให้เกิดการซ้อนทับกัน (Overlap) ของ Labels 
วันนี้ผมขอเสนอหนึ่งในวิธีการแก้ปัญหานี้ครับ
อันดับแรกให้ทุกท่านยกเลิก Labels ที่ได้ทำไว้เสียก่อน โดยการ "ไม่เลือก" ที่ Display labels แล้ว กด Apply/OK หรือ "เอาชั้นชั้นข้อมูลที่ต้องการทำ Labels ออกแล้วเปิดชั้นข้อมูลใหม่ (เหมือนคอมพ์ เวลามีปัญหาทำอะไรไม่ถูกก็ปิดแล้วเปิดใหม่ ฮ่าๆๆ)"
เพื่อความเข้าใจอย่างง่าย (แล้วก่อนหน้านี้จะอธิบายให้ งง ทำไม) คือให้เปิดชั้นข้อมูลปกติโดยยังไม่ต้องทำอะไร (ยังไม่ต้อง Labels ใดๆทั้งสิ้น) ดังภาพที่ 3 

ภาพที่ 3 การเปิดชั้นข้อมูลก่อนสร้าง Labels (ควรให้เป็นแบบนี้ก่อนเสมอนะครับ)
หลังจากนั้นให้เลือกที่เมนู Layer --> Labeling หลังจากนั้นจะปรากฏหน้าต่างให้กำหนดค่าและทำการกำหนดค่าของ  Labels ที่ต้องการดังตัวอย่างภาพที่ 4

ภาพที่ 4 ภาพตัวอย่างหน้าต่างสำหรับกำหนดค่า Labels และการกำหนดค่าของ  Labels
เมื่อกำหนดค่าของ Labels ด้วยวิธีการนี้เรียบร้อยแล้ว จะพบว่าไม่ปรากฏการซ้อนทับกันของ Labels อีกตัวอย่างดังภาพที่ 5

ภาพที่ 5 ตัวอย่างการทำ Labels แบบไม่มีการซ้อนทับกัน

หมายเหตุ
  • ตัวอย่างนี้ใช้โปรแกรม QGIS version 1.7.4
  • หากท่่านใดทำตามตัวอย่างแล้วยังเกิดปัญหาโปรดแจ้งให้ทราบด้วยครับ

Monday, June 4, 2012

ภูมิสารสนเทศในยุค Spatio-temporal information system

วันนี้ตื่นขึ้นมาไม่รู้มีอะไรดลใจให้คิดถึงเกี่ยวกับ วิชาชีพและสิ่งที่ผมกำลังเรียนรู้อยู่ในปัจจุบัน คิดไปคิดมา ทำให้ผมได้ข้อสรุปดังนี้ครับ งานด้านภูมิสารสนเทศในยุคปัจจุบัน (5-10 ปีมานี้)ได้มีการเปลี่ยนแปลงไปจากเดิม กล่าวคือ ยุคก่อนหน้านี้เราจะเน้นศึกษาสิ่งต่างๆเพียง 2 ด้าน กล่าวคือ สิ่งที่เราสนใจนั้นมีคุณลักษณะหรือคุณสมบัติ (Attribute) อย่างไร เมื่อมีตำแหน่ง (Space) ที่แตกต่างกัน แต่ในปัจจุบัน งานวิจัยต่างๆที่เกียวข้องกับภูมิสารสนเทศนั้นได้ให้ความสนใจเกี่ยวกับเชิงเวลา (Temporal) ดังจะเห็นได้จากบทความงานวิจัย มาตรฐานการทำงานของโปรแกรมด้านภูมิสารสนเทศ หรือมาตรฐานการจัดเก็บข้อมูลในระบบฐานข้อมูล สิ่งต่างๆเหล่านี้ล้วนแต่ให้ความสนใจเกี่ยวกับเวลาซึ่งนอกเหนือไปกว่า "ตำแหน่งและคุณลักษณะ" ถ้าจะอธิบายให้เข้าใจอย่าง่าย ผมขออนุญาตยกตัวอย่างภาพประกอบดังนี้ครับ

ภาพที่ 1 สิ่งที่งานด้านภูมิสารสนเทศให้ความสนใจ(เทียบได้กับแกนต่างๆ)
จากภาพตัวอย่างจะเห็นว่า ปัจจุบันนี้ เรามีประเด็นใหม่ที่ต้องให้ความสนใจ (ตระหนัก) ประกอบการวิเคราะห์ข้อมูลเชิงตำแหน่ง (Spatial data analysis) นั่นคือเจ้า "เชิงเวลา (Temporal)" นั่นเอง
คำถามที่หลายๆท่านสงสัย เมื่อได้ยินคำว่า Spatio-temporal analysis คือ มีความแตกต่างจากรูปแบบเดิมอย่างไรและวิธีการวิเคราะห์ข้อมูลแตกต่างจากที่ทำๆกันอยู่ในปัจจุบันอย่างไร รวมถึงมันสำคัญและช่วยเราวิเคราะห์อะไรได้บ้าง???
 ครั้งหนึ่งผมเคยเข้ารับฟังการบรรยายเมื่อปี 2551 (2008) ระหว่างการประชุม ISPRS congress 2008 เกี่ยวกับการศึกษาด้าน Spatio-Temporal analysis ตอนนั้นต้องยอมรับว่า ผมเองก็ยังมองไม่เห็นภาพว่าเราจะนำความรู้เหล่านี้มาประยุกต์ใช้ได้อย่างไร..........


คราวหน้าผมจะมาแนะนำถึงความสามารถของเจ้า Spatio-Temporal analysis ครับ
ปล. ขนาด Facebook ยังมีทั้ง Location และ Timeline หรือว่าเจ้า Spatio-Temporal information system อยู่ใกล้ๆตัวเรานี่แหละ!!!

Thursday, May 31, 2012

กำหนดช่วงชั้นข้อมูลด้วยฟังก์ชัน IF

วันนี้ขอทดลองเขียนคำสั่งการคำนวณหาระดับชั้น (Class) แบบกำหนดค่าช่วงเอง (Interval) บนโปรแกรม Spreadsheet ด้วยตัวอย่าดังนี้ครับ
สมมุติผมมีค่าของข้อมูลที่อยู่ในช่วงต่างๆดังนี้

A 0.81
B 0.75
C 0.67
D 0.58
E 0.88
F 0.43
G 0.74
H 0.77
I 0.95

โดยโจทย์ของผมคือ ผมต้องการแยกข้อมูลดังกล่าวให้อยู่ในช่วงที่ผมต้องการโดยทำการให้ค่าใหม่ (คล้ายกับการทำ Label ข้อมูล) ดังนี้
โดยค่า 1 (ที่กำหนดใหม่) จะมีค่าของข้อมูลตั้งแต่ 0.0 - 0.4 (x <0.4) ค่า 2 มีค่าของข้อมูลตั้งแต่ 0.4 - 0.6 (x >= 0.4 and x < 0.6) ค่า 3 มีค่าของข้อมูลตั้งแต่ 0.6 - 0.7 (x >= 0.6 and x < 0.7) ค่า 4 มีค่าของข้อมูลตั้งแต่ 0.7 - 0.8 (x >= 0.7 and x < 0.8) และค่า 5 มีค่าของข้อมูลตั้งแต่ 0.8 - 1.0 (x >= 0.8)
เมื่อเราทำการกำหนดค่าของแต่ละช่วงข้อมูลเรียบร้อยแล้วขั้นตอนต่อมาคือการสร้างสูตรในโปรแกรม Spreadsheet จากตัวอย่างผมสามารถเขียนโดยใช้ฟังก์ชัน IF ดังนี้ครับ

IF(CELL>=0.8,5,IF(CELL>=0.7,4,IF(CELL>=0.6,3,IF(CELL>=0.4,2,1))))
เมื่อ CELL คือ ตำแหน่งของเซลล์ที่ต้องการคำนวณ
จากตัวอย่างจะได้ผลลัพธ์ดังนี้
กลุ่มที่ 1 ไม่มีสมาชิก
กลุ่มที่ 2 มีสมาชิกคือ D, F
กลุ่มที่ 3 มีสมาชิกคือ C
กลุ่มที่ 4 มีสมาชิกคือ B, G, H
กลุ่มที่ 5 มีสมาชิกคือ A, E, I
ลองเอาไปประยุกต์กันดูนะครับ อย่างเช่นการ reclass ของข้อมูลที่ผ่านการจำแนกข้อมูลแล้ว (Classification) เป้นต้น

Thursday, March 15, 2012

การบีบอัดข้อมูลภาพ (Image compression) ด้วย GDAL

การบีบอัดข้อมูลภาพ (Image compression)
โดยทั่วไปแล้วจะแบ่งออกเป็น 2 ประเภทคือ
1. การบีบอัดแบบไม่มีการสูญเสียรายละเอียดข้อมูล (Lossless compression) ซึ่งค่าความสว่างของแต่ละจุดภาพจะยังคงอยู่เหมือนเดิมทุกประการ หรือไม่มีการเปลี่ยนแปลงค่าของแต่ละจุดภาพ ซึ่งการบีบอัดวิธีนี้จะอาศัยเทคนิคการจัดเก็บข้อมูลเชิงเลขในการลดขนาดของข้อมูล ตัวอย่างเช่น Lempel–Ziv–Welch (LZW), Run-Length Encoding (RLE) หรือ PackBits เป็นต้น
2. การบีบอัดแบบสูญเสียรายละเอียดข้อมูล (Lossy compression) วิธีการนี้จะมีการเปลี่ยนแปลงค่าความสว่างของจุดภาพนั่นหมายความว่า วิธีการนี้ไม่เหมาะสมสำหรับข้อมูลภาพที่ต้องมีการจำแนกข้อมูล (Classification) ตัวอย่างของการบีบอัดประเภทนี้ได้แก่ JPEG, MrSID หรือ ECW เป็นต้น
เปรียบเทียบจุดเด่นและจุดด้อยของแต่ละประเภท
การบีบอัดแบบไม่มีการสูญเสียรายละเอียดข้อมูล: รายละเอียดข้อมูล(ค่าความสว่างจุดภาพ)ไม่มีการสูญเสีย เหมาะสำหรับใช้กับข้อมูลภาพที่ต้องการนำไปจำแนกข้อมูล แต่ขนาดของภาพที่บีบอัดแล้วมีขนาดลดลงไม่มากนัก (ขนาดไฟล์ไม่ค่อยแตกต่าง)
การบีบอัดแบบสูญเสียรายละเอียดข้อมูล: ข้อมูลภาพมีขนาดเล็กลงอย่างมาก (ขึ้นอยู่กับวิธีการ/อัลกอริทึมและคุณภาพของภาพที่ต้องการ) แต่ข้อมูลภาพมีการสูญเสียรายละเอียดซึ่งจะไม่เหมาะสมสำหรับการจำแนกข้อมูล
ในส่วนของวิธีการทำงานนั้นมีรายละเอียดและตัวอย่างการทำงานดังนี้
รายละเอียดการทำงานด้วย GDAL (FWTOOLS 2.4.7)
>>>gdal_translate -of (รูปแบบที่ต้องการ) -co (ทางเลือกเพิ่มเติม-ถ้ามี) inputimage outputimage

ตัวอย่างการใช้งานที่ 1: การบีบอัดแบบไม่มีการสูญเสียรายละเอียดข้อมูล

>>>gdal_translate -of GTiff -co COMPRESS=LZW image.tif image_lzw.tif

>>>gdal_translate -of GTiff -co COMPRESS=PACKBITS image.tif image_packbits.tif

ตัวอย่างการใช้งานที่ 2: การบีบอัดแบบสูญเสียรายละเอียดข้อมูล

>>>gdal_translate -of GTiff -co COMPRESS=JPEG image.tif image_jpeg.tif

ประสิทธิภาพของการบีบอัดแบบไม่มีการสูญเสียรายละเอียดข้อมูล ได้แก่
- ข้อมูลที่ไม่มีการบันทึกข้อมูลในข้อมูลภาพ เช่น ขอบข้อมูลภาพที่ไม่มีการบันทึกข้อมูลของภาพดาวเทียมต่างๆ เป็นต้น
- เนื้อหาหรือลักษณะของภาพ (Content)
- ความซ้ำซ้อนของค่าความสว่างจุดภาพ
ส่วนประสิทธิภาพของการบีบอัดแบบสูญเสียรายละเอียดข้อมูล ได้แก่
- อัลกอริทึมที่ใช้
- คุณภาพข้อมูลภาพผลลัพธ์ที่ต้องการ (คุณภาพสูงขนาดจะลดลงน้อย คุณภาพต่ำขนาดภาพจะลดลงได้มาก)

ตัวอย่างผลการทดลองการบีบอัดข้อมูลภาพ โดยข้อมูลต้นฉบับที่ใช้นั้นเป็นภาพดาวเทียมขนาด 22289x48160 จุดภาพ จำนวน 4 ช่วงคลื่น ดังภาพตัวอย่าง



ส่วนขนาดการจัดเก็บสรุปได้ดังนี้ครับ
ต้นฉบับ 3.99 GB
LZW 1.72 GB
PACKBITS 2.30 GB
JPEG 0.38 GB

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 เป็นค่าเริ่มต้นครับ