最近又觉得自己得多写写博客做记录,遇到机会就开始做补完,再基础也要整理。今天就整理一下使用arcpy创建shp的相关内容吧。需要说明的是,arcgis的矢量数据模型——要素,从文件的角度是有shp和gdb两种存储方式的,这里选择shp主要是出于个人习惯。
首先我们看看arcpy中的要素、要素类是如何存在的。有AE开发经验就会知道,一个shp文件读取后就对应着一个FeatureClass,而创建shp时同样需要先创建好FeatureClass。因此从AE角度,只要涉及到矢量读写,一定会有一个完完整整的FeatureClass。arcpy同样支持了类似的方法和类,FeatureSet就是要素类的轻量级表示。
import arcpy
feature_set = arcpy.FeatureSet("c:/base/roads.shp")
可是问题在于,FeatureSet并不支持读取遍历等操作,要素类对应的要素集合无法访问,更多的只是作为一个整体存在,尽管可以通过其较为方便的完成shp写入的操作(FeatureSet文档),我个人仍然是不喜欢这一做法的。因此我们换一种思路,从要素的角度切入这个问题。
要素作为抽象的矢量模型,具体的实现其实就是几何(点、线、面),arcpy里也就对应这几个类型。