數值地形模型 (DTM) 系列 - 第四課:VB.NET 實作篇

更新 發佈閱讀 5 分鐘

【前言】

數值地形模型(DTM)的處理是空間資訊科學的基礎。在本系列課程中,我們已經陸續介紹了不同語言的處理方法。最後一課,我們將實測如何使用 VB.NET 來達成與第二課(VB6)相同的任務。

本系列涵蓋內容:

  • 如何用 FORTRAN 讀取 DTM 資料檔案? (Visual FORTRAN)
  • 如何用 Visual Basic 讀取 DTM 資料檔案? (VB6)
  • 讀取和寫入二進位檔案 (VB.NET)
  • 如何用 Visual Basic 讀取 DTM 資料檔案? (VB.NET)

(4) 如何用 Visual Basic 讀取 DTM 資料檔案?(VB.NET)

在之前的課程中,我們討論過 VB6 的讀取方式。現在,我們使用 VB.NET 來處理同樣的問題。

資料規格假設:

  • 格式:二進位 (Binary) 整數矩陣。
  • 矩陣大小:477 (欄/Column) × 512 (列/Row)。
  • 資料型態:2-byte 短整數 (在 .NET 中對應為 Int16)。

程式實作邏輯:

  1. 開啟檔案流:宣告一個 FileStream,設定模式為 OpenRead
  2. 建立讀取器:宣告 BinaryReader 來解析二進位資料。
  3. 建立寫入器:宣告 StreamWriter 用於將結果輸出為純文字檔。
  4. 巢狀迴圈讀取:外層迴圈跑 512 列,內層迴圈跑 477 欄。
  5. 輸出資料:每讀取一個 Int16 數值,即刻寫入文字檔中。
  6. 資源關閉:完成後關閉所有 Reader、Writer 與 Stream。

【VB.NET 範例原始碼:ReadDTM】

Imports System
Imports System.IO

Private Sub ReadDTM()
Dim i As Integer ' 欄索引
Dim j As Integer ' 列索引

' 1. 宣告一個 FileStream,設定其讀取模式為 Open 與 Read
Dim fs As New FileStream("D:\dtm\ldrelev.dat", FileMode.Open, FileAccess.Read)

' 2. 宣告一個新的二進位資料讀取器 (BinaryReader)
Dim r As New BinaryReader(fs)

' 3. 宣告一個新的 StreamWriter,準備輸出文字檔
Dim sw As StreamWriter = New StreamWriter("D:\dtm\ldrelev.txt")

' 4. 開始掃描矩陣資料 (Row: 512, Column: 477)
For j = 1 To 512
For i = 1 To 477
' 讀取一個 2-byte 整數 (ReadInt16) 並寫入文字檔
' 格式:列索引, 欄索引, 高程值
sw.WriteLine(j.ToString() & "," & i.ToString() & "," & r.ReadInt16())
Next i
Next j

' 5. 關閉所有資源
r.Close()
fs.Close()
sw.Close()
End Sub

整理說明:

  • 技術演進:在 VB6 中,我們可以使用 Get 指令直接將一整列讀入陣列;而在 VB.NET 的範例中,作者展示了更直觀的 ReadInt16() 逐點讀取法。雖然效率上可能略有差異,但在代碼邏輯上更符合物件導向的規範。
  • 型別對應:特別注意 .NETInt16 準確對應了傳統二進位 DTM 檔案中的 2-byte integer。
