gma 2.0.0 (2023.08.15) 大版本更新介绍

  经过几个月的测试,gma 2 的功能趋于稳定。从本月开始,gma 正式发布 2.0 的正式版,并且,在未来的数十年内,gma 不会大的用法改动。

  相较于 1.x 版本,2.x 更像是第一个完整的 gma 版本,因为其构建逻辑更加统一,思路更加完善,功能间的继承关系更加明确,功能拓展和优化更加方便。

安装 gma 2.0.0

pip install gma==2.0.0

gma 2 的重大更新

 1、底层算法逻辑彻底重构,类继承关系更加明确。
 2、功能函数重新归类,部分函数进行更名或移除。

gma 2 的主要功能

(1)栅格/矢量数据输入输出模块(io)

包括数据打开、信息查看、转换、提取,栅格/矢量内存数据创建等。

(2)坐标参考系统(crs)

包括地理/投影坐标系创建、基准面/椭球体创建、投影方法配置、初始化现有空间参考等。

(3)地理空间制图(map)

包括栅格、矢量数据绘图,指北针、比例尺等生成。

(4)数学运算模块(math)

包括数据平滑、评估、滤波、拉伸、增强、变换等。

(5)气候气象模块(climet)

包括气候指数(SPEI、SPI等)、多种潜在蒸散算法(Penman-Monteith法等)、气候诊断(M-K突变检验等)和一些其他相关指数(日地相对距离等)算法等。

(6)遥感指数计算(rsvi)

包括NDVI、EVI、TVDI等遥感植被指数计算。

(7)栅格处理工具(rasp)

包括基础处理(重采样、重投影等)、提取分析(等值线提取、重分类等)、栅格融合(Pansharpen融合等)、滤波运算(高斯滤波等)、栅格分解(波段分解等)、多维处理(多维数据转为普通栅格等)、表面分析(坡度、坡向等)等工具。

(8)矢量处理工具(vesp)

包括基础处理(几何修复、简化、重投影等)、矢量提取(要素分割等)、几何处理(裁剪、相交、擦除等)。

(9)空间计算工具(smc)

包括空间查询(长度测量、坐标转换等)、空间插值(反距离权重法、克里金法等)。

(10)其他系统工具(osf)

包括常用的文件查找、压缩文件操作、多线程等。

gma 2 库模块及主要函数分类

gma 2.0.0 (2023.08.15) 大版本更新介绍_第1张图片

相对于 gma 1 的优势

更完善的栅格/矢量驱动配置

 在 gma 2 完整支持了 栅格/矢量驱动格式类(gft中的函数),可以通过修改驱动格式的参数,从而配置栅格/矢量数据的创建选项。与gdal相比,gma的配置逻辑更加简单和清晰。

更完善的栅格/矢量数据操作

 gma 2 打开的(io.Open)栅格/矢量文件增加了更多的方法和属性,包括但不限于重投影、重采样、另存、裁剪、擦除、属性表更新和修改等。

更多的空间参考支持和配置方法

 gma 2 的坐标参考系统,基于 ArcGIS 的坐标系创建思路,提供了完整的坐标系相关参数的配置过程,例如:椭球体、基准面、线性和角度单位、几十种投影方法,方便数据变换和空间绘图使用。

示例1:创建坐标系

from gma import crs

# 创建一个地理坐标系 ==> 坐标系名称:'GMA GCS';角度单位:'Degree'(度);中央子午线:'Greenwich'(格林威治,0°);
#                        椭球体:'CGCS2000'(中国国家大地坐标系 2000 椭球体)
GCS = crs.GeogCS(Name = 'GMA GCS', AngularUnit = 'Degree', PRIMEM = 'Greenwich', Ellipsoid = 'CGCS2000')

# 创建一个阿尔伯斯等积圆锥投影方法 ==> 中央经线:112°E;标准纬线1:25°N;标准纬线2:47°N
ACEA = crs.ProjMethod.AlbersConicEqualArea(CentralLongitude = 112, StandardParallels1 = 25, StandardParallels2 = 47)

# 创建一个投影坐标系 ==> 坐标系名称:'GMA PCS';线性单位:'Meter'(米);投影方法:ACEA;地理坐标系:GCS
PCS = crs.ProjCS(Name = 'GMA PCS', LinearUnit = 'Meter', ProjMethod = ACEA, GCS = GCS)

示例2:绘制地图

from gma.map import plot, inres

# 创建一个地图框,地图坐标系使用示例1创建的投影坐标系
MapF = plot.MapFrame(BaseMapProj = PCS)

# 添加一个世界国家底图,填充色为随机颜色,边线宽度 0.3
L1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = None, LineWidth = 0.3)

# 添加一个默认经纬网
GridLines = MapF.AddGridLines()
# 设置地图边框,标签字体4号字
Frame = MapF.SetFrame(LabelFontSize = 4)

gma 2.0.0 (2023.08.15) 大版本更新介绍_第2张图片

你可能感兴趣的:(gma,教程)