卫星地面轨迹的Python插值

卫星地面轨迹的Python插值,python,interpolation,latitude-longitude,satellite,Python,Interpolation,Latitude Longitude,Satellite,我试图插值以下卫星地面轨迹: 问题在于(lon,lat)->(0,0)处的不连续性,这导致该区域的拟合曲线较差: 我不确定参数插值是否是最好的方法,因为现在我刚刚应用了线性插值: import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import interpolate df = pd.read_table('groundtracks', sep='\t') x = df['lo

我试图插值以下卫星地面轨迹:

问题在于(lon,lat)->(0,0)处的不连续性,这导致该区域的拟合曲线较差:

我不确定参数插值是否是最好的方法,因为现在我刚刚应用了线性插值:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from scipy import interpolate

df = pd.read_table('groundtracks', sep='\t')

x = df['lon']
y = df['lat']

f = interpolate.interp1d(x, y, kind='linear')

xnew = np.linspace(x.min(), x.max(), num=x.count()*2)
ynew = f(xnew)

你不应该在0附近插值,因为卫星在两个非常不同的时间点


您应该将360°添加到数据的后半部分(可能与左上角曲线对应),以便获得一条从-30°到360°的连续曲线。然后插值。然后执行相反的操作:
lon[lon>180]-=360

作为替代方法,您也可以尝试将轨迹分割为两个不同的部分,并分别对其进行插值。

谢谢,这是一个很好的解决方案,但数据需要事先进行一些处理,以便按照您的建议按象限分割。