วันพฤหัสบดีที่ 12 ธันวาคม พ.ศ. 2556

แบบฝึกหัดเพื่อการเริ่มใช้งานแบบจำลอง MIKE Flood

แบบจำลอง MIKEbyDHI เมื่อลงโปรแกรมเสร็จแล้ว
จะมีคู่มือการใช้งาน และตัวอย่างสำหรับฝึกหัดสร้างแบบจำลองมาให้ด้วย

โดยปกติแล้วหลังลงโปรแกรม จะมีคู่มืออยู่ที่
C:\Program Files (x86)\DHI\2012\MIKE Zero\Manuals

และมีไฟล์ตัวอย่างสำหรับฝึกหัดไปคู่กับการแนะนำในคู่มือ อยู่ที่
C:\Program Files (x86)\DHI\2012\MIKE Zero\Examples

อย่างไรก็ตาม คู่มือ ทั้งหมดที่มากับโปรแกรม เขียนมาเป็นภาษาอังกฤษ

บางครั้งทำให้ผู้ที่ใช้ภาษาอังกฤษไม่คล่องจะมีปัญหาทำให้ไม่เข้าใจคู่มือ

ในวันนี้ได้นำเสนอคู่มือ และไฟล์ตัวอย่าง ที่ได้มีการแปลไว้เป็นภาษาไทย

สำหรับฝึกหัดใช้แบบจำลองการไหลแบบผสาน 1 และ 2 มิติด้วยแบบจำลอง MIKE Flood

ทั้งนี้แบบจำลอง MIKE Flood เป็นแบบจำลองที่ผสานแบบจำลอง MIKE 11 และ MIKE 21 เข้าด้วยกัน

เพื่อเป็นการลดข้อจำกัดที่เกิดจากการใช้แบบจำลองอย่างใดอย่างหนึ่งในการศึกษาปัญหาอุทกภัย

ตัวอย่างนี้มีคู่มือภาษาไทย อธิบายขั้นตอนต่างๆในการจัดทำแบบจำลองเฉพาะ MIKE Flood
ผู้ที่จะฝึกหัดตามคู่มือนี้ควรเรียนรู้การจัดทำแบบจำลอง MIKE 11 มาก่อน



หวังว่าจะช่วยให้ผู้ที่เริ่มหัดใช้งานแบบจำลอง MIKE Flood จะสามารถเข้าใจแบบฝึกหัดได้ง่ายขึ้น

วันพฤหัสบดีที่ 5 ธันวาคม พ.ศ. 2556

การส่งออกพิกัดตลิ่งซ้าย ขวา ของลำน้ำใน MIKE11 ด้วยการใช้ MIKE Flood

ในแบบจำลอง MIKE11 เมื่อสร้าง Network และ Cross-section เสร็จแล้ว

เปิดพร้อมกันผ่าน Simulation จะสามารถแสดงตำแหน่งของ Cross-section ที่ระยะต่างๆของลำน้ำ

(update 7 Feb 2022) ในแบบจำลองรุ่นใหม่ MIKE Hydro River ที่มาแทน MIKE 11
จะมีตัวช่วยในการนำเข้า-ส่งออกข้อมูลของแบบจำลองกับไฟล์ SHP ได้ (ดูตัวอย่างรูปท้ายสุด)



โดยอิงตามพิกัดที่อยู่บน Network โดยการวางตำแหน่งหน้าตัดลำน้ำนั้น จะมีสองแบบคือ

1) หากไม่มีการกรอกค่าพิกัดของหน้าตัดลำน้ำไว้แล้ว แบบจำลองจะวางหน้าตัดลำน้ำ

ให้ตั้งฉากกับเส้นลำน้ำ และจุดที่มีระดับน้ำต่ำสุดจะอยู่ตรงกับเส้นแนวลำน้ำ

รูปนี้ จะเห็นว่าจุดกลางหน้าตัด (ระดับต่ำสุด) อยู่เบ้ไปทางขวา (รูปบน) เมื่อวาดไปบน Network (รูปล่าง) ตำแหน่งของระดับน้ำสุด จะวาดไปที่กลางแนวลำน้ำ (รูปนี้ต้ำน้ำไหลจาก บนลงล่าง)



2) ส่วนกรณีที่มีการกรอกพิกัดตลิ่งซ้าย และ ขวาของหน้าตัดลำน้ำไว้

การวาดรูปหน้าตัดลำน้ำ ก็จะอิงตามพิกัดที่กรอกไว้เป็นหลัก

รูปด้านล่างนี้ จะเห็นว่ามีส่วนที่สามารถกรอกค่า Coordinates เพิ่มเติมได้ หากมีข้อมูล



ในกรณีที่เรามีค่าพิกัดตลิ่งซ้าย หรือ ขวาของลำน้ำอยู่แล้ว คงไม่ใช่เรื่องยากที่จะจัดเรียงข้อมูลเหล่านั้น

แล้วเอาไปใช้ใน GIS เพื่อสร้างเส้นที่เป็นแนวของตลิ่งลำน้ำขึ้นได้

แต่กรณีที่ไม่มีพิกัดตลิ่งจากการสำรวจ (ผู้สำรวจไม่ได้บันทึกค่านี้ไว้ด้วย)

จะเห็นว่า แบบจำลองก็ยังสามารถวาด และวางตำแหน่งของหน้าตัดลำน้ำขึ้นมาได้ใน Network

และในกรณีที่เราต้องการพิกัดของตลิ่งซ้าย และ ขวา เพื่อนำไปใช้ประโยชน์อื่นๆ เช่นการใช้ใน GIS

ในแบบจำลอง MIKE11 เอง ยังไม่มีเครื่องมือช่วยในการส่งออกข้อมูลนี้โดยตรง