留言
avatar-img
晴寒的沙龍
2會員
51內容數
冬日微晴已無寒意
你可能也想看
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
若說易卜生的《玩偶之家》為 19 世紀的女性,開啟了一扇離家的窄門,那麼《海妲.蓋柏樂》展現的便是門後的窒息世界。本篇文章由劇場演員 Amily 執筆,同為熟稔文本的演員,亦是深刻體察制度縫隙的當代女性,此文所看見的不僅僅是崩壞前夕的最後發聲,更是女人被迫置於冷酷的制度之下,步步陷入無以言說的困境。
Thumbnail
許多人過度追求工作的意義,但實際上,踏實執行任務、持續學習,並應用PDCA循環調整,才能獲得更好成果。本文分享如何跳脫迷思,透過行動與反思,提升工作效率,並達成目標。
Thumbnail
許多人過度追求工作的意義,但實際上,踏實執行任務、持續學習,並應用PDCA循環調整,才能獲得更好成果。本文分享如何跳脫迷思,透過行動與反思,提升工作效率,並達成目標。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
本文深度解析賽勒布倫尼科夫的舞臺作品《傳奇:帕拉贊諾夫的十段殘篇》,如何以十段殘篇,結合帕拉贊諾夫的電影美學、象徵意象與當代政治流亡抗爭,探討藝術在儀式消失的現代社會如何承接意義,並展現不羈的自由靈魂。
Thumbnail
這本書推薦給正在學習用「數字」說話的人。 對我來說,原本日常的溝通都是以「感覺」為主,當要以「數字」進行溝通時,變成很大的障礙,不知道到底要提供什麼?甚至一個不小心就會回到原本用「感覺」溝通的狀態。對我來說,這本書最大的幫助在於「理解如何運用數值說話」,改變「對話」的模式。
Thumbnail
這本書推薦給正在學習用「數字」說話的人。 對我來說,原本日常的溝通都是以「感覺」為主,當要以「數字」進行溝通時,變成很大的障礙,不知道到底要提供什麼?甚至一個不小心就會回到原本用「感覺」溝通的狀態。對我來說,這本書最大的幫助在於「理解如何運用數值說話」,改變「對話」的模式。
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
全新版本的《三便士歌劇》如何不落入「復刻經典」的巢臼,反而利用華麗的秀場視覺,引導觀眾在晚期資本主義的消費愉悅之中,而能驚覺「批判」本身亦可能被收編——而當絞繩升起,這場關於如何生存的黑色遊戲,又將帶領新時代的我們走向何種後現代的自我解構?
Thumbnail
建模 (Modeling) 畫細不難,難在用最經濟的方式達成 "雖不中亦不遠矣"。 網格 (Meshing) 任憑你列式再怎麼漂亮,解不出來就是白搭。 求解 (iterating) 能收斂都好說,不能收斂就是痛苦的開始
Thumbnail
建模 (Modeling) 畫細不難,難在用最經濟的方式達成 "雖不中亦不遠矣"。 網格 (Meshing) 任憑你列式再怎麼漂亮,解不出來就是白搭。 求解 (iterating) 能收斂都好說,不能收斂就是痛苦的開始
Thumbnail
說好要跟大家實況轉播海外行程的進展,忙到一段落,熱騰騰奉上。 進京述職,我不是沒有經驗,但這絕對是史上最全力備戰的一次。自己都不知道在如臨大敵甚麼。
Thumbnail
說好要跟大家實況轉播海外行程的進展,忙到一段落,熱騰騰奉上。 進京述職,我不是沒有經驗,但這絕對是史上最全力備戰的一次。自己都不知道在如臨大敵甚麼。
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
EXCEL中排序是一個基礎的功能,今天要分享利用函數將數據遞增遞減排序。 需要用到的函數有4個: ✍🏾ROW回傳當前或參照列號 函數說明=ROW(參照) ✍🏾SMALL找出第幾小的數值 函數說明=SMALL(範圍,範圍內第幾小) ✍🏾LARGE找出第幾大的數值 函數說明=SMALL(範
Thumbnail
書名:數值化之鬼。 作者:安藤廣大。 書封標語:數字不是全部,但忽視數字的人絕對無法成長。 心得章節:前言─基於數字的思考方式。 ※ Hi!這是本人脫離學生時代後第一次寫讀書心得,但我想自己寫了那麼多故事,讀書心得應該是一件能辦到的事。本書作者我們就尊稱為「安藤老師」,以便做於區分。 《數值化之鬼》
Thumbnail
書名:數值化之鬼。 作者:安藤廣大。 書封標語:數字不是全部,但忽視數字的人絕對無法成長。 心得章節:前言─基於數字的思考方式。 ※ Hi!這是本人脫離學生時代後第一次寫讀書心得,但我想自己寫了那麼多故事,讀書心得應該是一件能辦到的事。本書作者我們就尊稱為「安藤老師」,以便做於區分。 《數值化之鬼》
Thumbnail
  在《曠野之息》這樣的冒險遊戲中,玩家不是為了某種特定的收益在行動,這除了讓我們不需要一直看到那些讓我們能夠精確計算「行動-收益關係」的數值之外,我們通常不是為了獲取某種「目標物」或達成列表上的「成就」來行動,吸引我們的,是一個接著一個的「目的地」。
Thumbnail
  在《曠野之息》這樣的冒險遊戲中,玩家不是為了某種特定的收益在行動,這除了讓我們不需要一直看到那些讓我們能夠精確計算「行動-收益關係」的數值之外,我們通常不是為了獲取某種「目標物」或達成列表上的「成就」來行動,吸引我們的,是一個接著一個的「目的地」。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
長期以來,西方美學以《維特魯威人》式的幾何比例定義「完美身體」,這種視覺標準無形中成為殖民擴張與種族分類的暴力工具。本文透過分析奈及利亞編舞家庫德斯.奧尼奎庫的舞作《轉轉生》,探討當代非洲舞蹈如何跳脫「標本式」的文化觀看。
Thumbnail
CPI數值驚見「假摔」?美股歡騰背後藏隱憂,華爾街專家踢爆:政府關門導致關鍵數據直接消失! 大家好,我是股市基友。 今天要來跟大家聊聊這幾天市場上最荒謬的一齣戲。如果你以為通膨真的像溜滑梯一樣順利下來了,那你可能就像是相信交友軟體上的修圖照一樣,太天真囉!華爾街現在可是吵翻天,我們得用顯微鏡來看看
Thumbnail
CPI數值驚見「假摔」?美股歡騰背後藏隱憂,華爾街專家踢爆:政府關門導致關鍵數據直接消失! 大家好,我是股市基友。 今天要來跟大家聊聊這幾天市場上最荒謬的一齣戲。如果你以為通膨真的像溜滑梯一樣順利下來了,那你可能就像是相信交友軟體上的修圖照一樣,太天真囉!華爾街現在可是吵翻天,我們得用顯微鏡來看看
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News