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

这篇具有很好参考价值的文章主要介绍了基于 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()

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

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()

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

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()

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

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()

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

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()

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

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()

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

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()

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

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()

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

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, inres

Data = 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()

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

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()

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

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()

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

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

import matplotlib.pyplot as plt

TD = 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)


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

6 其他相关拓展

6.1 查看当前系统所有色带

DefinedCMaps = plot.GetPreDefinedCMaps(PlotCMap = True)

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

6.2 查看当前系统所有字体

SystemFonts = plot.GetSystemFonts(ShowFonts = True)

(部分图)
基于 Python 的地理空间绘图指南(以 gma 空间绘图功能为例)文章来源地址https://www.toymoban.com/news/detail-407742.html

到了这里,关于基于 Python 的地理空间绘图指南(以 gma 空间绘图功能为例)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 地理空间分析12——地理位置数据隐私与安全

    在数字化时代,地理位置数据成为了众多应用程序和服务不可或缺的一部分。从导航应用到社交媒体,从广告定位到城市规划,地理位置数据的应用范围广泛。然而,这些数据的收集和使用也引发了广泛的隐私和安全担忧。本文将探讨地理位置数据隐私的挑战和重要性,并介

    2024年03月19日
    浏览(54)
  • matlab做经济地理、地理距离、经济距离空间权重矩阵

    首先讲下地理加权空间权重矩阵: 该矩阵的经济含义是通过不同点的坐标系之间的距离远近来衡量两地之间的关系重要程度,当两点之间距离较远,所占的权重越低,而距离越近,权重越高。故操作如下: 首先需要导入坐标数据: A=csvread(\\\'JWD.csv\\\',1,0); % JWD.csv是文件名,csvrea

    2023年04月12日
    浏览(38)
  • Elasticsearch 地理空间计算

      地理位1置搜索:使用查询API进行搜索 1、Geo Distance Query Geo Distance Query是在给定的距离范围内搜索数据的查询。例如,可以搜索给定地理位置附近指定距离内的所有文档。 2、 Geo Bounding Box Query Geo Bounding Box Query是一种以四边形形式搜索地理坐标数据的查询。它可以定义顶点

    2024年02月12日
    浏览(55)
  • Python地理数据处理 22:基于arcpy批量操作(四)

    代码描述:遍历a文件夹下的所有tif影像,并使用每个a文件夹中的tif影像对b文件夹下的所有tif影像进行裁剪。裁剪后的栅格将以两个tif文件进行组合命名,并保存到另一个文件夹中。 获取栅格数据的平均值,并输出程序运行进度: 程序运行进度: 某文件夹中包含多个子文件

    2024年02月04日
    浏览(46)
  • Elasticsearch 地理空间搜索 - 远超 OpenSearch

    作者:来自 Elastic Nathan_Reese 2021 年,OpenSearch 和 OpenSearch Dashboards 开始作为 Elasticsearch 和 Kibana 的分支。 尽管 OpenSearch 和 OpenSearch Dashboards 具有相似的血统,但它们不提供相同的功能。 在分叉时,只能克隆开源许可的功能。 这给 OpenSearch 留下了一部分功能。 自分叉以来,这种

    2024年02月01日
    浏览(36)
  • Python地理数据处理 二十一:基于arcpy批量操作(三)

    实现将给定的 .shp 文件中的所有省份作为裁剪范围,对给定的 .tif 文件进行裁剪,输出所有省份的单独 .tif 文件: 实现对文件名前14个字符一样的tif图像进行栅格运算求和: 如:XXXX_XXX_2003.M01_Mean、XXXX_XXX_2003.M02_Mean、XXXX_XXX_2003.M03_Mean;XXXX_XXX_2004.M01_Mean、XXXX_XXX_2004.M02_Mean、

    2024年02月01日
    浏览(50)
  • kaggle学习笔记-情感和地理空间分析

    秘鲁食品评论中的情绪和地理空间分析 自然语言处理 (NLP) 是人工智能的一个分支,致力于让计算机能够像人类一样理解文本和口语单词。 另一方面,地理空间分析是对图像、GPS、卫星摄影和历史数据的收集、显示和操作,这些数据以地理坐标明确描述,或以街道地址、邮政

    2024年02月16日
    浏览(38)
  • 地理信息系统原理-空间数据结构(7)

    ​四叉树编码 1.四叉树编码定义 四叉树数据结构是一种对栅格数据的压缩编码方法,其基本思想是将一幅栅格数据层或图像等分为四部分,逐块检查其格网属性值(或灰度);如果某个子区的所有格网值都具有相同的值,则这个子区就不再分割,否则还要把这个子区再分割成

    2024年02月06日
    浏览(56)
  • Redis Geo:掌握地理空间数据的艺术

    欢迎来到我的博客,代码的世界里,每一行都是一个故事 在移动互联网和物联网的时代,地理位置数据无处不在。从导航和配送到社交网络和广告,地理位置信息正在重新定义我们与世界的互动方式。但是,处理和分析这些大量的地理空间数据绝非易事。这时,Redis Geo应运而

    2024年02月02日
    浏览(39)
  • HarmonyOS鸿蒙开发指南:基于ArkTS的声明式开发范式 声明式UI开发实例 绘图与动画

    目录 绘制图形 绘制基本几何图形 绘制自定义几何图形 animateTo实现闪屏动画 页面转场动画 绘制能力主要是通过框架提供的绘制组件来支撑,支持svg标准绘制命令。 本节主要学习如何使用绘制组件,绘制详情页食物成分标签(基本几何图形)和应用Logo(自定义图形)。

    2024年01月17日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包