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

Tuesday, July 28, 2009

การเปลี่ยนชื่อไฟล์ (เพิ่มคำนำหน้า)

ตัวอย่างการแก้ไขจาก abc001.tif, abc002.tif และ abc003.tif (ไฟล์เดิม) ไปเป็น myFiles_abc001.tif, myFiles_abc002.tif และ myFiles_abc003.tif โดย "myFiles_" คือคำนำหน้า (Prefix) ที่ต้องการเพิ่มเข้าไป ดังนี้

#FOR %i IN (*.tif) DO rename %i myFiles_%i

การรังวัดด้วยภาพเบื้องต้น (2) : พื้นฐานตรีโกณมิติ (Trigonometry)

ในงานการรังวัดด้วยภาพได้อาศัยทฤษฏีทางคณิตศาสตร์มากมายเพื่อช่วยในกระบวนการทำงาน ตรีโกณมิติถือว่าเป็นพื้นฐานอย่างหนึ่งที่มีส่วนสำคัญอย่างยิ่งสำหรับงานการรังวัดด้วยภาพ (ทั้งแบบดั้งเดิมและการรังวัดด้วยภาพเชิงเลข - Digital Photogrammetry) การนำเสนอครั้งนี้ขอทบทวนเนื้อหาที่เคยได้เรียนมาแล้ว(สำหรับผมลืมไปเกือบหมดแล้ว แฮะๆๆ) ดังนี้นอกจากนี้ยังมีทฤษฏี ตรีโกณทรงกลม (Spherical Trigonometry) สำหรับอธิบายความสัมพันธ์ระหว่างด้านและมุม บนทรงกลม ซึ่งมีการประยุกต์ใช้งานสำหรับการคำนวณระยะและมุมบนทรงกลม (เช่น โลก) ตัวอย่างของความสัมพันธ์มีดังนี้ครับ

Monday, July 27, 2009

gdal_merge อย่างง่าย... (ของฟรีและดีก็มีในโลก)

วันนี้ขอนำเสนอ การใช้งาน gdal_merge อย่างง่าย โดยจะขอทดลองกับข้อมูล GDEM โดยการใช้งาน gdal_merge นั้นจะแตกกต่างกับคำสั่ง gdal อื่นๆ คือ ต้องระบุผลลัพธ์ (Output file) ก่อนแล้วจึงระบุไฟล์ต้นฉบับ การใช้งานเบื้องต้นเป็นไปตาม syntax ดังนี้ครับ
#gdal_merge [option] [output file] [input files] ซึ่งตัวอย่างการใช้งานดังนี้ครับ
#gdal_merge -of GTiff -o output.tif abc1.tif abc2.tif abc3.tif abc4.tif
จากตัวอย่างดังกล่าว จะเห็นว่าการระบุไฟล์ต้นฉบับที่มากกว่า 1 ไฟล์นั้นค่อนข้างยุ่งยาก เราสามารถใช้เครื่องหมาย * เข้ามาช่วยในคำสั่งได้ดังนี้ครับ
#gdal_merge -of GTiff -o sample.tif *.tif

Friday, July 24, 2009

การรังวัดด้วยภาพเบื้องต้น (1)

วันนี้ผมขอนำเสนอความรู้เบื้องต้นเกี่ยวกับการรังวัดด้วยภาพเบื้องต้น โดยมีแหล่งอ้างอิงที่สำคัญคือ หนังสือ Elements of Photogrammetry (with Applications in GIS) ที่เขียนโดย Pual R. Wolf และ Bon A. Dewitt และหนังสือ Digital Photogrammetry ที่เขียนโดย Yves Egels และ Michel Kasser
ทั้งนี้อาจมีข้อมูลบางอย่างคลาดเคลื่อน (อันเนื่องจากความไม่รู้ของกระผมเอง)จึงไม่แนะนำให้อ้างอิง (ควรอ้างอิงจากแหล่งข้อมูลต้นฉบับโดยตรง) ซึ่งผมมีวัตถุประสงค์หลักของการสร้าง Blog นี้คือ เอาไว้เตือนความจำตัวเองขณะทำงานวิจัย (อายุมากขึ้นทำให้ความจำเริ่มสั้นลง แฮะๆๆ)
...มาเข้าเรื่องกันดีกว่าครับ...
การรังวัดด้วยภาพ (Photogrammetry) ได้มีการนิยามโดย American Society for Photogrammetry and Remote Sensing (ASPRS) คือ ศาสตร์ ศิลป์และเทคโนโลยีของการได้มาซึ่งข้อมูลอย่างน่าเชื่อถือเกี่ยวกับวัตุทางกายภาพและสิ่งแวดล้อมโดยผ่านกระบวนการบันทึก การรังวัดและการแปลตีความข้อมูลภาพและรูปแบบการบันทึกพลังงานคลื่นแม่เหล็กไฟฟ้ารวมถึงปรากฏการณ์อื่นๆ(ที่เกี่ยวข้อง)
โดยทั่วไปแล้วข้อมูลภาพที่ใช้ในงานสาขานี้จะแบ่งออกเป็น 2 ประเภทได้แก่
  1. ข้อมูลภาพจากอากาศ (Aerial photos) จากการบันทึกด้วยอากาศยาน (Airborne vehicle) เช่น เครื่องบิน อากาศยานไร้คนขับ (Unmanned Aerial Vehicle - UAV)หรือเฮลิคอปเตอร์ เป็นต้น ในปัจจุบันนั้นยังรวมไปถึงอวกาศยาน (Spaceborne vehicle) เช่น ดาวเทียมหรือกระสวยอวกาศ อีกด้วย
  2. ข้อมูลภาพที่บันทึกบนโลก (Terrestrial photos) ที่มีการบันทึกด้วยอุปกรณ์บนพื้นโลก (Earth based)
