安装 gma 2.0.3
pip install gma==2.0.3
新增
此版本为 gma 2 功能更新最大的版本,且主要集中在矢量数据处理上。
0.1 io.ReadVector:直接打开矢量数据为Layer,用以简化io.Open.GetLayer 过程。Layer的新增功能如下:
序号 | 功能 | 性质 | 说明 | 返回值类型 |
---|---|---|---|---|
1 | Layer1 + Layer2 | 特殊方法 | 如 Union | Layer |
2 | Layer1 - Layer2 | 特殊方法 | 如 Erase | Layer |
3 | Layer1 & Layer2 | 特殊方法 | 如 Intersection | Layer |
4 | Layer1 | Layer2 | 特殊方法 | 如 Update |
5 | list(Layer) | 特殊方法 | 生成 Feature 列表 | list |
6 | len(Layer) | 特殊方法 | 统计 Feature 数量 | int |
7 | CalculateSummaryStatistics | 方法 | 汇总统计分析 | DataFrame |
8 | Collect | 方法 | 分组组合 | Layer |
9 | ConcaveHull | 方法 | 计算几何凹包 | Layer |
10 | ConvexHull | 方法 | 计算几何凸包 | Layer |
11 | DelaunayTriangulation | 方法 | 德劳内三角化 | Layer |
12 | Distance | 方法 | 计算距离 | DataFrame |
13 | Envelope | 方法 | 生成外包框 | Layer |
14 | Explode | 方法 | 拆分多部件要素 | Layer |
15 | Extent | 方法 | 外接矩形框 | Layer |
16 | ExteriorRing | 方法 | 外部环 | Layer |
17 | GenGrid | 方法 | 生成矢量格网 | Layer |
18 | GeomSelfTest | 方法 | 几何检测 | DataFrame |
19 | Identity | 方法 | 标识 | Layer |
20 | Info | 属性 | 图层信息 | DataFrame |
21 | Multi | 方法 | 生成多部件要素 | Layer |
22 | PointOnSurface | 方法 | 多边形内中心点 | Layer |
23 | Preview | 方法 | 在地图上预览矢量 | PlotLayer |
24 | RemoveRepeatedPoints | 方法 | 移除重复点 | Layer |
25 | Single | 方法 | 简单化要素 | Layer |
26 | VerticesToPoints | 方法 | 折点转点 | Layer |
27 | VoronojDiagram | 方法 | 泰森多边形 | Layer |
0.2 io.ReadRaster:直接打开栅格数据为DataSet,用以简化io.Open.GetDataSet 过程。DataSet的新增功能如下:
序号 | 功能 | 性质 | 说明 | 返回值类型 |
---|---|---|---|---|
1 | Preview | 方法 | 在地图上预览DataSet | PlotDataSet |
修复
1、Layer-Intersection|Union|SymDifference
修复连续调用时引发异常的问题。
2、内核崩溃
修复了一些容易引起Python内核崩溃的问题。
调整
1、矢量数据内部交换格式
矢量数据内存(内部)交换格式由 Memory 更换为 GPKG 地理数据库格式。
2、Spyder 变量浏览器
添加对 Spyder 变量浏览器中 查看 Layer 属性表的支持。
2、波段序号
栅格数据波段序号统一从 1 开始。对有些从 0 开始的函数进行了调整。
简单示例
gma 2 及 示例数据下载:
链接:https://pan.baidu.com/s/1v9flUXmsgYPZUbzR88SIOA?pwd=h9b8
提取码:h9b8
from gma import io
Layer = io.ReadVector("Luoyang.gpkg")
预览数据
Layer.Preview()
缓冲区
BF = Layer.Buffer(0.05)
BF.Preview()
要素折点转点
VPoints = Layer.VerticesToPoints()
VPoints.Preview()
生成正方形格网
Grid = Layer.GenGrid(Size = 0.05)
Grid.Preview()
简化(这里为避免生成异常多边形),并生成泰森多边形
VD = Layer.Simplify(0.0001).VoronojDiagram()
VD.Preview()
简化(这里为避免生成异常多边形),并生成德劳内三角化
VD = Layer.Simplify(0.0001).DelaunayTriangulation()
VD.Preview()