แต่จะมีเทคนิค ในการส่งออกข้อมูลนี้ดังนี้

1) จัดเตรียมแบบจำลอง MIKE11 ให้เรียบร้อย

2) จัดเตรียมแบบจำลอง MIKE21 FM (แนะนำให้ใช้ FM เพราะหากใช้กริดสี่เหลี่ยม จะมองไม่เห็น Chainage ในขั้นตอนที่ 7) ให้มีพื้นที่ศึกษา คลุมพื้นที่ Network ที่เราต้องการพิกัดของตลิ่ง

3) ผสานแบบจำลองเป็น MIKE Flood โดยเลือกใช้ไฟล์ MIKE11 และ MIKE21FM ที่สร้างไว้แล้ว

4) สร้าง Lateral Link ใน MIKE Flood สำหรับเส้นลำน้ำ ที่ต้องการค่าพิกัดของตลิ่ง โดยสามารถเลือกสร้าง Link โดยอิ่งตาม ตลิ่งซ้าย หรือ ขวา ได้ตามต้องการ

5) เมื่อสร้าง Link แล้ว ให้สั่งรันแบบจำลอง MIKE Flood หนึ่งครั้ง (ไม่จำเป็นต้องรอให้รันเสร็จ)

6) ที่ Folder เดียวกับที่จัดเก็บไฟล์ sim11 ไว้ จะมีการสร้งาไฟล์ใหม่ชื่อ MFLateral.xns11 ซึ่งจะเก็บค่าระยะทางตามลำน้ำ (ค่าอยู่ใน column X) และระดับของตลิ่งไว้ (ค่าอยู่ใน column Z)โดยไฟล์นี้จะแยกเก็บค่าระดับตลิ่งจาก Cross-section ของ MIKE11 และ DEM ของ MIKE21 ไว้แยกกัน

7) ที่ MIKE Flood หลังจากที่สร้าง Link เสร็จแล้ว จะมีตารางแสดงพิกัด X Y Chainage โดยจำนวนค่านี้ ขึ้นกับความละเอียดของจุดบนเส้นลำน้ำ ดังนั้นจึงมีจำนวน มากกว่าจำนวนหน้าตัดลำน้ำ


8) copy ค่าในตารางจากทั้งข้อ 6) และ ข้อ 7) ไปไว้ที่ Excel จะพบว่า หากเราสามารถหาค่า X, Y ของ หน้าตัดลำน้ำนั้นๆได้ โดยมีตัวเชื่อมคือ Chainage ซึ่งจำเป็นต้อง Interpolate เพื่อให้ได้ค่าที่แม่นยำอีกที

สำหรับขั้นตอนการสร้าง M21, M11, MFlood และ Lateral Link ขอให้ศึกษาเอาจากคู่มือนะครับ เพราะอธิบายในหน้านี้ จะยาวมาก

รวมถึงการ Matching, และทำ Interpolate ใน Excel ก็มีคนลงวิธีการทำใน Internet อยู่แล้ว ดังนั้นคงไม่ยากที่จะ search วีธีการแล้วมาประยุกต์ใช้กับตาราง excel ข้างบน เพื่อให้ได้ค่าพิกัดของตลิ่ง ของแต่ละหน้าตัดลำน้ำ พร้อมค่าระดับตลิ่ง

กรณีที่อัพเดทตัวแบบจำลอง MIKE 11 มาใช้งาน MIKE Hydro River 
จะมีเครื่องมือสำหรับการนำเข้า- ส่งออกไฟล์แบบจำลองกับ SHP ได้ภายในโปรแกรม
ดังตัวอย่างรูปด้านล่าง



วันอังคารที่ 3 ธันวาคม พ.ศ. 2556

ค่าระดับท้องน้ำ (Bottom Level) และตลิ่ง (Bank Level) จากแบบจำลอง M11

สำหรับผู้ใช้แบบจำลอง MIKE 11 ข้อมูลค่าระดับของหน้าตัดลำน้ำ
เป็นข้อมูลที่ต้องป้อนเข้าแบบจำลอง

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

ค่าระดับต่างๆในหน้าตัดลำน้ำที่กล่าวถึงข้างต้น อาจประกอบด้วย ระดับท้องน้ำ ระดับตลิ่งซ้าย-ขวา และระดับของ Marker อื่นๆที่เราใส่ไว้ในแบบจำลอง

การส่งออกค่าต่างๆ อิงตามระยะทางตามลำน้ำ (Chainage) นั้นสามารถทำได้โดยใช้โปรแกรม
MIKE View ซึ่งเป็นโปแกรมฟรี สำหรับการเปิดดูผลคำนวณของ MIKE 11

เบื้องต้น ให้เปิดผลคำนวณของ โครงการที่ต้องการค่าระดับต่างๆของหน้าตัดลำน้ำขึ้นมา
จากนั้นสร้างกราฟ Profile ของลำน้ำเป้าหมาย ด้วยเครื่องมือ

จากนั้นคลิกขวาที่กราฟ Profile ที่ได้มา แล้วเลือก Option

แล้วเลือกหน้า Tabular Items จากนั้นเพิ่มข้อมูล ที่ต้องการตัวเลขทั้งหมดลงไป



รูปด้านล่างนี้ แสดงให้เห็นค่า Static และ Dynamic ที่เราสามารถดึงออกมาเป็นตัวเลขได้



เมื่อเพิ่ม Tabular Items ที่ต้องการเรียบร้อยแล้ว ให้กลับออกมาที่กราฟ Profile


แล้วคลิกขวาที่รูปเลือก Metafile และเลือก Tab View To Clipboard


