Двоичный вывод из пакета SUB имеет тот же формат, что и файлы двоичных голов MODFLOW.Вам нужно знать имя выходной текстовой строки, записанной в двоичный файл.См. Таблицу 1 в интерактивной документации MODFLOW-2005 для пакета SUB, чтобы определить текстовую строку для данного двоичного файла пакета SUB.
Ниже показано, как преобразовать данные Z DISPLACEMENT
вдвоичный файл оседания в файл ascii, используя flopy
и numpy
:
import numpy as np
import flopy
# open the binary file
sobj = flopy.utils.HeadFile('model.zdisplacement.bin',
text='Z DISPLACEMENT')
# get all of the available times in the file
times = sobj.get_times()
# extract the data for the last time in the file
zd = sobj.get_data(totim=times[-1])
# save the z-displacement for the first layer (layer 0) to an ascii file
# zd is a 3D numpy array with a shape of (nlay, nrow, ncol)
np.savetxt('layer0.zdisplacement.txt', zd[0])
Если у вас есть более одного слоя, вам необходимо сохранить данные для каждого слоя.
Вы можете вывести все данные в файл, используя:
for t in sobj.get_times():
zd = sobj.get_data(totim=t)
for k in range(nlay):
fpth = 'layer{}_{}.zdisplacement.txt'.format(k, t)
np.savetxt(fpth, zd[k])