จากคำนิยามข้างต้น อาจสรุปได้ว่าการรังวัดด้วยภาพนั้นประกอบด้วย 2 ส่วนหลักคือ การวัดและการแปลตีความบนข้อมูลภาพ (Metric and Interpretive Photogrammetry)
การรังวัดด้วยภาพนั้นอาศัยเทคนิคและวิทยาศาสตร์ทางด้านแสงและการมองเห็น (Optic) โดยเราจะสนใจคุณสมบัติหลักของแสง 2 ประเภทหลักคือ คุณลักษณะทางกายภาพและคุณลักษณะทางเรขาคณิต ทางกายภาพแสงจะเดินทางผ่านตัวกลาง (เช่น อากาศ) ในรูปของคลื่นแม่เหล็กไฟฟ้าจากแหล่งกำเนิด ซึ่งในบางกรณีอาจเรียกว่า การแผ่รังสี (Radiation) ความเร็วของแสงนจากแหล่งกำเนิดจะเรียกว่า อัตราความเร็ว (Velocity) ซึ่งสัมพันธ์กับ ความถี่และความยาวคลื่น (Frequency and Wavelength) ดังสมการต่อไปนี้โดยอัตราความเร็วของแสงที่เคลื่อนที่ในสุญญากาศเท่ากับ 299,792,458 เมตรต่อวินาที ส่วนคุณลักษณะทางเรขาคณิตของแสงนั้นจะพิจารณาการเดินทางของแสงแบบ เส้นตรง จากแหล่งกำเนิดครับ

Tuesday, July 14, 2009

คัดลอกไฟล์ที่ต้องการในบรรทัดเดียว

ช่วงนี้ดาวน์โหลด ASTER GDEM มาลองใช้งาน แต่เจอปัญหาอย่างหนึ่งคือ เมื่อ extract ไฟล์ออกมาแล้ว ดันแยกออกเป็นโฟลเดอร์ต่างๆตามพื้นที่คลอบคลุม (ชื่อไฟล์) หากต้องการคัดลอกเอาเฉพาะไฟล์ DEM ที่ต้องการของแต่ละพื้นที่ออกมาเพื่อ Mosaic ให้เป็นผืนเดียว ซึ่งจะต้องมานั่งคลิกเลือกเข้าไปที่ละโฟลเดอร์แล้วคัดลอกออกมาทีละไฟล์ หรือ ขั้นสูงขึ้นมาหน่อย ก็ใช้คำสั่ง Search... บน Windows แล้วค่อยคัดลอกไฟล์

ด้วยความอยากใช้คำสั่งบน DOS (Batch processing) สำหรับการทำงานดังกล่าว จึงได้ค้นๆคุ้ยๆผ่านอินเตอร์เน็ต จนพบว่าวิธีการช่างแสนง่ายดายอะไรเพียงนี้ ทุกท่านสามารถทำตามได้ดังนี้ครับ
อ้อ...ก่อนอื่นต้องดาวน์โหลด ASTER GDEM มาก่อนนะครับ สำหรับตัวอย่างครั้งนี้ผมดาวน์โหลดมาแล้วจำนวนทั้งสิ้น 30 ระวาง ดังภาพ
หลังนั้นก็ให้ Extract ไฟล์ออกมาจะได้ดังตัวอย่างข้างล่าง ดังนี้หลังจากได้ข้อมูล ASTER GDEM จำนวน 30 โฟล์เดอร์แล้วลองคลิกเข้าไปดูจะพบว่ามีอยู่ 2 ไฟล์ในแต่ละโฟล์เดอร์คือ XXXXXX_dem.tif และ XXXXXX_num.tif โดย
XXXXXX_dem.tif คือ ไฟล์ DEM ที่เราต้องการ อ้อ อย่าลืมนะครับว่าความสูงของ DEM นี้คือความสูงแบบ Orthometric Height โดยคำนวนจาก WGS84/EGM96 รายละเอียดเพิ่มเติมศึกษาได้จาก ที่นี่ ครับ
ส่วน XXXXXX_num.tif คือ จำนวนภาพถ่ายดาวเทียม ASTER ที่ใช้ในการผลิต GDEM (ค่า DN บนภาพ)

