Arcgis之矢量数据的属性信息导出

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arcgis之矢量数据的属性信息导出相关的知识,希望对你有一定的参考价值。

参考技术A 案例:将矢量(.shp)格式数据的属性信息导出到TXT文件

场景: 想要将 data.shp 格式数据的属性信息导出到 data.txt 文件中

脚本:Python脚本示范

def Export_ShpFieldValueToTxt(src_data, dst_data, field_list):

    arcpy.env.workspace = r'C:/Users/Administrator/Documents/ArcGIS/Default.gdb'

    fp = open(dst_data, 'w')

    with arcpy.da.SearchCursor(src_data, field_list) as cursor:

        for row in cursor:

            # print(row[0])

            if (row[0] == ''):

                continue

            fp.write(row[0])

            fp.write('\n')

    fp.close()

Export_ShpFieldValueToTxt(r'data.shp'.decode('gbk'), r'data.txt'.decode('gbk'), ('NAME'))

ArcGIS应用(十八)Arcgis 矢量图层属性表显示精度变化问题详解

1.Open Atrribute Table介绍

Open Atrribute Table是显示图层数据属性信息的表格,主要针对矢量、表格数据。最近在处理数据过程中,发现属性表中的数据精度显示出现问题了。

图1  打开属性表

1.1 问题描述

首先显示一下原始属性信息,如下图2-4所示:如d_UTCTime_显示精度包含小数点,类型如下图:

图2  属性信息显示

右键点击属性表表头字段名称,打开该属性字段的Properties...属性,可以查看字段具体信息。

Numeric按钮可以进一步打开显示设置选项窗口。 

 图3  字段属性信息显示

 图4 经纬度属性信息

在对数据进行计算之后,包括工具箱计算或者Field Calcuater计算后,属性标显示信息就会出现变化,如下图5-6所示:数据精度出现了明显变化,d_UTCTime_和i_rec_ndx后几位数字变成了0,而经纬度显示精度也出现明显变化。

 查看这几个属性字段的显示属性信息,发现并没有变化。

图5  属性显示变化情况显示

 2.解决办法

2.1 先尝试通过设置属性选项

打开字段属性,打开格式设置窗口(Properties->Number Format),

这里看到该值已经变化了,没办法正确显示出来。

2.2 关联原始数据重新计算

打开属性表,通过关联原始数据进行计算,关联字段可以选用FID,注意这里关联字段最好是唯一值字段,这样才能有效关联。注意:关联图层或者字段名称最好是英文的,有些版本不支持中文。

 关联字段信息如下:

 我们通过Field Calculator重新计算一下,这里选择关联字段值赋值,看看能否实现数据修正?

显示效果没变化:

 对于经纬度,我们直接通过计算几何重新计算一下:

lon:精度对应X坐标

lat:纬度对应Y坐标

 计算完整之后依旧没变化,只能另想办法了。

2.2 添加字段重新计算

重新添加字段,根据原字段精度设置相关字段属性参数。这里算Double类型数据。精度设置为14,根据自己数据位数长度设置。Scale这是4。

重新计算一下得到正确结果了。

3.小结

对于本文中出现的字段精度问题,可以通过重新添加字段的方式重新计算一下,所添加字段的类型以及参数信息需要根据数据实际情况进行设置。

以上是关于Arcgis之矢量数据的属性信息导出的主要内容,如果未能解决你的问题,请参考以下文章

请问大家,在ARCGIS10.0或者ARCMAP里面,如何把一张矢量图的部分区域截出来,并且保留其属性信息?谢谢。

Arcgis之矢量数据导出

arcmap矢量化用哪个坐标系

ArcGIS应用(十八)Arcgis 矢量图层属性表显示精度变化问题详解

ArcGIS应用(十八)Arcgis 矢量图层属性表显示精度变化问题详解

arcgis图片地理配准并导出带坐标信息的图片