วันนี้มาพูดถึงไลบรารี Proj.4 แบบลึกๆกันหน่อย บทความตอนนี้จะเป็นเรื่องโปรแกรมมิ่งนะครับ ไลบรารีตัวนี้ผมใช้เป็นแกนหลักในโปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ (Surveyor Pocket Tools) เอามาแปลงพิกัดกับระบบพิกัดที่ใช้กันในโลกนี้ (อาจจะได้ไม่ทั้งหมด) และไม่นานนี้ผมได้นำมาคำนวณ Vertical Datum คือสามารถหาความสูงจีออยด์ได้ ในความเป็นจริงถ้ามี Vertical Grid Shift หลายๆอันสามารถแปลงค่าระดับข้ามไปมาได้แบบที่ใช้ในอเมริกา ก็ใช้มาหลายปีแล้ว ในตอนนี้ไลบรารีนี้ ตั้งแต่รุ่น 5.0.0 มาถึงรุ่นปัจจุบันรุ่น 6.0.0 ทางผู้พัฒนา Proj.4 ได้เริ่มวางรากฐานใหม่ ผมในฐานะคนนำมาใช้งานก็ติดตามลุ้นด้วยความระทึกละครับ เพราะถ้าแก้ใหม่แบบถอนรากถอนโคน ผมก็ต้องออกแรงมากหน่อยเพื่อมาปรับให้โปรแกรมสามารถใช้ไลบรารีรุ่นใหม่ได้เต็มประสิทธิภาพ กว่าสองทศวรรษของการพัฒนา…
Tag: Python
ทดสอบคำนวณหาความสูงจีออยด์ TGM2017 ด้วยไลบรารี Proj.4
ไม่นานมานี้มีผมดาวน์โหลดไฟล์โปรแกรมและข้อมูลของ TGM2017 เรียกเต็มๆคือ Thailand Geoid Model 2017 ที่เป็นโครงการร่วมมือจากหลายๆฝ่ายของทางราชการ ผมยังไม่มีโอกาสได้นำไปใช้งาน โดยเฉพาะจะนำมาประยุกต์ใช้ในงานรังวัด GNSS ถือว่าเป็นสิ่งที่พวกเรารอคอยมานานที่จะได้มี local geoid model มาใช้งานกัน โดยเฉพาะงานรังวัด GNSS เมื่อคำนวณแล้วจะได้ค่าพิกัดทางราบ และทางดิ่งจะได้ความสูง (h – Ellipsoid height) ที่เทียบกับทรงรี WGS84 ถ้าเรามีแบบจำลองความสูงจีออยด์สามารถคำนวณหาความสูง (H – Orthometric height) หรือระดับน้ำทะเลปานกลางได้…
ทดสอบเขียนโปรแกรมไพทอน (Python) บนเครื่องคิดเลข Casio fx-cg50 Prizm
ไพทอนบนเครื่องคิดเลข ช่วงนี้ผมมีโอกาสทำงานใกล้ชิดกับภาคสนาม ทำให้มีโอกาสได้จับและใช้เครื่องคิดเลขมากกว่าปกติ ในเวลาที่ผ่านมาไม่ถึงเดือนผมได้ซื้อเครื่องคิดเลข Casio fx-CG50 Prizm เคสสีขาว ที่ซื้อมาเพราะทราบว่าถ้า update OS เป็นรุ่น 3.20 จะสามารถใช้ ไพทอน (Python) ได้ ก็ขอหมายเหตุสักนิดว่าเป็นไมโครไพทอน (Micropython) ที่ทางทีมงาน Micropython ได้พอร์ตออกมาให้มีขนาดเล็กเพื่อเอาไปรันในบอร์ด iOT ได้ หรือบอร์ดที่เป็นไมโครคอนโทรลเลอร์ทั้งหลาย เน้นขนาดเล็ก หน่วยความจำต่ำ กินไฟน้อย ต่ออินเทอร์เน็ตได้ในตัว ผมจะไม่มุ่งไปทางนี้หรอกครับ ในบทความนี้ แต่จะพูดถึงเครื่องคิดเลขคาสิโอ…
คอมไพล์ Python Script เป็นไฟล์ Executable ด้วย PyInstaller
PyInstaller คือเครื่องมือที่ช่วยการแปลงโปรแกรมที่เขียนด้วยไพทอนเป็น execute binary file ที่สามารถนำไปรันได้โดยที่เครื่องคอมพิวเตอร์ปลายทางไม่ต้องติดตั้งไพทอน สำหรับ PyInstaller เป็น cross-platform สามารถใช้งานได้บนวินโดส์ แมค และลีนุกซ์ สนับสนุนไพทอนรุ่น 2.7 และ ไพทอน รุ่น 3.3 ถึง 3.6 จุดมุ่งหมายของ PyInstaller คือต้องการช่วยผู้ใช้ในการแปลงโปรแกรมไพทอน ที่ใช้โมดูลไลบรารีภายนอกเช่น Matplotlib, DJango, wxPython, PyQt เป็นต้น ให้สามารถทำได้ง่ายสะดวก ติดตั้ง…
ปลดพันธนาการ PyQt5 ด้วย PySide2
ตอนนี้ถือว่ามาเล่าสู่กันฟังจากประสบการณ์ เป็นเรื่องโปรแกรมมิ่ง ถ้าไม่สนใจเรื่องโปรแกรมมิ่งก็ผ่านไปได้ครับ PyQt5 กับลิขสิทธิ์แบบ GPL v3 ผมเขียนไพทอนด้วยการใช้ PyQt5 มาได้สักระยะเวลาหนึ่ง น่าจะสองปีกว่าได้ ยอมรับว่าชอบมากๆ ก็ไม่ได้ระแวดระวังเรื่องกฎหมายลิขสิทธิ์เท่าไหร่นัก ลิขสิทธิ์ของ PyQt5 เป็นแบบ GPL v3 ซึ่งสาระโดยรวมๆสามารถเอาไปใช้ได้สองกรณีคือ พัฒนาโปรแกรมแบบเปิดโค๊ด (open source) และแจกจ่ายฟรีพร้อมโค๊ด กรณีนี้ไม่จำเป็นต้องเสียเงินค่าลิขสิทธิ์ แต่ถ้าเป็นกรณีที่สองคือการพัฒนาโปรแกรมเพื่อการค้าและปิดโค๊ด จะต้องเสียค่าลิขสิทธิ์ประมาณ 500US$ ต่อปี ซึ่งไม่น่าจะมากมายนัก ผมเองเอา PyQt5 มาใช้และแจกจ่ายโปรแกรมของผมให้ฟรีก็จริงแต่ปิดโค๊ด…
Surveyor Pocket Tools โปรแกรมรวมเครื่องมือฉบับกระเป๋าสำหรับช่างสำรวจ (แจกฟรี) – ตอนที่ 1
ความเป็นมา ปกติผมเป็นคนชอบพกเครื่องมือสารพัดประโยชน์เช่นมีดพับในกระเป๋ากางเกง เพราะสะดวกรวมทุกสิ่งทุกอย่างทั้งไขควง มีด กรรไกร ตะไบ ที่เปิดขวด ยี่ห้อที่ชอบได้แก่ Leatherman, Victorinox เมื่อสองปีที่แล้วไปโมซัมบิค อาฟริกา ท่านศุลกากรที่นั่นเปิดกระเป๋าเดินทางเพื่อตรวจก่อนออกจากสนามบิน แอบสอย Victorinox ของผมไปหน้าตาเฉย เสียดายครับเพราะใช้มาหลายสิบปี แต่ก็อโหสิกรรมให้ท่านผู้นั้นไปแล้ว โปรแกรมที่จะแนะนำก็คล้ายกับมีดพับสารพัดประโยชน์แบบเดียวกัน ที่ใช้บ่อยสำหรับคนที่ทำงานสนามคือโปรแกรมแปลงพิกัดค่ากริดยูทีเอ็ม (UTM) แปลงไป แลตติจูด/ลองจิจูด (Geographic) หรือกลับกัน ส่วนใหญ่จะเปิดคำนวณผ่านออนไลน์ ได้ค่ามาแล้ว บางทีก็ copy มาวางที่่ google earth…
สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 3 (จบ)
10.การจัดเรียงรูปตัดบนกระดาษเขียนแบบ (Page Layout) การจัดเรียงรูปตัด เลือกทูลบาร์และคลิกที่ “Page layout” ได้ดังรูป ความยาวของรูปตัดแต่ละรูปตัด ความกว้างในแนวดิ่ง มาตราส่วน จะมีผลต่อขนาดของรูปตัดแต่ละรูป ที่่จะวางบนกระดาษเขียนแบบ การจัดเรียงรูปตัดให้เหมาะสม ผู้ใช้สามารถเลือกจำนวนรูปตัดในแนวดิ่ง จำนวนรูปตัดในแนวนอน ลองตั้งค่าตามรูปด้านล่าง เนื่องจากข้อมูลที่เรากำลังทดลองใช้งานอยู่มี 4 รูปตัดและความกว้างของรูปตัดประมาณ 1300 เมตร จึงยาวจรดกระดาษซ้ายขวา จำนวนรูปตัดในแนวดิ่งจึงเลือกเป็น 1 ส่วนจำนวนรูปตัดในแนวนอนเลือกเป็น 4 มาดูตั้งค่าให้กริดทางราบ จัดระยะราบจาก CL (ค่าที่ X…
สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 2
6.เปิดไฟล์ข้อมูล (Open file) ขั้นตอนต่อไปจะมาเปิดไฟล์ข้อมูล เริ่มจากไฟล์ Typical section ที่จัดเก็บไว้ใน Documents ขั้นตอนตามรูปด้านล่าง ขั้นตอนที่ 3 เลือกประเภทของไฟล์เป็น .txml โปรแกรมจะอ่านข้อมูล และแสดงผลบนตารางในแท็บ “Typical section” ต่อไปเช่นเดียวกันเปิดไฟล์ Existing Ground section 7.ป้อนข้อมูลโครงการ ตอนนี้ข้อมูลของเราที่ได้จาก import จาก text file มีแต่รูปตัดในตารางเท่านั้น เราจะทำการบันทึกข้อมูลโครงการของงาน นอกจากบันทึกเพื่อจำแล้วยังสามารถนำไปเขียนเป็น Titleblock…
สิ้นสุดการรอคอย XSection Plot รุ่น 4.10 มาแล้ว ตอนที่ 1
ถึงจะล่าช้าแต่ก็มาตามสัญญา โปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นนี้รุ่น 4.10 มาแทนรุ่นเดิม 3.25 ที่ปลดระวางด้วยเนื่องจากอายุมากร่วมสองทศวรรษ แต่ขอแจ้งไว้ก่อนรุ่นนี้ยังเป็นรุ่นทดลองใช้ (beta) นะครับ เพราะยังมีบั๊กอยู่บ้าง แต่โดยรวมใช้งานได้ ความเป็นมาของโปรแกรม อ่านความเป็นมาของโปรแกรมได้อย่างละเอียดที่ => ก้าวต่อไปของโปรแกรมเขียนรูปตัดตามขวาง XSection Plot ในร่างใหม่พัฒนาด้วย Python + Qt และที่ => ก้าวที่ใกล้กับโปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นใหม่ ก็ขอเท้าความเป็นมาโปรแกรมสักนิดเผื่อผู้อ่านไม่ได้ติดตามมาก่อน โปรแกรมเขียนรูปตัดตามขวาง XSection Plot…
ก้าวที่ใกล้กับโปรแกรมเขียนรูปตัดตามขวาง XSection Plot รุ่นใหม่
ก้าวที่ผ่านมา ผ่านมาครึ่งปีกว่าแล้วก็ยังไม่เสร็จตามสัญญา แต่โปรแกรมก็คืบหน้าไปพอสมควรครับ ขอเท้าถึงความหลังหน่อยว่าโปรแกรมรุ่นเดิมเขียนด้วย VB ที่นับอายุอานามแล้วจะใกล้ๆ 20 ปีเข้าไปแล้ว ผมนำโปรแกรมมาพัฒนาใหม่ด้วยของฟรีดีมีคุณภาพ Python3 + Qt5 แรกก็ตะกุกตะกักพอสมควรเนื่องจากยังใหม่กับ Python และเป็นครั้งแรกที่ใช้ Qt สำหรับ Python ที่ว่ากันว่าเรียนง่ายเขียนง่าย แต่สำหรับผมที่เขียนด้วยภาษาอื่นมานมนานก็ต้องบอกว่า Python มีสไตล์ของตัวเอง ที่สั้น กระชับ ฉับไวที่คาดไม่ถึงเลยก็หลายๆอย่าง แต่ด้วยความที่สมองคิดแบบภาษาอื่นมานาน พอมาลอง Python ก็ยอมรับว่าตอนใหม่ๆไปอย่างฝืด Learning Curve ชันไปนิดสำหรับผม…