安装 gma 2.0.0a3
pip install gma==2.0.0a3
新增
1、为矢量要素(Feature)添加 【Difference】(差集)方法
取第一个矢量要素与第二个矢量要素的几何差集。
2、为矢量要素(Feature)添加几种几何形状测试方法
包括 TestContains(包含关系测试),TestIntersection(相交测试),TestOverlaps(重叠测试),TestRing(环形测试),TestTouches(接触测试),TestValid(有效性测试)。
注意:其中,gma在处理Feature时会自动进行几何有效性检查和修复。但有些几何无法修复,测试可用TestValid进行测试。
3、为矢量要素(Feature)添加 【Distance】(距离)方法
计算两个矢量要素之间的距离。
修复
1、【PWD概率加权距】
优化最小有效值数量的确定方法,避免多维数据中N值为0(栅格数据中存在无效区域的情况)导致多维数据结果全nan的情况。
2、【线性距离计算】
SciPy引用错误导致计算报错。
3、【多栅格输入相关函数】
拉取输入数据时仅提取了第一个输入数据,引起功能异常的问题。受影响函数:BandSynthesis(波段合成)、Mosaic(栅格镶嵌)、Deformation(流程化处理)
优化
1、【距离和面积计算】
由于空间参考类已经完善,从本版本开始,在对地理坐标系点进行面积/距离运算时,自动引入对应椭球体半轴,而不再是一个固定值(虽然误差可能不大)。
简单示例
from gma import io
from gma.map import plot, inres
# 定义两个矩形的四个顶点
Points0 = [[0,0], [0, 2], [2, 2], [2, 0]]
Points1 = [[1,1], [1, 3], [3, 3], [3, 1]]
# 根据点生成两个多边形(矩形)Feature
FT0 = io.CreateFeatureFromPoints(Points0)
FT1 = io.CreateFeatureFromPoints(Points1)
## 在地图上绘制两个矩形
MapF = plot.MapFrame(Extent = [-1, -1, 4, 4])
# 1.添加要素
MapF1 = MapF.AddFeature(FT0, FaceColor = 'lightblue', EdgeColor = 'gray', LineWidth = 0.1)
MapF2 = MapF.AddFeature(FT1, FaceColor = 'lightyellow', EdgeColor = 'gray', LineWidth = 0.1)
# 2.设置地图框
Frame = MapF.SetFrame()
## 取第一个矩形与第二个矩形的差集(用第一个矩形减去第二个矩形)
FT3 = FT0.Difference(FT1)
MapF = plot.MapFrame(Extent = [-1, -1, 4, 4])
# 1.添加要素
MapF1 = MapF.AddFeature(FT3, FaceColor = 'lightblue', EdgeColor = 'gray', LineWidth = 0.1)
# 2.设置地图框
Frame = MapF.SetFrame()
gma 网站和矢量文件操作功能说明
gma 网站:gma.luosgeo.com(网站出点小问题暂时无法访问)
注意:网站针对 1.x 版本内容,2.x 版本中部分函数功能已经调整或变更,详见内置帮助。
gma 2.x 矢量数据操作类主要包括数据资源(DataSource)、矢量图层(Layer)、矢量要素(Feature),三者的示意图如下:
gma 2.x 内矢量数据功能/属性的关系结构如下图所示: