EFDC从零开始|01_(2)生成真实的DXDY.INP文件

  • Post author:
  • Post category:其他


提取栅格中心点

结果如图

将栅格数据中的水深值提取到点

点转栅格

导出为TXT

但是这样操作,最后的行列数和原来不一样。经统计,有数据的栅格数相同。所以在生成dxdy.inp的代码中调整一下即可。


代码如下(在输出行列号处做调整)

f = open("taihu750-dep.txt", "r")
f2 = open("input_dxdy2.txt", "wt")

f2.write('C dxdy.inp file, in free format across columns\n')
f2.write('C\n')
f2.write('C    I      J      DX      DY      DEPTH      BOTTOM ELEV      ZROUTH      VEG TYPE\n')
f2.write('C\n')

lines = f.read()
data = lines.split('\n')
row = len(data)
for j in range(0, row):  # Y方向-行-文件第二列
    line = data[row-1-j].split()
    col = len(line)
    for i in range(0, col):  # X方向-列-文件第一列
        dep = float(line[i].strip('\n'))
        if line[i].strip('\n') != '-9999':
            f2.write('   %3d   %3d    500.0     500.0     %.4f     %.4f     0.02     0\n' % (i+6, j+4, dep, -dep))

f2.write('C\n')
f2.write('C  I         ARRAY INDEX IN X DIRECTION\n')
f2.write('C  J         ARRAY INDEX IN Y DIRECTION \n')
f2.write('C  DX        CELL DIMENSION IN X DIRECTION, METERS \n')
f2.write('C  DY        CELL DIMENSION IN Y DIRECTION, METERS\n')
f2.write('C  DEPTH     INITIAL WATER DEPTH, METERS \n')
f2.write('C  BOTTOM    ELEV  BOTTOM BED ELEVATION, METERS\n')
f2.write('C  ZROUGH    LOG LAW ROUGHNESS HEIGHT, ZO, METERS \n')
f2.write('C  VEG TYPE  VEGETATION TYPE CLASS, INTEGER VALUE\n')
f2.close()

结果如下



版权声明:本文为smilesnailGIS原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。