初来乍到,多多关照!

各位微信公众号朋友,大家好!GIS数据小达人上线了,小编长期从事于GIS数据处理工作,在深圳某甲级测绘资质公司厮混,工作与规划国土测绘相关(天天跟图斑打交道,外号图斑小王子)。喜欢钻研一些GIS相关的技术,数据库啊,ArcGIS,python都会一点点(其实就是菜鸟啊)。所以呢,这个公众号主要就是分享工作中的一些小技巧,与行业相关的朋友交流学习(各路高手轻拍啊)。

今天介绍一下如何快速从属性表中选出列数据。在ArcMAP中,如果想把某列感兴趣的数据复制出来,ArcMap的属性表不支持直接选中复制。一般来说,如果有规律(比如某个字段值一样)可以通过定义查询,然后通过属性表的EXPORT功能导成txt或者excel格式的数据。现在介绍一个利用快捷的方法只通过ArcMAP(版本要求10.1以上)的python命令行就直接解决。

如下图,高亮部分,这是感兴趣的这一排学校的建筑,现在想快速把这列的BLDG_NO字段的信息提取出来。

步骤如下:

通过Create Layer From Selected Features选出这17条数据并形成一个单独层。

通过python命令行,利用arcpy的游标和for循环,直接将这列数据倒出来。

下面是直接从Python命令行复制出来的数据。

>>> cur = arcpy.SearchCursor("建筑 selection")

>>> for row in cur:

... print(row.getValue('BLDG_NO'))

...

4403070120041600075

4403070120041600068

4403070120041600104

4403070120041600061

4403070120041600065

4403070120041600064

4403070120041600071

4403070120041600084

4403070120041600063

4403070120041600083

4403070120041600069

4403070120041600067

4403070120041600062

4403070120041600070

4403070120041600100

4403070120041600109

当然,朋友们可能会问小编啦,这有什么用?下面通过一个实例告诉大家这个的方便之处。

我想查出这些这片建筑的业务信息,比如建筑物基本属性信息,建筑用地信息,建筑物面积信息,并在影像上初步核对。

只要简单的修改一下代码,就可以直接复制到业务层的定义查询器中使用啦。

代码:

>>> del cur

>>> cur = arcpy.SearchCursor("建筑 selection")

>>> for row in cur:

... print("'"+row.getValue('BLDG_NO')+"',")

...

'4403070120041600075',

'4403070120041600068',

'4403070120041600104',

'4403070120041600061',

'4403070120041600065',

'4403070120041600064',

'4403070120041600071',

'4403070120041600084',

'4403070120041600063',

'4403070120041600083',

'4403070120041600069',

'4403070120041600067',

'4403070120041600062',

'4403070120041600070',

'4403070120041600100',

'4403070120041600109',

实际效果如下图:

对应到其他层,只要将这个建筑物面积信息基本表的定义查询的代码复制到相应的业务层即可,怎么样,这个方法可以吧!

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180315G0XAXY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券