1、地图工具
a. 增加【GetWorldDEMDataSet】。提供了一套 GEOCO 2022 的全球陆地和海洋地形数据(分辨率 0.2°)。
b. 增加【GetSystemFonts】。读取并列出当前系统支持的所有字体名称,方便绘图时使用。
c. 增加【AddDataSetClassify】。对栅格进行分类后绘制,其图例标记以合入 AddLegend,可与矢量图层图例一起添加。如需其他样式,可以通过 IM 属性自行管理 颜色条 。
2、DataSet
增加 Boundary 栅格数据集四至范围属性。
1、AddGridLines
修复空间绘图绘制经纬网过程中,配置经度网 左边界 但没有效果的问题。
2、PAP
修复 PAP(降水距平百分率) 分布检查不通过的问题(实际上不需要分布)
3、ToRaster
由于重构了 打开的矢量图层 Layer 类,导致部分 矢量处理函数异常,例如:ToRaster,发现一个修复一个。
4、ET0 计算
修复了 ET0 计算过程中,Day 参数不能是单个值的问题。此问题由 1.1.0 版本 ToNumericArray 删除了 0 维数组支持后引起!
from gma.map import rcs, plot
# 0. 打开 gma 内置数据
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)
WorldDEM = plot.GetWorldDEMDataSet()
# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = rcs.CustomGCS(), Extent = None)
# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'white', Zorder = 1)
Classify = MapF.AddDataSetClassify(WorldDEM,
CMap = 'rainbow',
Remap = [[0, 0], [500, 1], [1000, 2], [1500, 3],[2000, 4], [3000, 5], [9000, 6]],
Method = 'Range',
Labels = ['<= 0', '0 ~ 500', '500 ~ 1000','1000 ~ 1500','1500 ~ 2000','2000 ~ 3000', '> 3000'],
)
MapF.AddGridLines(LONRange = (-180, 180, 30))
Frame = MapF.SetFrame()
MapF.AddLegend(TitleAlignment = 'left', PlotID = [1], LOC = (-0.2, 0.2))
# 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = rcs.CustomGCS(CentralLongitude = 150), Extent = None)
# 添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'none', EdgeColor = 'black', LineWidth = 0.1, Zorder = 1)
MapD1 = MapF.AddDataSetDiscrete(WorldDEM, CMap = 'jet')
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(LabelFontSize = 5)
# 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = rcs.AlbersEqualArea(), Extent = None)
# 添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'none', EdgeColor = 'black', LineWidth = 0.1, Zorder = 1)
MapD1 = MapF.AddDataSetDiscrete(WorldDEM, CMap = 'jet')
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(LabelFontSize = 5)
# 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = 3857, Extent = None)
# 添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'none', EdgeColor = 'black', LineWidth = 0.1, Zorder = 1)
MapD1 = MapF.AddDataSetDiscrete(WorldDEM, CMap = 'jet')
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(LabelFontSize = 5)
# 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = rcs.Mollweide(CentralLongitude = 150), Extent = None)
# 添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'none', EdgeColor = 'black', LineWidth = 0.1, Zorder = 1)
MapD1 = MapF.AddDataSetDiscrete(WorldDEM, CMap = 'jet')
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(ShowBottom = False, ShowTop = False, LabelFontSize = 5)