gma 地理空间绘图:(1)绘制简单的世界地图-1.地图绘制与细节调整

article/2025/10/11 4:58:55

了解 gma

gma 是什么?

gma 是一个基于 Python 的地理、气象数据快速处理和数据分析函数包(Geographic and Meteorological Analysis,gma)。gma 网站:地理与气象分析库。

gma 的主要功能有哪些?

气候气象(例如 SPEI、SPI、ET0 等)。
遥感指数(例如 NDVI、EVI、TVDI 等)。
数学运算(例如 数据平滑、评估、滤波、拉伸、增强变换等)。
系统交互(例如 获取路径、重命名、压缩等操作)。
空间杂项(例如 计算空间距离、面积计算,坐标转换、空间插值等操作)。
栅格处理(例如 栅格镶嵌、裁剪、重采样、重投影、格式转换、数据融合等)。
栅格分析(例如 DEM 坡度、坡向、阴影、等值线等计算)。
矢量处理(例如 矢量裁剪、擦除、交集、融合、重投影等)。
地图工具(例如 栅格、矢量数据绘图,指北针、比例尺等生成,坐标系定义等)

gma 的安装要求?

系统 (X64): Window 10+,Linux
Python 版本: 3.8.8 ~ 3.10,建议使用 3.9

gma 哪个版本开始支持空间绘图?

gma 1.1.2 及之后的版本
点击查看:gma 1.1.2 版本的新增内容

基于 gma 绘制简单的世界地图

本文基于 gma 1.1.2 (Python 3.9) ,为大家展示绘制世界地图(gma 内置的世界国家和地区),如果有自有的高精度世界地图,也可按照此方法绘制。

1. 绘制世界地图

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.将内置的世界矢量图层添加到地图框 
MapL1 = MapF.AddLayer(WorldLayer)

请添加图片描述

2. 其他参数说明

自 gma 1.1.0 起,gma 不在内置中文帮助。

2.1 MapFrame 帮助

'''
Initialize a map frame for plotting a map!**Optional
----------
Axes = None or matplotlib.~.AxesSubplot. Default None.A matplotlib subplot. If None, a default Axes will be created. BaseMapProj = str, int or SpatRef. Default 'WGS84'.Base map coordinate system. All data that added to this frame will be reprojectedto this coordinate system. Can be EPSG, WKT, Proj4, and other types of coordinatecharacters or SpatRef(gma spatial reference) class.Extent = list or None. Default None.Plot [left, bottom, right, top] extent(In WGS84). All data that added to this mapframe will be clipped to this extent. Default(None) is the maximum extent supportedby the base map coordinate system.
'''

在这里插入图片描述

2.2 AddLayer 帮助

'''
Add a layer to the map frame.Parameters
----------
GMALayer: gma.algorithm.core.dataio.Layer.A vector layer opened by gma.Open(.GetLayer).**Optional
----------
FID = list or None. Default None.The feature ID of the vector to plot. Default(None) all feature.For more, see gma.~.Layer.FaceColor = str, tuplt, list or None. Default '#BED2FF'.The polygon fill color. Only for 'Polygon' layers. If None, a random color willbe generated. If it is a list, assign a different color to each feature. For more,see matplotlib.EdgeColor = str, tuplt, list or None. Default '#B2B2B2'.The polygon edge color. Only for 'Polygon' layers. If None, a random color willbe generated. If it is a list, assign a different color to each feature.For more, see matplotlib.Hatch = str, list or None. Default None.Filling style. May be {'/', '\', '|', '-', '+', 'x', 'o', 'O', '.', '*'} or acombination thereof. Only for 'Polygon' layers. Default(None) no filling style.If it is a list, assign a different hatch to each feature. For more, see matplotlib.LineStyle = str, list, tuple, or None. Default None.Line style. May be {'-', '--', '-.', ':', '', (offset, on-off-seq), ...}.If it is a list,assign a different line style to each feature. Default(None) no line style.For more, see matplotlib.LineWidth = float or list. Default 0.5.Line width. In font-size units. If it is a list, assign a differentline width to each feature. LineColor = str, tuplt, list or None. Default '#B2B2B2'.The line color. Only for 'Line' layers. If None, a random color will be generated.Ifit is a list, assign a different color to each feature. For more, see matplotlib.PointColor = str, tuplt, list or None. Default '#BED2FF'.The point color. Only for 'Point' layers. If None, a random color will be generated.If it is a list, assign a different color to each feature. For more, see matplotlib.PointSize = float, list or None. Default None.The point size. Only for 'Point' layers. If it is a list, assign a different size to each feature.Default(None) depends on the matplotlib setting.PointMarker = str, list or None. Default None.The point marker. Only for 'Point' layers. Default(None) depends on the matplotlib setting.If it is a list, assign a different marker to each feature.Labels = str or None. Default None.Manually set the feature labels. The number should be the same as the number of layer features.Otherwise, the shortfall will be assigned as null. Default(None) no labels.FieldName = list, str or None. Default None.Layer field used to configure the label. If 'FieldName' is configured, 'Label' will be disabled.Default(None) no labels.Connector = str. Default ''.If 'FieldName' configures more than one field, the fields are connected with this symbol.Zorder = int or None. Default None.The layer order. Used to control the order of the layers. Default(None) depends on thematplotlib setting.Returns
----------
gma.~.PlotLPolygon/PlotLLine/PlotLPoint.'''

