Cómo hacer una segunda interpolación en python

Hice mi primera interpolación connumpy.polyfit () ynumpy.polyval () para 50 valores de longitud para una órbita satelital completa.

Ahora, solo quiero mirar una ventana de 0-4.5 grados de longitud y hacer una segunda interpolación para tener 6,000 puntos de longitud en la ventana.

Necesito usar la ecuación / curva de la primera interpolación para crear la segunda porque solo hay un punto en el rango de la ventana. No estoy seguro de cómo hacer la segunda interpolación.

Entradas:

lon = [-109.73105744378498, -104.28690174554579, -99.2435132929552, -94.48533149079628, -89.91054414962821, -85.42671400689177, -80.94616150449806, -76.38135021210172, -71.6402674905218, -66.62178379632216, -61.21120467960157, -55.27684029674759, -48.66970878028004, -41.23083703244677, -32.813881865289346, -23.332386757370532, -12.832819226213942, -1.5659455609661785, 10.008077792630402, 21.33116444634303, 31.92601575632583, 41.51883213364072, 50.04498630545507, 57.58103957109249, 64.26993028992476, 70.2708323505337, 75.73441871754586, 80.7944079829813, 85.56734813043659, 90.1558676264546, 94.65309120129724, 99.14730128118617, 103.72658922048785, 108.48349841714494, 113.51966824008079, 118.95024882101737, 124.9072309203375, 131.5395221402974, 139.00523971191907, 147.44847902856114, 156.95146022590976, 167.46163867248032, 178.72228750873975, -169.72898181991064, -158.44642409799974, -147.8993300787564, -138.35373014113995, -129.86955508919888, -122.36868103811106, -115.70852432245486]

myOrbitJ2000Time = [ 20027712.,  20027713.,  20027714.,  20027715.,  20027716.,
        20027717.,  20027718.,  20027719.,  20027720.,  20027721.,
        20027722.,  20027723.,  20027724.,  20027725.,  20027726.,
        20027727.,  20027728.,  20027729.,  20027730.,  20027731.,
        20027732.,  20027733.,  20027734.,  20027735.,  20027736.,
        20027737.,  20027738.,  20027739.,  20027740.,  20027741.,
        20027742.,  20027743.,  20027744.,  20027745.,  20027746.,
        20027747.,  20027748.,  20027749.,  20027750.,  20027751.,
        20027752.,  20027753.,  20027754.,  20027755.,  20027756.,
        20027757.,  20027758.,  20027759.,  20027760.,  20027761.]

Código:

deg = 30 #polynomial degree for fit
fittime = myOrbitJ2000Time - myOrbitJ2000Time[0]

'Longitude Interpolation'
fitLon = np.polyfit(fittime, lon, deg)   #gets fit coefficients
polyval_lon = np.polyval(fitLon,fittime) #interp.s to get actual values


'Get Longitude values for a window of 0-4.5 deg Longitude'
lonwindow =[]

for i in range(len(polyval_lon)):
    if 0 < polyval_lon[i] < 4.5:         # get lon vals in window
        lonwindow.append(polyval_lon[i]) #append lon vals

lonwindow = np.array(lonwindow)

Respuestas a la pregunta(1)

Su respuesta a la pregunta