ค่าระดับทั้งหมดที่เราได้เลือกไว้ใน Tabular Items ในหน้าต่าง Option จะถูกเก็บไว้ใน Clipboard ซึ่งพร้อมที่จะให้เราไป Paste ไว้ในเอกสารที่ต้องการ

ตัวอย่างเมื่อไป Paste ที่ Excel



จากรูปตัวอย่าง จะเห็นว่า เราสามารถส่งออกค่า ระยะทางตามลำน้ำ ระดับตลิ่งซ้าย-ขวา รวมถึงระดับน้ำที่เวลาต่างๆได้ด้วย

รูปตัวอย่าง เป็นการส่งออกค่าระดับน้ำที่เวลาต่างกัน จะเห็นว่าค่า Water Level จะไม่เท่ากัน ขึ้นกับว่าเรา Play ค่าระดับน้ำในกราฟ Profile ไว้ที่ Timestep ใด

วันอาทิตย์ที่ 1 ธันวาคม พ.ศ. 2556

แบบฝึกหัดเพื่อการเริ่มใช้งานแบบจำลอง MIKE11 Hydrodynamic และ Rainfall Runoff

แบบจำลอง MIKEbyDHI เมื่อลงโปรแกรมเสร็จแล้ว
จะมีคู่มือการใช้งาน และตัวอย่างสำหรับฝึกหัดสร้างแบบจำลองมาให้ด้วย

โดยปกติแล้วหลังลงโปรแกรม จะมีคู่มืออยู่ที่
C:\Program Files (x86)\DHI\2012\MIKE Zero\Manuals

และมีไฟล์ตัวอย่างสำหรับฝึกหัดไปคู่กับการแนะนำในคู่มือ อยู่ที่
C:\Program Files (x86)\DHI\2012\MIKE Zero\Examples

อย่างไรก็ตาม คู่มือ ทั้งหมดที่มากับโปรแกรม เขียนมาเป็นภาษาอังกฤษ

บางครั้งทำให้ผู้ที่ใช้ภาษาอังกฤษไม่คล่องจะมีปัญหาทำให้ไม่เข้าใจคู่มือ

ในวันนี้ได้นำเสนอคู่มือ และไฟล์ตัวอย่าง ที่ได้มีการแปลไว้เป็นภาษาไทย

สำหรับฝึกหัดใช้แบบจำลองการไหลแบบ 1 มิติด้วยแบบจำลอง MIKE 11



โดยเป็นแบบจำลองที่คลอบคลุมงานด้าน น้ำฝน-น้ำท่า (Rainfall-Runoff)




และแบบจำลองด้านชลศาสตร์การไหล (Hydrodynamic)



หวังว่าจะช่วยให้ผู้ที่เริ่มหัดใช้งานแบบจำลอง MIKE 11 จะสามารถเข้าใจแบบฝึกหัดได้ง่ายขึ้น

วันจันทร์ที่ 18 พฤศจิกายน พ.ศ. 2556

ชนิดของ Time Series ในแบบจำลอง MIKEbyDHI

เพื่อทำความเข้าใจกับรูปแบบของ Time Series

ซึ่งประกอบไปด้วย Time Series Type แบบต่างๆ ดังแสดงในรูป


1) Instantaneous => เป็นการระบุค่าสำหรับช่วงเวลาใดเวลาหนึ่ง และความต่อเนื่องไปถึงช่วงเวลาอื่นๆ ตัวอย่างการใช้งานเช่นค่าตรวจวัดระดับน้ำและอัตราการไหล
2) Accumulated => ค่าสะสมตามเวลา มีความต่อเนื่องคล้าย Instantaneous ตัวอย่างการใช้งานเช่น ค่าสะสมปริมาณน้ำฝนตลอดปีเป็นต้น
3) Step Accumulated => เป็นค่าสะสม ในช่วงเวลาระหว่าง Time step ตัวอย่างการใช้งานเช่น ค่าปริมาณฝนรายวัน หรืออัตราการระเหยรายวัน
4) Mean Step Accumulated => เป็นค่าเฉลี่ย ของปริมาณสะสมในช่วงเวลาระหว่าง Time step ของ Time stamp ที่ลงไว้ กับ Time stamp ก่อนหน้านี้ (ค่าที่เกิดขึ้นจึงมีลักษณะคล้าย Instantaneous แต่คงที่ในช่วง Time step ดังกล่าว)
5) Reverse Mean Step Accumulated => เป็นค่าเฉลี่ย ของปริมาณสะสมในช่วงเวลาระหว่าง Time step โดย Time stamp ที่ลงไว้ กับ Time stamp  ถัดไป (ค่าที่เกิดขึ้นจึงมีลักษณะคล้าย Instantaneous แต่คงที่ในช่วง Time step ดังกล่าว, มักพบใช้ในข้อมูลนำเข้าของแบบจำลอง MIKE Basin)


ในการเลือกใช้ชนิดของ Time Series แบบต่างๆ จะต้องทำความเข้าใจ
และเลือกใช้ชนิดของ Time Series ให้ถูกต้อง

หวังว่า บทความนี้จะช่วยให้เข้าใจ Time Series Type ได้ดียิ่งขึ้น

วันพุธที่ 9 ตุลาคม พ.ศ. 2556

การจัดการไฟล์ dfs แบบต่างๆของ DHI ด้วยการเขียนโปรแกรม

ไฟล์ข้อมูลที่ใช้กับโปรแกรม MIKE ต่างๆนั้น จะมีนามสกุลขึ้นด้วย dfs แล้วตามด้วยตัวเลข 0, 1, 2

ไฟล์เหล่านี้ เป็นไฟล์ข้อมูลตามเวลา ที่เก็บข้อมูลจากจุดสำรวจ(0) จากแนวสำรวจ(1) หรือจากพื้นที่สำรวจ(2) ขึ้นกับเลขลงท้าย

