【SWAT水文模型】ArcSWAT各种报错总结

本文总结了本人在利用ArcSWAT模拟过程中,出现的各种错误。希望能和大家共同学习!

1 变量未实例化

1.1 报错内容

ArcGIS报错:
空间参考:变量未实例化
Spatial Reference: Object reference not set to an instance of an object
在这里插入图片描述
在这里插入图片描述

1.2 解决方法

把Arcgis的并行计算改为0即可。
打开Arcgis,点击Geoprocessing——Environments,进入Environment Settings面板,找到Parallel Processing, 输入0,点击OK。
在这里插入图片描述

2 Error Number :-2147467259; 对 COM 组件的调用返回了错误 HRESULT E_FAIL

2.1 报错内容

出错位置:土地利用/土壤数据/坡度 覆盖overlay

Error Number :-2147467259
Eror Message: Eror HRESULTE FAIL has been retuned froma alltoa a COM component.
Module:mAnalysis
Function:dissolve
Procedurure:1

在这里插入图片描述
随后,依次弹出以下界面:
在这里插入图片描述

Description:
Microsoft Jet数据引擎找不到输入表或查询’FulLHRU’。确定它是否存在,以及它的名称的拼写是否正确。

在这里插入图片描述
尝试将并行设置更改为0,但依旧报错。

2.2 解决方法

不勾选overlay中的前一选项。
在这里插入图片描述

3 Error Number :-2147467259

3.1 报错内容

在这里插入图片描述

3.2 解决方法

4 INSER INTO 语句的语法错误。: IN, mWriteInputFiles.sol

4.1 报错内容

在用ArcSWAT进行Write SWAT Input Tables操作中,遇到报错:INSERTINTO 语句的语法错误。:IN,mWritelnputFiles.wg。
在这里插入图片描述

4.2 解决方法

在建的工程里面打开swat2012,打开usersoil,然后将没有数据的其他土壤层用0补齐,再进行操作。

5 IN, mWriteInputFiles.wgn

5.1 报错内容

在用ArcSWAT进行Write SWAT Input Tables操作中,遇到报错:INSERTINTO 语句的语法错误。:IN,mWritelnputFiles.wg。
在这里插入图片描述
随后,依次弹出以下界面:
在这里插入图片描述
通过查看SWAT2021.mdb数据库中的WGEN_user表,发现ObjectID的值与气象站点编号不匹配。这是因为导入电子表格时,Access自动将ObjectID中的值更改为从1开始的序号。

5.2 解决方法

在导入表时,选择【我自己选择主键】,如下图:
在这里插入图片描述

6 系统找不到指定的文件。:Unable to open Access database from ArcSWAT

6.1 报错内容

在执行保存文件后,点击【Open SWATOutput.mdb 】,如下:
在这里插入图片描述
显示系统找不到指定文件。如下
在这里插入图片描述

6.2 解决方法

发现问题在于,SWATOutput.mdb保存在Default文件夹中,将此新建文件夹Copy后即可。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7 Outlet输入文件格式:Type field does not exist

7.1 报错内容

在导入实测水文站作为outlet时,报错显示“Type field does not exist”。
在这里插入图片描述
查阅SWAT2012手册可知:

此表必须具有3.3节中指定的子流域出口位置表(Subbasin Outlet Location Table)中的相同字段
在这里插入图片描述

表中列出的所有位置必须为 “O”型出口 。如果指定了不同的“Type”值,则会出现一个对话框,报告如图5.33所示的错误,并且加载过程将停止。
在这里插入图片描述

7.2 解决方法

按手册制作Outlet表:
在这里插入图片描述
将此文件保存为.dbf格式后,可成功导入在SWAT中:
在这里插入图片描述
确定后,显示以下界面:(成功导入14个outlet)
在这里插入图片描述

经纬度坐标转平面坐标

在工具箱中依次点击数据管理工具->投影和变换->要素->投影,弹出投影对话框,如下图所示:
此时将arcmap右侧内容列表中之前导出的shp文件数据要素类拖动至输入数据集或要素类文本框中,此时见输入坐标系文本框中自动填写此shp文件的之前已经定义过的坐标系。
在这里插入图片描述#pic_center
在弹出的对话框中点击左上角按钮,在弹出的菜单中点击添加字段,在弹出的添加字段对话框中,填写字段名及字段类型,如下图所示:

点击确定,完成字段的添加。在新建的字段名上右键,在弹出的菜单中选择计算几何,弹出计算几何对话框,属性栏选择点的X坐标或者Y坐标,计算对应的XY平面坐标值。
在这里插入图片描述
点击确认完成X坐标的计算,同以上步骤添加字段、计算几何完成Y坐标的计算工作。如下图:

如果需将表格数据导出,可在工具栏中点击搜索按钮,输入表转Excel,如下图:

点击搜索到的表转Excel工具,弹出对话框表转Excel对话框,将上述步骤得到的数据要素拖至输入表文本框中,在输出Excel文件文本框中选择输出路径及Excel表名,点击确定,完成Excel导出步骤,如下图所示:

8 Overlay时:Unhandled exception has occured in a component in your application. Exception from HERSULF: 0x800A01C9

8.1 报错内容

Land Use/Soils/Slope Definition成功重分类后,选择overlay时,弹出以下错误:
在这里插入图片描述

8.2 解决方法

9 Error Number: -2147217256

Errot in GRID IO:
在这里插入图片描述

参考

1、CSDN博客-ArcSWAT报错:Error Number :-2147467259; 对 COM 组件的调用返回了错误 HRESULT E_FAIL
2、在ArcSWAT中一直弹出INSECT INFO 语句的语法错误。
3、arcgis经纬度转平面坐标教程
4、ArcGIS之“异常来自HRESULT:0x8004021F”解决方法
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44246618/article/details/131430809