基于 Python 的地理空间绘图指南(以 gma 空间绘图功能为例)

2023-10-28 09:10

本文主要是介绍基于 Python 的地理空间绘图指南(以 gma 空间绘图功能为例),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 gma 简介

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

gma 的主要功能有哪些?

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

本文所用的 gma 版本及下载

目前,本文所用的 gma 版本 为 gma-1.1.5a15

系统 (X64): Window 10+
Python 版本: 3.10.9

下载地址:

链接:https://pan.baidu.com/s/12wyfOGo0IMsIQIca7iOrxg?pwd=9scj
提取码:9scj

其他版本可使用 pip install gma 安装

2 发展历程

gma 绘图功能以 ArcGIS 绘图功能为参考,目标是构建一个以 Python 为基础的快速地理绘图工具。
其大约与2022 年 11 月 疫情居家期间开始构建,目前开放(指的是可以直接调用,且有使用帮助的)功能包括:

  • plot:主要功能是创建地图框。
  • rcs: 为配合绘图功能,构建的扩展空间参考模块。目的在于初始化已有坐标系,并创建自定义坐标系。
  • inres:内置资源模块,主要提供 gma 内置的一些矢量数据、栅格数据,方便底图添加。

从 1.1.2 版本开始,gma 绘图功能的主要更新说明如下:

  • 1.1.2:新增 map 地图工具包,开始支持空间绘图(基于 gma 的 矢量图层(Layer)和栅格数据集类(DataSet))。
  • 1.1.3:添加栅格数据集绘制功能(离散型栅格)等。
  • 1.1.4:添加栅格数据集绘制功能(重分类或唯一值栅格)等,开始内置一些底图数据(世界国家、世界陆地和海洋DEM)。
  • 1.1.5(将在2023年4月的某个周末发布):添加矢量要素(Feature)绘制功能,添加更多的地图数据(湖泊、陆地、河流、海洋以及自然地球影像)。

其中也伴随着众多 BUG 修复和功能优化,以及一些配套函数的构建,例如(以下函数均位于gma.io 模块下):

CreateFeatureFromPoints:根据坐标点创建 Feature(然后可按照矢量要素的方法添加)
CreateLayerFromFeature:将多个Feature 合并生成 Layer(然后可按照矢量图层方法添加)
ReadArrayAsDataSet:将数组读取为 DataSet(然后可按照栅格数据集的方式添加)
TranslateFeatureToDataSet:将矢量要素转换为栅格数据集(类似于矢量转栅格)
TranslateLayerToDataSet:将矢量图层转换为栅格数据集(类似于矢量转栅格)

3 主要绘图思路与步骤

  1. 第一步:添加一个地图框。与 ArcGIS 地图框类似,后续所有数据均在地图框内添加和绘制。
  2. 第二步:添加数据(包括 矢量图层、矢量要素、栅格数据集等)、并配置参数(颜色、大小、宽度等)。与ArcGIS 类似,这些数据在添加到地图框后均会被重投影到地图框配置的底图坐标系上;可配置的参数类似ArcGIS的符号系统,例如矢量数据的背景色、边界色等,栅格数据的色带(颜色条)、拉伸方式(例如直方图均衡化)和数据变换(例如 gamma 变换)等。
  3. 第三步:添加地图整饰要素(例如:指北针、比例尺和图例等)。与 ArcGIS 的地图整饰要素类似,可通过参数控制颜色、大小、样式等。

4 主要绘图功能示例 (gma 1.1.5 +)

from gma.map import rcs, plot, inres

4.1 绘制包含国界线的自然地球图

# 1.初始化一个地图框,底图为 WGS84 坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.将内置的世界矢量图层添加到地图框
# 2.1 添加内置国界(矢量数据),并设置填充色透明,线宽 0.2,线黑色
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 1)
# 2.2 添加自然地球底图(RGB 栅格,不需要配置色带)
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.NaturalEarth)# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 设置地图框边框
Frame = MapF.SetFrame()

