Python分析之3 种空间插值方法

插值是一个非常常见的数学概念,不仅数据科学家使用它,而且各个领域的人们也使用它。然而,在处理地理空间数据时,插值变得更加复杂,因为您需要基于几个通常稀疏的观测值创建代表性网格。

在深入研究地理空间部分之前,让我们简要回顾一下线性插值。

为了演示的目的,我将使用正则多项式函数:

def F(x):
  return -2*x**3+x**2+2.1

x = np.arange(-5,5, 0.1)
y = F(x)

现在我们可以随机采样几个点 [-4.2, 0, 2.5] 并将它们连接在一起:

这称为线性插值,因为函数在每个区间都用一条直线来近似,现在,只知道函数在 3 个点的值,我们就可以找到区间 [-4.2;2.5] 内的值。

还有许多其他方法,它们具有更高的精度,但它们背后的想法是相同的:找到至少两个已知点之间的函数值。

现在是时候进入地理空间部分了。在本教程中,我们的目标是对NOAA提供的瑞士各地气象站点测量的每日平均气温进行空间插值。预期结果是温度网格,单元格分辨率为 0.1°。

首先,我们需要获取瑞士的行政边界并使用 geopandas 将其可视化:

import geopandas as gdp

shape = gpd.read_file('gadm41_CHE_0.shp')
shape.plot()

 

现在让我们绘制温度观测值并将其与国家形状叠加。为此,我们将气象数据加载到常规 pandas 数据框中,然后将其转换为 geopandas 数据框,并将坐标转换为形状点:

import pandas as pd
from shapely.geometry import Point

df = pd.read_csv('3639866.csv')

points = list()
for i in range(len(df)):
  point = Point(df.loc[i, 'LONGITUDE'], df.loc[i, 'LATITUDE'])
  points.append(point)

gdf = gpd.GeoDataFrame(geometry=points).set_crs(shape.crs)

完成此操作后,我们可以使用matplotlib轻松覆盖两个数据帧。

fig, ax = plt.subplots(figsize=(16,9))
shape.plot(ax=ax, color='black')
gdf.plot(ax=ax, color='r', markersize=85)
plt.show()

为了可视化我们的任务,让我们创建用于插值的网格并将其与上面的地图重叠:

import matplotlib.ticker as mticker
import cartopy.crs as ccrs
from cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTER

LAT, LON = np.arange(45.75, 48, 0.1), np.arange(6, 10.81, 0.1)

fig, ax = plt
  • 45
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
克里金算法是一常用的空间插值方法,可以用于预测未知点的数值。在Python中,可以使用gma库来进行克里金空间插值。 首先,你需要导入gma和pandas库,并加载要进行插值的数据。你可以使用pandas的read_excel函数读取Excel文件中的数据,并将经度和纬度存储在Points变量中,将数值存储在Values变量中。 接下来,你可以使用gma库中的smc.Interpolate.Kriging函数进行克里金插值。在这个函数中,你可以设置一些参数,如分辨率、半变异函数模型、半变异函数参数、k值方法等。可以根据需要选择适当的参数配置。 最后,你可以使用gma库中的rasp.WriteRaster函数将插值结果写入栅格文件,以便进一步分析和可视化。在这个函数中,你可以设置输出文件路径、数据投影、转换矩阵、数据类型等。 需要注意的是,克里金算法提供的半变异函数模型有高斯、线性、球形、阻尼正弦和指数模型等,其中球形模型在气象要素场插值中比较适用。 希望这个回答对你有帮助,如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* *2* [【Python进阶】克里金插值法的实现过程](https://blog.csdn.net/qq_38140292/article/details/127953822)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gis收藏家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值