โดยปกติแล้ว เราสามารถสร้าง แก้ไข ดัดแปลง และจัดการไฟล์ข้อมูลเหล่านี้ได้ด้วยโปรแกรม MIKE Zero

อย่างไรก็ตามกรณีที่ต้องการแก้ไข หรือดัดแปลง ไฟล์ข้อมูลเหล่านี้ ทีละมากๆ การเขียนโปรแกรมขึ้นมาจัดการ ก็มีความสะดวกมากกว่า และมีความยืดหยุ่นในการทำงานตามที่ต้องการได้มากกว่า

ตัวอย่างหนึ่งในการต้องการการจัดการข้อมูลด้วยการเขียนโปรแกรมเพิ่มเอง เช่น การดัดแปลงข้อมูลสำหรับงาน Real time ซึ่งต้องการปรับปรุงข้อมูลในไฟล์ dfs ต่างๆอัตโนมัติ

ในที่นี้ จะแนะนำคู่มือ และตัวอย่าง ซึ่งแนะนำวิธีการจัดการกับไฟล์ dfs ไว้อย่างละเอียด

หลังจากลงโปรแกรม MIKE ตัวใดตัวหนึ่งแล้ว โปรแกรมจะติดตั้งไปที่
C:\Program Files (x86)\DHI\2012

ซึ่งนอกจากติดตั้งโปแกรมแล้ว เราจะได้คู่มือ และตัวอย่าง ติดตั้งมาพร้อมกันนี้ด้วย

โดยคู่มือ และตัวอย่างสำหรับจัดการไฟล์ dfs นั้นจะอยู่ที่
C:\Program Files (x86)\DHI\2012\MIKE Zero\Manuals\MIKE_ZERO\FileFormats\DFS_Examples

ในรูปด้านล่าง เป็นตัวอย่างหนึ่ง ที่แสดงให้เห็นว่า เราสามารถเขียนโปรแกรมภาษา python ในการจัดการข้อมูล dfs ได้


อีกรูปตัวอย่าง แสดงให้เห็นลักษณะไฟล์ dfs ต่างๆที่รวมอยู่ในตัวอย่าง และคู่มือ


ตัวอย่างภาษาที่สามารถเขียนเพื่อจัดการข้อมูล dfs ได้ประกอบไปด้วย
C#, Python, และ CsScript เป็นต้น


แน่นอนว่า การเขียนโปรแกรมเพื่อจัดการข้อมูล ไม่ใช่เรื่องง่าย
แต่ข้อมูลเหล่านี้ แสดงให้เห็นว่า เราสามารถเขียนโปรแกรมเพื่อช่วยในการจัดการข้อมูล dfs ได้ทุกรูปแบบ ตามที่ต้องการ ทำให้เราสามารถประยุกต์ใช้ประโยชน์แบบจำลองที่มีอยู่ไม่ว่าจะกับสถานการณ์แบบ Real time หรือเป็นเครื่องมือช่วยตัดสินใจได้

ในกรณีที่ต้องการเขียนโปรแกรม เพื่อบริหารจัดการ ข้อมูล แบบจำลอง และผลรันของแบบจำลอง สำหรับการจำลองสถานการณ์น้ำแบบอัตโนมัติ (Real time mode) เพื่อใช้เป็นระบบช่วยตัดสินใจนั้น (DSS) ก็สามารถเขียนโปรแกรมดำเนินการเองได้ทั้งหมดโดยมีเนื้อหาที่ควรทำความเข้าใจสำหรับการดำเนินการมีดังต่อไปนี้

การเขียนโปรแกรมเพื่อจัดการข้อมูลแบบ dfs ที่ใช้ในโปรแกรม MIKEbyDHI

การแปลงผลรันแบบจำลอง MIKE11 เป็น ACSII ด้วยโปรแกรม res11read.exe

การสั่งรันแบบจำลอง MIKE 11 ด้วย batch file

และเนื่องจากแบบจำลอง version ใหม่ ไม่ได้รวมเอา manual ไว้ใน package แล้ว
ดังนั้นจึงได้นำเอา FileFormats ที่อยู่ใน version 2012 มาลงไว้ที่ link ด้านล่างนี้
เผื่อใครต้องการลองโหลดไปศึกษาดู

DFS File Formats Examples

วันอังคารที่ 8 ตุลาคม พ.ศ. 2556

การตั้งค่าใน Control Structure ของแบบจำลอง MIKE 11 เพื่อควบคุมการระบายน้ำ

ในแบบจำลอง MIKE 11 จะมีโมดูลสำหรับโครงสร้างควบคุมการไหลของน้ำ

ในชื่อย่อ SO หรือมาจาก Structure Operation

โมดูลย่อยนี้ สามารถนำมาใช้ในการเพิ่มโครงสร้างบริหารจัดการน้ำแบบต่างๆ


ประกอบไปด้วย ฝาย ท่อลอด สะพาน สถานีสูบน้ำ และอื่นๆ

สำหรับโครงสร้างที่นิยมนำมาใช้บ่อยมากๆคือ Control Str.

เป็นส่วนที่สามารถนำมาใช้กำหนดกฎเกณฑ์การไหล ภายใต้เงื่อนไขเพิ่มเติม

ทำให้มีความยืดหยุ่นในการควบคุมการไหลของน้ำได้สูง จึงสามารถนำมาใช้ได้ในหลายๆกรณี

สำหรับวันนี้ จะแนะนำการใช้ Control Str. สำหรับควบคุมการระบายน้ำโดยมีเงื่อนไขการระบายดังนี้

