2401_84530637 2024-04-21 10:14 采纳率: 0%
浏览 71

arcgis中dem数据的属性表没有object ID

我想把裁剪出的dem属性表与已有数据连接,但是没有object ID字段,试过导出数据tif,只多了个oid,与已有数据连接显示objectid为0

  • 写回答

6条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-21 10:14
    关注

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

    在ArcGIS中,如果你的栅格DEM数据(Digital Elevation Model)属性表中没有Object ID字段,你可以通过以下步骤创建一个:

    1. 打开ArcGIS Desktop或Pro。

    2. 加载你的DEM数据到ArcMap或ArcGIS Pro的数据窗口中。

    3. 选择你的DEM层,然后右键单击并选择“属性”。

    4. 在弹出的属性对话框中,转到“表格”选项卡。

    5. 点击“编辑”按钮进入编辑模式。

      注意: 如果尚未打开编辑模式,系统会提示你开启编辑。

    6. 在属性表中,点击顶部菜单栏的“插入”或“Add Field”,添加一个新的字段。

    7. 输入新字段的名称,例如“ObjectID”,确保类型为“长整型”或“Integer”。

    8. 单击“确定”保存新字段。

    9. 关闭属性表编辑模式。回到主界面,再次右键单击你的DEM层,选择“停止编辑”。

    现在你的DEM数据应该有了一个名为“ObjectID”的字段。接下来,如果你想将这个新的属性表与已有的数据进行连接,你需要确保两个数据集中的连接字段是匹配的。通常,你可以使用FME、Python脚本或ArcGIS的Join Field工具来完成这个任务。

    以下是使用Python和arcpy模块执行连接操作的一个示例:

    import arcpy
    
    # 定义输入栅格DEM和矢量数据的路径
    dem_raster = r"C:\path\to\your\raster.dem"
    vector_data = r"C:\path\to\your\vector.shp"
    
    # 创建临时工作空间
    temp_workspace = "in_memory\\"
    
    # 将栅格DEM转换为特征类,以便可以对其进行编辑
    raster_to_features = temp_workspace + "raster_to_features"
    arcpy.RasterToPolygon_conversion(dem_raster, raster_to_features)
    
    # 添加ObjectID字段到新创建的特征类
    add_field = temp_workspace + "add_field"
    arcpy.AddField_management(raster_to_features, "ObjectID", "LONG")
    
    # 更新新创建的特征类中的ObjectID字段
    with arcpy.da.UpdateCursor(add_field, ["ObjectID"]) as cursor:
        for row in cursor:
            row[0] = row.FID
            cursor.updateRow(row)
    
    # 使用Join Field工具连接矢量数据和栅格转换后的特征类
    join_output = temp_workspace + "join_output"
    arcpy.JoinField_management(vector_data, "join_field_name", add_field, "ObjectID", ["field_to_join"])
    
    # 删除临时文件
    arcpy.Delete_management(temp_workspace)
    

    请将上述代码中的dem_rastervector_datajoin_field_namefield_to_join替换为你实际的数据路径和要连接的字段名。运行这段代码后,你应该得到一个新的矢量数据,其中包含了来自栅格DEM的属性信息。注意,你需要根据实际情况调整连接字段名("join_field_name"和"field_to_join"),确保它们在两个数据集中都存在,并且可以用于连接数据。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月21日

悬赏问题

  • ¥15 需要手写数字信号处理Dsp三个简单题 不用太复杂
  • ¥15 数字信号处理考试111
  • ¥100 关于#audobe audition#的问题,如何解决?
  • ¥15 allegro17.2生成bom表是空白的
  • ¥15 请问一下怎么打通CAN通讯
  • ¥20 如何在 rocky9.4 部署 CDH6.3.2?
  • ¥35 navicat将excel中的数据导入mysql出错
  • ¥15 rt-thread线程切换的问题
  • ¥15 高通uboot 打印ubi init err 22
  • ¥15 R语言中lasso回归报错