สองปีที่แล้วพอดีผมถอยเครื่องคิดเลขคาสิโอ fx-cg50 Prizm เพราะว่าสนับสนุนภาษาไพทอน อยากลองเขียนไพทอนบนเครื่องคิดเลขดู แต่เนื่องจากไพทอนไม่สามารถเรียกใช้ฟังก์ชั่นในเครื่องคิดเลขต่างๆ เช่นฟังก์ชั่นวาดรูป ฟังก์ชั่นการพล็อทกราฟ คาสิโอเองก็รีบเอาไพทอนมาลงเครื่องคิดเลขเร็วเกินไป ผมเอามาทำที่ทับกระดาษเล่นๆ จนกระทั่งสองปีให้หลังจนบัดนี้ (10 กันยายน 2020) ทางคาสิโอเพิ่งอัพเดทโอเอสของเครื่องคิดเลขจากรุ่น 3.30 มาเป็น 3.40 และได้เพิ่มฟังก์ชั่นการวาดรูปให้กับเครื่องคิดเลขรุ่นนี้ มาลองดูว่าอัพเดทแล้วมีอะไรบ้าง เพิ่มโมดูล casioplot ในโมดูลนี้จะมีฟังก์ชั่นให้เรียกใช้อยู่ 4 ฟังก์ชั่น draw_string(,,) สำหรับเขียนตัวหนังสือเลือกสี ขนาด ตำแหน่งได้ set_pixel(,) สำหรับเขียนจุดเลือกสี ขนาด…
Author: priabroy
แนะนำ beeware เครื่องมือพัฒนาโปรแกรมด้วยภาษาไพทอนแบบเนทีฟสำหรับโทรศัพท์มือถือ
ผมได้ติดตามเป็นแฟนของ beeware มาได้ประมาณร่วมๆจะสองปีแล้วครับ beeware เป็นแพล็ตฟอร์มพัฒนาโปรแกรมแบบ cross-platform ที่อ้างว่าสามารถพัฒนาโปรแกรมแบบ desktop ได้ทั้งวินโดส์ ลีนุกซ์และแมคโอเอส รวมไปถึงแอนดรอยด์และไอโอเอส ปกติผมใช้ PySide2 สำหรับโปรแกรมบนเดสค์ท็อปอยู่แล้วเลยไม่รู้สึกตื่นเต้นตรงที่สนับสนุนโปรแกรมบนเดสค์ท็อปเท่าไหร่นัก แต่สำหรับภาษาไพทอนที่จะไปใช้ได้แบบเนทีฟ (native) บนโทรศัพท์มือถือแอนดรอยด์และไอโอเอส ยอมรับว่าตื่นเต้นพอสมควร ความนิยมภาษาไพทอนในปัจจุบันเป็นที่นิยมมาก เป็นที่ได้รับการพิสูจน์แล้วว่าเรียนรู้ง่าย ทรงพลัง โดยเฉพาะในด้าน data science และ machine learning ตลอดจนปัญญาประดิษฐ์ (AI) เนื่องจากมีไลบรารีมากมายให้เลือกใช้ในด้านนี้เช่น numpy, pandas…
แปลงรูปแบบไฟล์แบบจำลองความสูงจีออยด์ TGM2017 เป็น GFF เพื่อใช้ในโปรแกรม Magnet และอุปกรณ์ของ Topcon
ในเมื่อต่อยอดแล้วคงเอาให้สุดๆ ตอนที่แล้วผมแปลงไฟล์แบบจำลองความสูงจีออยด์ TGM2017 จากต้นฉบับ (เครดิด: จัดทำโดยทีมงานดร.พุทธิพล ดำรงชัยและคณะ) เป็นรูปแบบ Lieca GEM เพื่อใช้ในโปรแกรม SKI-Pro & LGO ตอนนี้ที่คิดได้ยังมีอุปกรณ์ค่าย Sokkia & Topcon ที่ยังไม่ได้จัดทำ เหมือนเดิมคือไม่สามารถหารูปแบบไฟล์ Topcon GFF หรือคำอธิบายได้ จากเวบไซต์ทางการของ Topcon ได้ ผมลองค้นคว้าในอินเทอร์เน็ตพบว่าโปรแกรม Topcon Magnet ที่เอาไว้คำนวณและประมวลผลงาน GNSS รวมทั้งอุปกรณ์อื่นๆเช่นกล้องโททอลสเตชัน…
แปลงรูปแบบไฟล์แบบจำลองความสูงจีออยด์ TGM2017 เป็น GEM เพื่อใช้ในโปรแกรม SKI-Pro & LGO
ที่ผ่านมาผมได้จัดทำรูปแบบไฟล์ TGM2017 จากต้นฉบับเดิมให้มีรูปแบบหลากหลายสามารถนำไปใช้ในโปรแกรมต่างๆ เช่น รูปแบบ GTX, GGF ส่วนรูปแบบ PGM ที่เอื้อเฟื้อจัดทำโดยดร.ไพศาล สันติธรรมนนท์ แต่ก็มีน้องๆทัดทานมาว่ารูปแบบ Leica Geoid Model (GEM) น่าจะยังไม่มีคนจัดทำ Leica Geoid Model Reader ผมพยายามหารูปแบบข้อกำหนด Leica Geoid Model (GEM) โชคไม่ดีเลย ไม่มีเอกสารเผยแพร่ แต่มีโปรแกรมจาก Leica ออกมานานร่วมๆสิบกว่าปีแล้วชื่อ Geoid…
รวมคลิปสอนวิธีการใช้งาน Surveyor Pocket Tools
ผมได้เริ่มจัดทำคลิปสอนการใช้งานโปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ ซึ่งจะเป็นการย่นระยะเวลาทำความเข้าใจกับการใช้โปรแกรมได้เร็วกว่า จากที่เดิมผมเคยอธิบายประกอบภาพแบบแห้งๆ 1.คลิปสอนการใช้งานทูลส์ Geo-UTM Converter การแปลงพิกัดระหว่างระบบพิกัดฉาก UTM และค่าพิกัดภูมิศาสตร์ (Geographic) บนพื้นหลักฐาน เดียวกันคือ WGS84 สามารถแปลงพิกัดโดยทูลส์ตัวนี้ เพียงแค่ป้อนค่าพิกัดที่ต้องการแปลงแล้วทำการแปลงพิกัดได้อย่างง่ายดาย และมีความสะดวกในการปักหมุดลง Google Maps 2.คลิปสอนการใช้งานทูลส์ Transform Coordinates การแปลงพิกัดข้ามพื้นหลักฐาน ตัวอย่างเช่นในเมืองไทยเรายังมีหน่วยราชการเช่น กรมที่ดิน ที่ยังใช้พื้นหลักฐาน Indian 1975 ที่ใช้ทรงรี Everest ดังนั้นการแปลงพิกัดมายังพื้นหลักฐาน WGS84 ที่หน่วยราชการส่วนใหญ่และบริษัทเอกชนใช้กัน…
อัพเดท: นำเข้ารูปตัดตามขวางจาก Civil3D เข้า XSection Plot
งาน Earthwork หรืองานดินตัดดินถมนั้นคงขาดรูปตัดตามขวางและรูปตัดตามยาวไม่ได้ และเป็นทราบดีกันว่า Civil3D นั้นเก่งกาจในเรื่องพวกนี้อยู่แล้ว ทำอะไรที่ยากๆได้เช่นสร้าง Grading Object สำหรับงาน Earthwork ที่มีความซับซ้อนได้ แต่ก็แลกกับความยากของการศึกษาโปรแกรมนี้มาเช่นเดียวกัน ข้อเสียของ Civil3D นั้นคือความใหญ่โตของมัน กินทรัพยากรเครื่องคอมพิวเตอร์ของผู้ใช้สูงมากทีเดียวและอีกอย่างคือราคาค่อนข้างจะสูง เหมาะกับองค์กรมากกว่า แต่ถ้าผู้ใช้ตามบ้านๆมีกำลังซื้อก็ไม่ว่ากันครับ ดังนั้นการสร้างแผนที่รูปตัดตามขวางใน Civil3D ก็สามารถทำได้ การเปลี่ยนแปลง Alignment หรือปรับ Grading Object จะไปปรับให้ในแผนที่รูปตัดทันทีนับเป็นความสะดวกมาก สำหรับโปรแกรมช่วยเขียนแบบรูปตัดตามขวาง XSection Plot ที่ผมพัฒนาขึ้นมานี้ก็เป็นโปรแกรมเล็กๆ…
อัพเดท: คำนวณแปลงพิกัดในโครงการรถไฟความเร็วสูงไทย-จีน ด้วยโปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ (Surveyor Pocket Tools)
จากบทความที่แล้ว ผมได้พาย้อนรอยไปดูระบบพิกัดที่ใช้ในโครงการรถไฟความเร็วสูงไทยจีน และทางดร.ไพศาล ได้มาไขความกระจ่างว่าวิธีการออกแบบในโครงการนี้เป็นการขยายรูปทรงรีแบบอัตราส่วน (Scale reference ellipsoid) ตามค่าความสูง project plane ที่ทางผู้ออกแบบโครงการนี้ให้มา โดยที่ค่า K0 = 1.0 เป็นค่าคงที่ พร้อมได้เอื้อเฟื้อโค้ดไพทอนสำหรับการแปลงค่าพิกัดมาให้ดูเป็นตัวอย่าง ผมขอขอบคุณมา ณ ที่นี้เป็นอย่างสูง ดังนั้นผมขอนำเสนอรายละเอียดระบบพิกัดเส้นโครงแผนที่ความเพี้ยนต่ำอีกครั้ง ทางผู้ออกแบบได้ใช้ระบบพิกัดความเพี้ยนต่ำโดยการขยายขนาดทรงรี WGS84 (Scaled reference ellipsoid) โดยที่ขนาดมาตรฐานมีค่า a = 6378137.0 และ b…
โปรแกรมมิ่ง: เขียนโค้ดไพทอนสร้างเส้นชั้นความสูง (contours) ด้วยไลบรารี matplotlib
เป็นความฝันของผมอันหนึ่งตั้งแต่สมัยจบใหม่ๆที่จะเขียนโปรแกรมสร้างชั้นความสูงจากข้อมูลจุดงานสำรวจ x, y, z แต่จนแล้วจนเล่าโครงการนี้ไม่เคยเกิดสักที เนื่องจากความรู้ความสามารถและทักษะไม่เพียงพอ ด้วยความยากในการคิดอัลกอริทึมที่จะสร้างสามเหลี่ยมด้านที่สั้นที่สุดจากจุด (point) งานสำรวจ จนกระทั่งเลยวัยแห่งความฝันอันนั้นมาไกลมากแล้ว ปัจจุบันในยุค open source มีไลบรารีด้านนี้ที่มีโมดูลส่วนหนึ่งที่มีความสามารถใกล้เคียงที่สามารถนำมาสร้างเส้นชั้นความสูงได้คือ matplotlib ไลบรารี matplotlib ตัว matplotlib เองถูกนำไปใช้ร่วมกับ numpy, pandas สุดยอดของไลบรารีไพทอนที่นำไปประมวลผลงานด้าน Data Science & Data Analysis ตลอดจน Machine Learning ทะลุไปถึง…
โปรแกรมมิ่ง: เขียนโค้ดไพทอนดึงข้อมูลออนไลน์ของโควิด-19 มาประมวลผลด้วย Pandas
ในขณะที่กำลังกักตัวอยู่ในสถานการณ์ไวรัสโคโรน่าระบาด ผมได้เข้าคอร์สเรียนออนไลน์ไปหลายวิชา เพื่อใช้เวลาว่างให้เป็นประโยชน์ ค่าหน่วยกิตแต่ละวิชาค่อนข้างจะกระเทือนไตพอสมควร ไม่มีคอร์สไหนต่ำกว่าพันห้าร้อยบาท จะลองคอร์ส AI/Big Data ก็ประมาณหมื่นกว่าบาทได้แต่ถอยกรูดๆ ผมได้ตระเวนไปดูบทความของท่านอื่นที่เกี่ยวข้องกับโปรแกรมมิ่งพบหลายๆเว็บนำเสนอการดึงข้อมูลของไวรัสโคโรน่าด้วยโค้ดไพทอน ผมเห็นว่าน่าสนใจสำหรับนักศึกษาที่กำลังศึกษาไพทอน ผมเลยประมวลผลคือจับโค้ดจากหลายๆเว็บมายำรวมมิตรกัน ผลลัพธ์ก็ได้อย่างที่กำลังจะติดตามกันต่อไป อาจจะไม่ลึกมากแต่ก็เป็นพื้นฐานโดยเฉพาะคนที่กำลังสนใจด้าน Data Science ตอนนี้แต่ละคนใจคงจดจ่ออยู่ที่ว่าพื้นที่หรือประเทศตัวเองอยู่นั้นมีการระบาดของไวรัสเป็นอย่างไร มาลองดูประมวลผลข้อมูลพื้นฐาน เราจะดึงข้อมูลจำนวนผู้ติดเชื้อ จำนวนคนที่รักษาหาย หรือจำนวนผู้ตายแบบออนไลน์จากฐานข้อมูลที่มีคนอัพโหลดไปไว้ตาม Github หรือเป็นเว็บไซต์ต่างๆ ที่มีการอัพเอทอยู่ตลอดเวลา ภาษาที่ใช้เขียนโค้ดจะใช้ไพทอน โดยใช้ไลบรารีที่ใช้คือ pandas สุดยอดแห่งไลบรารีในโลกของ Data Science & Data…
พอร์ท:โปรแกรมเขียนแบบรูปตัด (XSection Plot) มาใช้บนแมคโอเอส
โปรแกรมเขียนแบบรูปตัด (XSection Plot) นับว่าเป็นโปรแกรมลำดับที่สามที่ผมพอร์ทมาใช้บนแมคโอเอส ถัดจาก Traverse Pro และ Surveyor Pocket Tools ติดตามบทความเดิมได้ด้านล่าง XSection Plot พัฒนาด้วยภาษาไพทอน (Python) กราฟฟิคติดต่อผู้ใช้ใช้ PySide2 (Qt for Python) บนแมคโอเอส ผมใช้ PyCharm (Community Edition) เป็นตัว IDE ในการพัฒนา ใช้ PyInstaller สำหรับการทำไฟล์…