热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

gma1.1.2(2023.01.14)更新日志(重大更新:开始支持空间绘图)

重大更新:从本版本开始,gma逐步支持空间绘图功能(依赖matplotlib)!获取gma1.1.21、百


重大更新:从本版本开始, gma 逐步 支持空间绘图功能(依赖 matplotlib)!


获取 gma 1.1.2

1、百度网盘:

链接:https://pan.baidu.com/s/1eT2rJRiUDJuJkWeLJNL-cw?pwd=b07n
提取码:b07n

2、pypi 官网:

https://pypi.org/project/gma/

优化内容:

1、SPEI、SPI

修改 Periodicity 参数默认值 为 1。


2、Feature

为配合 空间绘图 功能,重构了此类,并增加 Intersection(相交)、Reproject(重投影)等方法。


新增 map 地图工具包

1、adjust 模块

自适应计算。主要用于地图框刻度位置抽取与计算。


2、appearance 模块

地图整饰要素。主要用于定义指北针和比例尺的样式。


3、feature 模块

要素绘制。主要用于绘制 gma.~.Feature。


4、layer 模块

图层绘制。主要用于绘制 gma.~.Layer。


5、layout 模块(主要模块)

地图布局(参考 ArcGIS 地图布局)。通过地图布局,实现地图绘制功能。主要的功能包括:


  • 5.1 MapFrame:初始化地图框,用于绘图(类,5.2 及以下均为类方法)

  • 5.2 AddLayer:添加图层(可以重复添加多个图层)


    • 5.2.1 AddLabel:添加地图标注,为 layer 模块的功能
  • 5.3 AddGridLines:添加经纬网

  • 5.4 SetFrame:设置地图框(包括刻度和经纬度的标注等)

  • 5.5 SetBackground:设置背景颜色

  • 5.6 AddCompass:添加指北针

  • 5.7 AddScaleBar:添加比例尺

  • 5.8 AddLegend:添加图例


6、plot 模块(推荐导入模块)

整合其他绘图模块中的主要功能,导入此模块可直接引入主要的绘图功能。

6.1 MapFrame:来自 layout。

6.2 GetWorldDataSource:获取 gma 提供的低精度世界国家和政区界。


7、rcs 模块(主要模块)

空间参考的创建和变换,并内建了4个可配置的坐标系统。主要的功能包括:


  • 7.1 SpatRef: 空间参考类。可将 EPSG,MICoordSys,PCI,PROJJSON,PrettyWkt,Proj4,USGS,Wkt,XML 或部分主要坐标系名称(例如 WGS84)等初始化为 gma 可识别的空间参考!

  • 7.2 AlbersEqualArea:创建阿尔伯斯投影等面积投影。

  • 7.3 CustomGCS:创建一个类 WGS84 坐标系(修改中央子午线)。

  • 7.4 Mollweide:创建摩尔威德投影。

  • 7.5 Robinson:创建伪圆柱投影。


8、tools 模块

经纬网和地图框范围等生成。


9、utils 模块

matplotlib 子图初始化和自定义参数配置。


简单示例 1

底图投影为 EPSG 代码表示:底图坐标系 EPSG: 2163 (NAD27 / US National Atlas Equal Area)

from gma.map import plot
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)
## 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = 2163, Extent = None)
# 1.添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = None, EdgeColor = 'gray', LineWidth = 0.1)
## 1.1 为此图层添加标注(标注属性表 'Name' 列)
MapL1.AddLabel(FieldName = 'Name', FontSize = 4)
# 2.添加经纬网
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(FrameWidth = 0.5, LabelFontSize = 7, TickLength = 0.008)
# 4.设置底图颜色
Background = MapF.SetBackground(Color = '#BEE8FF')
# *5.地图整饰要素
## 5.1 添加指北针
Compass = MapF.AddCompass(LOC = (0.06, 0.86), Width = 0.05, Color = 'black')
## 5.2 添加比例尺
ScaleBar = MapF.AddScaleBar(LOC = (0.02, 0), Width = 0.22, Color = 'black')
## 5.3 添加图例
Legend = MapF.AddLegend(LOC = (1, 0), NColumns = 1, TitleAlignment = 'left')

在这里插入图片描述


简单示例 2

自定义底图投影:底图坐标系 AlbersEqualArea (中央经线 112°E,标准纬线:25°N,47°N)

from gma.map import plot, rcs
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)
Spat = rcs.AlbersEqualArea(CentralLongitude=112, StandardParallels=(25, 47))
## 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = Spat, Extent = None)
# 1.添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = None, EdgeColor = 'gray', LineWidth = 0.1)
# 2.添加经纬网
Grid = MapF.AddGridLines(LONRange = (-180, 180, 30), LATRange = (-90, 90, 30), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(FrameWidth = 0.5, LabelFontSize = 5, TickLength = 0.008)

在这里插入图片描述


简单示例 3

绘制部分区域:底图坐标系 AlbersEqualArea (中央经线 15°E,标准纬线:30°N,60°N)

from gma.map import plot, rcs
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)
Spat = rcs.AlbersEqualArea(CentralLongitude = 15, StandardParallels = (30, 60))
## 初始化一个地图框,用于绘图
MapF = plot.MapFrame(BaseMapProj = Spat, Extent = [-10, 30, 40, 60])
# 1.添加图层(可以重复添加多个图层)
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = None, EdgeColor = 'gray', LineWidth = 0.1)
MapL1.AddLabel(FieldName = 'Name', FontSize = 4)
# 2.添加经纬网
Grid = MapF.AddGridLines(LONRange = (-180, 180, 20), LATRange = (-90, 90, 15), LineWidth = 0.2)
# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(FrameWidth = 0.5, LabelFontSize = 6, TickLength = 0.008)

图片


沟通学习疑问等请私信作者





推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 基因组浏览器中的Wig格式解析
    本文详细介绍了Wiggle(Wig)格式及其在基因组浏览器中的应用,涵盖variableStep和fixedStep两种主要格式的特点、适用场景及具体使用方法。同时,还提供了关于数据值和自定义参数的补充信息。 ... [详细]
  • 毕业设计:基于机器学习与深度学习的垃圾邮件(短信)分类算法实现
    本文详细介绍了如何使用机器学习和深度学习技术对垃圾邮件和短信进行分类。内容涵盖从数据集介绍、预处理、特征提取到模型训练与评估的完整流程,并提供了具体的代码示例和实验结果。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • andr ... [详细]
  • 本文详细介绍了如何在ECharts中使用线性渐变色,通过echarts.graphic.LinearGradient方法实现。文章不仅提供了完整的代码示例,还解释了各个参数的具体含义及其应用场景。 ... [详细]
  • 提升Tumblr爬虫效率与功能
    本文介绍了对之前开发的Tumblr爬虫脚本进行升级,整合了两个脚本的功能,实现了自动分页爬取博客内容,并支持配置文件以下载多个博客的不同格式文件。此外,还优化了图片下载逻辑。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 社交网络中的级联行为 ... [详细]
  • 历经三十年的开发,Mathematica 已成为技术计算领域的标杆,为全球的技术创新者、教育工作者、学生及其他用户提供了一个领先的计算平台。最新版本 Mathematica 12.3.1 增加了多项核心语言、数学计算、可视化和图形处理的新功能。 ... [详细]
  • 探讨ChatGPT在法律和版权方面的潜在风险及影响,分析其作为内容创造工具的合法性和合规性。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
author-avatar
0只0为0等0你0
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有