4.2 绘制陆地、海洋、河流和湖泊数据

# 1.初始化一个地图框,底图为 WGS84 坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = 'WGS84', Extent = None)# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(inres.WorldLayer.Land, FaceColor = 'white', LineWidth = 0.2, EdgeColor = 'black')
MapL2 = MapF.AddLayer(inres.WorldLayer.Lake, FaceColor = 'lightblue', LineWidth = 0.2, EdgeColor = '#BEE8FF', Zorder = 2)
MapL3 = MapF.AddLayer(inres.WorldLayer.River, LineColor = 'lightblue', LineWidth = 0.2, Zorder = 3)
MapL4 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 设置地图框边框
Frame = MapF.SetFrame()

4.3 最好把中国放在地图中央

# 0 使用 gma 定义一个中心经线为 150°E 的简易圆柱投影(即:改变了中央经线的地理坐标系)
Proj = rcs.CustomGCS(CentralLongitude = 150)# 1.初始化一个地图框,底图 0 定义的坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(inres.WorldLayer.Land, FaceColor = 'white', LineWidth = 0.2, EdgeColor = 'black')
MapL2 = MapF.AddLayer(inres.WorldLayer.Lake, FaceColor = 'lightblue', LineWidth = 0.2, EdgeColor = '#BEE8FF', Zorder = 2)
MapL3 = MapF.AddLayer(inres.WorldLayer.River, LineColor = 'lightblue', LineWidth = 0.2, Zorder = 3)
MapL4 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 设置地图框边框
Frame = MapF.SetFrame()

4.4 为添加的栅格数据集进行拉伸和变换(数据增强)

4.4.1 拉伸数据集(以百分比截断拉伸为例)

# 0 使用 gma 定义一个中心经线为 150°E 的简易圆柱投影(即:改变了中央经线的地理坐标系)
Proj = rcs.CustomGCS(CentralLongitude = 150)# 1.初始化一个地图框,底图 0 定义的坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
# 2.1 添加内置国界(矢量数据),并设置填充色透明,线宽 0.2,线黑色
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 1)
# 2.2 添加自然地球底图,并对数据进行百分比截断拉伸(相关参数详见:gma.math.Stretch)
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.NaturalEarth, Stretch = 'Percentage')# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 添加地图框边框
Frame = MapF.SetFrame()

4.4.2 变换数据集(以 Gamma 变换为例)

# 0 使用 gma 定义一个中心经线为 150°E 的简易圆柱投影(即:改变了中央经线的地理坐标系)
Proj = rcs.CustomGCS(CentralLongitude = 150)# 1.初始化一个地图框,底图 0 定义的坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
# 2.1 添加内置国界(矢量数据),并设置填充色透明,线宽 0.2,线黑色
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 1)
# 2.2 添加自然地球底图,并对数据进行 gamma 变换,并设置变换值(相关参数详见:gma.math.Correction)
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.NaturalEarth, Correction = 'Gamma', CorrectionPROP = dict(GammaV = 2))# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 添加地图框边框
Frame = MapF.SetFrame()

4.5 绘制单波段数据集,并为其配置色带

# 0 使用 gma 定义一个中心经线为 150°E 的简易圆柱投影(即:改变了中央经线的地理坐标系)
Proj = rcs.CustomGCS(CentralLongitude = 150)# 1.初始化一个地图框,底图 0 定义的坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
# 2.1 添加内置国界(矢量数据),并设置填充色透明,线宽 0.2,线黑色
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 1)
# 2.2 添加世界陆地和海洋 DEM ,并配置 jet 色带
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.DEM, CMap = 'jet')# 3.获取经纬网,但不显示经纬网,为地图框刻度使用
GridLines = MapF.AddGridLines(LineColor = 'none')# 4. 添加地图框边框
Frame = MapF.SetFrame()

4.6 在地图上绘制点、线、面

Points = [[112.5, 34.4], [30, 60], [2.3, 48.8], [47.5, -18.9]]
# 创建点、线、面 Feature
FPoints = plot.CreatePlotFeature(Points, Type = 'MultiPoint')
FLine = plot.CreatePlotFeature(Points, Type = 'Line')
FPolygon = plot.CreatePlotFeature(Points, Type = 'Polygon')# 1.初始化一个地图框
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.NaturalEarth, Zorder = 0)
# 2.2 添加面、线、点
MapL1 = MapF.AddFeature(FPolygon, FaceColor = (0.8, 0.5, 0.5, 0.5), Zorder = 1)
MapL2 = MapF.AddFeature(FLine, LineColor = 'green', LineWidth = 0.5, Zorder = 2)
MapL3 = MapF.AddFeature(FPoints, PointColor = 'red', PointSize = 2, Zorder = 3)MapF.AddGridLines(LineColor = 'none')
Frame = MapF.SetFrame()

4.7 换个视角看一下

Points = [[112.5, 34.4], [30, 60], [2.3, 48.8], [47.5, -18.9]]
# 创建点、线、面 Feature
FPoints = plot.CreatePlotFeature(Points, Type = 'MultiPoint')
FLine = plot.CreatePlotFeature(Points, Type = 'Line')
FPolygon = plot.CreatePlotFeature(Points, Type = 'Polygon')# 0 使用 gma 定义一个中心经线为 112°E 的 Albers 等面积投影
Proj = rcs.AlbersEqualArea(CentralLongitude = 112)# 1.初始化一个地图框,底图 0 定义的坐标系
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = None)# 2.将内置的世界矢量图层添加到地图框
MapD1 = MapF.AddDataSetDiscrete(inres.WorldDataSet.NaturalEarth, Zorder = 0)
# 2.2 添加面、线、点
MapL1 = MapF.AddFeature(FPolygon, FaceColor = (0.8, 0.5, 0.5, 0.5), Zorder = 1)
MapL2 = MapF.AddFeature(FLine, LineColor = 'green', LineWidth = 0.5, Zorder = 2)
MapL3 = MapF.AddFeature(FPoints, PointColor = 'red', PointSize = 2, Zorder = 3)MapF.AddGridLines(LineColor = 'none')
Frame = MapF.SetFrame()

5 从空间插值到地图绘制全过程

5.1 从反距离权重插值到绘图

示例数据下载:

链接:https://pan.baidu.com/s/1-lNWdo-V5bsa1r5JS_N4wg?pwd=agzp
提取码:agzp

5.1.1 读取数据并插值

# import gma
import pandas as pd
from gma import io
from gma.smc import Interpolate
from gma.map import rcs, plot, inresData = pd.read_excel("Interpolate.xlsx")
Points = Data.loc[:, ['经度','纬度']].values
Values = Data.loc[:, ['值']].values# 步骤1:反距离权重插值
IDWD = Interpolate.IDW(Points, Values, Resolution = 0.01, InProjection = 'WGS84')# 步骤2:将插值结果转换为 DataSet 数据集
IDWDataSet = io.ReadArrayAsDataSet(IDWD.Data, Projection = 'WGS84', Transform = IDWD.Transform)

5.1.2 绘图(离散型)

# 步骤3:绘图
# 0 使用 gma 定义一个中心经线为 125°E ,两条标准纬线为 40°N, 52°N 的 Albers 等面积投影
Proj = rcs.AlbersEqualArea(CentralLongitude = 125, StandardParallels = (40, 52))# 1.初始化一个地图框,并配置视图范围 
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = [112, 38, 138, 54])# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 2)
MapL2 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')MapD1 = MapF.AddDataSetDiscrete(IDWDataSet, CMap = 'jet', Zorder = 1)# 3.获取经纬网
GridLines = MapF.AddGridLines(LONRange = (100, 150, 5), LATRange = (30, 60, 5))# 4.设置地图框边框
Frame = MapF.SetFrame()

5.1.3 地图整饰要素(指北针、比例尺)修饰

