我想把裁剪出的dem属性表与已有数据连接,但是没有object ID字段,试过导出数据tif,只多了个oid,与已有数据连接显示objectid为0
6条回答 默认 最新
关注引自免费微信小程序:皆我百晓生
在ArcGIS中,如果你的栅格DEM数据(Digital Elevation Model)属性表中没有Object ID字段,你可以通过以下步骤创建一个:
-
打开ArcGIS Desktop或Pro。
-
加载你的DEM数据到ArcMap或ArcGIS Pro的数据窗口中。
-
选择你的DEM层,然后右键单击并选择“属性”。
-
在弹出的属性对话框中,转到“表格”选项卡。
-
点击“编辑”按钮进入编辑模式。
注意: 如果尚未打开编辑模式,系统会提示你开启编辑。
-
在属性表中,点击顶部菜单栏的“插入”或“Add Field”,添加一个新的字段。
-
输入新字段的名称,例如“ObjectID”,确保类型为“长整型”或“Integer”。
-
单击“确定”保存新字段。
-
关闭属性表编辑模式。回到主界面,再次右键单击你的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_raster、vector_data、join_field_name和field_to_join替换为你实际的数据路径和要连接的字段名。运行这段代码后,你应该得到一个新的矢量数据,其中包含了来自栅格DEM的属性信息。注意,你需要根据实际情况调整连接字段名("join_field_name"和"field_to_join"),确保它们在两个数据集中都存在,并且可以用于连接数据。解决 无用评论 打赏 举报 编辑记录-