热门标签 | 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)

图片


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





推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 解决python matplotlib画水平直线的问题
    本文介绍了在使用python的matplotlib库画水平直线时可能遇到的问题,并提供了解决方法。通过导入numpy和matplotlib.pyplot模块,设置绘图对象的宽度和高度,以及使用plot函数绘制水平直线,可以解决该问题。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
  • EPPlus绘制刻度线的方法及示例代码
    本文介绍了使用EPPlus绘制刻度线的方法,并提供了示例代码。通过ExcelPackage类和List对象,可以实现在Excel中绘制刻度线的功能。具体的方法和示例代码在文章中进行了详细的介绍和演示。 ... [详细]
  • 十大经典排序算法动图演示+Python实现
    本文介绍了十大经典排序算法的原理、演示和Python实现。排序算法分为内部排序和外部排序,常见的内部排序算法有插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。文章还解释了时间复杂度和稳定性的概念,并提供了相关的名词解释。 ... [详细]
  • 超级简单加解密工具的方案和功能
    本文介绍了一个超级简单的加解密工具的方案和功能。该工具可以读取文件头,并根据特定长度进行加密,加密后将加密部分写入源文件。同时,该工具也支持解密操作。加密和解密过程是可逆的。本文还提到了一些相关的功能和使用方法,并给出了Python代码示例。 ... [详细]
  • 工作经验谈之-让百度地图API调用数据库内容 及详解
    这段时间,所在项目中要用到的一个模块,就是让数据库中的内容在百度地图上展现出来,如经纬度。主要实现以下几点功能:1.读取数据库中的经纬度值在百度上标注出来。2.点击标注弹出对应信息。3 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
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社区 版权所有