草庐IT

插值法

全部标签

python - 以匀称的方式沿多线插值每个 X 距离

如果我有一个形状多线对象,其中包含许多线,每条线的总长度为50公里(从原点追踪时),并且我想每隔X米(假设100米)沿着多线进行插值,返回形状点对象100m,如何实现?这是我到目前为止的结果,但它只返回一个不同的点(当我知道它应该返回几千个时,如在ArcMap中测试的那样):points=[]forxinrange(100,50000,100):x,y=multiline.interpolate(x).xyxy=(x[0],y[0])points.append(xy)trim=list(set(points))这是trim包含的内容:[(-90.5864707030599,38.468

python - 数据存储以简化 Python 中的数据插值

我有20多个类似于表1的表。其中所有字母代表实际值。Table1:$/cars|例如,用户输入可以是(2.4,24594),它是介于f、g、j和k之间的值。我计算此双线性插值的Python函数定义和伪代码如下。defbilinear_interpolation(x_in,y_in,x_high,x_low,y_low,y_high):#interpolatewithrespecttox#interpolatewithrespecttoy#returnresult我应该如何存储表1中的数据(一个文件、一个字典、元组的元组或列表的字典),以便我可以最有效和正确地执行双线性插值?

python - 具有 NaN 值或掩码的大型数组的双变量结构化插值

我正在尝试定期插入网格windstress使用Scipy的RectBivariateSpline的数据类(class)。在某些网格点,输入数据包含无效数据条目,这些条目被设置为NaN值。首先,我使用了Scott'squestion的解决方案关于二维插值。使用我的数据,插值返回一个仅包含NaN的数组。我还尝试了一种不同的方法,假设我的数据是非结构化的并使用SmoothBivariateSpline类(class)。显然我有太多数据点无法使用非结构化插值,因为数据数组的形状是(719x2880)。为了说明我的问题,我创建了以下脚本:from__future__importdivisioni

python - 删除缺失值的插值时间序列图

我正在尝试绘制时间序列数据,但我遇到了一些问题。我正在使用这段代码:frommatplotlibimportpyplotaspltplt.figure('Fig')plt.plot(data.index,data.Colum,'g',linewidth=2.0,label='Data')我明白了:但我不想在缺失值之间进行插值!我怎样才能做到这一点? 最佳答案 因为你使用的是pandas,你可以这样做:importpandasaspdimportmatplotlib.pyplotaspltpd.np.random.seed(1234)

Python字符串插值实现

[EDIT00]:我已经多次编辑帖子,现在甚至编辑标题,请阅读下文。我刚刚了解了格式字符串方法及其与字典的用法,例如vars()、locals()和globals(),示例:name='Ismael'print'Mynameis{name}.'.format(**vars())但我想做的是:name='Ismael'print'Mynameis{name}.'#Similartoruby所以我想到了这个:defmprint(string='',dictionary=globals()):printstring.format(**dictionary)您可以在此处与代码进行交互:http

python - SciPy 中的二维插值问题,非矩形网格

我一直在尝试使用scipy.interpolate.bisplrep()和scipy.interpolate.interp2d()在我的(218x135)2D球形极坐标网格上查找数据的插值。我将我的网格节点的笛卡尔位置的二维数组X和Y传递给它们。我不断收到如下错误(对于线性插值。使用interp2d):“警告:不能添加更多的结,因为额外的结会重合和一个旧的。可能原因:重量太小或太大到一个不准确的数据点。(fp>s)kx,ky=1,1nx,ny=4,5m=29430fp=1390609718.902140s=0.000000"使用默认的平滑参数s等,我得到了双变量样条的类似结果。我的数据

python - 是否可以构建一个自动插值的 Pandas 系列?

是否有可能为任何给定的索引生成一个对其值进行插值的序列。我有一个我希望规定的预定义插值方案,我宁愿调用者不自己应用插值,以避免任何可能的错误。classInterpolatedSeries(pd.Series):pass#magic?s=pd.Series([1,3],index=[1,3])i=InterpolatedSeries(s,forward='nearest',backward='nearest',middle='linear')调用者将收到i作为结果,他们现在可以请求任何值,我相信他们获得的值符合规定的插值方案。插值肯定不是可预先计算的(因为我们不知道他们会提前请求哪些点

python - pandas 仅在两侧都存在值时才进行插值

考虑pd.Seriessimportpandasaspdimportnumpyasnps=pd.Series([np.nan,1,np.nan,3,np.nan])我如何进行插值以获得:pd.Series([np.nan,1,2,3,np.nan])0NaN11.022.033.04NaNdtype:float64注意:我希望保留第一个和最后一个np.nan我只想在两边都有值进行插值时填写值。换句话说,我想插值,而不是外推。 最佳答案 我这样做-跳过标题和尾部NA:s.iloc[s.first_valid_index():s.las

python - 哪种插值最适合调整图像大小?

我有一个numpy数组,我希望使用opencv调整它的大小。它的值范围从0到255。如果我选​​择使用cv2.INTER_CUBIC,我可能会得到这个范围之外的值。这是不可取的,因为调整大小的数组应该仍然表示图像。一种解决方案是将结果裁剪到[0,255]。另一种是使用不同的插值方法。据我了解,使用INTER_AREA对图像进行下采样是有效的,但在对图像进行上采样时,其工作方式与最近邻相似,因此渲染效果不符合我的目的。我应该使用INTER_CUBIC(和剪辑)、INTER_AREA还是INTER_LINEAR?使用INTER_CUBIC的值超出范围的示例:a=np.array([0,10

python - 使用 scipy 插值闭合曲线

我正在编写一个python脚本来使用样条插值一组给定的点。这些点由它们的[x,y]坐标定义。我尝试使用这段代码:x=np.array([23,24,24,25,25])y=np.array([13,12,13,12,13])tck,u=scipy.interpolate.splprep([x,y],s=0)unew=np.arange(0,1.00,0.005)out=scipy.interpolate.splev(unew,tck)这给了我这样的曲线:但是,我需要一条平滑的闭合曲线——在上图中,其中一个点的导数显然不相同。我怎样才能做到这一点? 最佳答案