1 หากมีข้อมูลตรวจวัดการปล่อยน้ำ ให้ใช้ค่าจากการตรวจวัด
2 หากมีข้อมูลประมาณการการปล่อยน้ำ ให้ใช้ค่าจากการประมาณการ
3 หากมีการเปลี่ยนแปลงการปล่อยน้ำยังไม่ถึง 1 ชั่วโมง จะยังไม่เปลี่ยนแปลง
4 หากระดับน้ำ เท่ากับระดับน้ำจาก Rule Curve จะใช้การปล่อยน้ำเท่าเดิม
5 หากระดับน้ำ ต่ำกว่า ระดับน้ำจาก Rule Curve จะให้ปล่อยน้ำลดลง
6 หากระดับน้ำ สูงกว่า ระดับน้ำจาก Rule Curve จะให้ปล่อยน้ำเพิ่มขึ้น

จากเกณฑท์ควบคุมการระบายน้ำทั้ง 6 ข้อข้างบน จะเป็นการควบคุมให้การระบายน้ำเป็นไปอย่างถูกต้อง
ตามการบริหารจริง และยังเพิ่มเงื่อนไขไว้ต่อท้าย ในกรณีที่ หากไม่มีข้อมูลตรวจวัด ก็จะสลับกลับมาใช้การระบายน้ำโดยอิงตามเกณฑ์ของ Rule Curve ของเขื่อนนั้นๆแทน

การตั้งค่า Control Str. จะตั้งค่าใน Network file โดยเปิด Tabular View แล้วเลือกไปที่ Control Str.

กำหนดตำแหน่งที่ตั้งของโครงสร้างให้เรียบร้อย โดยต้องมี Name, Chainage และ ID ให้ครบ


เนื่องจากต้องการเงื่อนไขควบคุมการระบาย 6 ข้อ ดังนั้นให้กด Tab ที่ช่องข้อมูล Control Definition เพื่อเพิ่มช่องข้อมูลให้ครบ 6 และปรับเปลี่ยน Calculation Mode ให้เป็น Tabulated สำหรับทุกข้อ ยกเว้นข้อ 3 และ 4 ให้เป็น Unchanged


เลือกเงื่อนไขที่ 1 แล้วกดปุ่ม Details ตั้งค่าใน Logical Operands ให้ใช้ LO Type เป็น TS-Scalar และ Sign ใช้ ">" โดยมี Value เป็น 0 และ ให้ Browse หาไฟล์ที่เป็นปริมาณน้ำระบายจากการตรวจวัด
(ไฟล์ค่าการระบายน้ำ กรณีที่มีข้อมูล ให้กรอกข้อมูลจริง แต่หากช่วงเวลาใดไม่มีข้อมูล ให้กรอกเป็นค่า ติดลบ จะเป็นการบอกให้โปรแกรมรับรู้ว่า ไม่มีข้อมูล)


ในหน้า Control and Targetpoint ให้เลือก Control Type เป็น Time แล้ว Browse หาไฟล์การระบายน้ำไฟล์เดียวกับที่ใช้ในหน้า Logical Operands


ทำเช่นเดียวกันนี้ กับเงื่อนไขการระบายน้ำที่ 2 แต่เปลี่ยนมาใช้ไฟล์ข้อมูลประมาณการ การระบายน้ำแทน


สำหรับเงื่อนไขการระบายน้ำที่ 3 ในหน้า Logical Operands ให้เลือก LO Type เป็น ThisGate TSLGLC (โดย TSLGLC  ย่อมาจาก Time Since Last Gate Level Change) และเปลี่ยน Sign เป็น < พร้อมกับค่า Value เป็น 1 ชั่วโมง ซึ่งตัวเลขบอกระยะเวลาที่ต้องการคุมไม่ให้มีการปรับเปลี่ยนปริมาณการระบายอาจเปลี่ยนเป็นค่าอื่นได้ขึ้นกับความเหมาะสมของโครงสร้างในจุดนั้นๆ


สำหรับเงื่อนไขการระบายที่ 4 ในหน้า Logical Operands จะใช้ LO Type เป็น Hups (ระดับน้ำเหนือเขื่อน) เปลี่ยน Sign เป็น "=" และ Use TS-value เป็น Yes จากนั้น Browse หาไฟล์ที่เป็น Rule Curve ของเขื่อน


เงื่อนไขการระบายน้ำที่ 5 ตั้งค่าใน Logical Operands เหมือนเงื่อนไขที่ 4 แต่ใช้ Sign เป็น "<" แทน เท่ากับกรณีนี้จะทำงานเมื่อระดับน้ำต่ำกว่า Rule Curve และจะต้องเข้าไปตั้งค่าให้ลดการระบายน้ำต่อไป


ในหน้า Control - and Targetpoint ให้ใช้ตัว Control Type เป็น Qups กรณีนี้คือ ปริมาณน้ำไหลเข้าเขื่อน


ในหน้า Control Strategy เป็นตารางแสดงค่าระหว่าง Control Point Value VS Target Point Value ตัวอย่างนี้เป็นการตั้งค่าในกรณีเขื่อนมีการระบายสูงสุดไม่เกิน 1530 และตั้งค่าให้การระบาย น้อยกว่าน้ำไหลเข้าเขื่อน 30 ซึ่งมีผลทำให้ระดับน้ำสูงขึ้นหากระบายตามวิธีการนี้


สำหรับเงื่อนไขสุดท้าย ในหน้า Logical Operands ไม่จำเป็นต้องตั้งค่า แต่หน้า Control - and Targetpoint ให้ตั้งค่าเหมือนเงื่อนไขที่ 5 ส่วน Control Strategy ก็ตั้งค่าให้การระบาย สูงกว่าน้ำไหลเข้าเขื่อน เพื่อให้ระดับน้ำลดลง


