微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

加载使用 FloPy MODFLOW 创建的 MNW2 包时出错

如何解决加载使用 FloPy MODFLOW 创建的 MNW2 包时出错

我无法从头加载使用 FloPy 创建的 MNW2 包,使用 node_datastress_period_data 重新数组(使用 losstype='general')。>

我回到了 Jupyter Notebook flopy3_mnw2package_example:我坚持这个例子,只是改变了 node_data 的定义,替换了 Notebook 的 In[3]:

node_data = pd.DataFrame([[1,1,9.5,7.1,'well1','skin',-1,1.,2.,5.,6.2],[1,5.1,0.5,[3,3,9.1,3.7,'well2',4.1]],columns=['i','j','ztop','zbotm','wellid','losstype','pumploc','qlimit','ppflag','pumpcap','rw','rskin','kskin','zpump'])

使用 losstype='general' 版本:

node_data = pd.DataFrame([[1,'general',0.,2.0],2.0]],'B','C','P'])

制作mnw对象(In[7])后,我编写输入文件并尝试使用以下方法加载MNW2包:

m.write_input()
flopy.modflow.Modflow.load('data/mnw2example.nam',load_only = 'mnw2',verbose=True)

但我收到以下错误

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-122-fb0de1b45d14> in <module>
----> 1 flopy.modflow.Modflow.load('data/mnw2example.nam',verbose=True)

C:\tools\Anaconda3\lib\site-packages\flopy\modflow\mf.py in load(f,version,exe_name,verbose,model_ws,load_only,forgive,check)
    800                         else:
    801                             item.package.load(item.filehandle,ml,--> 802                                               ext_unit_dict=ext_unit_dict)
    803                         files_successfully_loaded.append(item.filename)
    804                         if ml.verbose:

C:\tools\Anaconda3\lib\site-packages\flopy\modflow\mfmnw2.py in load(f,model,nper,gwt,nsol,ext_unit_dict)
   1230         for i in range(mnwmax):
   1231             # create a Mnw object by parsing dataset 2
-> 1232             mnwobj = _parse_2(f)
   1233             # populate stress period data table for each well object
   1234             # this is filled below under dataset 4

C:\tools\Anaconda3\lib\site-packages\flopy\modflow\mfmnw2.py in _parse_2(f)
   1824                hlim=hlim,qcut=qcut,qfrcmn=qfrcmn,qfrcmx=qfrcmx,1825                hlift=hlift,liftq0=liftq0,liftqmax=liftqmax,hwtol=hwtol,-> 1826                liftn=liftn,qn=qn)
   1827 
   1828 

C:\tools\Anaconda3\lib\site-packages\flopy\modflow\mfmnw2.py in __init__(self,wellid,nnodes,losstype,pumploc,qlimit,ppflag,pumpcap,rw,rskin,kskin,B,C,P,cwc,pp,k,i,j,ztop,zbotm,node_data,stress_period_data,pumplay,pumprow,pumpcol,zpump,hlim,qcut,qfrcmn,qfrcmx,hlift,liftq0,liftqmax,hwtol,liftn,qn,mnwpackage)
    426         # build recarray of node data from MNW2 input file
    427         if node_data is None:
--> 428             self.make_node_data()
    429         else:
    430             self._set_attributes_from_node_data()

C:\tools\Anaconda3\lib\site-packages\flopy\modflow\mfmnw2.py in make_node_data(self)
    450         names = Mnw.get_item2_names(self)
    451         for n in names:
--> 452             node_data[n] = self.__dict__[n]
    453         self.node_data = node_data
    454 

ValueError: cannot copy sequence with size 0 to array axis with dimension 2

我在保留 losstype='skin' 版本时加载 MNW2 包没有问题,所以我不知道这是否是我的 node_data 中的问题?但我想我定义了 losstype='general'...

所需的所有参数

感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。