# 0 使用 gma 定义一个中心经线为 125°E ,两条标准纬线为 40°N, 52°N 的 Albers 等面积投影
Proj = rcs.AlbersEqualArea(CentralLongitude = 125, StandardParallels = (40, 52))# 1.初始化一个地图框,并配置视图范围 
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = [112, 38, 138, 54])# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 2)
MapL2 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')MapD1 = MapF.AddDataSetDiscrete(IDWDataSet, CMap = 'jet', Zorder = 1)# 3.获取经纬网
GridLines = MapF.AddGridLines(LONRange = (100, 150, 5), LATRange = (30, 60, 5))# 4.添加地图整饰要素
AddCompass = MapF.AddCompass(LOC = (0.1, 0.8), Color = 'black')
ScaleBar = MapF.AddScaleBar(LOC = (0.1, 0.02), Width = 0.3, Color = 'black', FontSize = 7)# 5.设置地图框边框
Frame = MapF.SetFrame()

5.1.4 绘制重分类图并添加图例

# 0 使用 gma 定义一个中心经线为 125°E ,两条标准纬线为 40°N, 52°N 的 Albers 等面积投影
Proj = rcs.AlbersEqualArea(CentralLongitude = 125, StandardParallels = (40, 52))# 1.初始化一个地图框,并配置视图范围 
MapF = plot.MapFrame(Axes = None, BaseMapProj = Proj, Extent = [112, 38, 138, 54])# 2.将内置的世界矢量图层添加到地图框
MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 2)
MapL2 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')MapD1 = MapF.AddDataSetClassify(IDWDataSet,CMap = 'jet',Remap = [[-25, 0], [-20, 1], [-15, 2], [-10, 3],[-5, 4], [100, 5]],Method = 'Range', Labels = ['<= -25', '-25 ~ -20', '-20 ~ -15','-15 ~ -10','-10 ~ -5',' > -5'],Zorder = 1     )# 3.获取经纬网
GridLines = MapF.AddGridLines(LONRange = (100, 150, 5), LATRange = (30, 60, 5))# 4.添加地图整饰要素
AddCompass = MapF.AddCompass(LOC = (0.1, 0.8), Color = 'black')
ScaleBar = MapF.AddScaleBar(LOC = (0.1, 0.02), Width = 0.3, Color = 'black', FontSize = 7)
Legend = MapF.AddLegend(LegendName = '气温(℃)', TitleAlignment = 'left', PlotID = [2], LOC = (0.75, 0.5), TitleFont = 'SimSun')# 5.设置地图框边框
Frame = MapF.SetFrame()

5.2 其他插值方法(自然邻域法、克里金法、趋势面法、B-样条函数法)对比

