Speed up baselineGrid.py and cut prints (#314)
* track the prev guess in `geo2rdr`, break after convergence * create doppler Poly once, avoid prints Orbit.geo2rdr creates a poly, which prints "Polynomial Order: 0 - by - 0" each timeLT1AB
parent
85463f182a
commit
eb5790a884
|
@ -1003,7 +1003,6 @@ class Orbit(Component):
|
||||||
Takes a lat, lon, height triplet and returns azimuth time and range.
|
Takes a lat, lon, height triplet and returns azimuth time and range.
|
||||||
Assumes zero doppler for now.
|
Assumes zero doppler for now.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from isceobj.Planet.Planet import Planet
|
from isceobj.Planet.Planet import Planet
|
||||||
from isceobj.Util.Poly2D import Poly2D
|
from isceobj.Util.Poly2D import Poly2D
|
||||||
if doppler is None:
|
if doppler is None:
|
||||||
|
@ -1021,6 +1020,8 @@ class Orbit(Component):
|
||||||
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
||||||
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
||||||
outOfBounds = False
|
outOfBounds = False
|
||||||
|
# Start the previous guess tracking with dummy value
|
||||||
|
t_prev_guess = tguess + datetime.timedelta(seconds=10)
|
||||||
for ii in range(51):
|
for ii in range(51):
|
||||||
try:
|
try:
|
||||||
sv = self.interpolateOrbit(tguess, method='hermite')
|
sv = self.interpolateOrbit(tguess, method='hermite')
|
||||||
|
@ -1045,11 +1046,14 @@ class Orbit(Component):
|
||||||
fnprime = c1 + c2 * dopfact
|
fnprime = c1 + c2 * dopfact
|
||||||
|
|
||||||
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
||||||
|
if abs(tguess - t_prev_guess).total_seconds() < 5e-9:
|
||||||
|
break
|
||||||
|
else:
|
||||||
|
t_prev_guess = tguess
|
||||||
|
|
||||||
if outOfBounds:
|
if outOfBounds:
|
||||||
raise Exception('Interpolation time out of bounds')
|
raise Exception('Interpolation time out of bounds')
|
||||||
|
|
||||||
|
|
||||||
return tguess, rng
|
return tguess, rng
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,7 @@ def main(iargs=None):
|
||||||
'''
|
'''
|
||||||
inps=cmdLineParse(iargs)
|
inps=cmdLineParse(iargs)
|
||||||
from isceobj.Planet.Planet import Planet
|
from isceobj.Planet.Planet import Planet
|
||||||
|
from isceobj.Util.Poly2D import Poly2D
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import shelve
|
import shelve
|
||||||
|
|
||||||
|
@ -101,6 +102,8 @@ def main(iargs=None):
|
||||||
nAzimuth = int(np.max([30,int(np.ceil(azimuthLimits))]))
|
nAzimuth = int(np.max([30,int(np.ceil(azimuthLimits))]))
|
||||||
azimuthTime = [mSensingStart + datetime.timedelta(seconds= x * azimuthLimits/(nAzimuth-1.0)) for x in range(nAzimuth)]
|
azimuthTime = [mSensingStart + datetime.timedelta(seconds= x * azimuthLimits/(nAzimuth-1.0)) for x in range(nAzimuth)]
|
||||||
|
|
||||||
|
doppler = Poly2D()
|
||||||
|
doppler.initPoly(azimuthOrder=0, rangeOrder=0, coeffs=[[0.]])
|
||||||
|
|
||||||
Bperp = np.zeros((nAzimuth,nRange), dtype=np.float32)
|
Bperp = np.zeros((nAzimuth,nRange), dtype=np.float32)
|
||||||
Bpar = np.zeros((nAzimuth,nRange), dtype=np.float32)
|
Bpar = np.zeros((nAzimuth,nRange), dtype=np.float32)
|
||||||
|
@ -123,7 +126,7 @@ def main(iargs=None):
|
||||||
target = mOrb.rdr2geo(taz, rng)
|
target = mOrb.rdr2geo(taz, rng)
|
||||||
|
|
||||||
targxyz = np.array(refElp.LLH(target[0], target[1], target[2]).ecef().tolist())
|
targxyz = np.array(refElp.LLH(target[0], target[1], target[2]).ecef().tolist())
|
||||||
slvTime,slvrng = sOrb.geo2rdr(target)
|
slvTime, slvrng = sOrb.geo2rdr(target, doppler=doppler, wvl=0)
|
||||||
|
|
||||||
secondarySV = sOrb.interpolateOrbit(slvTime, method='hermite')
|
secondarySV = sOrb.interpolateOrbit(slvTime, method='hermite')
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue