3.
\ begingroup美元

我有3个数组,分别表示经度、纬度和温度(因此观测结果分散在空间中)。我想在这些数据上应用插值,也可以外推。我已经写了下面的代码,但是我得到了一个关于内存的错误。这三个数组中的每一个都有大约700个点。

我想要外推的原因是因为我想要覆盖地图上的所有区域。

这是我的代码的一部分,就是我所描述的:

m = Basemap(投影='merc',llcrnrlat=34,urcrnrlat=42,\ llcrnrlon=19,urcrnrlon=35,lat_ts=20,分辨率='h') xi = np.arange(19,35,0.01) yi = np.arange(34,42,0.01) xi,yi = np.meshgrid(xi,yi) lon= np.asarray(lon) lat= np.asarray(lat) temperature = np.asarray(temperature) rbf = scipy. interpolte . rbf(lon, lat, temperature, function='高斯',smooth=0.) zi = rbf(xi, yi) x,y = m(xi, h);i) zi=np.array(zi) mdata=maskoceans(xi, Yi,zi,resolution='f',grid=1.25) m.drawcoastlines() m.drawcountries() m.drawmapboundary(fill_color="#cce6ff") sc = m.contourf(x,y,mdata, np. rangange (-15.0,40.01,1),cmap=jet,extend="both")

有人对我应该使用的插值方法以及如何使其工作有任何想法吗?

我已经使用了griddata,它工作得很好,但它只是用于插值,所以新的矩阵是有限的,它不能覆盖整个区域。我也读到rbf不工作超过20个点,但有没有其他方法的大型数据集?

\ endgroup美元
3.
  • \ begingroup美元 你正在创建一个1400*800 = 112万个单元格的网格。这应该没问题,但是,作为测试,改变0.01英寸下一行是0.05之类的。外推温度数据是一个坏主意,顺便说一句,我认为使用较小的数字来避免内存不足错误可能有助于您看到这一点。 \ endgroup美元
    - - - - - -user967
    2017年9月1日23:17
  • \ begingroup美元 不幸的是,这并没有正常工作。地图出现了非常奇怪和极端的值。对于其余的方法,我得到了一个“单例错误”。还有其他建议吗? \ endgroup美元
    - - - - - -达沃Keppas
    2017年9月25日21:49
  • \ begingroup美元 标准调试提示:打印您定义的每个值,看看它是否合理。尝试使用二分搜索找到出错的行。此外,如果你可以链接到你的整个代码(例如,github),其他人可以运行它,也许帮助更多。或者:将代码减少到最小的非工作示例。 \ endgroup美元
    - - - - - -user967
    2017年9月26日3:46

0

你的答案

点击“发表您的答案”,即表示您同意我们的服务条款隐私政策饼干的政策

浏览其他有标签的问题问自己的问题