Case:需要给一个现有的shp数据创建一个字段,并将属性表中原有的一个文本类型的属性转换为整型后填入新创建的字段。 Problem:新字段创建成功,但是赋值操作无效,即无法成功给字段写入值。 solution:对字段进行赋值后需要,重新写入Feature,否则赋值无效
Case:需要给一个现有的shp数据创建一个字段,并将属性表中原有的一个文本类型的属性转换为整型后填入新创建的字段。 Problem:新字段创建成功,但是赋值操作无效,即无法成功给字段写入值。 solution:对字段进行赋值后需要,重新写入Feature,否则赋值无效,即layer0.SetFeature(feature)。 特别注意:在对数据进行读写操作,一定要以读写的方式打开,即Open(filePath,1),该方法的原型为Open(pszName,int bUpdate = false),并且具有返回值,参数说明如下:
以下将给出创建字段和获取字段值、子段赋值的实例。 1.为矢量数据创建字段
2.获取字段值及字段赋值
补充知识:Python批量修改shapefile属性表字段名(arcpy增删字段) 尝试了3种方法,时间紧迫屡败屡战,最后终于成功。 方法1和2是失败记录,希望有类似经历成功的同学分享下经验。 方法3是成功记录,修改 = 新增 + 计算 +删除相关字段,因为没有删除改名前字段需求,故删除部分没有另做。 方法1 —— 【将shapefile的dbf文件按csv文件读写】 ——失败,dbf中有空值及编码问题 不同文件间通过改后缀简单粗暴改写,操作方法存在风险 过于依赖熟悉的领域,由于时间紧迫没有试用dbf第三方库
方法2——直接使用修改字段名函数——失败,arcpy模块没有AlterField_management方法 ——失败,但发现直接探寻官方方法还是比网搜野路子要节约时间
使用Arcgis10.2 - Advanced浮动版,符合许可信息但Arcpy调用函数失败,存疑。附官网AlterField函数用法介绍: https://pro.arcgis.com/zh-cn/pro-app/tool-reference/data-management/alter-field-properties.htm
方法3——添加改名后新字段(字段属性与前保持一致)、计算改名后字段值 = 改名前字段值,成功!
|
2019-06-18
2019-07-04
2021-05-23
2021-05-27
2021-05-27