Python二维插值(scipy.interpolate.interp2d)注意输入参数维度问题

2023-05-16

问题描述

SGLI将数据的经纬度进行了重采样,例如本来是10001000的图像重采样到了100100像元,这导致在对影像插值时需要先把经/纬度重采样到1000*1000,本文主要记录在重采样中遇到的输入数据维度问题

scipy.interpolate.interp2d二维插值

scipy.interpolate.interp2d是我主要用到的方法,当然还有其他的二维插值方法本文并不涉及,我最开始采用了如下方法进行二维插值
https://zhuanlan.zhihu.com/p/565489268
但是发现效果并不好。下面待插值数据记为原始数据,想要的插值后的数据记为目标数据。
原始数据:
在这里插入图片描述
可以看到空间过度比较平滑。然后我采用了二维线性插值,这里以https://zhuanlan.zhihu.com/p/565489268给出的代码为例(图和代码不匹配,但是原理一样):

from scipy.interpolate import interp2d
import numpy as np
import matplotlib.pyplot as plt
#x,y数据为1维
x=np.arange(1,11)
y=np.arange(1,11)
#X,Y为二维
X,Y = np.meshgrid(x,y)
#R或者Z可以类比为原始影像经纬度,x,y类比为图像行列坐标
R = np.sqrt(X**2 +Y**2)
Z = np.sin(R)
#X1,Y1类别为目标影像行列坐标,需要根据此坐标插值获得目标影像的经纬度
x1 = np.arange(1,10.2,0.2)
y1 = np.arange(1,10.2,0.2)
X1,Y1 = np.meshgrid(x1,y1)
# 原文方法interp2d输入的是二维的坐标数据,kind='linear'
f1 = interp2d(X,Y,Z,kind='linear')
Z1 = f1(x1,y1)	#注意这里也是一维的

依照上述代码,插值结果如下
在这里插入图片描述
粗看没有什么我呢提,但是细看会发现右边有类似条形噪声的现象,具体原理上的问题并不清楚,欢迎大佬指点,这里只说现象。这导致后面的重投影的时候,像元的空间顺序是乱的。

解决方法

然后参考了scipy的原始文档(https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html#scipy.interpolate.interp2d),发现f1 = interp2d(X,Y,Z,kind=‘linear’)这里输入的数据维度应该是一维的,也就是x,y,而不是X,Y。

from scipy import interpolate
x = np.arange(-5.01, 5.01, 0.25)
y = np.arange(-5.01, 5.01, 0.25)
xx, yy = np.meshgrid(x, y)
z = np.sin(xx**2+yy**2)
f = interpolate.interp2d(x, y, z, kind='cubic')	#这里是一维的输入

进行上述修改后获得了满意的结果。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python二维插值(scipy.interpolate.interp2d)注意输入参数维度问题 的相关文章

  • 将 yerr/xerr 绘制为阴影区域而不是误差线

    在 matplotlib 中 如何将误差绘制为阴影区域而不是误差条 例如 而不是 忽略示例图中各点之间的平滑插值 这需要进行一些手动插值 或者只是获得更高分辨率的数据 您可以使用pyplot fill between https matpl
  • 如何删除 PyCharm 中的项目?

    如果我关闭一个项目 然后删除该项目文件夹 则在 PyCharm 重新启动后 会再次创建一个空的项目文件夹 只需按顺序执行以下步骤即可 他们假设您当前在 PyCharm 窗口中打开了该项目 单击 文件 gt 关闭项目 关闭项目 在 PyCha
  • 定义Python源代码编码的正确方法

    PEP 263 http www python org dev peps pep 0263 定义如何声明Python源代码编码 通常 Python 文件的前两行应以以下内容开头 usr bin python coding
  • 如何为未捕获的异常处理程序编写单元测试

    我有一个函数可以捕获uncaught例外情况 如下 有没有办法编写一个单元测试来执行uncaught exception handler 功能正常 但测试正常退出 import logging def config logger logge
  • 指示电子邮件的类型

    我有以下自动化程序 它将电子邮件发送给我自己 并添加了特定的链接 import win32com client as win32 import easygui import tkinter as to from tkinter import
  • 将 C++ 指针作为参数传递给 Cython 函数

    cdef extern from Foo h cdef cppclass Bar pass cdef class PyClass cdef Bar bar def cinit self Bar b bar b 这总是会给我类似的东西 Can
  • 以类型化内存视图作为成员的结构定义

    目前我正在尝试让一个具有类型化内存视图的结构能够工作 例如 ctypedef struct node unsigned int inds 如果 inds 不是内存视图 据我所知 它可以完美地工作 然而 通过内存视图并使用类似的东西 def
  • numpy:高效执行数组的复杂重塑

    我正在将供应商提供的大型二进制数组读入 2D numpy 数组 tempfid M N load data data numpy fromfile file dirname fid dtype numpy dtype i4 convert
  • 如何使用 Homebrew 在 Mac 上安装 Python 2 和 3?

    我需要能够在 Python 2 和 3 之间来回切换 我如何使用 Homebrew 来做到这一点 因为我不想弄乱路径并陷入麻烦 现在我已经通过 Homebrew 安装了 2 7 我会用pyenv https github com yyuu
  • python 中的 h2o 框架子集

    如何在 python 中对 h2o 框架进行子集化 如果 x 是一个 df 并且 Origin 是一个变量 那么在 pandas 中我们通常可以通过以下方式进行子集化 x x Origin AAF 但使用 h2o 框架会出现以下错误 H2O
  • 在Python中读取tiff标签

    我正在尝试用 Python 读取 tiff 文件的标签 该文件是 RGB 的uint16每个通道的值 我目前正在使用tifffile import tifffile img tifffile imread file tif 然而 img是一
  • 在 Mac OS X 上安装 libxml2 时出现问题

    我正在尝试在我的 Mac 操作系统 10 6 4 上安装 libxml2 我实际上正在尝试在 Python 中运行 Scrapy 脚本 这需要我安装 Twisted Zope 现在还需要安装 libxml2 我已经下载了最新版本 2 7 7
  • Jupyter 笔记本中未显示绘图图表

    我已经尝试解决这个问题几个小时了 我按照上面的步骤操作情节网站 https plot ly python getting started start plotting online并且图表仍然没有显示在笔记本中 这是我的情节代码 color
  • Python 2 的 `exceptions` 模块在 Python3 中丢失了,它的内容到哪里去了?

    一位朋友提到 对于 Python 2 假设您在命令行上的路径环境变量中有它 pydoc exceptions 非常有用 知道它应该可以为他每周节省几分钟的网络查找时间 我自己每周都会用谷歌搜索一次例外层次结构 所以这对我来说也是一个有用的提
  • Flask 应用程序路由中的多个参数

    烧瓶怎么写app route如果我在 URL 调用中有多个参数 这是我从 AJax 调用的 URL http 0 0 0 0 8888 createcm summary VVV change Feauure 我试图写我的烧瓶app rout
  • 无法在 PyCharm 版本 9.3.3 中安装 NumPy。 Python版本3.8.2

    在 PyCharm 中安装 NumPy 时出错 尝试安装 Microsoft Visual C 14 0 还是行不通 NumPy 正在通过命令安装pip3 install numpy在 cmd 终端中 但是当尝试将其安装在 PyCharm
  • PyQt5:如何使QThread返回数据到主线程

    I am a PyQt 5 4 1 1初学者 我的Python是3 4 3 这是我尝试遵循的many https mayaposch wordpress com 2011 11 01 how to really truly use qthr
  • 将时间添加到日期时间

    我有一个像这样的日期字符串 然后使用strptime 所以就像这样 my time datetime datetime strptime 07 05 15 m d Y 现在我想添加 23 小时 59 分钟my time 我努力了 timed
  • django jet 中的自定义徽标

    我目前正在尝试对 django 管理面板的皮肤进行一些定制 以使其更符合我们的品牌 目前我们使用 django jet 来美化管理面板 django jet 可以自定义 css html 吗 所有评论都说我应该更改一些 html 文件 但我
  • Python 中的 Unix cat 函数 (cat * > merged.txt)? [复制]

    这个问题在这里已经有答案了 一旦建立了目录 有没有办法在Python中使用Unix中的cat函数或类似的函数 我想将 files 1 3 合并到 merged txt 我通常会在 Unix 中找到该目录 然后运行 cat gt merged

随机推荐

  • qt弹窗界面模态设置

    1 模态说明 模态 xff1a 启动模态界面时 xff0c 例如弹出对话框强制用户从其他正在进行的业务中聚焦到当前对话框 xff0c 除了该对话框整个应用程序窗口都无法接受用户响应 xff0c 无法切换界面 xff0c 无法切换当前Qt应用
  • QTabWidget常用样式设置

    1 前言 个人使用qt xff0c 感觉QTabwidget是个非常好用的控件 xff0c 但有时候总是感觉其tab样式不好控制或说不够灵活 xff0c 从而导致放弃使用该控件 比如说 xff0c 标签横向显示的时候 xff0c 文字随之也
  • qt环形进度条控件设计

    上效果 推荐文章 xff1a qt电池控件设计 xff1a https blog csdn net weixin 42887343 article details 113932145QWidget控件拖动 xff1a https blog
  • GPL协议认识

    图片链接 xff1a https www runoob com w3cnote open source license html GPL协议 1 GPL GNU General Public License xff0c GNU通用公共许可协
  • C++中的Lambda函数

    Lambda函数也叫匿名函数 xff0c 是自定义函数的一种 专指用关键字 lambda 定义的无名短函数 xff0c 所以也有Lambda表达式这种说法 这种函数得名于省略了用def声明函数的标准步骤 xff0c 是C 43 43 11中
  • go语言判断文件是否为UTF8编码

    一 思路 xff1a 1 UTF8编码规则 xff1a 对于单字节字符 xff0c 8个比特位最高位为0 对于多字节字符 xff0c 若字符由n个字节组成 xff0c 则第一个字节8个比特中最高n位都是1 xff0c 剩下n 1字节中最高位
  • qtcreator调试经常断点导致卡死问题解决

    一 问题描述 在qt开发中 xff0c 使用debuging进行调试 xff08 点击下面按钮 xff09 总会出现 xff0c 软件运行还好 xff0c 就是运行到断点的时候 xff0c 软件一直在等待卡死 在windows上面没有遇到过
  • python+opencv读取摄像头并显示

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 打开本地摄像头 span cap span class to
  • python+opencv拉流(串流)

    解释看注释 xff0c 直接上代码 xff01 span class token keyword import span cv2 span class token comment 流链接 span url span class token
  • python+opencv做一个视频录制器(mp4)

    1 功能说明 代码的功能就是读取摄像头视频显示 xff0c 并同时保存为mp4文件 xff0c 示例代码为1小时保存一个视频 2 代码 解释看注释 xff0c 直接上代码 xff01 span class token keyword imp
  • [Python] Pandas 中 read_csv 与 read_hdf 速度对比

    1 read csv VS read hdf 一般情况下 我们习惯使用 Pandas 中的 read csv 函数来读取 CSV 文件 但当 CSV 文件比较大时 read csv 的速度会显得有点慢 这时可以考虑使用 HDF5 格式来存储
  • inode节点(详解)

    首先 xff0c 要明确理解inode是理解Linux Unix文件系统和硬盘存储的基础 1 什么是inode xff1f 理解inode xff0c 要从文件存储说起 文件存储在硬盘上 xff0c 硬盘的最小存储单位叫做 扇区 每个扇区能
  • 8b/10b编码技术系列(一):Serdes、CDR、K码

    和大家分享一下关于8b 10b编码的知识点 xff0c 如有什么错误之处或大家有什么额外的见解欢迎大家公众号后台留言 xff01 一 Serdes高速收发器 在传统的源同步传输中 xff0c 数据和时钟分离 xff0c 在速率较低 lt 1
  • Java处理文件时常用的文件类型及对应的contentType

    2023 3 02 项目管理系统中对项目文档的处理 本来全部设置的是二进制流 xff0c 发现下载后没有文件类型和文件名称 对应的解决办法 xff1a 上传 下载的时候对文件类型进行说明 上传 span class token keywor
  • 51单片机入门-点亮第一个LED灯

    前期准备 keil软件的安装 可以参考我的另一篇文章 https blog csdn net weixin 42911200 article details 81590158 安装烧录软件和添加单片机 由于笔者所用的芯片为STC89C52
  • 基于Docker的容器集群调度机制的设计与实现

    本文来自于北京邮电大学2018年硕士论文的整理 xff0c 作者李战 论文主要分为如下四部分 一 集群调度架构总结 1 xff09 中央式架构 最原始 xff0c k8s xff0c swarm均是该调度方式 由于所有任务都由唯一的调度器处
  • Linux版的Mysql基本操作命令整理

    1 更改密码 SET PASSWORD 61 PASSWORD 39 123456 39 ALTER USER 39 root 39 64 39 localhost 39 PASSWORD EXPIRE NEVER flush privil
  • 关于MySQL5.7 密码策略/审计日志开启详细步骤

    一 配置密码策略 登录mysql xff1a mysql u root p 输入密码 xff1a xxxxxx xff08 以实际情况为例 xff0c 例如 xff1a 123456 xff09 目标密码策略 xff1a 至少一个大写 至少
  • 软件测试的基本理论-黑盒测试-1

    黑盒测试方法 一 黑盒测试方法1 xff0c 等价类划分法a 等价类划分概述等价类划分 b xff1a 设计测试用例等价类划分demo 2 边界值分析法边界值分析法概述边界值分析法demo 3 因果图方法因果图设计方法因果图设计demo 4
  • Python二维插值(scipy.interpolate.interp2d)注意输入参数维度问题

    问题描述 SGLI将数据的经纬度进行了重采样 xff0c 例如本来是10001000的图像重采样到了100100像元 xff0c 这导致在对影像插值时需要先把经 纬度重采样到1000 1000 xff0c 本文主要记录在重采样中遇到的输入数