2301_78369333 2024-04-25 18:23 采纳率: 50%
浏览 426
已结题

arcgis进行莫兰全局自相关分析出不来,报错

错误000853默认邻域搜索阈值…
错误000845,输入要素不足30
感觉不是这两个的事儿,局部自相关也报错,但是能出图,用的双精度型数字,红字如下

img

img

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-04-25 18:29
    关注

    引自免费微信小程序:皆我百晓生

    看起来你在使用ArcGIS进行Moran全局自相关分析时遇到了一些问题。首先,让我们逐个解决这些问题:

    1. 错误000845:这个警告提示你理想情况下应该有至少30个输入要素。如果你的数据集小于30个点,你需要确保你的数据已经包含了足够的地理实体来进行分析。检查数据源,可能需要合并或增加数据点以满足这个要求。

    2. 错误000853:这个警告表示默认的邻域搜索阈值过大,可能导致分析结果不准确。你可以尝试调整这个阈值,使其更适合你的数据特征。在ArcGIS中,你可以在MoransI.py脚本中的setupGlobal()函数里找到设置邻域阈值的部分,比如这样修改:

    # 假设你想要将阈值改为km,需要先知道你的数据单位
    # 阈值单位与米转换(这里假设1公里=1000米)
    THRESHOLD_M = 1000 * new_threshold_in_km
    
    # 然后在适当位置更新阈值
    global_neighborhood = gis.create_local_memory_layer()
    global_neighborhood.set_default_neighborhood(
        "Kring", radius=THRESHOLD_M, units="Meters"
    )
    

    记得替换new_threshold_in_km为你想要的新阈值。

    1. 图2和图3的错误:这似乎是一个编码问题,导致在生成HTML报表时出现了UnicodeDecodeError。确保你的文本文件编码是UTF-8,或者在report2html函数中指定正确的编码。在SSReportXML.pyreport2html函数中,你可以这样处理:
    try:
        htmlStr = ET.tostring(root, encoding='UTF-8').decode('UTF-8')
    except UnicodeDecodeError:
        htmlStr = ET.tostring(root, encoding='ISO-8859-1').decode('ISO-8859-1')
    

    这会尝试用两种编码方式处理,如果第一种失败,会尝试第二种。

    1. 最后,如果上述步骤都无法解决问题,检查一下你的数据是否满足Moran I分析的要求,比如数据类型(应为数值型)、没有缺失值等。确保你使用的变量是连续的地理现象,并且数据没有异常值。

    执行这些更改后,重新运行MoransI.py脚本来查看结果。如果问题仍然存在,可能需要检查脚本是否有其他潜在的问题或者 ArcGIS版本是否兼容你的数据和操作。如果需要进一步的帮助,提供你的数据集格式、字段信息以及完整的脚本内容以便更精确地定位问题。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月3日
  • 已采纳回答 4月25日
  • 创建了问题 4月25日