ที่นี้มาถึงขั้นตอนสำคัญคือ การใช้คำสั่งบน DOS ตัวอย่างมีดังนี้ครับ
1. Change Directory ไปยัง โฟล์เดอร์ที่เก็บไฟล์ทั้งหมด (ของผมคือ C:\GDEM\ โดยมีข้อมูล ASTER GDEM ย่อยๆอยู่ข้างใน เช่น C:\GDEM\ASTGTM_N10E097\ หรือ C:\GDEM\ASTGTM_N18E098\ เป็นต้น)

2. พิมพ์คำสั่งดังนี้ครับ
C:\GDEM>FOR /r %i IN (.\*_dem.tif) DO copy %i C:\test\

ขออธิบายคำสั่งข้างต้นนะครับ
  • จากคำสั่งคือ ประกาศตัวแปรชื่่อ %i แทนไฟล์ใดๆ (ทุกไฟล์ที่มีชื่อต่อท้ายคือ "_dem.tif" ที่อยู่ในไดเรกทอรีปัจจุบันโดยรูปแบบข้อมูลคือ TIFF ) รวมถึงไดเรกทอรีย่อย (/r)
  • คัดลอกไฟล์ %i ทุกไฟล์ไปไว้ที่ C:\test\

นอกจากนี้เรายังสามารถประยุกต์ใช้การทำงานประเภทนี้กับงาน Geomatics ได้อีกด้วยครับ (ไว้มีเวลาว่างจะมานำเสนอในโอกาสต่อไปครับ)

Saturday, July 11, 2009

การใช้งาน Quiver Plot ด้วยโปรแกรม Octave

วันนี้มีวิธีการใช้งาน Quiver plot ด้วยโปรแกรม Octave มาแนะนำครับ!!!
ฟังก์ชัน Quiver นั้นสามารถช่วยแสดงความคลาดเคลื่อน(หรือการเปลี่ยนแปลง)ในงาน Geomatics ได้หลายแบบ เช่น ความคลาดเคลื่อนทางตำแหน่งหลังการดัดแก้ออร์โท การเปลี่ยนแปลงทางตำแหน่งของหมุดหลักฐานหลังการเกิดแผ่นดินไหว หรือความผิดเพี้ยนของเลนส์ (Lens Distortion) เป็นต้น โดยเราสามารถอธิบายการเปลี่ยนแปลงเหล่านี้ได้ด้วยค่า(ตัวเลขจำนวนจริง)หรือสมการทางคณิตศาสตร์
ในครั้งนี้เราจะมาลองการใช้งานอย่างง่าย โดยเราต้องเตรียมข้อมูลให้อยู่ในรูปแบบ ดังนี้ครับ [x, y, u, v] โดยที่ค่า x คือค่าพิกัดอ้างอิงทางแกน x และ y คือค่าพิกัดอ้างอิงทางแกน y ส่วน u คือค่าพิกัดที่เปลี่ยนแปลง(คลาดเคลื่อน)ทางแกน x และ v คือค่าพิกัดที่เปลี่ยนแปลงทางแกน y
ในตัวอย่างนี้ผมกำหนดชื่อไฟล์คือ C:\test.txt ตัวอย่างของข้อมูลมีดังนี้ครับ

487787.27 2071326.71 -0.36 4.33
486904.32 2068177.13 -1.06 -2.25
490220.08 2066478.38 1.70 -1.25
491029.95 2068104.50 -2.93 2.62

หลังจากสร้าง Text ไฟล์ตามรูปแบบข้างต้นแล้ว ต่อมาให้ทำการโหลดข้อมูลจาก Text ไฟล์และกำหนดค่าลงในเมทริกซ์ด้วยคำสั่งในโปรแกรม Octave ดังตัวอย่างดังนี้

>>load c:\test.txt
>>x=test(:,1);
>>y=test(:,2);
>>u=test(:,3);
>>v=test(:,4);

