Excel表转换为shp格式时属性值丢失问题

早前在网上扒拉一些数据,放到excel中进行加工,然后加载到arcgis中,生成点要素,然后转为shp格式文件。但是在此过程中遇到了一些小问题,有些字段的信息在转换过程中会丢失。一开始我以为是我的excel编码的问题,但后来捣鼓了好多次,都未找到原因。
直到某天阴差阳错,发现了解决此问题的方法。

导致信息丢失的根本原因是我对arcgis 字段名称的相关要求不了解。
这是我从网上查到的一个关于arcgis字段名称长度及要求的说明(是否来自官方不得而知):

1、字段名应只含有字符 a 到 z、0 到 9 以及下划线。 请勿使用空格、连字符、圆括号、方括号以及 $、% 和 # 等其他字符。
2、避免在字段名中使用通常视为保留关键字的词。这些词通常包括data、day、month、table、text、user、when、where、year 和 zone。请注意,基础 DBMS 都可以有各自的一组保留关键字。
3、 字段名的长度必须符合特定格式的规范。

a、地理数据库的要素类和表格字段的最大名称长度为 64 个字符。(更具体地说,您最多只能为个人地理数据库的要素类名称输入 52 个字符,因为系统会将字符总数追加到 64 个。)
b、 Shapefile 和 .dbf 字段的最大名称长度为 10 个字符。
c、Shapefile 和 .dbf 字段的最大名称长度为 10 个字符。 基础 DBMS 还可能对字段名设有其他限制。 所以说,字段名的长度是有明确的规定的,因此是不能自己修改的。

从上面的第三条来看,shp格式的属性表的字段长度不得超过10个字符,当我们使用汉字作为字段名称,且汉字名称的长度大于10个字符时,就会出现信息丢失的情况。后来我测试了一下,当字段名称为英文时,即便超过10个字符,在转换过程中,字段名称会自动缩短,但信息不会丢失;可如果字段名称为汉字,信息就会丢失。
下面来做一个小实验。

QQ截图20160105150706

第一幅图,新建了四个字段,这四列的内容相同,仅表头,也就是字段名称不同,有长有短,有中文,有英文。我们来转换一下,看哪些字段的属性值会丢失。

QQ截图20160105150720

第二幅图,转换后的属性表。可以看到原名称为“产品名称相当长啊啊啊啊啊啊”“pruduct_name_long”的字段名称在转换后分别缩短为:“产品名”“pruduct_na”。而“产品名”字段的信息全部丢失,但“pruduct_na”字段下的信息被保留了。

虽说是不超过10字符,但超过3个汉字就会被截短,所以,还是那句话,建字段的时候名称还是用英文字符吧。

发表评论

邮箱地址不会被公开。 必填项已用*标注

填写验证码: *