import matplotlib.pyplot as pltTD = Interpolate.Trend(Points, Values, Resolution = 0.1)
KD = Interpolate.Kriging(Points, Values, Resolution = 0.1)
NND = Interpolate.NaturalNeighbor(Points, Values, Resolution = 0.1)
BSD = Interpolate.BSpline(Points, Values, Resolution = 0.1)TDDataSet = io.ReadArrayAsDataSet(TD.Data, Projection = 'WGS84', Transform = TD.Transform)
KDDataSet = io.ReadArrayAsDataSet(KD.Data, Projection = 'WGS84', Transform = KD.Transform)
NNDDataSet = io.ReadArrayAsDataSet(NND.Data, Projection = 'WGS84', Transform = NND.Transform)
BSDDataSet = io.ReadArrayAsDataSet(BSD.Data, Projection = 'WGS84', Transform = BSD.Transform)# 0 使用 gma 定义一个中心经线为 125°E ,两条标准纬线为 40°N, 52°N 的 Albers 等面积投影
Proj = rcs.AlbersEqualArea(CentralLongitude = 125, StandardParallels = (40, 52))PlotDS = [TDDataSet, KDDataSet, NNDDataSet, BSDDataSet]Titles = ['Trend', 'Kriging', 'NaturalNeighbor', 'BSpline']fig = plt.figure(figsize = (8, 6), dpi = 300)for i in range(4):Axes = plt.subplot(2, 2, i + 1)# 1.初始化一个地图框,并配置视图范围 MapF = plot.MapFrame(Axes = Axes, BaseMapProj = Proj, Extent = [110, 38, 140, 54])# 2.将内置的世界矢量图层添加到地图框MapL1 = MapF.AddLayer(inres.WorldLayer.Country, FaceColor = 'none', LineWidth = 0.2, EdgeColor = 'black', Zorder = 2)MapL2 = MapF.AddLayer(inres.WorldLayer.Ocean, FaceColor = '#BEE8FF', EdgeColor = 'none')MapD1 = MapF.AddDataSetClassify(PlotDS[i],CMap = 'jet',Remap = [[-25, 0], [-20, 1], [-15, 2], [-10, 3],[-5, 4], [100, 5]],Method = 'Range', Labels = ['<= -25', '-25 ~ -20', '-20 ~ -15','-15 ~ -10','-10 ~ -5',' > -5'],Zorder = 1     )# 3.获取经纬网GridLines = MapF.AddGridLines(LONRange = (100, 150, 5), LATRange = (30, 60, 5))# 4.添加地图整饰要素AddCompass = MapF.AddCompass(LOC = (0.1, 0.75), Color = 'black')ScaleBar = MapF.AddScaleBar(LOC = (0.1, 0.02), Width = 0.3, Color = 'black', FontSize = 7)if i == 3:Legend = MapF.AddLegend(LegendName = '气温(℃)', TitleAlignment = 'left', LabelFontSize = 5, PlotID = [2], LOC = (0.74, 0.35), HandleLength = 2.3,HandleHeight = 1.5,TitleFontSize = 7,TitleFont = 'SimSun')Frame = MapF.SetFrame()Axes.set_title(Titles[i], fontsize = 8, y = 0.85, fontdict = {'family':'Times New Roman'})fig.subplots_adjust(wspace = 0.02, hspace = 0.01)

6 其他相关拓展

6.1 查看当前系统所有色带

DefinedCMaps = plot.GetPreDefinedCMaps(PlotCMap = True)

(部分图)

6.2 查看当前系统所有字体

SystemFonts = plot.GetSystemFonts(ShowFonts = True)

(部分图)

这篇关于基于 Python 的地理空间绘图指南(以 gma 空间绘图功能为例)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/292203

相关文章

C#实现系统信息监控与获取功能

《C#实现系统信息监控与获取功能》在C#开发的众多应用场景中,获取系统信息以及监控用户操作有着广泛的用途,比如在系统性能优化工具中,需要实时读取CPU、GPU资源信息,本文将详细介绍如何使用C#来实现... 目录前言一、C# 监控键盘1. 原理与实现思路2. 代码实现二、读取 CPU、GPU 资源信息1.

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

python管理工具之conda安装部署及使用详解

《python管理工具之conda安装部署及使用详解》这篇文章详细介绍了如何安装和使用conda来管理Python环境,它涵盖了从安装部署、镜像源配置到具体的conda使用方法,包括创建、激活、安装包... 目录pytpshheraerUhon管理工具:conda部署+使用一、安装部署1、 下载2、 安装3

Python进阶之Excel基本操作介绍

《Python进阶之Excel基本操作介绍》在现实中,很多工作都需要与数据打交道,Excel作为常用的数据处理工具,一直备受人们的青睐,本文主要为大家介绍了一些Python中Excel的基本操作,希望... 目录概述写入使用 xlwt使用 XlsxWriter读取修改概述在现实中,很多工作都需要与数据打交

使用Python实现在Word中添加或删除超链接

《使用Python实现在Word中添加或删除超链接》在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能,本文将为大家介绍一下Python如何实现在Word中添加或... 在Word文档中,超链接是一种将文本或图像连接到其他文档、网页或同一文档中不同部分的功能。通过添加超

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的