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

Tuesday, September 28, 2010

งูงู ปลาปลากับไพธอน ตอนที่ 1 Number & String เบื้องต้นในภาษา python

จากหนังสือ Learning Python: Help for Programmers ของ Mark Lutz และ David Asher ที่พูดถึง Built-in Object type เบื้องต้นในภาษาไพธอน (Python) ได้แก่ Numbers, Strings, Lists, Dictionaries, Tuples และ Files นั้น ผมพอจะสรุปได้ดังนี้ครับ
1. Numbers
Numbers ในภาษาไพธอนนั้นจำแนกออกเป็น 5 กลุ่มหลักคือ
  • Integer (int) เช่น 12345 หรือ 123456789 เป็นต้น
  • Floating (float) เช่น 1.2345 หรือ 123.456 เป็นต้น
  • Long integer (long) เช่น 9999999L (unlimited size) เป็นต้น
  • Complex number (complex) จะประกอบด้วย real-part + imagery-part เช่น 3j หรือ 1.2j+3.4j เป็นต้น
  • Octal ({ฐาน 8) or Hex (ฐาน 16) ใช้สำหรับระบุตัวเลขที่ต้องขึ้นต้นด้วย 0 (ศูนย์) สำหรับ Hex นั้นจำเป็นต้องขึ้นต้นด้วย 0x หรือ 0X เท่านั้น ไม่สามารถใช้เลขฐานสิบได้ ตัวอย่างของOctal/Hex เช่น 0x9ff เป็นต้น
ตัวอย่างการประมวลผลข้อมูล Numbers มีดังนี้
  • การบวก การลบ การคูณและการหาร เช่น x+y, x-y, x*y และ 3/2.0 เป็นต้น
  • การเปลี่ยนเครื่องหมาย เช่น +x หรือ -x เป็นต้น
  • การยกกำลัง เช่น x**y หรือ pow(x, y) เป็นต้น
  • ในภาษาไพธอนนั้นมีการใช้กฏการมีลำดับที่เหนือกว่า (Precedence rule) สำหรับการใช้ตัวดำเนินการแบบผสม เช่น a+b*c การคำนวณจะเริ่มจากการนำค่าของตัวแปร b คูณกับค่าของตัวแปร c ก่อนแล้วจึงนำมาบวกกับค่าของตัวแปร a เป็นต้น
2. Strings
อักขระ (Strings) นั้นคือตัวอักษรหรือตัวเลขที่อยู่ในเครื่องหมาย single qoute ('.....') หรือ Double qoute (".....") เช่น 'Sawarin' หรือ 'My name is Sawarin' หรือ "Sawarin's book" เป็นต้น

การประมวลผล String ที่ใช้งานแพร่หลายแบ่งออกเป็น 2 ประเภทหลักคือ
  • Indexing เป็นการอ้างถึงตำแหน่งของอักขระในแต่ข้อความจากตำแหน่งเริ่มต้น (0) ไปจนถึงตำแหน่งสุดท้ายของข้อความ ในภาษาไพธอนนั้นสามารถอ้างอิงตำแหน่งจากส่วนท้ายของข้อความได้โดยเริ่มจากตำแหน่งที่ -1 เช่น
>>> myname = 'Sawarin'
>>> myname[0]
'S'
>>> myname[-3]
'r'
  • Slicing เป็นการตัดส่วนของข้อความที่ต้องการโดยการระบุตำแหน่งของอักขระที่ต้องการภายในเครื่องหมาย [....] เช่น myname[0:1] จะหมายถึง เลือกเฉพาะอักขระลำดับที่ 0 ถึง 1 (แต่ไม่รวม 1) จะได้ 'S' หรือ myname[4:] จะหมายถึง เลือกเฉพาะอักขระลำดับที่ 1 ถึงอักขระตำแหน่งสุดท้าย จะได้ 'rin' หรือ myname[:-1] จะหมายถึง เลือกเฉพาะอักขระลำดับที่ -1 จากท้ายข้อความจนถึงอักขระตำแหน่งเริ่มต้น (ตำแหน่งที่ 0) จะได้ 'Sawari' หรือ owner = "Sawarin's book" แล้ว owner[:-5] จะได้ "Sawarin's" เป็นต้น
เพื่อความเข้าใจของลำดับของอักขระในข้อความสามารถดูเพิ่มเติมได้จากภาพที่ 1 ดังนี้
ภาพที่ 1 ตัวอย่างลำดับของอักขระในข้อความ


Friday, September 3, 2010

gdalinfo แบบไม่ต้องแสดง RasterAttributeTable (ROT)

เคยใช้ GDALINFO แล้วต้องเจอปัญหากับการแสดง RasterAttributeTable (ROT) ทำให้ไม่สามารถดูข้อมูลที่ต้องการ (ที่อยู่ตอนบนของการแสดงผลลัพธ์) วันนี้มีวิธีบอกให้ GDALINFO ไม่ต้องแสดง ROT ที่ยาวมากๆ ดังนี้

>>gdalinfo -norat ABC.tif