首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为使用FloPy构建的MODFLOW USG模型编写.gsf文件

为使用FloPy构建的MODFLOW USG模型编写.gsf文件
EN

Stack Overflow用户
提问于 2020-07-17 08:26:33
回答 1查看 107关注 0票数 0

我已经在FloPY (使用Gridgen的四叉树网格)中构建了一个MODFLOW USG-Transport模型,我希望能够在诸如Vistas这样的图形用户界面中打开它,以便其他不使用FloPy的人可以使用它。

我需要一个.gsf文件才能做到这一点。我尝试使用PEST实用程序gridgen2gsf,但并不是所有节点连接都包含在该文件中。

有没有人为USG模型写了一个gsf文件,愿意帮我一把?

干杯,艾玛

EN

回答 1

Stack Overflow用户

发布于 2021-06-05 06:43:31

我遇到了同样的问题。我需要一个扩展名为.gsf的文件来将软盘模型导入gms。我写了以下代码:

代码语言:javascript
复制
g=Gridgen(dis,exe_name='gridgen_x64', model_ws=gridgen_dir)
ncells = g.get_nodes()
verts, iverts = g.get_verts_iverts(ncells)
# vertices=g.get_vertices(ncells)
vertices = g.get_gridprops_vertexgrid()
lenverts=len(verts)
f = open("test.gsf", "a")
f.write('UNSTRUCTURED\n' + str(g.get_nodes()) + ' ' + str(g.get_nlay()) + ' ' + 
        str(1) + ' ' + str(1) + '\n' + str(
        lenverts * (nlay+1)) + '\n')

tuples = []
count = 0
for i in g.get_top():
    if count != ncells:
       for j in g._vertdict[count]:
           # np.savetxt(f, (j+(i,),), delimiter=' ', fmt='%g')
           tuples.append(j + (i,))
    count += 1
count=ncells-ncells/nlay
for i in list(g.get_bot()[int(ncells-ncells/nlay):int(ncells)]):
    for j in g._vertdict[count]:
        tuples.append(j + (i,))
    count += 1

nvertexes = list(dict.fromkeys(tuples))

for i in range(0, ncells):
    iverts[i] = [x + 1 for x in iverts[i]]
    del iverts[i][-1]
for i in nvertexes:
    np.savetxt(f, (i,), delimiter=' ', fmt='%g')
nodesgfs = []
nodeiter=0
for j in range(0,nlay):
    for i in g.get_nod_recarray()[nodeiter:]:
        ivertex=[x + lenverts*(j) for x in iverts[nodeiter]]
        nodesgfs.append((i[0] + 1,) + (i[2],) + (i[3],) + (i[4],) + (i[1] + 1,) 
                       + (len(ivertex)*2,) + tuple([x + lenverts*(j+1) for x in 
                        iverts[nodeiter]])+tuple(ivertex))
        nodeiter += 1
        if nodeiter in [numcell for numcell in range(int(ncells/nlay),ncells,int(ncells/nlay))]:
            break

nodesgfs = list(dict.fromkeys(nodesgfs))
for i in nodesgfs:
    np.savetxt(f, (i,), delimiter=' ', fmt='%g')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62945349

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档