เมื่อตั้งค่าเงื่อนไขการระบายครบหมดแล้ว ก็พร้อมจะนำไฟล์ Network ดังกล่าวไปทดสอบใช้
แต่อย่างไรก็ตาม ในกรณีที่มีการลดจำนวนหน้าตัดลำน้ำเหนือเขื่อน ให้เหลือเพียง 1-2 หน้าตัด เพื่อจำลองเพียงปริมาณน้ำในเขื่อนนั้น การคำนวณจะมี Stability น้อย ดังนั้นอาจปรับแก้ค่า Delta ใน Default Values ซึ่งอยู่ในไฟล์ HD parameter เพิ่มขึ้น เช่นเปลี่ยนจาก 0.5 เป็น 0.75 เป็นต้น
ส่วนรายละเอียดทางเทคนิคของพารามิเตอร์นี้ ให้ตรวจสอบดูจากคู่มือ Scientific documentation ของแบบจำลอง MIKE 11 ที่จะมาพร้อมกับการติดตั้งโปรแกรม


หลังจากตั้งค่าโครงสร้างแล้ว ควรจะตรวจสอบผลการทำงานของโครงสร้างนั้นๆด้วย
ว่าควบคุมการไหล ได้ตามที่ตั้งค่าไว้ทั้งหมดหรือไม่
ในกรณีตัวอย่างนี้ จะต้องตรวจสอบระดับน้ำในเขื่อน และการระบาย ว่าเป็นไปตามเงื่อนไข
ครบถ้วนหรือไม่



อัพเดทเพิ่มด้านล่างนี้เมื่อ 2013-10-11
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv

ในกรณีต้องการตั้งค่าประตูระบายน้ำ เพื่อควบคุมระดับน้ำเหนือบานประตูให้คงที่

เราสามารถทำได้โดย เปลี่ยนรูปแบบของโครงสร้าง จากการควบคุมด้วย Discharge มาเป็น Sluice Formula


และต้องกรอกข้อมูลลักษณะของบานประตูให้ครบ รวมถึงฐานประตูด้วย

จากนั้น การควบคุมการระบายน้ำ ใน Control Definition จะมี 3 ข้อดังนี้


โดยข้อแรก จะตั้งค่าเช่นเดียวกับ Control Definition ข้อ 3 ของโครงสร้างก่อนหน้าที่
ซึ่งตั้งค่าให้ ThisGate-TSLGLC มีค่าน้อยกว่า 1 ชั่วโมง จะยังไม่มีการเปลี่ยนแปลง

ส่วนข้อ 2 จะตั้งค่าใน Detail โดยให้มี LO-Type เป็น Hups และตรวจสอบว่า มีค่าสูงกว่าระดับน้ำที่ต้องการควบคุม (เมื่อระดับน้ำสูงเกิน โปรแกรมจะเปิดบานเพิ่มขึ้น จนกว่าจะถึงระดับ Fully Open ซึ่งเป็นการพยายามลดระดับน้ำลง)

ส่วนข้อ 3 ไม่ต้องตั้งค่าใดๆ (การจะเข้ามาเงื่อนไขข้อนี้ ก็ต่อเมื่อ ระดับน้ำต่ำกว่าเกณฑ์ที่ต้องการ ดังนั้น โปรแกรมจะพยายามปิดประตู เพื่อลดการระบาย และทำให้ระดับน้ำสูงขึ้น)

จาก Control Definition ทั้ง 3 ข้อ ก็เพียงพอที่จะทำให้โครงสร้างนี้ สามารถควบคุมระดับน้ำเหนือบางประตู ได้ตามที่ต้องการแล้ว


วันศุกร์ที่ 4 ตุลาคม พ.ศ. 2556

ปรับปรุงค่าความจุเก็บกักน้ำของเขื่อนในแบบจำลอง MIKE11 (Configuration of Dam in MIKE11)

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

โดยสิ่งที่ทำได้ง่ายสุดคือ การใส่หน้าตัดลำน้ำของเขื่อน เข้าไปในแบบจำลองให้ถี่ที่สุด

เพื่อให้หน้าตัดลำน้ำทั้งหมด สามารถอธิบายความจุของเขื่อนได้อย่างถูกต้อง ตรงกับความเป็นจริง

แต่การใส่ข้อมูลหน้าตัดลำน้ำเข้าไปถี่ๆ เป็นการบังคับให้แบบจำลองจำเป็นต้องคำนวณ

ที่ระยะระหว่างหน้าตัด (dx) สั้นลง และบังคับให้แบบจำลองต้องใช้ timestep สั้นลง

ทั้งหมดทำให้การคำนวณใช้เวลานานขึ้นมาก

อย่างไรก็ตาม การตั้งค่าเขื่อน ในแบบจำลอง MIKE11 ให้จำลองได้เหมือนสภาพจริงนั้น

มีเทคนิคง่ายๆในการทำ โดยที่ยังคงความไม่ซับซ้อนในการคำนวณ

ข้อสำคัญในการจัดการแบบจำลองคือ ปรับปรุงข้อมูลหน้าตัดลำน้ำ (เท่าที่มีอยู่ในอ่างเก็บน้ำ) ให้สามารถอธิบายพื้นที่เก็บน้ำ และความจุอ่างเก็บน้ำให้ถูกต้อง โดยไม่เพิ่มหน้าตัดลำน้ำอื่นๆที่ไม่จำเป็น

และใช้ Control Structure เป็นตัวกำหนดการระบายน้ำจากเขื่อน 

ดังนั้นข้อมูลที่ต้องใช้ในการทำงานประกอบด้วย

ข้อมูลโค้งความจุเขื่อนดังตัวอย่าง



และข้อมูลโค้งการบริหารเขื่อน (Rule curve) ดังตัวอย่าง


