ด้วยความมันส์มือกับคุณคล็อดเอไอผู้ช่วยที่สามารถสร้างโค้ดภาษารัสท์ได้เร็ว ผมเลยสานต่อปรับปรุงโปรแกรมอรรถประโยชน์โพคัท (POCUT) ในตอนนี้สามารถวิว point cloud แบบ 3D ด้วยการบินดูแบบ Fly through สามารถปรับความเร็วในการบินได้ สามารถวัดระยะทางความสูงแบบพื้นฐานได้ และที่สำคัญคือมันเร็วครับ ไม่มีกระตุก นี่เป็นอานิสงส์ของภาษารัสท์ที่สร้างโค้ดรันได้เร็ว 3D Viewer ปัญหาของโปรแกรมด้าน point cloud ที่ผมเจอคือไม่สามารถเดินดูหรือบินดู point cloud ได้อย่างอิสระ ทำให้เซอร์เวย์ที่ไปสำรวจมาก็อยากจะดูผลงานแบบ 3D ได้ง่ายๆ เจ้าของงานก็อยากดูอะไรที่มันง่ายๆเหมือนกัน แรงบันดาลใจของผมคือโพทรี (Potree) ที่สามารถรันบนเวบหรือจากโปรแกรมเดสทอปได้…
Category: 3D
สร้างแพลตฟอร์มดู Point Cloud บนเว็บด้วย Potree + CesiumJS — เรื่องเล่าจากสนามบินอู่ตะเภา
บทนำ ในโปรเจกต์ก่อสร้างทางวิ่งและทางขับใหม่ของสนามบินอู่ตะเภา ทีมสำรวจบินสแกน LiDAR ทุกสัปดาห์ ข้อมูลแต่ละครั้งมีขนาด 100-800 ล้านจุด ไฟล์ขนาด 4-34 GB ด้วยข้อมูลที่ใหญ่มหาศาล คำถามคือ — จะให้ทีมงานและผู้ที่เกี่ยวข้องดูข้อมูลเหล่านี้ได้อย่างไร? ซอฟต์แวร์เฉพาะทาง เช่น Terrasolid, QuickTerrian Modeler, CloudCompare หรือ Civil 3D ใช้งานได้ดี แต่: ไม่เหมาะกับการแชร์ให้คนหลายคนดูพร้อมกัน วิธีแก้ไข: เปิดดูผ่านเว็บเบราว์เซอร์ โดยการสร้างระบบที่ทำให้ทุกคนในทีมสามารถ: ทั้งหมดนี้เปิดจากเว็บเบราว์เซอร์ธรรมดา ไม่ต้องมี…
เมื่อวิศวกรสำรวจคำนวณเรื่องน้ำ – วิเคราะห์ระบบระบายน้ำบริเวณ RESA
เริ่มต้นจากคำถามง่ายๆ เริ่มจากคำถามว่า “ถ้าฝนตกหนักแบบฝน 50 ปี น้ำพื้นที่ RESA จะระบายทันไหม?” คำถามนี้ฟังดูเหมือนเป็นงานของวิศวกรโยธาหรือวิศวกรชลประทาน แต่ถ้าคิดดูดีๆ — คนที่มีพื้นผิวออกแบบ (Design Surface) อยู่ในมือ คนที่รู้ว่าน้ำไหลไปทางไหน และคนทำอาชีพที่วัดพื้นที่และระดับมาตลอด — นั่นคือวิศวกรสำรวจ ผมเรียน Hydrology มาในมหาวิทยาลัย เนื่องจากรู้สึกว่ายากและคิดว่าคงไม่มีโอกาสได้ใช้ เกรดที่ออกมาจึงน่าสงสาร จำได้ว่าได้เกรด C ไปแบบอย่างถูลู่ถูกัง เมื่อสิบกว่าปีที่แล้วได้ใช้ตอนคำนวณขนาดท่อที่จะฝังไว้ใต้ถนนตัดใหม่ โดยคำนวณจากปริมาณน้ำฝนและทราบพื้นที่ที่รองรับน้ำฝนบริเวณที่จะวางท่อนั้นๆ วันนี้จะหยิบมันขึ้นมาทวนความจำอีกครั้ง North RESA…
รีวิวกูปรี (CoPre2) โปรแกรมประมวลผลไลดาร์จากค่าย CHCNav
กูปรีคืออะไร? และทำไมต้องเปรียบกับ CoPre2 กูปรี (Kouprey) คือวัวป่าขนาดใหญ่ที่เคยอาศัยอยู่ในบริเวณชายแดนไทย-กัมพูชา ปัจจุบันเชื่อว่าสูญพันธุ์ไปแล้ว ครั้งหนึ่งมันเคยเป็นสัตว์ที่แข็งแกร่งและน่าเกรงขาม ผมเลือกชื่อ “กูปรี” มาเปรียบกับ CoPre2 เพราะเสียงมีความพ้องคล้ายๆ โปรแกรมนี้มีความ “ใหญ่และแข็งแกร่ง” ในแง่ความสามารถ แต่ก็มีความไม่แน่นอนในอนาคต ว่าจะอยู่รอดในตลาดซอฟต์แวร์ที่มีการแข่งขันสูงได้นานแค่ไหน หรือจะสูญพันธุ์ตามกูปรีไปด้วยกัน (ฮา) ภูมิหลัง: โครงการสำรวจสนามบิน 3 ครั้ง ผมใช้ CoPre2 ในบริบทของโครงการก่อสร้างสนามบินขนาดใหญ่ที่ต้องการข้อมูล LiDAR ความแม่นยำสูงต่อเนื่องกัน 3 ครั้ง ดังนี้…
การประมวลผลข้อมูลโดรนด้วย Agisoft Metashape ด้วยการต่อแบบโครงข่าย (Network Processing)
เนื่องจากมีฟีเจอร์นี้ใน Metashape ผมเลยสงสัยถึงประสิทธิภาพว่าจะได้สักขนาดไหน ก็เลยมาทดสอบกันในเบื้องต้นดูกัน การทดสอบจะใช้ทรัพยากรแบบมินิมอลประกอบไปด้วยเครื่องคอมพิวเตอร์ 4 เครื่อง เครื่องแรงพอประมาณ 2 เครื่อง เครื่องธรรมดาอีก 2 เครื่อง ต่อกันเป็นเน็ตเวิร์คโดยใช้การ์ดไวร์เลสที่เราใช้กันทั่วๆไปต่อกับตัวเราเตอร์ ก็เหมือนกับเครื่องคอมพิวเตอร์ที่เราต่อใช้งานในสำนักงานหรือที่บ้าน ที่พิเศษหน่อยในการทดสอบครั้งนี้คือข้อมูลจะถูกเก็บข้อมูลไว้บนเครื่อง NAS (Network Storage) จะมองว่าเป็นคอมพิวเตอร์เล็กๆอีกเครื่องหนึ่งก็ย่อมได้ องค์ประกอบ แผนผังการต่อ สำหรับ NAS ในวงแลนสามารถอ้างอิงตำแหน่งพาทได้ด้วย \\NasSurvey ไม่จำเป็นต้องอ้าง ip address ที่แสดง ip address…
อัพเดท: นำเข้ารูปตัดตามขวางจาก Civil3D เข้า XSection Plot
งาน Earthwork หรืองานดินตัดดินถมนั้นคงขาดรูปตัดตามขวางและรูปตัดตามยาวไม่ได้ และเป็นทราบดีกันว่า Civil3D นั้นเก่งกาจในเรื่องพวกนี้อยู่แล้ว ทำอะไรที่ยากๆได้เช่นสร้าง Grading Object สำหรับงาน Earthwork ที่มีความซับซ้อนได้ แต่ก็แลกกับความยากของการศึกษาโปรแกรมนี้มาเช่นเดียวกัน ข้อเสียของ Civil3D นั้นคือความใหญ่โตของมัน กินทรัพยากรเครื่องคอมพิวเตอร์ของผู้ใช้สูงมากทีเดียวและอีกอย่างคือราคาค่อนข้างจะสูง เหมาะกับองค์กรมากกว่า แต่ถ้าผู้ใช้ตามบ้านๆมีกำลังซื้อก็ไม่ว่ากันครับ ดังนั้นการสร้างแผนที่รูปตัดตามขวางใน Civil3D ก็สามารถทำได้ การเปลี่ยนแปลง Alignment หรือปรับ Grading Object จะไปปรับให้ในแผนที่รูปตัดทันทีนับเป็นความสะดวกมาก สำหรับโปรแกรมช่วยเขียนแบบรูปตัดตามขวาง XSection Plot ที่ผมพัฒนาขึ้นมานี้ก็เป็นโปรแกรมเล็กๆ…
โปรแกรมมิ่ง: เขียนโค้ดไพทอนสร้างเส้นชั้นความสูง (contours) ด้วยไลบรารี matplotlib
เป็นความฝันของผมอันหนึ่งตั้งแต่สมัยจบใหม่ๆที่จะเขียนโปรแกรมสร้างชั้นความสูงจากข้อมูลจุดงานสำรวจ x, y, z แต่จนแล้วจนเล่าโครงการนี้ไม่เคยเกิดสักที เนื่องจากความรู้ความสามารถและทักษะไม่เพียงพอ ด้วยความยากในการคิดอัลกอริทึมที่จะสร้างสามเหลี่ยมด้านที่สั้นที่สุดจากจุด (point) งานสำรวจ จนกระทั่งเลยวัยแห่งความฝันอันนั้นมาไกลมากแล้ว ปัจจุบันในยุค open source มีไลบรารีด้านนี้ที่มีโมดูลส่วนหนึ่งที่มีความสามารถใกล้เคียงที่สามารถนำมาสร้างเส้นชั้นความสูงได้คือ matplotlib ไลบรารี matplotlib ตัว matplotlib เองถูกนำไปใช้ร่วมกับ numpy, pandas สุดยอดของไลบรารีไพทอนที่นำไปประมวลผลงานด้าน Data Science & Data Analysis ตลอดจน Machine Learning ทะลุไปถึง…
OpenDroneMap – การคำนวณโดยการใช้จุดบังคับภาพถ่าย (Ground Control Point) ตอนที่ 2
ตอนที่ 1 ผมนำเสนอการปรุจุดเพื่อกำหนดจุดบังคับภาพถ่าย (Ground Control Point) แบบวิ่งควาย ที่อาศัยแรงกันเป็นหลัก ได้ไฟล์มาตั้งชื่อ “gcp_list_Computation_WGS84_UTM32N.txt” เอามาลงอีกครั้งด้านล่าง สร้างโปรเจคคำนวณ กลับมาที่ WebODM วิธีการใช้ติดตามตอนแรกได้ที่ ลิ๊งค์ นี้ คลิกที่ “+Add Project” ตั้งชื่อว่า “Quarry Example V2” เราจะใช้ชุดภาพตัวอย่างที่ดาวน์โหลดจาก pix4d.com ตัวอย่างนี้สามารถไปเผยแพร่ได้ แต่เจ้าของบอกให้ลงคำว่า …เอื้อเฟื้อโดย Pix4D… นำเข้าไฟล์รูปภาพและไฟล์จุดบังคับภาพถ่าย ตอนนี้โปรเจคมีเฉพาะโครงเปล่าๆ…
OpenDroneMap – การคำนวณโดยการใช้จุดบังคับภาพถ่าย (Ground Control Point) ตอนที่ 1
สำหรับงานสำรวจทำแผนที่ นับว่าการบินโดรนเพื่อมาทำแผนที่ให้ได้พิกัดโลกที่ละเอียดนำไปใช้งานได้นั้น วิธีการดั้งเดิมคือใช้จุดบังคับภาพถ่าย (Ground Control Point – GCP) สมัยใหม่อาจจะใช้ RTK/PPK ก็ให้ความสะดวกมากขึ้นและประหยัดค่าใช้จ่ายมากกว่า มาลองดูกันว่าการใช้จุดบังคับภาพถ่ายเพื่อนำมาใช้ในโปรแกรมฟรี OpenDroneMap จะเป็นยังไง ความยากความง่าย ความสะดวกจะขนาดไหน การกำหนดจุดบังคับภาพถ่ายโดยใช้ GCP ถ้าผู้อ่านรุ่นราวคราวเดียวกับผม เคยเรียนวิชา Photogrammetry ในยุคอดีต จะคุ้นกับการกำหนดจุดบังคับภาพถ่ายเรียกกันว่าการปรุจุด เมื่อหมายจุดบนรูปถ่ายทางอากาศที่ขยายมาและพิมพ์ขยายออกมาแล้ว อาจจะเป็นแยกคันนาตัดกัน ค่าพิกัดจะได้จากการเดินวงรอบเข้าไปเก็บ ส่วนค่าระดับจะได้จากการเดินระดับ จากนั้นจะตามด้วยการคำนวณ Aerial Triangulation ซึ่งอาศัย Least…
แนะนำโปรแกรมงานคำนวณภาพถ่ายทางอากาศ(โดรน) ด้วย OpenDroneMap (ฟรี) ตอนที่ 2
ตอนที่ 1 ผมได้แนะแนววิธีการติดตั้ง OpenDroneMap ไปอย่างย่อและได้แนะนำลิ๊งค์ให้ไปดูกันต่อที่ละเอียดมาก มาในตอนนี้มาทดสอบวิธีการคำนวณจากชุดภาพตัวอย่าง ODMData ตามไปที่ลิ๊งค์นี้ จะเห็นข้อมูลภาพชุดตัวอย่าง (Dataset) ในฐานะที่ผมเป็นช่างสำรวจ ผมสนใจชุดภาพที่มี GCPs (Ground Control Points) และชุดภาพที่มีค่าพิกัดจาก RTK ติดมาที่แท็กหรือ Exif ของภาพ แต่น่าเสียดายที่ผมลองข้อมูลชุดนี้ไม่น่าพอใจ ชุดข้อมูลชื่อ “bellus” มี GCPs ให้ลองแต่เมื่อผมลองคำนวณโดยการเลือกใช้ GCPs กลับพบว่าโมเดล 3D พลิกกลับบนล่าง ผมลองต่อด้วยข้อมูลตัวอย่าง…