2013-10-11 37 views
0

我有一些輸出文件ArcGIS包含大海拔數據集
我試圖使用FORTRAN來讀取和處理這些數據量非常大。
下面我有一個截斷示例文件:Fortran讀取Arcview輸出

ncols   23 

nrows   21 

xllcorner  539204.730 

yllcorner  3834204.851 

cellsize  50 

nodata_value -9999 

-9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 -9999 
-9999 -9999 -9999 -9999 -9999 -9999 -9999 3.079 3.886 3.12 - 
-9999 -9999 -9999 -9999 -9999 -9999 2.963 3.751 5.434 3.696 
-9999 -9999 -9999 -9999 -9999 1.927 1.509 1.358 1.897 1.402 
-9999 -9999 -9999 -9999 2.423 1.501 0.912 0.874 0.932 0.975 
-9999 -9999 -9999 2.994 2.563 1.613 0.781 0.401 0.598 0.815 
-9999 -9999 2.228 1.57 1.823 1.137 0.463 0.43 0.459 0.74 0.9 
-9999 2.153 1.686 0.904 0.538 0.532 0.534 0.275 0.172 0.347 
-9999 1.532 0.935 0.416 0.365 0.575 0.493 0.28 0.17 0.251 0. 
-9999 1.506 1.061 0.481 0.263 0.379 0.287 0.356 0.354 0.247 
-9999 1.793 1.823 1.032 0.349 0.43 0.406 0.437 0.473 0.337 0 

我想創建座標和高程的陣列來進行一些計算。
我對Fortran很新,並且無法讀取此文件和創建數組。

+3

這似乎是一個相當直接的'READ(file_num ,*)'練習。你能告訴我們你試過了什麼嗎? –

回答

0

整數值左對齊了嗎?然後,我可能會將這些行讀入一個字符串,並使用列表控制的IO從字符串的一部分讀取整數。例如:

character (len=80) :: line 

read (UnitNum, '(A)') line 
read (line (14:50), *) Ncols 

然後通過重複讀取line跳過空行。

數組分配給正確的尺寸,然後就去做:

read (UnitNum, *) array 

讓我們知道,這到底讓你...

+1

因爲Fortran以列主要的順序存儲數組,讀取(UnitNum,*)數組的語句很可能會向用戶展示他期待的內容。 –