当前位置: 首页 > article >正文

基于 gma 绘制古代洛阳 5 大都城遗址空间分布地图

了解 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 版本的新增内容

了解古代洛阳 5 大都城遗址

历史上,夏、商、西周、东周、东汉、曹魏、西晋、北魏、隋、唐(含武周)、后梁、后唐、后晋等朝代先后在洛阳建都。洛阳的都城史长达1500年,是我国建都年代最早、朝代最多、时间最长的古都。

入选“百年百大考古发现”的五大都城遗址均分布在洛阳盆地腹心的伊洛平原上,沿洛河一线从东到西分别为偃师商城(商西亳城)、夏都二里头(夏斟鄩城)、汉魏洛阳城(周成周城、汉晋洛阳城、北魏洛阳城)、隋唐洛阳城和周王城。它们的东西距离只有30多公里,如此密集的都城分布举世罕见,人称“五都荟洛”。

注:周洛邑包含两座城:成周和王城。

开始绘制

数据准备

  1. 5大都成遗址矢量(.shp)文件:
    链接:https://pan.baidu.com/s/1BSDJT0AKOyJ2BC9xz9J5Yw?pwd=oljj
    提取码:oljj
  2. 卫星影像底图:谷歌影像下载后保存为 .tif 文件。

绘图代码

import gma
from gma.map import plot, rcs

# 0.数据准备
DuChengDS = gma.Open('5大都城遗址.shp')
DuChengLayer = DuChengDS.GetLayer(0)
TCI = gma.Open('LY-TCI.tif')

# 1.初始化一个地图框
MapF = plot.MapFrame(BaseMapProj = 3857, Extent = [112.35, 34.58, 112.8, 34.8])

# 1. 添加图层
## 1.1 添加 5 大都城遗址矢量
MapL1 = MapF.AddLayer(DuChengLayer, FaceColor = Colors, EdgeColor = 'gray', LineWidth = 0.1, Zorder = 1)
## 1.1.1 添加标注
MapL1.AddLabel(FieldName = ['Name', 'Time'], Connector = '\n', Font = 'KaiTi', FontSize = 6.5, Color = '#8B0000')

# 1.2 添加影像底图
MapD1 = MapF.AddDataSetDiscrete(TCI)

# 2.添加经纬网
Grid = MapF.AddGridLines(LONRange = (112.4, 112.8, 0.1), LATRange = (34.53, 44.83, 0.1), LineWidth = 0.2, LineColor = '#FFD700')

# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(FrameWidth = 0.5, LabelFontSize = 7, TickLength = 0.008, Precision = 2)

# *4.地图整饰要素(太丑了,可以不加)
## 4.1 添加指北针
Compass = MapF.AddCompass(LOC = (0.06, 0.8), Width = 0.05, Color = '#FFA500')
## 4.2 添加比例尺
ScaleBar = MapF.AddScaleBar(LOC = (0.1, 0.1), Width = 0.22)

干净清爽不带底图的

import gma
from gma.map import plot, rcs

# 0.数据准备
DuChengDS = gma.Open('5大都城遗址.shp')
DuChengLayer = DuChengDS.GetLayer(0)
TCI = gma.Open('LY-TCI.tif')

# 1.初始化一个地图框
MapF = plot.MapFrame(BaseMapProj = 3857, Extent = [112.35, 34.58, 112.8, 34.8])

# 1. 添加图层
## 1.1 添加 5 大都城遗址矢量
MapL1 = MapF.AddLayer(DuChengLayer, FaceColor = Colors, EdgeColor = 'gray', LineWidth = 0.1, Zorder = 1)
## 1.1.1 添加标注
MapL1.AddLabel(FieldName = ['Name', 'Time'], Connector = '\n', Font = 'KaiTi', FontSize = 6.5, Color = '#8B0000')

# 2.添加经纬网
Grid = MapF.AddGridLines(LONRange = (112.4, 112.8, 0.1), LATRange = (34.53, 44.83, 0.1), LineWidth = 0.2, LineColor = '#FFD700')

# 3.设置地图框(包括刻度和经纬度的标注)
Frame = MapF.SetFrame(FrameWidth = 0.5, LabelFontSize = 7, TickLength = 0.008, Precision = 2)

# *4.地图整饰要素(太丑了,可以不加)
## 4.1 添加指北针
Compass = MapF.AddCompass(LOC = (0.06, 0.8), Width = 0.05, Color = '#FFA500')
## 4.2 添加比例尺
ScaleBar = MapF.AddScaleBar(LOC = (0.1, 0.1), Width = 0.22)


http://www.kler.cn/a/1378.html

相关文章:

  • 使用vite创建vue3工程
  • 【SpringBoot项目实战】瑞吉外卖优化篇
  • 美团笔试-3.18
  • 微前端-qiankun
  • 分布式微服务架构下网络通信的底层实现原理
  • GPT-4最震撼我的一点
  • Python截图自动化工具
  • MySQL高级面试题整理
  • 面试造火箭?GitHub顶级“java 复习宝典“一一攻克!star破数十万
  • 计算机面试常见问答题目
  • 解读Flaky Test
  • 并发基础之线程池(Thread Pool)
  • SpringBoot(微服务)注册分布式Consul
  • 第十四届蓝桥杯三月真题刷题训练——第 15 天
  • Linux环境C语言开发基础
  • 进程和线程的区别和联系
  • Linux分文件编程:静态库与动态库的生成和使用
  • Java二叉树的前中后序遍历
  • Hive 数据倾斜
  • 超详细的堆排序,进来看看吧。