我想使用scipy.interpolate.SmoothSphereBivariateSpline 在地图上插入温度(我不熟悉数据插值,所以这可能不是一个好选择,但我想试一试)。
这就是我所做的:
纬度经度温度城市
30.22 120.14 39 2caves
30.26 120.13 39 3caves
30.23 120.13 39 Anlong
33.48 108.5 30安达
37.2 100.74 15 Anan
...
进入熊猫
data = pandas.read_table('temp.tsv')
从lat,lon获取弧度:
theta = numpy.array(data.latitude) / 180 * numpy.pi # the lat, lon domain is safe here so
phi = numpy.array(data.longitude) / 180 * numpy.pi # I won't adjust for the output range
temp = numpy.array(data.temperature)
将它们送入scipy:
lut = SmoothSphereBivariateSpline(theta, phi, temps)
然后该函数抛出一个ValueError:
ValueError异常: 所需的存储空间超出了可用的存储空间:nxest 或者最小,或者太小。 加权最小二乘样条对应于当前的集合 节。
我尝试用不同的值调整s参数,从1,2,3到7000,8000,它只是保持太小。我该怎么做才能使插值工作?
答案 0 :(得分:0)
只是为了记录:在the documentation之后有一个平滑参数45-59/1 9 * * 1-5 /path/to/script
*/1 10-16 * * 1-5 /path/to/script
可供选择;默认值为 s
,但有时按照文档中的建议手动选择它很重要。