小编Dzz*_*Dzz的帖子

在Python中将不规则间隔的数据重新采样到常规网格

我需要将2D数据重新采样到常规网格.

这就是我的代码:

import matplotlib.mlab as ml
import numpy as np

y = np.zeros((512,115))
x = np.zeros((512,115))

# Just random data for this test:
data = np.random.randn(512,115)

# filling the grid coordinates:    
for i in range(512):
    y[i,:]=np.arange(380,380+4*115,4)

for i in range(115):
    x[:,i] = np.linspace(-8,8,512)
    y[:,i] -=  np.linspace(-0.1,0.2,512)

# Defining the regular grid
y_i = np.arange(380,380+4*115,4)
x_i = np.linspace(-8,8,512)

resampled_data = ml.griddata(x,y,data,x_i,y_i)
Run Code Online (Sandbox Code Playgroud)

(512,115)是2D数据的形状,我已经安装了mpl_toolkits.natgrid.

我的问题是我得到了一个蒙面数组,其中大部分条目都是nan,而不是一个主要由常规条目组成的数组,而边界只有nan.

有人能指出我做错了吗?

谢谢!

python matplotlib resampling

19
推荐指数
1
解决办法
2万
查看次数

Scipy 中的 2D 插值问题

在我的应用程序中,数据数据是在扭曲的网格上采样的,我想将其重新采样为非扭曲的网格。为了测试这一点,我编写了这个程序,其中包含示例性失真和一个简单的函数作为数据:

from __future__ import division

import numpy as np
import scipy.interpolate as intp
import pylab as plt

# Defining some variables:

quadratic = -3/128
linear = 1/16
pn = np.poly1d([quadratic, linear,0])

pixels_x = 50
pixels_y = 30
frame = np.zeros((pixels_x,pixels_y))

x_width= np.concatenate((np.linspace(8,7.8,57) , np.linspace(7.8,8,pixels_y-57)))

def data(x,y):
    z = y*(np.exp(-(x-5)**2/3) + np.exp(-(x)**2/5) + np.exp(-(x+5)**2))
    return(z)

# Generating grid coordinates

yt = np.arange(380,380+pixels_y*4,4)
xt = np.linspace(-7.8,7.8,pixels_x)
X, Y = np.meshgrid(xt,yt)
Y=Y.T
X=X.T

Y_m = np.zeros((pixels_x,pixels_y))
X_m = np.zeros((pixels_x,pixels_y))

# generating distorted grid …
Run Code Online (Sandbox Code Playgroud)

python interpolation scipy

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

python ×2

interpolation ×1

matplotlib ×1

resampling ×1

scipy ×1