ปรับแต่งแบบจำลอง โดยให้เหลือเพียงส่วนของเขื่อน และพื้นที่เก็บน้ำเหนือเขื่อนเท่านั้น


เพิ่มโครงสร้างไว้ที่ตำแหน่งของเขื่อน


กำหนดโครงสร้างเป็นแบบ Control Structure และให้เป็นแบบ Discharge และ Close ไว้ก่อน โดยตำแหน่งของเขื่อน ให้วางอยู่ระหว่าง 2 หน้าตัดสุดท้าย ซึ่งจะเป็นตำแหน่งที่แบบจำลองจะคำนวณค่า Discharge ส่วนที่ตำแหน่ง 2 หน้าตัดสุดท้ายนั้น แบบจำลองจะคำนวณค่าระดับน้ำ (ปริมาณน้ำที่คำนวณในแบบจำลองคือปริมาณน้ำที่อยู่ในแต่ละหน้าตัด โดยมาจากพื้นที่หน้าตัดกับระดับน้ำ ในหน้าตัดนั้นๆ)


จากนั้น ตั้งค่า Boundary ให้ปลายฝั่งต้นน้ำ เป็น Discharge มีค่าคงที่ เป็น 0 และปลายน้ำ เป็นระดับน้ำ และคงที่ โดยให้ระดับน้ำสูงกว่าท้องคลองเล็กน้อยก็พอ
จากนั้นให้กำหนด Point source เข้าไปที่หน้าตัดสุดท้ายก่อนตำแหน่งของเขื่อน แล้ว Trial ค่า Discharge Inflow โดยทดสอบว่า ปริมาณน้ำเท่าไหร่จึงรันได้สำเร็จในช่วงเวลาที่กำหนด เช่นรัน 1 เดือน หากเติมน้ำเข้าเขื่อนมากไปด้วยหน้าตัดลำน้ำเดิมๆ อาจทำให้ระดับน้ำสูงเกิน จนรันไม่สำเร็จได้ แต่ก็ต้องได้ระดับน้ำมากพอ ที่จะตรวจสอบพื้นที่ผิวน้ำในเขื่อนได้

สำหรับไฟล์ HD11 ให้เพิ่มผลคำนวณโดยเลือก Flood Area ในส่วนของ Total ไว้ดังรูป


เมื่อสั่งคำนวณแล้ว จะได้ผลคำนวณเป็นไฟล์นามสกุล res11 ออกมาสองไฟล์ โดยไฟล์ที่มีชื่อตามที่เราตั้งค่าใน Result ไว้นั้น เราจะเปิดเพื่อตรวจสอบระดับน้ำที่หน้าตัดสุดท้ายก่อนเขื่อน

ทำโดยเลือกเมนู Plot/Timeseries จากนั้นเลือก List 


เลือกหน้าตัดที่ต้องการ ตามด้วยคลิกปุ่ม Show Values


จะได้ตารางแสดงค่าระดับน้ำพร้อมเวลาที่เกิดขึ้น ให้ Highlight ข้อมูลแล้ว Copy ไปแปะไว้ใน Excel


ทำเช่นเดียวกันกับไฟล์ผลคำนวณอีกไฟล์ที่จะมีชื่อตามที่เราตั้งค่าไว้ต่อท้ายด้วย HDAdd
โดยในไฟล์นี้ เราจะได้ค่า Flood Area ที่เวลาเดียวกันกับตารางระดับน้ำก่อนหน้านี้


จากนั้นทำการ Copy ข้อมูลพื้นที่ผิวน้ำดังกล่าว ไปวางคู่กับข้อมูลระดับน้ำ
แล้วตรวจสอบกับ พื้นที่ผิวน้ำที่เป็นค่าที่ได้จากโค้งความจุของเขื่อน ที่ระดับน้ำเดียวกัน
จะได้ตัวเลขพื้นที่ผิวน้ำที่ต้อง เพิ่ม หรือ ลด สำหรับระดับนั้นๆ
ตัวเลขพื้นที่ผิวน้ำที่เพิ่มหรือลดนี้ เราจะนำไปใช้ในหน้าตัดลำน้ำที่อยู่ในตำแหน่งก่อนเขื่อน

เปิดหน้าตัดลำน้ำ ที่ตำแหน่งก่อนเขื่อน


คลิกที่ปุ่ม View Processed Data จะได้ตารางแสดงข้อมูลของหน้าตัดนั้น พร้อมระดับน้ำและค่า Add.storage area (เบื้องต้นจะมีค่าเป็น 0 ทั้งหมด) จากนั้นให้ Copy พื้นที่ผิวน้ำที่ต้องการเพิ่มหรือลดจาก Excel มา Paste ลงไป (ระวัง ให้ข้อมูลตรงกัน ระหว่าง ระดับ กับค่าพื้นที่ผิวน้ำที่จะเพิ่มหรือลด)


เมื่อเพิ่มพื้นที่ผิวน้ำแล้ว ให้เซฟ แล้วรัน พร้อมกับ Trial ค่า Point source เพื่อให้ได้ระดับน้ำในช่วงเวลาที่รันมีระดับสูงพอให้ตรวจสอบความถูกต้องได้

เมื่อได้ผลรันใหม่แล้ว ให้ตรวจสอบเช่นเดิม โดย Plot ระหว่างค่าระดับน้ำกับพื้นที่ผิวน้ำ ว่าถูกต้องตรงกับข้อมูลจากโค้งความจุของเขื่อนหรือไม่ เพื่อเป็นการตรวจสอบซ้ำในกรณีที่มีการดำเนินการผิดขั้นตอน

