Fortran阅读Arcview输出

时间:2013-10-11 02:56:50

标签: fortran coordinates fortran90 elevation

我有一些来自 ArcGIS 的输出文件,其中包含大型高程数据集
我正在尝试使用 FORTRAN 来读取和处理这些数据,因为数据量非常大。
我在下面有一个截断的示例文件:

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 的新手,我在阅读此文件和创建数组时遇到了问题。

1 个答案:

答案 0 :(得分:0)

整数值是否合理?然后我可能会将这些行读入字符串并使用列表导向的IO来读取字符串的一部分中的整数。类似的东西:

character (len=80) :: line

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

然后重复读取line

,跳过空白行

将数组分配到正确的尺寸,然后执行:

read ( UnitNum, *) array

让我们知道这会让你有多远......