简单的世界地图细节调整

本例仅针对多边形的边界线、填充内容进行示例。其他参数参考2.2 进行调整和测试。

1. 调整边界线

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.添加图层,并调整 边界线的颜色和线的宽度
MapL1 = MapF.AddLayer(WorldLayer, EdgeColor = 'gray', LineWidth = 0.2)

请添加图片描述

2. 调整填充色

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.添加图层,并调整 填充颜色
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = 'gray')

请添加图片描述

3. 调整填充样式

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.添加图层,并调整 填充样式
MapL1 = MapF.AddLayer(WorldLayer, Hatch = '*/')

请添加图片描述

4. 为每个国家或地区分配随机颜色

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.添加图层,并为每个国家或地区分配随机颜色
### FaceColor = None 相当于生成了一个颜色列表,列表中的每个颜色都是随机的。
### 列表颜色数量与国家或地区数量相同(所有类似的参数均可按照此说明配置)。
MapL1 = MapF.AddLayer(WorldLayer, FaceColor = None)

请添加图片描述

地图框控制

1. 调整底图坐标系

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,调整底图坐标系为 WGS 84 / Pseudo-Mercator(EPSG: 3857)
### 又名 web墨卡托投影,Spherical Mercator, Google Maps, OpenStreetMap, Bing, ArcGIS, ESRI等均使用此投影!
MapF = plot.MapFrame(Axes = None, BaseMapProj = 3857, Extent = None)# 2.添加图层
MapL1 = MapF.AddLayer(WorldLayer)

请添加图片描述

2. 控制显示范围

from gma.map import plot# 0. 打开 gma 内置的世界矢量
WorldDS = plot.GetWorldDataSource()
WorldLayer = WorldDS.GetLayer(0)# 1.初始化一个地图框,用于绘图
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = (-10, 30, 30, 60))# 2.添加图层
MapL1 = MapF.AddLayer(WorldLayer)

请添加图片描述


http://chatgpt.dhexx.cn/article/XccIfGRO.shtml

相关文章

ArcGIS地图制图

个人学习笔记,仅供学习交流。 参考书籍:《ArcGIS从0到1》 文章目录 专题图的制作一般专题单一符号类别专题数量专题柱状图(直方图) 符号匹配专题两个面图层覆盖专题设置行政区边界线色带制作 点符号的制作线面符号的制作线符号制作…

R语言绘制地图

R绘制地图的话,大多数用到的包都是maptools,用来读取phd文件,phd文件需要自己提前下载到工作目录,但是大多数phd文件都不能精确到市区。只能绘制声级,国家级和世界地图。 本文以武汉是举例。首先在下列网站地图选择器…

地图区域绘制

背景 需要实现地图区域绘制,并能提供给业务实现联动交互,可以按照省市县进行下钻,地图样式如下: 绘制实现方式 对于这种简约地图区域的绘制,需要提供区域的geo json文件,做地图的公司已经提供这种数据&…

ArcGIS:如何简单地制作一幅专题地图?

目录 01 加载原始数据 02 简单看一下属性表 03 对地块的人口密度用颜色进行分级显示 04 切换到布局视图 05 输出的大小,方向等设置 06 布局视图下的要素编辑 07 插入标题 08 对标题的大小颜色等进行编辑 09 插入图例 10 插入指北针 11 插入比例尺 12 调…

地图之美(地图制图)

开篇 地图学是研究地图的理论、编制技术与应用方法的科学。 现阶段对地图学的定义是:研究地理信息的表达、处理和传输的理论和方法,以地理信息可视化为核心,探讨地图的制作技术和使用方法的学科。 从地图本身概念出发,地图是将客…

在地图上绘制路线图

最近做个项目,官方给了车的一些经纬度数据,为了看的更清楚,需要把数据标注在地图上 想到了两套方案,第一种采用python的folium库 结果遇到问题,数据一多,绘画出来的速度很慢,而且它的某JS插件还…

python绘图——地图

地图相关绘图——basemap 参考1 安装 已安装anaconda的情况,运行一下代码 conda install basemap绘制地图 需导入的包 # 导入需要的包 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap绘制简单地图&#xff1a…

【地图自学系列】二、怎么画地图

怎么画地图 前言一、地球什么样二、怎么画(坐标系)1.地理坐标系和投影坐标系1.1 地理坐标系1.2 投影坐标系 2.国内常用坐标系3.试试能不能解释这些问题3.1 地理坐标系和投影坐标系的区别?3.2 有地理坐标系后,为什么还需要投影坐标…

