我想把裁剪出的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"),确保它们在两个数据集中都存在,并且可以用于连接数据。解决 无用评论 打赏 举报 编辑记录-
悬赏问题
- ¥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回归报错