前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >五、处理地理数据异常【ArcGIS Python系列】

五、处理地理数据异常【ArcGIS Python系列】

作者头像
renhai
发布2023-11-24 16:20:58
2090
发布2023-11-24 16:20:58
举报

对于Python程序的通用错误

在运行ArcPy程序中,大多数异常都是Python产生的:

  1. 语法错误(SyntaxError):代码不符合Python语法规则,通常是由于拼写错误、缺少冒号、括号不匹配等引起的。
  2. 名称错误(NameError):尝试使用一个未定义的变量或函数名称。
  3. 类型错误(TypeError):操作或函数应用于不适当的类型的对象。
  4. 索引错误(IndexError):尝试访问列表、元组或字符串等序列类型的元素时使用了无效的索引。
  5. 键错误(KeyError):尝试使用字典中不存在的键。
  6. 文件不存在错误(FileNotFoundError):尝试打开或读取一个不存在的文件。
  7. 除零错误(ZeroDivisionError):尝试进行除以零的操作。
  8. 值错误(ValueError):传递给函数的参数类型正确,但是值不合适。
  9. 属性错误(AttributeError):尝试访问对象没有的属性。
  10. 异常处理错误(ExceptionHandlingError):在异常处理语句中出现错误,例如错误的语法或逻辑。

这只是一些常见的错误异常,实际上Python还有很多其他的异常类型。在编写代码时,应该注意捕获和处理这些异常,以便更好地调试和处理错误。

捕捉ArcPy工具的错误

当地理处理工具写入错误消息时,ArcPy将生成系统错误。具体而言,当地理处理工具运行失败时,它将引发 ExecuteError 异常,该异常可用于处理特定的地理处理错误。它不是Python内置异常类之一,但它是由ArcPy生成的,因此必须使用 arcpy.ExecuteError 类。

代码语言:javascript
复制
import arcpy
arcpy.env.workspace = "C:/Data"
in_features = "streams.shp"
out_features = "streams.shp"
try:    
    arcpy.CopyFeatures_management(in_features, out_features)
except arcpy.ExecuteError: # 捕获所有地理处理错误
    print(arcpy.GetMessages(2))
except: # 捕获与地理处理无关的任何其他错误
    rint("There has been a nontool error.")

由于输入要素类和输出要素类不能相同,“复制要素”工具会生成错误,如下所示:

代码语言:javascript
复制
Failed to execute. Parameters are not valid.ERROR 000725: Output Feature Class: Dataset C:/Data\streams.shp already exists.Failed to execute (CopyFeatures).

在复杂的脚本中,可能很难确定错误的精确位置。您可以使用Python traceback 模块来隔离错误的位置和原因。可以˙使用IDE工具进行调试。

利用ChatGPT人工智能和搜索引擎能解决绝大部分问题:

速度快,不翻墙,五分钟自建服务器,不泄露聊天记录,使用网页版ChatGPT人工智能的方法:低成本拥有一个在国内使用ChatGPT

搜索引擎:

  • GIS知乎社区
  • ArcGIS官方社区
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 renhailab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 对于Python程序的通用错误
    • 捕捉ArcPy工具的错误
      • 利用ChatGPT人工智能和搜索引擎能解决绝大部分问题:
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档