根据网络上的数据服务中的坐标信息,按照一定的规则,可以组合成一个特征图层,保存到本地,整个过程,只是将数据做了一个转换了一种形式存储,但是,这种形式的数据,能方便使用gis工具,如arcmap,qgis等,直接进行打开查看,叠加查看效果。
python中fiona和shapely两个库,可以对空间数据进行处理,当然也能根据数据,创建一个新的特征图层。
fiona的driver中有ESRI Shapefile和geojson等常用格式,可以很方便创建一个常用格式的特征数据。
shapely可以将列表,元组数据,转换成空间坐标的格式,并和fiona中的坐标存储能够进行兼容。
下边根据示例代码,如何新建一个特征数据:
定义一个数据的结构,数据的空间几何类型,支持Point,Polyline,Polygon等常用空间几何类型,properties中放置的是数据属性信息,对应每个元素的属性信息。
yourschema = {'geometry': 'Point',
'properties': {'bx': 'float:13.3',
'by': 'float:13.3',
'bline': 'str'}}
新建一个空间数据文件,类型用w,表示写入数据,坐标系信息根据实际情况填写,driver可以用shapefile,geojson等常用格式,把上边的数据结构要传入进去。
with fiona.open('文件路径', 'w', crs=from_epsg(4326),
driver='ESRI Shapefile',schema=yourschema) as output:
写入数据,属性信息要和上边定义的结构对应上,坐标信息用shapely里的函数进行定义,之后通过mapping写入到文件中。
prop = {'bx': 13.2001,
'by': 5.898989898,
'bline': 'aaaaaa'
}
point = Point(0, 0)
output.write({'geometry': mapping(point), 'properties': prop})