ospybook在Python处理数据中十分重要,使用的前提需要安装ospybook库。
通过该模块实现属性的查看与绘制空间数据,本内容结合Python地理数据处理对这两块详解。数据来源在下面附录获取后globale文件夹(可用自己的)
查看数据属性
# 导入模块
import ospybook as pb
from osgeo import ogr
# 加载文件图层
path="D:\\Python_study\\osgeopy-data\\global\\ne_50m_populated_places.shp"
doc=ogr.Open(path)
lyr=doc.GetLayer(0)
# 调用print_attributes函数
pb.print_attributes(lyr,10,["NAME"])
这里起作用的关键就是print_attributes()函数。具体如下:
print_attributes(lyr_or_fn,[n],[fields],[geom],[reset])
- lyr_or_fn,可以是一个图层,也可以是一个数据源路径。(为数据源路径时,使用第一个图层)
- n,是一个可选值,可用于设置输出要素数量,默认输出所有值。
- geom,一个可选布尔值,用于是否输出集合要素,默认为True
- reset,一个可选布尔值,用于设置输出之前是否重置第一条记录,默认为True
这里我们设定了图层名、输出要素数量以及输出的字段名。
绘制空间数据
绘制空间数据主要用plot()方法,一般我们只设置前两个参数。
plot(self,geom_or_lyr,[symbol],[name],[kwargs])
- geom_or_lyr,可以是某个要素对象、图层或一个数据源的路径
- symbol,是一个可选值,用于设置集合要素的颜色,'b'为蓝色,'y'为黄色,'r'为红色,fill=False:空心多边形
“bo”:蓝色的圆圈
“rs”:正方形
“b-” 蓝线
“r–” 虚线(每个单元是横的)
“g:” 虚线(每个单元是竖的)
edgecolor=‘blue’
ec=“read”
linestyle=“dashed” 或者 ls=“dotted”
linewidth=3 - name,用于设定数据设备名称,后期可对他访问
- kwargs,一个可选值,通过关键字进行指定。
# 调用模块
from ospybook.vectorplotter import VectorPlotter
# 设置为非交互
vp = VectorPlotter(False)
# 设置打开
vp.plot('D:\\Python_study\\osgeopy-data\\global\\ne_50m_populated_places.shp','bo')
vp.draw()
其中vp = VectorPlotter(False)是让函数来创建一个非交互式面板。