pyecharts 地图绘制

环境描述 win11 jupyter notebook 目标效果 世界地图按数据进行分级着色;最终效果图如下: pyecharts 绘制地图时注意点 可以实现目标地图绘制效果的python库很多,这里用的是pyecharts,具体可百度。 最终结果如何以图片形式…

【Python】pyecharts 模块 ⑤ ( 地图绘制 | pyecharts 地图绘制步骤 | 为地图进行全局配置 )

文章目录 一、pyecharts 地图绘制1、pyecharts 地图绘制步骤2、代码示例 - pyecharts 地图绘制3、代码示例 - 为地图进行全局配置 pyecharts 画廊网站 : https://gallery.pyecharts.org/#/ 在该网站可查看官方示例 一、pyecharts 地图绘制 1、pyecharts 地图绘制步骤 首先 , 导…

地图轨迹图怎么做?可以自己绘制路线的地图

地图轨迹图是一种用于表示某个物体在某段时间内的移动轨迹的图表。它可以帮助我们更好地理解物体的移动轨迹,从而更好地分析和研究物体的移动轨迹。 地图轨迹图的制作需要以下几个步骤: 1.准备数据:首先,需要准备好物体的移动轨迹…

聊一聊我常用的6种绘制地图的方法

来源:萝卜大杂烩 今天来讲一讲在日常工作生活中我常用的几种绘制地图的方法,下面我将介绍下面这些可视化库的地图绘制方法,当然绘制漂亮的可视化地图还有很多优秀的类库,没有办法一一列举 pyecharts、plotly、folium、bokeh、base…

HBase数据库表的创建

实验三 HBase分布式数据库操作与编程 1、HBase Shell数据库表创建 【实验内容】 根据以下关系型数据库表,使用HBase Shell设计并创建适宜的HBase数据表。 2、创建表以及插入学生信息数据 (1)、启动Hadoop (2)、启…

Hbase笔记 —— 利用JavaAPI的方式操作Hbase数据库(往hbase的表中批量插入数据)

目录 直接在main函数中执行语句借助Test来运行方法删除表修改表结构列出来所有的表插入一条数据获取一行数据创建表批量读取文件中的数据&#xff0c;并且批量插入表中获取一组数据的值利用CellUtil改善读取数据方式 导入依赖 <dependency><groupId>org.apache.hba…

Java 访问Hbase数据库

须知 Hbase数据最终是在hdfs上的&#xff0c;具体来说应该是在hdfs上一个叫做/hbase的目录下。具体结构如下&#xff1a; 所以java访问Hbase其实就是访问hdfs&#xff0c;所以环境搭建跟hadoop开发环境使用没什么不同。 实战部分 1.导入需要的jar包&#xff0c;此处在java项…

大数据之HBase数据库

一、了解HBase 1.1 HBase简介 HBase是Apache的Hadoop项目的子项目 HBase不同于一般的关系数据库&#xff0c;它是一个适合于非结构化数据存储的数据库 建立在Hadoop文件系统之上的分布式面向列的数据库 属于开源项目&#xff0c;可以进行横向扩展 适用于需要实时地随机访问…

pinpoint的Hbase数据库的数据优化

pinpoint的Hbase数据库的数据优化 写的原因&#xff1a; 因为是测试服务器&#xff0c;在运行测试项目时&#xff0c;需要日志的打印输出&#xff0c;由于发现磁盘空间不足&#xff0c;想删除些东西&#xff0c;释放空间&#xff0c;然后发现pinpoint服务的Hbase数据库占据了1…

2.使用HBase数据库操作_实验环境Ubuntu

实验前期准备 ssh localhost //检测自己的ssh服务器设置 cd /usr/local/hadoop ./sbin/start-dfs.sh //启动Hadoop jps //查看hadoop是否启动成功 cd /usr/local/hbase bin/start-hbase.sh //启动hbase jps //查看hadoop是否启动成功 bin/hbase shell //打开hbase的…

猿如意工具Redis数据库,Memcached数据库,MongoDB数据库,HBase数据库等等

按照参考样例&#xff1a; 安装教程 在电脑上安装好猿如意之后。因为第一次使用就搜了下各种数据库使用的方式 猿如意工具 Redis数据库Memcached数据库MongoDB数据库HBase数据库MySQL WorkbenchDBeaverNavicat Lite Redis数据库 点击搜索了下Redis数据库&#xff0c;可看到以…

hbase数据库详解

本文首先简单介绍了HBase,然后重点讲述了HBase的高并发和实时处理数据 、HBase数据模型、HBase物理存储、HBase系统架构&#xff0c;HBase调优、HBase Shell访问等。 不过在此之前&#xff0c;你可以先了解 Hadoop生态系统 &#xff0c;若想运行HBase&#xff0c;则需要先搭建…