หลังจากนั้นจึงใช้คำสั่ง quiver ในการสร้างกราฟ ซึ่งอาจเพิ่มค่า Scale factor หรือค่าเกินจริง (Exaggeration) ได้โดยการกำหนดตัวคูณเพิ่มต่อท้าย ดังตัวอย่างดังนี้ครับ

>>quiver (x,y,u,v)
หรือ
>>quiver (x,y,u,v,10)

ตัวอย่างผลลัพธ์ดังภาพครับ

ลองใช้กันดูนะครับ หากมีข้อสงสัยสอบถามได้ครับ

ปล. ขอบคุณพี่ ภานุ สำหรับคำแนะนำการใช้งาน Octave เบื้องต้นครับ

Friday, July 3, 2009

ฟังก์ชันเจ๋งๆใน QGIS 1.0.2

วันนี้ได้ลองใช้งานเครื่องมือหลายๆอย่างใน QGIS แล้วประทับใจมากเลยอยากแนะนำทุกๆท่านลองใช้กันครับ โดยหลังจากติดตั้ง QGIS เรียบร้อยแล้ว (สำหรับท่านที่ยังไม่มีโปรแกรมก็ดาวน์โหลดได้จาก ที่นี่ ครับ) จะพบกับเมนูให้เลือกใช้งานที่หลากหลายและน่าสนใจมากๆ เช่น เมนู Tools --> Analysis Tools, Research Tools, Geoprocessing Tools, Geometry Tools และ Data Management Tools เป็นต้น
จากการทดสอบใช้งานเบื้องต้นพบว่าทำงานได้ดีไม่แพ้ซอฟต์แวร์ที่มีลิขสิทธิ์ หากท่านใดพบปัญหาหรือมีข้อสงสัยในการทำงาน สามารถเมล์มาสอบถามหรือแลกเปลี่ยนประสบการณ์ได้ครับ เพื่อช่วยสนับสนุนให้มีการใช้งาน Free/Open Source Software (FOSS) อย่างกว้างขวางในประเทศไทยของเรา ตัวอย่างของเครื่องมือที่น่าสนใจมีดังภาพข้างล่างครับ

Thursday, July 2, 2009

เมื่อ gdal2tiles ของ FWTOOLS (บางเวอร์ชัน) ใช้งานไม่ได้ (ของฟรีและดีก็มีในโลก)

วิธีแก้ไขเบื้องต้นมีดังนี้ครับ

1. ดาวน์โหลดไฟล์ gdal2tiles.py ที่นี่
2. บันทึกไฟล์ gdal2tiles.py แทนที่ของเดิม ที่ C:\Program Files\FWTools2.4.2\bin\ (default)
3. ใช้งาน gdal2tiles ตามปกติ

การแปลงค่าความสูงระหว่าง Ellipsoidal Height และ Orthometric Height

ท่านใดที่ต้องการแปลงค่าความสูง Ellipsoidal Height (h) ให้เป็น Orthometric Height (H) ด้วย EGM96 สามารถพิมพ์ค่าพิกัดที่ต้องการได้ ที่นี่ ในทำนองเดียวกันสามารถแปลงความสูง Orthometric Height กลับมาเป็น Ellipsoidal Height ก็สามารถทำได้ตามสมการข้างล่างครับ

h = H + N

เมื่่อ N คือค่าความสูงต่างระหว่าง Geoid และ Ellipsoid หรือที่เรียกกันว่าค่า Geoid Undulation (N)

งานประชุมเชิงปฏิบัติการ THEOS Image Quality Assessment

สำนักงานพัฒนาเทคโนโลยีวกาศและภูมิสารสนเทศ (สทอภ) ได้จัดการประชุมงานประชุมเชิงปฏิบัติการเรื่อง THEOS Image Quality Assessment ระหว่างวันที่ 15 - 17 กค. 2552 ขอเชิญทุกท่านที่สนใจเข้าร่วมงานครับ (ติดต่อ สทอภ กันเองนะครับ แฮะๆๆ) เนื้อหาคร่าวๆของการฝึกอบรมมีดังนี้ครับ
- Overview of Thai-French Cooperation in Space Technology, Application and Training.
- Introduction to Satellite Image Processing and Mathematical Fundamental for Image Processing.
- Mathematical Fundamental for Radiometric/Geometric Correction.
- การบรรยายเรื่อง Preliminary of THEOS Sensor Modeling.
- Local and Global DEMs Availabilities and their Contribution to THEOS Orthorectification.
- Mathematical Fundamental for Radiometric/Geometric Calibration.