Wild Iris 2024-07-24 08:19 采纳率: 33.3%
浏览 87
已结题

ARCGIS 多值提取到点 ERROR 999999

Arcgis/Arcpy 多值提取到点(Extract multi values to points )报错ERROR 999999

ERROR 999999: Error executing function.
Failed to execute (ExtractMultiValuesToPoints).

具体日志如下

img


目前已经尝试的操作:调整投影、设置并行线程为0均无效

  • 写回答

20条回答 默认 最新

  • 阿里嘎多学长 2024-07-24 08:19
    关注

    以下内容由AIGC及阿里嘎多学长共同生成、有用望采纳:


    根据您提供的日志文件内容和描述,您在使用 ArcGIS 进行“多值提取到点”(Extract Multi Values to Points)操作时遇到了 ERROR 999999 错误。这个错误通常表示执行函数时发生了一个未知的错误。以下是一些可能的解决方案和分析步骤:

    分析步骤

    1. 检查输入数据

      • 确保点数据 HNfish 和栅格数据 LSTmiTavg2011060.tif 都是有效的,并且格式正确。
      • 检查点数据和栅格数据的空间参考是否一致。
    2. 检查环境设置

      • 根据您的日志,您已经设置了一些环境参数。确保这些设置适用于您的数据和操作。
    3. 检查 ArcGIS 版本

      • 确保您使用的 ArcGIS 版本支持您尝试执行的操作。
    4. 使用 ArcPy 进行错误捕获

      • 使用 Python 脚本和 ArcPy 库来执行操作,并捕获可能出现的错误信息。

    解决方案

    1. 使用 Python 脚本
      • 编写一个 Python 脚本来执行“多值提取到点”操作,并捕获详细的错误信息。
    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = "E:/Documents/ArcGIS/Default.gdb"
    arcpy.env.overwriteOutput = True
    
    # 输入点数据和栅格数据
    point_feature_class = "HNfish"
    raster_dataset = "LSTmiTavg2011060.tif"
    
    # 执行 ExtractMultiValuesToPoints 函数
    try:
        arcpy.ExtractMultiValuesToPoints_management(
            in_point_features=point_feature_class,
            in_raster=raster_dataset,
            out_table="Output",
            search_radius_or_polygon="NONE",
            cell_assignment="SINGLE",
            interpolation="NEAREST",
            value_conversion="SINGLE",
            compression_method="LZ77",
            coincident_point_option="MEAN",
            random_seed="0ACM599",
            raster_stats="STATISTICS 11"
        )
        print("操作成功完成")
    except arcpy.ExecuteError:
        # 获取 ArcPy 错误信息
        print(arcpy.GetMessages(2))
    except Exception as e:
        # 获取 Python 错误信息
        print(e)
    
    1. 运行脚本

      • 将上述脚本保存为 .py 文件,并在 ArcGIS 的 Python 环境中运行。
      • 观察输出,看是否有更详细的错误信息。
    2. 进一步的调试

      • 如果脚本运行后仍然出现 ERROR 999999,检查 arcpy.GetMessages(2) 的输出,以获取更详细的错误信息。
    3. 检查数据完整性

      • 确保 LSTmiTavg2011060.tif 栅格数据没有损坏,并且可以被 ArcGIS 正确读取。
    4. 联系技术支持

      • 如果以上步骤都不能解决问题,可能需要联系 ESRI 的技术支持以获取进一步的帮助。

    希望这些建议能够帮助您解决问题。如果需要进一步的帮助,请提供更多的上下文信息或错误输出。

    展开全部

    评论 编辑记录
  • 专家-赤兔[在线] 全栈领域优质创作者 2024-07-24 08:19
    关注

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

    您遇到的错误 ERROR 999999 通常是由于在 ArcGIS 中执行操作时出现了问题。这个错误是一个很通用的错误代码,可能由多种原因导致。根据您提供的日志信息,我们可以尝试分析并给出可能的解决方案。

    首先,请确保以下几点:

    1. 输入数据的有效性:确保 HNfish 点特征数据和 LSTmiTavg2011060.tif 栅格数据都是有效的,并且位于正确的位置。
    2. 投影设置:虽然您已经尝试调整投影,但请确保点数据和栅格数据使用的投影是一致的。不一致的投影可能会导致问题。
    3. 并行处理设置:您已经尝试设置并行线程为0,这通常不会导致问题,但请确保您的系统配置支持并行处理。

    根据您提供的日志信息,以下是一些可能的解决方案:

    • 检查字段名称:确保在操作过程中使用的字段名称是正确的,没有拼写错误或不存在的字段。
    • 检查工作空间路径:确保 Scratch WorkspaceCurrent Workspace 的路径是正确的,并且您有写入这些路径的权限。
    • 重新启动ArcGIS:有时重启ArcGIS可以解决一些暂时的问题。
    • 查看ArcGIS帮助文档:有时错误可能与特定的设置或参数有关,查看ArcGIS的官方帮助文档可能会提供更多关于此错误的详细信息。

    如果以上建议都不能解决问题,您可能需要更详细的错误信息来进一步诊断问题。您可以尝试联系Esri的技术支持或在相关的GIS论坛上寻求帮助。

    至于代码部分,您正在尝试使用 ExtractMultiValuesToPoints 工具,该工具通常用于从栅格数据中提取多个值并添加到点要素中。如果问题不在于代码本身,而是ArcGIS环境中的配置或数据问题,那么提供代码可能无法直接解决问题。不过,如果您需要示例代码,我可以提供一个基本的代码示例,以说明如何使用这个工具。由于具体的问题可能需要具体的解决方案,这里提供的代码可能需要根据您的实际情况进行调整。

    示例代码(使用ArcPy库):

    import arcpy
    
    # 设置环境
    arcpy.env.workspace = "E:\Documents\ArcGIS\Default.gdb"
    
    # 输入参数
    input_points = "HNfish"
    input_raster = "LSTmiTavg2011060.tif"
    
    # 执行ExtractMultiValuesToPoints工具
    arcpy.ExtractMultiValuesToPoints_management(input_points, input_raster)
    

    请注意,这个代码示例假设您已经设置了正确的环境和工作空间,并且输入参数是有效的。如果问题仍然存在,请提供更多的信息以便进一步分析。

    展开全部

    评论 编辑记录
    专家-赤兔[在线] 回复 Wild Iris 2024-07-24 08:21

    遇到ArcGIS中的错误999999通常意味着有多种潜在的原因导致操作失败。这个错误信息比较笼统,没有提供具体的错误原因,因此我们需要通过一些步骤来排查问题。以下是你可以尝试的一些解决方法:

    1. 检查数据路径和名称

    确保所有输入数据的路径正确无误,且没有特殊字符或过长的文件名。在你的日志中,文件路径看起来是正常的,但确保没有不可见字符或编码问题。

    2. 数据兼容性检查

    • 确保输入点要素(HNfish)和栅格数据(LSTmiTavg2011060.tif)的坐标系统一致。即使之前调整了投影,也再次确认一下。
    • 检查栅格数据是否有损坏。可以尝试用ArcGIS的“Raster Properties”查看是否有异常,或者使用“Build Raster Attribute Table”工具重建属性表试试看。

    3. 内存和性能设置

    • 尝试关闭其他占用资源的应用程序,确保ArcGIS有足够的内存运行。

    • 虽然你已经设置了并行线程为0,但还可以尝试通过环境设置进一步优化:

      arcpy.env.parallelProcessingFactor = "0%"
      

    4. 分区处理

    如果数据集非常大,尝试将数据集分割成小块分别处理。可以使用Split Raster工具将栅格分割,然后对每个小栅格执行ExtractMultiValuesToPoints

    5. 使用Python脚本执行

    有时候直接使用ArcGIS Desktop界面操作会遇到问题,可以尝试通过Python脚本来执行相同的操作,这样更容易调试错误。

    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = r"E:\Documents\ArcGIS\Default.gdb"
    
    # 定义输入输出
    point_feature = "HNfish"
    raster_list = ["LSTmiTavg2011060.tif"] # 确保这里的路径正确无误
    output_feature = "HNfish_Extracted"
    
    try:
        # 执行多值提取到点
        arcpy.sa.ExtractMultiValuesToPoints(point_feature, raster_list, output_feature, "NONE")
        print("多值提取完成。")
    except arcpy.ExecuteError as e:
        print(f"执行时出错: {e}")
    

    6. 查看更详细的错误日志

    在ArcGIS的Geoprocessing选项中,勾选“Show Background Processing”,然后重新执行工具。这将在后台处理时显示详细的错误信息,可能有助于找到具体的问题所在。

    7. 联系技术支持

    如果以上步骤都无法解决问题,考虑联系Esri的技术支持,提供完整的错误信息和你已尝试的解决步骤,他们可能会提供更专业的帮助。

    请逐项尝试上述建议,并检查每次尝试后是否有所改善。希望这些建议能帮你解决问题!

    回复
  • 百锦再@新空间代码工作室 全栈领域优质创作者 2024-07-24 08:20
    关注

    Gpt辅助回答,我来为你把关

    根据您提供的信息,您已经尝试了调整投影和设置并行线程为0,但仍然遇到了提取多个值到点时出现ERROR 999999的问题。这种错误通常是由于数据或工具本身的问题引起的,建议您尝试以下操作来解决问题:

    1. 检查输入数据的完整性和格式是否正确,确保点图层和用于提取值的栅格图层都具有正确的属性和格式。

    2. 可以尝试使用其他工具或方法来提取多个值到点,比如使用Spatial Analyst工具中的Extract Values to Points工具,看看是否可以成功。

    3. 更新ArcGIS软件到最新版本,有时候新版本的软件会修复一些bug或问题。

    4. 查看ArcGIS的帮助文档或搜索在线论坛,找到其他用户遇到类似问题的解决方案,可能会给您一些启发。

    如果以上方法都没能解决问题,建议您联系Esri的技术支持团队,他们将能够帮助您进一步诊断并解决这个问题。


    有问题你别着急,评论留言都可以,看到马上就回复,尽量及时补充齐
    评论 编辑记录
  • 叫兽-郭老师 Java领域新星创作者 2024-07-24 08:20
    关注

    🕒下午好,题主!目前:🟢[在线]
    📢参考通义千问、由郭老师整理提供!
    📣今日诗号:桃李春风一杯酒,江 湖夜雨十年灯。

    ArcGIS 多值提取到点 ERROR 999999 解决方案

    "ERROR 999999: Error executing function. Failed to execute (ExtractMultiValuesToPoints)." 是一个比较常见的 ArcGIS 错误,通常表示底层处理过程中出现了问题,但没有给出明确的错误信息。以下是一些可能导致此错误的原因和解决方案,以及如何使用 ArcPy 编写代码。

    可能的原因及解决方案:

    1. 数据问题:

      • 检查输入数据: 确保点和栅格数据都加载正确,且没有损坏。尝试修复几何图形或投影问题。
      • 数据类型: 确认栅格数据类型适合提取到点。例如,不能从分类栅格中提取平均值。
      • NoData 值: 栅格中的 NoData 值可能会导致问题。尝试使用“栅格计算器”工具将 NoData 值转换为其他值。
      • 内存问题: 大型数据集可能会超出内存限制。尝试将数据裁剪到较小的区域,或使用“分块统计”工具分块处理数据。
    2. 环境设置:

      • 投影: 确保点和栅格数据使用相同的投影坐标系。可以使用“投影”工具统一投影。
      • 处理范围: 正确设置处理范围,使其包含所有点要素。
      • 并行处理: 尝试禁用并行处理,或减少并行处理线程数。
    3. 软件问题:

      • ArcGIS 版本: 较旧的 ArcGIS 版本可能存在错误。尝试更新到最新版本。
      • 软件冲突: 其他软件(如杀毒软件)可能会干扰 ArcGIS。尝试暂时禁用其他软件。
      • 重新安装: 如果其他方法都无效,请尝试重新安装 ArcGIS。
    4. 其他问题:

      • 路径问题: 确保所有文件路径正确,并且没有使用特殊字符。
      • 文件权限: 确保您对所有文件具有读写权限。

    ArcPy 代码示例:

    以下代码示例展示了如何使用 ArcPy 的 ExtractMultiValuesToPoints 函数提取多个栅格值到点要素类。

    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = r"E:\Documents\ArcGIS\Default.gdb"
    
    # 设置输入参数
    point_features = "HNfish_npue_point_festures"
    raster_list = ["LST", "miT", "ava2"]
    out_point_features = "HNfish_extracted_values"
    
    # 执行多值提取到点
    arcpy.sa.ExtractMultiValuesToPoints(in_point_features=point_features,
                                       in_rasters=raster_list,
                                       out_point_features=out_point_features,
                                       bilinear_interpolate_values="NONE",
                                       add_attributes="VALUE_ONLY")
    
    print("多值提取到点完成!")
    

    代码说明:

    • in_point_features: 输入点要素类。
    • in_rasters: 输入栅格数据列表。
    • out_point_features: 输出点要素类,包含提取的栅格值。
    • bilinear_interpolate_values: 是否使用双线性插值法提取值。
    • add_attributes: 指定如何将提取的值添加到输出点要素类。

    注意:

    • 请根据您的实际情况修改代码中的文件路径和参数。
    • 在运行代码之前,请确保已正确设置 ArcGIS 环境。

    如果您尝试了以上方法仍然无法解决问题,请提供以下信息以便更好地帮助您:

    • ArcGIS 版本
    • 操作系统版本
    • 完整的错误消息和日志文件
    • 数据集的大小和类型
    • 您正在使用的任何其他工具或脚本

    希望以上信息能帮到您!

    展开全部

    评论
    叫兽-郭老师 2024-07-24 08:20

    题主您先参考下,如有问题,留言即可。如果解决问题,麻烦点击下采纳,谢谢!

    回复
  • 阿齐Archie 嵌入式领域优质创作者 2024-07-24 08:20
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由阿齐Archie整理回复,若还有疑问可评论或留言。

    错误代码999999通常表示ArcGIS或ArcPy在执行过程中遇到了一个未被识别的错误。解决这个问题可能需要一些试错和诊断。以下是一些可能的解决方案,你可以尝试按步骤进行排查和解决:

    1. 检查数据完整性

      • 确保输入的点要素类(HNfish)和栅格数据(LSTmiTavg2011060.tif)都是完整无损的。
      • 检查点要素类和栅格数据是否有损坏的几何或属性。
    2. 检查文件路径

      • 确保工作空间路径(E: \ Documents \ ArcGIS \ Default . gdb)是正确的,并且ArcGIS有权限访问该路径。
    3. 检查栅格数据的坐标系统

      • 确保栅格数据的坐标系统与点要素类的坐标系统匹配或兼容。
    4. 检查内存和资源

      • 尝试增加ArcGIS的内存限制。
      • 确保系统有足够的内存和硬盘空间来处理分析。
    5. 关闭其他应用程序

      • 确保没有其他应用程序正在使用相同的数据集或占用大量系统资源。
    6. 检查ArcGIS版本

      • 确保你使用的ArcGIS版本支持你正在尝试执行的操作。
    7. 检查Python环境

      • 确保ArcPy已正确安装,并且Python环境没有问题。
    8. 检查脚本

      • 如果你使用的是脚本执行操作,检查脚本中是否有语法错误或逻辑错误。
    9. 尝试简化操作

      • 尝试将操作分解成更小的步骤,单独执行每个步骤以确定问题所在。
    10. 查看日志文件

      • 查看ArcGIS的日志文件,可能会有更详细的错误信息。
    11. 重启计算机

      • 有时候,重启计算机可以解决一些不明原因的错误。
    12. 联系技术支持

      • 如果以上步骤都不能解决问题,考虑联系Esri的技术支持团队寻求帮助。
    13. 更新或重新安装ArcGIS

      • 如果怀疑是软件问题,尝试更新到最新版本的ArcGIS或重新安装。

    通过这些步骤,你应该能够逐步缩小问题的范围,并找到导致错误的原因。如果问题依然存在,可能需要更专业的技术支持。

    展开全部

    评论
  • 妄北y 嵌入式领域优质创作者 2024-07-24 08:21
    关注

    以下参考免费微信小程序:皆我百晓生 作答,并由妄北y整理回复。

    错误代码 ERROR 999999 在 ArcGIS 中通常表示一个未指定的错误。这可能由多种原因引起,例如软件问题、数据问题或系统配置问题。以下是一些可能的解决步骤来尝试解决这个问题:

    1. 确保数据完整性:检查你的点数据(HNfish)和栅格数据(LSTmiTavg2011060.tif)是否完整且没有损坏。确保没有丢失或损坏的几何体或属性。

    2. 检查数据类型:确保输入的点和栅格数据具有正确的数据类型和格式。例如,栅格数据应该是一个有效的GeoTIFF格式。

    3. 检查空间参考:虽然你提到已经调整了投影,但请再次确认点数据和栅格数据是否具有相同的空间参考系统。

    4. 检查内存和资源:在执行此操作时,确保你的计算机有足够的内存和资源。如果内存不足,可能无法完成操作。

    5. 使用不同的插值方法:你当前使用的是“NONE”作为插值方法。尝试使用其他插值方法,如“BILINEAR”或“CUBIC”,看看是否可以解决问题。

    6. 检查环境设置:检查你的ArcGIS环境设置,确保所有必要的环境变量都已正确设置。

    7. 更新ArcGIS:确保你的ArcGIS软件是最新版本。有时,软件更新可以解决一些已知的错误。

    8. 使用Python脚本:如果使用ArcPy进行操作,尝试编写一个Python脚本来执行相同的任务,看是否能够成功。

    9. 查看日志文件:检查ArcGIS日志文件以获取更详细的错误信息,这可能会提供更具体的线索。

    10. 使用ArcGIS支持:如果上述步骤都无法解决问题,建议联系Esri的技术支持团队,提供详细的错误信息和日志文件,以便他们可以提供进一步的帮助。

    11. 尝试在不同的机器上运行:如果可能,尝试在另一台安装有相同ArcGIS版本的计算机上运行相同的操作,以确定问题是否与特定的硬件或软件环境有关。

    12. 检查系统兼容性:确保你的系统满足ArcGIS的最低系统要求,包括操作系统、驱动程序和其他依赖项。

    通过逐步排查上述可能的问题点,你应该能够找到导致错误的原因,并采取相应的措施来解决它。

    评论
  • 专家-皆知 2024-07-24 08:21
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    遇到ArcGIS中的错误999999通常意味着有多种可能的原因,这通常是一个通用错误代码,表明在执行特定工具时出现了未明确分类的问题。针对您遇到的“多值提取到点”(Extract Multi Values to Points)工具报错的情况,可以尝试以下几个步骤来诊断和解决这个问题:

    1. 检查数据兼容性

    确保输入的点要素和栅格数据在相同的坐标系统下。即使您已经尝试过调整投影,也请再次确认无误。可以通过ArcGIS的“投影栅格”或“定义投影”工具来确保所有数据具有正确的坐标系统定义。

    2. 数据质量问题

    检查您的栅格数据是否有损坏或空值问题。使用“栅格属性”查看是否有异常的统计信息,或者尝试使用“修复栅格数据集”工具检查并修复潜在问题。

    3. 空间范围重叠

    确认点要素层与栅格数据在空间上确实有交集。有时候,如果点完全位于栅格数据之外,也可能导致此错误。

    4. 内存和性能

    虽然您已尝试设置并行线程为0,但还可以尝试其他性能优化措施:

    • 关闭不必要的应用程序和服务,释放更多内存给ArcGIS使用。
    • 调整地理处理环境设置,如增加“Raster Storage”的临时文件夹大小,或者减少“Processing Extent”仅处理感兴趣的区域。

    5. 重新启动ArcGIS Desktop/ArcGIS Pro

    有时候,简单的重启软件可以解决一些暂时性的系统资源占用问题。

    6. 使用Python脚本执行

    如果上述方法都不奏效,尝试使用ArcPy脚本来执行“多值提取到点”操作,这样可以提供更详细的错误信息,便于定位问题。示例代码如下:

    import arcpy
    
    # 设置工作环境
    arcpy.env.workspace = r"E:\Documents\ArcGIS\Default.gdb"
    arcpy.env.overwriteOutput = True
    
    # 指定输入点和栅格
    input_points = "HNfish"
    input_rasters = ["LSTmiTavg2011060.tif"]
    
    # 执行多值提取到点
    try:
        arcpy.sa.ExtractMultiValuesToPoints(input_points, input_rasters, "NONE")
        print("多值提取到点操作成功完成。")
    except arcpy.ExecuteError as e:
        print(f"执行时发生错误: {e}")
    

    7. 查看日志详细信息

    深入查看ArcGIS的日志文件,特别是那些与Geoprocessing相关的部分,可能会提供更多关于错误999999背后原因的线索。

    8. 联系技术支持

    如果所有尝试都未能解决问题,考虑联系Esri的技术支持团队,提供完整的错误信息和日志文件,他们可能能提供更专业的帮助。

    请逐一尝试以上建议,希望能帮您解决问题。如果在执行上述步骤后仍然遇到问题,请提供更多信息以便进一步分析。

    展开全部

    评论
  • GISer Liu 2024-07-24 08:22
    关注

    该回答引用自GPT-4, 由博主 GISer Liu 编写:

    问题分析

    用户在使用ArcGIS/Arcpy中的“多值提取到点(Extract Multi Values To Points)”工具时遇到了错误代码999999。这个错误通常表示在执行过程中发生了未知的内部错误。用户已经尝试了调整投影和设置并行线程为0,但问题仍然存在。

    解决方案

    1. 检查数据完整性

    首先,确保输入的点数据和栅格数据没有损坏或缺失。可以使用ArcGIS的“检查几何(Check Geometry)”工具来验证点数据的完整性,使用“数据检查(Data Reviewer)”扩展来检查栅格数据的完整性。

    2. 简化数据处理步骤

    尝试简化数据处理步骤,例如减少栅格数据的数量或选择更小的区域进行测试,以排除数据量过大导致的问题。

    3. 更新ArcGIS版本

    确保使用的是最新版本的ArcGIS软件。有时,旧版本的软件可能存在已知的bug,更新到最新版本可能会解决问题。

    4. 检查环境设置

    确保所有环境设置正确,特别是处理范围和输出坐标系。可以在工具的“环境设置(Environment Settings)”中进行检查和调整。

    5. 使用Python脚本进行调试

    如果上述方法都无效,可以尝试使用Python脚本进行更详细的调试。以下是一个示例脚本,展示了如何使用Arcpy进行多值提取到点的操作,并添加了错误处理的代码:

    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = "C:/data"
    
    # 输入点 shapefile 和栅格数据
    points = "points.shp"
    rasters = ["raster1.tif", "raster2.tif"]
    
    try:
        # 使用多值提取到点工具
        arcpy.gp.ExtractMultiValuesToPoints_sa(points, rasters, "BILINEAR")
        print("操作成功完成")
    except arcpy.ExecuteError:
        # 捕获并打印错误信息
        print(arcpy.GetMessages(2))
    except Exception as e:
        # 捕获其他异常
        print(e)
    

    6. 联系ArcGIS技术支持

    如果问题依然无法解决,可以联系ArcGIS的技术支持团队,提供详细的错误日志和操作步骤,以便他们提供更专业的帮助。

    总结

    通过检查数据完整性、简化数据处理步骤、更新ArcGIS版本、检查环境设置、使用Python脚本进行调试以及联系技术支持,可以逐步排查并解决“多值提取到点”工具报错ERROR 999999的问题。希望这些方法能帮助您顺利解决问题。

    如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

    展开全部

    评论
  • 才华横溢caozy 2024-07-24 08:32
    关注

    此答案是由GPT4和本人亲自作答,如有帮助,还请采纳!
    遇到 ArcGIS 的 ERROR 999999 错误,尤其是在使用 ExtractMultiValuesToPoints 工具时,确实是一个比较棘手的问题。这类错误通常是由于工具的参数设置、数据质量问题或者系统环境问题引起的。以下是一个详细的解决思路,涵盖了多方面的排查和解决步骤。

    一、检查输入数据

    1. 数据完整性

      • 确保输入的点数据(点要素类)和栅格数据(多值)都是有效的,没有损坏。你可以尝试在 ArcGIS 中打开这些数据,检查是否能够正常显示和操作。
    2. 数据投影和坐标系统

      • 确保点数据和栅格数据使用的是相同的投影和坐标系统。如果不一致,可以先进行投影转换,将它们对齐。
    3. 栅格数据的格式和有效性

      • 检查栅格数据是否存在数据类型不匹配的情况。例如,栅格数据的像素值是否符合预期,并且栅格的分辨率是否适合。

    二、数据路径和文件系统

    1. 文件路径和名称

      • 确保输入输出文件的路径不包含特殊字符或过长。推荐将数据文件放在根目录下的简单路径中。
    2. 权限问题

      • 确保你有足够的权限访问这些文件夹和文件。如果是在网络驱动器上操作,尝试将数据移动到本地磁盘上测试。

    三、工具参数设置

    1. 检查参数设置

      • 确保 ExtractMultiValuesToPoints 工具中的所有参数设置正确。特别是确保“输入点要素”与“输入栅格”或“表格”设置正确无误。
    2. 逐步简化输入

      • 尝试简化输入数据,例如只用一个栅格数据进行测试,检查是否仍然报错。这样可以帮助确定是哪个具体数据或设置导致的问题。

    四、日志文件和错误信息分析

    1. 查看日志文件

      • 在 ArcGIS 的“Geoprocessing”菜单下,查看详细日志。找到相关的错误信息,可以帮助分析错误的根源。
    2. 使用 Python 脚本运行

      • 如果你是通过 ArcMap GUI 运行的工具,尝试使用 Python 脚本运行 ExtractMultiValuesToPoints,有时脚本运行可以提供更详细的错误信息。
      import arcpy
      from arcpy import env
      
      # 设置环境
      env.workspace = "path/to/your/workspace"
      env.overwriteOutput = True
      
      try:
          # 执行提取
          arcpy.sa.ExtractMultiValuesToPoints("input_points.shp", [["raster1", "field1"], ["raster2", "field2"]])
      except arcpy.ExecuteError:
          print(arcpy.GetMessages())
      except Exception as e:
          print(e)
      

    五、系统环境和软件版本

    1. ArcGIS 和 Python 环境

      • 确保 ArcGIS 软件是最新版本,或者是与数据和操作兼容的版本。有时候软件更新可以修复一些已知的错误。
    2. 检查系统资源

      • 确保计算机的内存和硬盘空间充足。特别是处理大数据集时,系统资源的不足可能会导致操作失败。

    六、其他常见问题的排查

    1. 内存和性能问题

      • 如果数据集非常大,尝试将计算任务分解成更小的部分,以减少内存和计算资源的需求。
    2. 尝试重启 ArcGIS

      • 有时候,重启 ArcGIS 或计算机可以清除潜在的缓存问题或系统错误。
    3. 检查工具文档

      • 查看 ArcGIS 的官方文档,确认是否有相关的已知问题或解决方案。

    七、示例代码

    如果上述步骤都无法解决问题,下面的代码示例可以帮助你在 Python 环境下使用 ExtractMultiValuesToPoints 工具,并包含基本的错误处理:

    import arcpy
    
    def extract_multi_values_to_points(point_fc, rasters):
        """
        提取多值到点
        :param point_fc: 输入点要素类
        :param rasters: 包含栅格数据及其对应字段的列表
        """
        try:
            # 检查输入点要素类是否存在
            if not arcpy.Exists(point_fc):
                raise Exception(f"输入点要素类 {point_fc} 不存在")
    
            # 检查每个栅格是否存在
            for raster, field in rasters:
                if not arcpy.Exists(raster):
                    raise Exception(f"栅格数据 {raster} 不存在")
    
            # 执行 ExtractMultiValuesToPoints 工具
            arcpy.sa.ExtractMultiValuesToPoints(point_fc, rasters)
    
        except arcpy.ExecuteError:
            print("ArcPy 执行错误:", arcpy.GetMessages())
        except Exception as e:
            print("自定义错误:", e)
    
    # 示例用法
    point_feature_class = "path/to/your/point_feature_class.shp"
    raster_fields = [["path/to/your/raster1", "field1"], ["path/to/your/raster2", "field2"]]
    
    extract_multi_values_to_points(point_feature_class, raster_fields)
    

    总结

    处理 ERROR 999999 错误时,可以从数据质量、路径权限、工具参数、系统环境等多个方面入手。通过系统化的排查和修正,通常能够找到问题的根源并解决。如果问题仍然存在,建议联系 ESRI 的技术支持团队,他们可以提供更专业的帮助。

    展开全部

    评论
  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-24 08:52
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    这个报错通常是由于数据不匹配或者其他原因导致的。下面重点介绍可能会导致这个问题的一些常见原因和解决方法。
    1. 数据类型不匹配:确保要提取的多值栅格数据类型和点要素数据的字段类型匹配。例如,如果点要素数据字段是整型,但多值栅格数据是浮点型,可能会导致报错。可以通过检查字段类型并转换数据类型来解决这个问题。
    # 示例代码:转换字段类型
    import arcpy
    arcpy.AlterField_management("points.shp", "field_name", "new_field_name", "DOUBLE")
    
    1. 数据范围不匹配:确保多值栅格数据的范围包含点要素数据。如果点要素数据位于多值栅格数据范围之外,提取多值时可能会出错。可以通过裁剪或者重新采样数据来解决这个问题。
    # 示例代码:裁剪多值栅格数据
    import arcpy
    arcpy.Clip_management("multi_values.tif", "#", "output.tif", "points.shp", "#", "ClippingGeometry")
    
    1. 数据空间参考不匹配:确保多值栅格数据和点要素数据的空间参考一致。如果两者的空间参考不一致,可能会导致数据不匹配而报错。可以通过投影转换或者重新定义空间参考来解决这个问题。
    # 示例代码:投影转换
    import arcpy
    arcpy.Project_management("points.shp", "projected_points.shp", "desired_projection")
    
    1. 其他可能的原因:如果以上方法都无效,可能是由于其他未知原因引起的。可以尝试重新安装软件或者查看相关日志文件来获取更多信息。 希望以上解答能够帮助您解决报错问题。如果有其他疑问或者需要进一步帮助,请随时联系我。
    评论
  • 杨同学* 2024-07-24 11:55
    关注

    该回答结合ChatGPT4o及杨同学*共同作答, 如有帮助,还请采纳。
    在使用ArcGIS的“Extract Multi Values to Points”工具时遇到ERROR 999999: Error executing function错误通常意味着程序在执行过程中遇到未预期的错误。这个错误是ArcGIS的一个通用错误,可能由多种原因导致。根据您提供的日志和已经尝试的操作,这里有一些常见的原因和可能的解决方案供您参考:

    可能的原因和解决方案

    1. 输入数据的问题

      • 数据格式和投影

        • 确保输入的点要素和栅格数据有一致的坐标参考系(Projection)。
        • 确认HNfish图层是有效的点要素类,且不包含损坏的几何。
        • 检查栅格文件LSTmiTavg2011060.tif是否损坏,可以尝试用ArcGIS或其他软件打开查看。
      • 要素类路径或名称问题

        • 确认文件路径没有错误,特别是在路径中包含空格或特殊字符的情况下可能导致问题。
        • 确保文件路径不超过Windows的文件路径长度限制(约260个字符)。
    2. 环境设置

      • Scratch Workspace和Current Workspace

        • 确认E:\Documents\ArcGIS\Default.gdb存在且可写。可以尝试将工作区设置为不同的位置以排除路径问题。
      • 检查“Compression”和“Coincident Points”设置

        • 尝试在工具环境设置中取消或更改压缩选项。
        • 如果在同一点存在多个要素,检查“Coincident Points”设置,并考虑处理这些数据。
    3. 数据完整性和权限

      • 文件锁定或权限问题

        • 确保所有涉及的文件和文件夹都具有读写权限。
        • 确保没有其他程序正在使用或锁定这些文件。
      • 数据损坏

        • 通过ArcGIS检查并修复几何错误(例如,使用“Check Geometry”和“Repair Geometry”工具)。
    4. 计算机资源和设置

      • 计算机内存和资源

        • 确保计算机有足够的内存和存储空间来处理这些操作。
        • 尝试在设置中增加内存分配。
      • 调整并行处理设置

        • 将并行处理设置为零(如果可行),这通常用于解决与并行处理相关的问题。您已经尝试过此操作,若无效则考虑调整其他资源分配。
    5. ArcGIS软件问题

      • 更新ArcGIS

        • 确保ArcGIS是最新版本,有时更新会修复软件中的已知问题。
        • 检查是否存在适用于当前版本的补丁或修复程序。
      • 清理临时文件

        • 关闭ArcGIS,删除临时文件夹(通常位于C:\Users\<username>\AppData\Local\Temp),然后重新启动ArcGIS。
    6. 其他尝试

      • 尝试使用不同的工具

        • 如果问题依然存在,尝试使用其他工具或方法来实现相同的功能,例如通过Python脚本手动读取栅格值。
      • 日志检查

        • 查看详细的系统日志(如Windows事件查看器)和ArcGIS日志文件以获得更多信息。

    额外建议

    • 通过Python脚本手动读取栅格值

      您可以使用ArcPy手动编写一个脚本来读取栅格值,这有时比使用GUI工具提供更多的调试信息。

      import arcpy
      
      # 设置工作空间
      arcpy.env.workspace = "E:/Documents/ArcGIS/Default.gdb"
      
      # 输入文件路径
      point_fc = "HNfish"
      raster = "LSTmiTavg2011060.tif"
      
      # 使用游标访问点要素
      with arcpy.da.UpdateCursor(point_fc, ["SHAPE@", "raster_value"]) as cursor:
          for row in cursor:
              point = row[0]
              raster_value = arcpy.GetCellValue_management(raster, f"{point.centroid.X} {point.centroid.Y}")
              row[1] = raster_value.getOutput(0)
              cursor.updateRow(row)
      
      print("Complete")
      

      确保“raster_value”字段存在于HNfish中,或使用适合数据结构的字段名称替换它。

    如果经过这些尝试问题仍未解决,请提供更多关于数据的具体信息,可能会有更多的诊断步骤可以进行。

    展开全部

    评论
  • giser@2011 2024-07-24 12:47
    关注

    参考GPT

    ERROR 999999 是 ArcGIS 中的一种通用错误,通常表示执行函数时出现了未预料的错误。这种错误可能是由于多种原因造成的,包括但不限于数据质量问题、环境配置问题、软件错误等。

    对于您遇到的 ExtractMultiValuesToPoints 报错问题,以下是一些可能的解决步骤:

    1. 检查输入数据

      • 确保输入的栅格数据没有问题,例如没有损坏的文件或异常值。
      • 使用 rasterinfoarctoolbox 工具检查栅格数据的属性,确认其范围、分辨率等是否正确。
    2. 检查环境设置

      • 确认您的 ArcGIS 环境设置正确,尤其是输出坐标系统与输入数据坐标系统的匹配。
      • 如果需要,使用 arcpy.env.outputCoordinateSystem 设置输出坐标系统。
    3. 调整并行处理参数

      • 虽然设置并行线程为0,但如果错误仍然存在,可能需要进一步调整。您可以尝试增加并行线程数,或者完全禁用并行处理。
    4. 检查内存和资源

      • 错误可能是由于资源不足(如内存)造成的。确保您的计算机有足够的资源来处理任务。
      • 您可以尝试关闭其他应用程序以释放内存。
    5. 使用arcpy.sa.ExtractMultiValuesToPoints

      • 如果您使用的是 arcpy.sa.ExtractMultiValuesToPoints,确保您的语法和参数设置正确。
    6. 检查ArcGIS版本

      • 确保您的 ArcGIS 版本与 ExtractMultiValuesToPoints 函数兼容。
    7. 查看ArcGIS日志文件

      • ArcGIS 通常会在日志文件中记录更详细的错误信息。检查这些日志文件,可能会有助于诊断问题。
    8. 重新安装或更新ArcGIS

      • 如果以上步骤都不能解决问题,您可能需要考虑重新安装或更新 ArcGIS。
    9. 咨询Esri技术支持

      • 如果问题依然存在,您可以考虑联系 Esri 技术支持,获取专业的帮助。

    由于我无法直接查看您的日志文件或数据,以上建议仅供参考。希望能帮助到您。如果需要进一步的帮助,请提供更多的信息或尝试上述建议后的问题反馈。

    评论
  • bug菌¹ Java领域优质创作者 2024-07-24 13:16
    关注

    该回答引用ChatGPT,望对题主有所帮助/启发;若有帮助,还望采纳🤝🤝🤝


    ArcGIS中的ExtractMultiValuesToPoints工具用于将多个字段值从区域要素提取到点要素上。错误代码ERROR 999999是一个通用错误,表示ArcGIS或Arcpy在执行工具时遇到了未指定的错误。解决这个问题通常需要一些排查步骤:

    1. 检查输入数据

      • 确保输入的点和区域图层是有效的,并且它们的空间参照是相同的。
    2. 检查字段

      • 确保你想要提取的字段存在于区域图层中,并且没有拼写错误。
    3. 检查工具参数

      • 重新检查ExtractMultiValuesToPoints工具的所有参数设置是否正确。
    4. 检查ArcGIS版本

      • 确保你使用的ArcGIS版本支持你正在尝试的操作。
    5. 检查许可证

      • 确保你有有效的ArcGIS许可证,并且它没有过期。
    6. 检查系统资源

      • 如果系统资源(如内存)不足,可能会导致工具执行失败。
    7. 使用Python环境运行

      • 如果你在使用ArcPy脚本,尝试在Python窗口中直接运行工具,看是否能获得更详细的错误信息。
    8. 查看日志文件

      • 检查ArcGIS日志文件以获取更详细的错误信息。日志文件通常位于用户的主目录下,例如C:\Users\[用户名]\AppData\Local\ESRI\ArcGIS\log
    9. 检查并行处理设置

      • 你已经尝试过设置并行线程为0,但也可以检查ArcGIS的analysis extent设置,看是否有影响。
    10. 更新或修复ArcGIS安装

      • 运行ArcGIS安装程序,选择“修复”选项,以确保所有组件都安装正确。
    11. 联系技术支持

      • 如果以上步骤都不能解决问题,考虑联系Esri的技术支持获取帮助。
    12. 社区和论坛

      • 搜索或在GIS相关的社区和论坛发帖询问,可能有其他用户遇到过类似的问题。

    由于你没有提供具体的日志文件内容,无法给出更具体的建议。如果可能,请提供日志文件中的错误描述或更详细的错误信息,这将有助于进一步诊断问题。此外,如果你在使用ArcPy脚本,确保脚本中的函数调用和参数都是正确的,并且脚本没有语法错误。

    展开全部

    评论
  • Java毕设王 2024-07-24 14:50
    关注

    引用讯飞星火
    根据您提供的信息,这个问题可能是由于输入数据的问题导致的。请尝试以下步骤来解决这个问题:

    1. 确保您的输入数据是正确的。检查点和多边形图层是否存在问题,例如缺失或无效的几何。您可以使用ArcGIS Data Reviewer工具来检查和修复这些问题。

    2. 检查您的输入数据的坐标系统是否一致。确保点和多边形图层具有相同的投影坐标系统。如果它们的坐标系统不同,您需要将它们转换到相同的坐标系统。

    3. 检查您的输入数据的字段是否正确。确保多边形图层具有一个字段,该字段包含要提取的值。同时,确保点图层具有一个字段,用于存储提取的值。

    4. 如果上述步骤都无法解决问题,您可以尝试使用其他方法来提取值。例如,您可以使用"Zonal Statistics as Table"工具来计算每个点的统计信息,然后将结果合并到一个表中。

    以下是使用"Zonal Statistics as Table"工具的示例代码:

    import arcpy
    
    # 设置输入输出路径
    points = "path/to/your/points_layer"
    polygons = "path/to/your/polygons_layer"
    output_table = "path/to/your/output_table"
    
    # 设置区域字段和统计字段
    zone_field = "FID"  # 多边形图层的唯一标识字段
    stats_fields = [["FieldName", "SUM"]]  # 要计算的字段及其统计类型
    
    # 执行 Zonal Statistics as Table
    arcpy.sa.ZonalStatisticsAsTable(polygons, zone_field, stats_fields, output_table)
    

    请根据您的实际情况修改输入输出路径、区域字段和统计字段。希望这些建议能帮助您解决问题。

    评论
  • threenewbee 2024-07-24 16:50
    关注
    评论
  • 心梓知识 2024-07-25 01:26
    关注

    结合GPT给出回答如下请题主参考
    在ArcGIS中,多值提取到点是指在栅格数据中,根据提供的点数据,提取点位置处的栅格值或属性值。然而,在某些情况下,当我们尝试使用ArcGIS的工具或函数进行多值提取时,可能会遇到ERROR 999999错误。这个错误通常表示一些未知的错误,可能涉及多种原因。

    下面将通过代码解释以下几个常见的可能导致ERROR 999999错误的情况,并给出相应的解决方案。

    1. 输入参数错误
      在使用多值提取工具时,可能会出现输入参数不正确的情况,例如输入的栅格图层或点图层的路径错误。为了解决这个问题,我们需要仔细检查输入参数并确保路径是正确的。下面是使用ArcPy解决该问题的示例代码:
    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = "C:/data"
    
    # 输入参数
    raster_path = "dem.tif"
    point_layer = "points.shp"
    output_table = "output_table.dbf"
    
    # 检查输入参数的合法性
    if arcpy.Exists(raster_path) and arcpy.Exists(point_layer):
        # 进行多值提取
        arcpy.sa.ExtractValuesToPoints(point_layer, raster_path, output_table)
    else:
        print("输入参数错误,请检查路径是否正确。")
    
    1. 栅格数据或点数据格式不支持
      ArcGIS的多值提取工具可能只支持特定格式的栅格数据和点数据,如.tif或.asc格式的栅格数据,以及.shp格式的点数据。如果我们尝试使用不支持的格式,就会出现ERROR 999999错误。解决这个问题的方法是将栅格数据和点数据转换为正确的格式。下面是使用ArcPy转换格式的示例代码:
    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = "C:/data"
    
    # 输入参数
    input_raster = "dem.img"
    output_raster = "dem.tif"
    input_points = "points.dbf"
    output_points = "points.shp"
    
    # 转换栅格数据格式
    arcpy.CopyRaster_management(input_raster, output_raster)
    
    # 转换点数据格式
    arcpy.CopyFeatures_management(input_points, output_points)
    
    # 进行多值提取
    arcpy.sa.ExtractValuesToPoints(output_points, output_raster, "output_table.dbf")
    
    1. 栅格图层或点图层包含无效数据
      如果栅格图层或点图层包含无效的或损坏的数据,就会出现ERROR 999999错误。为了解决这个问题,我们可以使用数据修复工具或删除无效数据。下面是使用ArcPy修复数据的示例代码:
    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = "C:/data"
    
    # 输入参数
    raster_path = "dem.tif"
    point_layer = "points.shp"
    output_table = "output_table.dbf"
    
    # 检查输入参数的合法性
    if arcpy.Exists(raster_path) and arcpy.Exists(point_layer):
        # 修复数据
        arcpy.CheckGeometry_management(point_layer)
        
        # 进行多值提取
        arcpy.sa.ExtractValuesToPoints(point_layer, raster_path, output_table)
    else:
        print("输入参数错误,请检查路径是否正确。")
    

    综上所述,以上是针对ERROR 999999错误的一些常见情况及解决方法。通过仔细检查输入参数、正确设置数据格式和修复无效数据,我们可以成功进行多值提取到点操作。希望以上解释和示例代码能够帮助解决你在使用ArcGIS中遇到的ERROR 999999错误。

    展开全部

    评论
  • 鱼弦 全栈领域优质创作者 2024-07-25 01:39
    关注

    来自ChatGPT4o

    在使用ArcGIS工具“Extract Multi Values to Points”(多值提取到点)时出现ERROR 999999,这是一个常见的通用错误,指示有某种不明确的问题。以下是一些可能的原因和解决方案,可以帮助你排查并解决这个问题:

    1. 检查输入数据

    a. 数据类型
    确保你的输入点文件和栅格文件都是ArcGIS支持的格式。常见的点文件格式包括Shapefile(.shp)、Geodatabase Feature Class等,栅格文件格式包括TIFF(.tif)、ESRI Grid等。

    b. 投影系统
    检查点文件和栅格文件是否在相同的投影系统下。如果投影不一致,可能会导致错误。可以使用Project工具对其进行投影转换。

    # 使用arcpy进行投影转换
    import arcpy
    
    input_points = "path_to_your_input_points.shp"
    output_points = "path_to_your_output_points.shp"
    target_projection = arcpy.SpatialReference("WGS 1984")
    
    arcpy.Project_management(input_points, output_points, target_projection)
    

    2. 检查数据完整性

    a. 检查几何
    确保点文件和栅格文件没有损坏或包含错误的几何。可以运行Check Geometry工具来确认。

    # 使用arcpy检查几何
    import arcpy
    
    input_points = "path_to_your_input_points.shp"
    
    arcpy.CheckGeometry_management(input_points, "geometry_check_report.txt")
    

    b. 修复几何
    如果发现几何错误,可以运行Repair Geometry工具来修复。

    # 使用arcpy修复几何
    import arcpy
    
    input_points = "path_to_your_input_points.shp"
    
    arcpy.RepairGeometry_management(input_points)
    

    3. 确保栅格和点文件路径正确

    确保所有输入文件的路径正确且可访问。特别是在使用脚本时,建议使用绝对路径而不是相对路径。

    4. 检查ArcGIS许可

    确保你拥有合适的ArcGIS许可,某些工具可能需要特定的许可才能运行。

    5. 尝试不同的数据集

    有时问题可能与特定的数据集有关。尝试使用另一个已知正常的数据集以确定是否是数据问题。

    6. ArcPy脚本示例

    下面是一个使用ArcPy的示例脚本,它演示了如何使用“Extract Multi Values to Points”工具:

    import arcpy
    
    # 设置工作环境
    arcpy.env.workspace = "path_to_your_workspace"
    
    # 输入数据
    input_points = "path_to_your_input_points.shp"
    input_rasters = ["raster1.tif", "raster2.tif"]
    
    # 输出字段名
    field_names = ["Value1", "Value2"]
    
    try:
        # 使用 Extract Multi Values to Points 工具
        arcpy.sa.ExtractMultiValuesToPoints(input_points, list(zip(input_rasters, field_names)))
    
        print("多值提取成功!")
    
    except arcpy.ExecuteError:
        print(arcpy.GetMessages(2))
    except Exception as e:
        print(e.args[0])
    

    总结

    通过以上步骤,你可以逐一检查并解决ERROR 999999错误。如果问题仍然存在,可以考虑重新设置环境或联系ESRI技术支持获取进一步帮助。希望这些建议能够帮助你解决问题。如果有更多问题,请随时提问!

    展开全部

    评论
  • MyM满满 2024-07-25 01:40
    关注

    结合GPT给出回答如下请题主参考
    在使用ArcGIS进行多值提取到点操作时,可能会遇到ERROR 999999错误。ERROR 999999是一个泛指的错误,表示发生了未知错误,没有具体的错误信息提供。

    解决此错误的第一步是检查输入数据是否符合要求。确保输入数据的格式正确,包括数据类型、字段名和字段值。另外,还需要确保输入数据的坐标系正确,并且在同一坐标系下进行操作。

    以下是一种可能的方法,可以尝试解决ERROR 999999错误:

    1. 检查输入数据的格式:使用ArcMap打开输入数据,确保其格式正确。检查数据类型是否与操作要求匹配,例如是否输入了正确的要素类或栅格数据。

    2. 确保输入数据使用的坐标系正确:使用ArcMap打开输入数据,检查其定义的坐标系是否正确。如果数据使用不同的坐标系,则需要进行投影转换,确保所有数据在同一坐标系下进行操作。

    3. 检查输入字段名和字段值:使用ArcMap打开输入数据的属性表,确保字段名和字段值的正确性。如果有任何错误或不一致之处,需要进行修正。

    4. 尝试使用Python代码进行操作:如果通过ArcMap进行操作仍然出现ERROR 999999错误,可以尝试使用Python代码进行操作。

    以下是一个示例代码,用于从一个多值栅格图层中提取到点:

    import arcpy
    
    # 设置工作环境
    arcpy.env.workspace = "path_to_workspace"
    
    # 定义输入数据路径
    input_raster = "path_to_input_raster"
    
    # 定义输出要素类路径
    output_feature_class = "path_to_output_feature_class"
    
    # 定义要提取的字段
    extract_field = "field_name"
    
    # 创建待提取的点要素类
    arcpy.CreateFeatureclass_management(arcpy.env.workspace, "points", "POINT")
    
    # 打开点要素类编辑器
    with arcpy.da.InsertCursor("points", ["SHAPE@"]) as cursor:
    
        # 打开多值栅格图层
        with arcpy.da.SearchCursor(input_raster, ["OID@", "SHAPE@", extract_field]) as raster_cursor:
    
            # 遍历每一个像素
            for row in raster_cursor:
    
                # 提取像素的多值
                values = row[2]
    
                # 遍历每一个多值
                for value in values:
    
                    # 如果多值存在
                    if value is not None:
    
                        # 创建点要素
                        point = arcpy.Point(row[1].centroid.X, row[1].centroid.Y)
    
                        # 在点要素类中插入点要素
                        cursor.insertRow([point])
    
    # 将点要素类保存为输出要素类
    arcpy.CopyFeatures_management("points", output_feature_class)
    

    注意,此代码仅为示例,需要根据实际情况进行修改。其中,"path_to_workspace"表示工作空间路径,"path_to_input_raster"表示输入栅格图层路径,"path_to_output_feature_class"表示输出要素类路径,"field_name"表示要提取的字段名称。

    希望以上方法和示例代码能够帮助你解决ERROR 999999错误,并成功进行多值提取到点操作。如果问题仍然存在,请尝试在ArcGIS官方论坛或问答社区上寻求帮助。

    展开全部

    评论
  • 粉绿色的西瓜大大 2024-07-25 02:12
    关注

    结合GPT给出回答如下请题主参考
    使用ArcGIS进行多值提取到点时,如果出现ERROR 999999错误,通常是由于以下原因之一:

    1. 数据格式不兼容:确保输入的数据格式正确,并且与提取点的数据格式匹配。例如,如果提取点的数据是矢量数据,则要确保矢量数据的属性表字段与输入数据的字段匹配。

    2. 数据链接错误:如果输入数据是通过链接到外部数据库获取的,则可能发生链接错误。检查链接是否正确,并确保数据库服务器正常运行。如果链接错误,尝试重新连接数据库或重新加载数据。

    3. 内存不足:如果数据量较大,可能会导致内存不足的错误。尝试释放一些内存,关闭其他不必要的程序或选择更小的数据集进行处理。

    4. 依赖数据缺失:如果提取点的数据依赖于其他数据集,并且其中一个数据集缺失或已更改,则会导致ERROR 999999错误。确保所有相关的数据集都可用且正确配置。

    根据上述可能的原因,以下是一个可能的解决方案示例:

    import arcpy
    
    # 设置工作空间
    arcpy.env.workspace = r"C:\data.gdb"
    
    # 定义输入数据路径
    input_points = r"Points"
    input_values = r"Values"
    
    try:
        # 检查数据的格式和链接是否正确
        if arcpy.Exists(input_points) and arcpy.Exists(input_values):
            # 执行多值提取到点
            arcpy.sa.ExtractMultiValuesToPoints(input_points, input_values)
            print("多值提取到点成功完成。")
        else:
            print("输入数据不存在或链接错误,请检查路径和链接。")
    except arcpy.ExecuteError as e:
        # 处理错误
        print(f"ERROR 999999: {e}")
    

    请注意,这只是一个示例脚本,具体的解决方案可能因问题的具体情况而有所不同。建议根据实际情况自行调整代码,并参考ArcGIS帮助文档进行更详细的解决方案。

    评论
  • 大黄鸭duck. 2024-07-25 02:49
    关注

    结合GPT给出回答如下请题主参考
    ARCGIS是一款用于空间数据分析和地理信息系统的软件。在ARCGIS中,多值提取到点是一种常见的操作,它是将多个栅格图层中的像素值提取到点位置上的操作。然而,当进行多值提取到点操作时,可能会出现ERROR 999999错误。本文将详细介绍ERROR 999999错误的原因和解决方法,并使用代码进行解释。

    ERROR 999999错误通常由以下几个原因引起:

    1. 数据格式错误:当输入的数据格式不正确时,会导致ERROR 999999错误。例如,如果输入的图层格式不是栅格图层(Raster Layer),而是矢量图层(Vector Layer),就会出现此错误。

    2. 数据范围错误:如果输入的栅格图层的范围超出了点图层的范围,也会导致ERROR 999999错误。在进行多值提取到点操作时,点图层需要和栅格图层具有相同的范围。

    3. 数据源错误:如果输入的图层位于不同的数据库或文件夹中,或者数据源连接中断,也会导致ERROR 999999错误。

    解决ERROR 999999错误的方法如下:

    1. 检查输入数据格式:确保输入的图层格式是栅格图层(Raster Layer),而不是矢量图层(Vector Layer)。可以使用arcpy.Exists()函数来判断图层是否存在。
    import arcpy
    
    raster_layer = "path_to_raster_layer"
    if arcpy.Exists(raster_layer) and arcpy.Describe(raster_layer).dataType == "RasterLayer":
        # 进行多值提取到点操作
        pass
    else:
        # 图层不存在或格式错误
        print("输入的图层不存在或格式错误!")
    
    1. 检查数据范围:确保输入的栅格图层和点图层具有相同的范围。可以使用arcpy.Describe()函数获取图层的范围,并使用arcpy.Extent()函数比较两个范围是否相同。
    import arcpy
    
    raster_layer = "path_to_raster_layer"
    point_layer = "path_to_point_layer"
    
    raster_extent = arcpy.Describe(raster_layer).extent
    point_extent = arcpy.Describe(point_layer).extent
    
    if raster_extent == point_extent:
        # 进行多值提取到点操作
        pass
    else:
        # 栅格图层和点图层的范围不相同
        print("栅格图层和点图层的范围不相同!")
    
    1. 检查数据源连接:确保输入的栅格图层和点图层位于相同的数据库或文件夹中,并且数据源连接没有中断。可以使用arcpy.Exists()函数来判断图层是否存在,并使用arcpy.Describe()函数获取图层的数据源路径,进行比较。
    import arcpy
    
    raster_layer = "path_to_raster_layer"
    point_layer = "path_to_point_layer"
    
    raster_path = arcpy.Describe(raster_layer).catalogPath
    point_path = arcpy.Describe(point_layer).catalogPath
    
    if arcpy.Exists(raster_layer) and arcpy.Exists(point_layer) and raster_path == point_path:
        # 进行多值提取到点操作
        pass
    else:
        # 输入的图层不存在或数据源连接中断
        print("输入的图层不存在或数据源连接中断!")
    

    综上所述,本文详细介绍了ARCGIS中多值提取到点操作中可能出现的ERROR 999999错误的原因和解决方法,并使用代码进行解释。通过检查输入数据格式、数据范围和数据源连接,可以有效避免此错误的发生。希望本文对您有所帮助!

    展开全部

    评论
编辑
预览

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月25日
  • 创建了问题 7月24日

悬赏问题

  • ¥15 电脑回复出厂设置,重装过程报错提示,求解决方案Windows 无法分析或处理无人参与应答文件 [C:\WINDOWS\Panther\unattend.xml,如何解决?
  • ¥15 进入lighttools中的UDOP编辑器的方法
  • ¥15 求Gen6d训练数据集
  • ¥20 liunx中winscp中可以登入ftp,但是不能登入sftp,如何解决
  • ¥15 lighttools的光学属性自定义的用法流程
  • ¥15 图片是GET请求,后面是图片的id,Glide如何缓存?
  • ¥15 关于C#与NICAN类库通信的问题
  • ¥15 cytoscape问题
  • ¥15 putty实现机器学习猫狗识别
  • ¥15 STS/eclipse导入gradle项目时报错如下
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部