แต่โดยปกติแล้ว การทำเนินการตามขั้นตอนดังกล่าวข้างต้น จะได้ผลพื้นที่ผิวน้ำที่ถูกต้อง หากเชคแล้วผิด หรือไม่ตรงกับข้อมูลตรวจวัด ให้ย้อนกลับไปตรวจสอบว่าขั้นตอนไหนผิดพลาด

เมื่อเสร็จขั้นตอนนี้ ก็จะได้หน้าตัดลำน้ำ ที่เป็นตัวแทนของอ่างเก็บน้ำ หรือเขื่อน ที่อธิบายระดับน้ำและปริมาณเก็บกักได้อย่างถูกต้อง พร้อมจะนำไปใช้ในการคำนวณในแบบจำลองรวมได้แล้ว

สำหรับกรณีการตั้งค่าการบริหารจัดการเขื่อนตาม Rule Curve นั้น ขอยกไปตอนต่อไปครับ





วันอังคารที่ 24 กันยายน พ.ศ. 2556

การลดจำนวน Points ใน Network ของแบบจำลอง MIKE11

ปัญหาหนึ่งในแบบจำลอง MIKE11 ที่พบเมื่อสร้างแบบจำลองสำหรับ

พื้นที่ศึกษาที่มีขนาดใหญ่ แล้วใช้ข้อมูลเส้นลำน้ำจากฐานข้อมูลเชิง GIS

คือ จำนวน Node หรือ Points ของเส้นลำน้ำ มีเยอะมาก (เกิน 50 000 Points)

แล้วมีผลทำให้การเปิดใช้งานหน้าต่างการจัดการข้อมูล Network มีปัญหา

ทำให้การเลื่อน ซูม การดู หรือจะแก้ไขค่าต่างๆ มีอาการหน่วงเป็นอย่างมาก

แต่หากจะลดจำนวน Points ของเส้นลำน้ำลงมากๆ

ด้วยวิธีใช้ระยะห่างของ node เท่าๆกัน ก็ทำให้เส้นลำน้ำ ไม่โค้งตามธรรมชาติเท่าที่ควร

ทำให้ลดจำนวน Node ไม่ได้อย่างที่ต้องการ

หากใครมีปัญหานี้ ต่อไปนี้เป็นวิธีแก้ไข โดยสมมุติว่ามี Network ที่สร้างเสร็จแล้ว

และมีจำนวน Points เยอะมากเกินและต้องการลดจำนวน Points ลง

ให้ทำตามขั้นตอนดังนี้

1) เปิดไฟล์ Network นั้นขึ้นมา แล้วเลือกเมนู Network/Export Network Data to Shape file



2) เลือกสร้างเฉพาะ River Network ดังรูป



3) เปิดเวบไซด์ http://www.mapshaper.org/ ซึ่งจะมีตัวช่วยในการลดจำนวน points ให้เลือก % ว่าจะลดจำนวน points เหลือเท่าไหร่ โดยขั้นตอนนี้ต้องทดสอบว่าลดเหลือเท่าไหร่ จึงยังได้เส้นลำน้ำที่ยังมีส่วนโค้งที่ยอมรับได้อยู่



4) การใช้งานเวบไซด์ดังกล่าว แนะนำให้เลือกวิธีการลด points แบบ modified Visvalingam จากนั้นให้ลากไฟล์ SHP วางลงไปบนหน้าเวบ แล้วทดสอบเลื่อน % ในการลด point และหากได้ % ที่ต้องการแล้วให้คลิกที่ ปุ่ม Shapefile เพื่อโหลดไฟล์ SHP ที่ทำการลดทอน point ลงแล้วกลับมา



5) ไฟล์ที่ได้กลับมาจะมีเพียงสองไฟล์ที่มีนามสกุล SHP และ SHX ส่วนไฟล์ DBF ให้ใช้ไฟล์เดิมได้เลย ดังนั้นเมื่อ โหลดไฟล์กลับมาแล้ว unzip แล้วให้ copy ไฟล์ DBF ไปไว้ด้วยกันด้วย ถึงจะใช้งานได้

6) กลับมาที่ Network แล้วเลือกเมนู Layer/Add remove layer เพิ่ม Layer ใหม่แล้ว เลือกชนิด Shape File แล้วโหลดไฟล์ SHP ที่ได้มาใหม่เข้ามา



7) ลบเส้นลำน้ำเดิมพร้อมทั้ง points ทั้งหมด (ลบใน Tabular view จะสะดวกกว่า)

8) แปลงไฟล์ SHP มาเป็นเส้นลำน้ำโดยเลือกเมนู Network/Generate network from shape file



9) หากไฟล์เดิมมีการ Link เส้นลำน้ำไว้ เราสามารถ Copy การ Link ของเดิม ใน Tabular view/Network/Branches ในตาราง Overview มา paste ลงไปใน Network ที่ทำใหม่ได้ โดยมีเทคนิคว่าจะต้องใช้เมนู Edit/Copy และ Edit/Paste ในการ copy และ paste (ใน version 2012 sp2 พบว่าไม่สามารถใช้ Shot cut Ctrl+C และ Ctrl+V ได้)



หวังว่าเทคนิคนี้จะช่วยให้ทำงานกับ Network ในแบบจำลอง MIKE11 ได้สะดวกมากขึ้น

การลดจำนวน points ในแบบจำลองลงได้ จะทำให้การทำงานกับแบบจำลองไม่หน่วงมาก ใช้งานได้คล่องตัวมากขึ้น และไม่มีผลกับผลคำนวณจากแบบจำลอง เว้นแต่กรณีที่ทำแผนที่น้ำท่วม ซึ่งความโค้งของเส้นลำน้ำ มีผลต่อแผนที่น้ำท่วมที่สร้างขึ้นมาด้วย