修改干涉模块配准错误导致干涉图出现条纹问题
parent
2dc9e52974
commit
75e50fffe4
|
@ -1096,6 +1096,9 @@ class AtmosphericMain:
|
|||
run_files = os.path.join(self.__workspace_isce_path, 'run_files')
|
||||
for file in list(glob.glob(os.path.join(run_files, '*.job'))):
|
||||
os.remove(file)
|
||||
|
||||
run_steps = ["run_08_grid_baseline"]
|
||||
self.isce_run_steps(run_steps, self.__workspace_isce_path)
|
||||
logger.info('mas slc stackStripMap finish!')
|
||||
|
||||
# 2.2 执行autorun.py生成干涉图
|
||||
|
|
|
@ -234,15 +234,6 @@ class Orbit(Component):
|
|||
self._orbitSource = source or None
|
||||
self._referenceFrame = None
|
||||
self._stateVectors.configure()
|
||||
""" 自定义 """
|
||||
self.oribitStartTime=None
|
||||
self.A_arr=None
|
||||
self.polynum=None
|
||||
""" LT1AB 多普勒参数"""
|
||||
self.refrenceTime=None
|
||||
self.dopperPoly=[]
|
||||
""" 卫星名称"""
|
||||
self.sessionMode=None
|
||||
#self._stateVectors = stateVectors or []
|
||||
self._cpStateVectors = []
|
||||
type(self._stateVectors)
|
||||
|
@ -269,67 +260,6 @@ class Orbit(Component):
|
|||
# #pack the orbit into stateVectors
|
||||
# self._packOrbit(cpStateVectors[0], cpStateVectors[1], cpStateVectors[2], cpStateVectors[3])
|
||||
|
||||
def setsessionMode(self,SessionMode):
|
||||
self.sessionMode=SessionMode
|
||||
|
||||
def setPolyParams(self,polynum,orbitStartTime,A_arr):
|
||||
self.polynum=polynum
|
||||
self.oribitStartTime=orbitStartTime
|
||||
self.A_arr=A_arr
|
||||
|
||||
def setDoppler(self,refrenceTime,dopperPoly):
|
||||
self.refrenceTime=refrenceTime
|
||||
self.dopperPoly=dopperPoly
|
||||
pass
|
||||
|
||||
def getSatelliteSpaceState(self, time_float_datetime):
|
||||
'''
|
||||
逐像素求解
|
||||
根据时间戳,返回对应时间的卫星的轨迹状态,会自动计算与起算时间之差
|
||||
args:
|
||||
time_float:时间戳
|
||||
return:
|
||||
State_list:[time,Xp,Yp,Zp,Vx,Vy,Vz]
|
||||
'''
|
||||
time_float=time_float_datetime.timestamp()
|
||||
time_float = time_float - self.oribitStartTime
|
||||
#
|
||||
px=0
|
||||
py=0
|
||||
pz=0
|
||||
vx=0
|
||||
vy=0
|
||||
vz=0
|
||||
for ii in range(self.polynum):
|
||||
px+=self.A_arr[ii][0]*time_float**ii
|
||||
py+=self.A_arr[ii][1]*time_float**ii
|
||||
pz+=self.A_arr[ii][2]*time_float**ii
|
||||
vx+=self.A_arr[ii][3]*time_float**ii
|
||||
vy+=self.A_arr[ii][4]*time_float**ii
|
||||
vz+=self.A_arr[ii][5]*time_float**ii
|
||||
sv= StateVector()
|
||||
sv.setTime(time_float_datetime)
|
||||
sv.setPosition([px,py,pz])
|
||||
sv.setVelocity([vx,vy,vz])
|
||||
return sv
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f") - datetime.timedelta(seconds=30)
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f") + datetime.timedelta(seconds=30)
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp.timestamp()-startTime_stamp.timestamp())/orbitnum
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+ datetime.timedelta(seconds=delta_t)
|
||||
newOrbit=self.getSatelliteSpaceState(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getSatelliteSpaceState(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def adaptToRender(self):
|
||||
import copy
|
||||
# make a copy of the stateVectors to restore it after dumping
|
||||
|
@ -446,10 +376,10 @@ class Orbit(Component):
|
|||
@raises NotImplementedError: if the desired interpolation method
|
||||
cannot be decoded
|
||||
"""
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError(
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %(time,self.minTime,self.maxTime)
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
|
||||
(time,self.minTime,self.maxTime)
|
||||
)
|
||||
|
||||
if method == 'linear':
|
||||
|
@ -463,11 +393,9 @@ class Orbit(Component):
|
|||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
return newSV
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
## Isn't orbit redundant? -compute the method based on name
|
||||
def interpolate(self, time, method='linear'):
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
|
||||
% (time,self.minTime,self.maxTime))
|
||||
|
@ -478,13 +406,8 @@ class Orbit(Component):
|
|||
raise NotImplementedError(
|
||||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
|
||||
|
||||
|
||||
# interpolateOrbit = interpolate #暂时注释----------------------------------------------------------------------------
|
||||
# interpolateOrbit = interpolate
|
||||
|
||||
def _linearOrbitInterpolation(self,time):
|
||||
"""
|
||||
|
@ -635,6 +558,7 @@ class Orbit(Component):
|
|||
"Fewer than 4 state vectors present in orbit, cannot interpolate"
|
||||
)
|
||||
return None
|
||||
|
||||
# The Fortran routine assumes that it is getting an array of four
|
||||
# state vectors
|
||||
try:
|
||||
|
@ -655,6 +579,7 @@ class Orbit(Component):
|
|||
obsTime, obsPos, obsVel,offset = newOrbit.to_tuple(
|
||||
relativeTo=self.minTime
|
||||
)
|
||||
|
||||
td = time - self.minTime
|
||||
ansTime = DTU.timeDeltaToSeconds(td)
|
||||
flatObsPos = [item for sublist in obsPos for item in sublist]
|
||||
|
@ -676,8 +601,6 @@ class Orbit(Component):
|
|||
ansPos_C,
|
||||
ansVel_C)
|
||||
|
||||
# print('插值成功----------------------------')
|
||||
# print(StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:]))
|
||||
return StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:])
|
||||
|
||||
## This need to be public -very confusing since there is an __iter__
|
||||
|
@ -1075,7 +998,7 @@ class Orbit(Component):
|
|||
pointOnGround = rdr2geo
|
||||
|
||||
def geo2rdr(self, llh, side=-1, planet=None,
|
||||
doppler=None, wvl=None,isLT1AB=True):
|
||||
doppler=None, wvl=None):
|
||||
'''
|
||||
Takes a lat, lon, height triplet and returns azimuth time and range.
|
||||
Assumes zero doppler for now.
|
||||
|
@ -1091,79 +1014,16 @@ class Orbit(Component):
|
|||
refElp = Planet(pname='Earth').ellipsoid
|
||||
else:
|
||||
refElp = planet.ellipsoid
|
||||
# print('llh', llh)
|
||||
|
||||
xyz = refElp.llh_to_xyz(llh)
|
||||
|
||||
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
||||
tguess = self.minTime #+ datetime.timedelta(seconds = delta)
|
||||
# print("Orbits.py 1024-----------------------------------------------")
|
||||
# print("self.maxTime", self.maxTime)
|
||||
# print("self.minTime", self.minTime)
|
||||
# print(delta)
|
||||
# print(tguess)
|
||||
|
||||
LIGHTSPEED=299792458
|
||||
if wvl==0:
|
||||
isLT1AB=False
|
||||
if isLT1AB and (self.sessionMode=="LT1A" or self.sessionMode=="LT1B") : # 专门针对 LT1AB
|
||||
print("LT1AB orbit.....")
|
||||
dt=0.0001
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess+datetime.timedelta(seconds= dt)) # 获取卫星的 位置、速度
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
||||
pos1 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel1 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr1 = pos1-xyz
|
||||
rng1 = np.linalg.norm(dr1) # 斜距
|
||||
|
||||
# ((R_s1.array() * V_s1.array()).rowwise().sum().array() * (-2) / (R * this->lamda))[0];
|
||||
FdTheory1 = -2/(rng1*wvl)*np.dot(dr1,vel1)
|
||||
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
pos2 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel2 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr2 = pos2-xyz
|
||||
rng = np.linalg.norm(dr2) # 斜距
|
||||
FdTheory2= -2/(rng*wvl)*np.dot(dr2,vel2)
|
||||
TSR= rng * 2 / LIGHTSPEED - self.refrenceTime # nx1
|
||||
|
||||
FdNumerical=0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[0]*TSR**0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[1]*TSR**1
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[2]*TSR**2
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[3]*TSR**3
|
||||
|
||||
fdopper_grad=(FdTheory1 - FdTheory2)/dt
|
||||
inc_t = (FdTheory2-FdNumerical) /fdopper_grad
|
||||
# print(inc_t,rng,FdNumerical,FdTheory2,tguess,pos2)
|
||||
tguess = tguess - datetime.timedelta(seconds = inc_t)
|
||||
|
||||
if abs(inc_t) < 1e-6:
|
||||
break
|
||||
else:
|
||||
t_prev_guess = tguess
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
else:
|
||||
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv = self.interpolateOrbit(tguess, method='hermite')
|
||||
except Exception as e:
|
||||
if self.sessionMode=="LT1A" or self.sessionMode=="LT1B":
|
||||
sv = self.getSatelliteSpaceState(tguess) # 获取卫星的 位置、速度
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
@ -1171,40 +1031,25 @@ class Orbit(Component):
|
|||
pos = np.array(sv.getPosition())
|
||||
vel = np.array(sv.getVelocity())
|
||||
|
||||
# print("xyz", xyz)
|
||||
# print("pos", pos)
|
||||
dr = xyz-pos
|
||||
rng = np.linalg.norm(dr) # 求斜距
|
||||
# print("rng", rng)
|
||||
|
||||
dopfact = np.dot(dr,vel) # fd 公式
|
||||
# print("dopfact", dopfact)
|
||||
rng = np.linalg.norm(dr)
|
||||
|
||||
dopfact = np.dot(dr,vel)
|
||||
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
|
||||
# print("doppler", doppler(DTU.seconds_since_midnight(tguess),rng))
|
||||
# print("wvl", wvl)
|
||||
# print("fdop", fdop)
|
||||
|
||||
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
|
||||
# print("doppler2", doppler(DTU.seconds_since_midnight(tguess),rng+10.0))
|
||||
# print("fdopder", fdopder)
|
||||
|
||||
fn = dopfact - fdop * rng
|
||||
c1 = -np.dot(vel, vel)
|
||||
c2 = (fdop/rng + fdopder)
|
||||
# print("c1", c1)
|
||||
# print("c2", c2)
|
||||
|
||||
fnprime = c1 + c2 * dopfact
|
||||
# print("时间为", fn/fnprime)
|
||||
# if abs(fn/fnprime) > 1:
|
||||
# break
|
||||
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
||||
# print("输出的tguess", tguess)
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if abs(fn/fnprime) < 1e-6:
|
||||
break
|
||||
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
|
||||
|
||||
return tguess, rng
|
||||
|
||||
|
||||
|
|
|
@ -30,12 +30,12 @@ from iscesys.Component.Component import Component
|
|||
from iscesys.DateTimeUtil.DateTimeUtil import DateTimeUtil as DTUtil
|
||||
import os
|
||||
import numpy as np
|
||||
import copy
|
||||
import math
|
||||
import datetime
|
||||
import time
|
||||
from math import sin,cos
|
||||
from scipy.optimize import leastsq
|
||||
import numpy as np
|
||||
from isceobj.Util.Poly2D import Poly2D
|
||||
|
||||
|
||||
|
@ -122,6 +122,155 @@ def XYZOuterM2(A, B):
|
|||
return C
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
# 作为自定义轨道计算基类
|
||||
# 定义几个基本方法:addvector(),createOrbit(),getTime(),getTimes()
|
||||
# 注意均为UTC
|
||||
def __init__(self):
|
||||
self.vectors=[]
|
||||
self.baseTime=None
|
||||
def addvector(self,UTCTime,vx,vy,vz,px,py,pz):
|
||||
neworbit_point=orbitVector(UTCTime,vx,vy,vz,px,py,pz)
|
||||
self.vectors.append(neworbit_point)
|
||||
if len(self.vectors)==1:
|
||||
self.baseTime=neworbit_point.time_stamp-1 # 基线
|
||||
else:
|
||||
if self.baseTime>neworbit_point.time_stamp:
|
||||
self.baseTime=neworbit_point.time_stamp-1
|
||||
|
||||
def createOrbit(self):
|
||||
pass
|
||||
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
return None
|
||||
|
||||
def getTimeOrbitStamp(self,StampTime):
|
||||
utcStr=datetime.datetime.fromtimestamp(StampTime).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
return self.getTimeOrbit(utcStr)
|
||||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=100):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)*1000/orbitnum
|
||||
delta_t=int(delta_t)/1000 # 获取
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+delta_t
|
||||
newOrbit=self.getTimeOrbitStamp(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
pass
|
||||
|
||||
|
||||
class GGorbit(SARorbit):
|
||||
# 最小二乘法,线性函数
|
||||
def __init__(self):
|
||||
super(GGorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<3:
|
||||
raise
|
||||
# 求解GGorbit模型参数
|
||||
gg_t=[]
|
||||
gg_rho=[]
|
||||
gg_I=[]
|
||||
gg_omega=[]
|
||||
gg_Omega=[]
|
||||
for orbit_point in self.vectors:
|
||||
gg_t.append(orbit_point.time_stamp-self.baseTime)
|
||||
gg_rho.append(orbit_point.rho)
|
||||
gg_I.append(orbit_point.I)
|
||||
gg_omega.append(orbit_point.omega)
|
||||
gg_Omega.append(orbit_point.Omega)
|
||||
# 声明 x
|
||||
gg_t=np.array(gg_t) # 时间 t
|
||||
# y
|
||||
gg_rho=np.array(gg_rho) # rho
|
||||
gg_I=np.array(gg_I) # I
|
||||
gg_omega=np.array(gg_omega) # omega
|
||||
gg_Omega=np.array(gg_Omega) # Omega
|
||||
# 计算结果
|
||||
self.p_rho=leastsq(poly2derror,[30,30,2],args=(gg_t,gg_rho))[0]
|
||||
self.p_I=leastsq(poly1derror,[30,2],args=(gg_t,gg_I))[0]
|
||||
self.p_omega=leastsq(poly1derror,[30,2],args=(gg_t,gg_omega))[0]
|
||||
self.p_Oemga=leastsq(poly1derror,[30,2],args=(gg_t,gg_Omega))[0]
|
||||
#print(len(self.p_rho),len(self.p_I),len(self.p_omega),len(self.p_Oemga))
|
||||
return
|
||||
|
||||
def getXYZ(self,Inputstaptime):
|
||||
staptime=Inputstaptime-self.baseTime
|
||||
rho=poly2dfunc(self.p_rho,staptime)
|
||||
I=poly1dfunc(self.p_I,staptime)
|
||||
omega=poly1dfunc(self.p_omega,staptime)
|
||||
Omega=poly1dfunc(self.p_Oemga,staptime)
|
||||
Xp=-1*rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-1*rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
return [Xp,Yp,Zp]
|
||||
|
||||
# 获取计算结果
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()
|
||||
dtime=0.0001
|
||||
[Xp,Yp,Zp]=self.getXYZ(staptime)
|
||||
[Xp_temp,Yp_temp,Zp_temp]=self.getXYZ(staptime+dtime)
|
||||
# 线性代数方法获取轨道速度
|
||||
Vx=(Xp_temp-Xp)/dtime
|
||||
Vy=(Yp_temp-Yp)/dtime
|
||||
Vz=(Zp_temp-Zp)/dtime
|
||||
#utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(UTCTime,Vx,Vy,Vz,Xp,Yp,Zp)
|
||||
return neworbit_point
|
||||
|
||||
class polyorbit(SARorbit):
|
||||
def __init__(self):
|
||||
super(polyorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<8:
|
||||
raise
|
||||
ts,xs,ys,zs,vx,vy,vz=[],[],[],[],[],[],[]
|
||||
for orbit_point in self.vectors:
|
||||
ts.append(orbit_point.time_stamp-self.baseTime)
|
||||
xs.append(orbit_point.px)
|
||||
ys.append(orbit_point.py)
|
||||
zs.append(orbit_point.pz)
|
||||
vx.append(orbit_point.vx)
|
||||
vy.append(orbit_point.vy)
|
||||
vz.append(orbit_point.vz)
|
||||
ts=np.array(ts)
|
||||
xs=np.array(xs)
|
||||
ys=np.array(ys)
|
||||
zs=np.array(zs)
|
||||
vx=np.array(vx)
|
||||
vy=np.array(vy)
|
||||
vz=np.array(vz)
|
||||
self.p_xs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,xs))
|
||||
self.p_ys=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,ys))
|
||||
self.p_zs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,zs))
|
||||
self.p_vxs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vx))
|
||||
self.p_vy=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vy))
|
||||
self.p_vz=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vz))
|
||||
return
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-self.baseTime
|
||||
xs=poly5dfunc(self.p_xs,staptime)
|
||||
ys=poly5dfunc(self.p_ys,staptime)
|
||||
zs=poly5dfunc(self.p_zs,staptime)
|
||||
vx=poly5dfunc(self.p_vx,staptime)
|
||||
vy=poly5dfunc(self.p_vy,staptime)
|
||||
vz=poly5dfunc(self.p_vz,staptime)
|
||||
utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(utmstr,vx,vy,vz,xs,ys,zs,dateformat="%Y-%m-%d %H:%M:%S.%f")
|
||||
return neworbit_point
|
||||
|
||||
class SatelliteOrbit(object):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
@ -190,6 +339,7 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
return self.A_arr
|
||||
elif len(GPSPoints_list) > 6:
|
||||
self.polynum=4
|
||||
# 多项式的节点数,理论上是超过5个可以起算,这里为了精度选择10个点起算。
|
||||
# 多项式 XA=Y ==> A=(X'X)^X'Y,其中 A 为待求系数,X为变量,Y为因变量
|
||||
# 这里使用三次项多项式,共有6组参数。
|
||||
|
@ -199,21 +349,37 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
record_count = len(GPSPoints_list)
|
||||
time_arr = np.zeros((record_count, 1), dtype=np.float64) # 使用np.float64只是为了精度高些;如果32位也能满足需求,请用32位
|
||||
state_arr = np.zeros((record_count, 6), dtype=np.float64)
|
||||
A_arr = np.zeros((self.polynum, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum),dtype=np.float64) # 记录时间坐标
|
||||
A_arr = np.zeros((self.polynum+1, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum+1),dtype=np.float64) # 记录时间坐标
|
||||
# 将点记录转换为自变量矩阵、因变量矩阵
|
||||
|
||||
for i in range(record_count):
|
||||
GPSPoint = GPSPoints_list[i]
|
||||
time_ = GPSPoint[0] - self.starttime # 为了保证精度,对时间进行缩放
|
||||
X[i,:]=np.array(list(map(lambda ii:time_**ii,range(self.polynum))))
|
||||
X[i,:]=np.array([1,time_,time_**2,time_**3,time_**4])
|
||||
state_arr[i, :] = np.array(GPSPoint[1:],dtype=np.float64).reshape(1,6) # 空间坐标
|
||||
self.model_f=[]
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i].reshape(-1,1)
|
||||
A_arr[:,i]=np.matmul(np.matmul(np.linalg.inv(np.matmul(X.T,X)),X.T),Y)[:,0]
|
||||
|
||||
self.A_arr=A_arr.copy()
|
||||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
''' 测试误差
|
||||
from matplotlib import pyplot
|
||||
label_list=['x','y','z','vx','vy','vz']
|
||||
color_list=['r','g','b','gold','gray','pink']
|
||||
pyplot.figure()
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i]
|
||||
Y_predict=self.model_f[i](X)
|
||||
pyplot.subplot(int("23{}".format(i+1)))
|
||||
d=Y-Y_predict
|
||||
pyplot.plot(X,d,label=label_list[i],color=color_list[i])
|
||||
pyplot.title("max:{}".format(np.max(d)))
|
||||
#self.model_f.append(interpolate.interp1d(X,Y,kind='cubic',fill_value='extrapolate'))
|
||||
pyplot.legend()
|
||||
pyplot.show()
|
||||
'''
|
||||
return self.A_arr
|
||||
else:
|
||||
self.A_arr = None
|
||||
|
@ -266,8 +432,8 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-1
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+1
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)/orbitnum
|
||||
|
@ -282,6 +448,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def getSatelliteSpaceState(self, time_array):
|
||||
'''
|
||||
矩阵求解
|
||||
根据时间戳矩阵,返回对应时刻的卫星空间状态(位置,速度),且会自动计算与起算时间之差
|
||||
args:
|
||||
time_array:nparray nx1 时间戳
|
||||
return:
|
||||
SatellitSpaceStateArray:nparray nx6 状态信息
|
||||
'''
|
||||
if self.model_f is None:
|
||||
return None # 返回None,表示没有结果
|
||||
if self.polynum==4:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],5)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
time_arr[:,2]=time_float**2
|
||||
time_arr[:,3]=time_float**3
|
||||
time_arr[:,4]=time_float**4
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
else:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],self.polynum+1)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
|
||||
def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
||||
'''
|
||||
构建卫星轨道
|
||||
|
@ -289,26 +492,26 @@ def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
|||
GPSPoints_list:卫星轨道点
|
||||
starttime:起算时间
|
||||
'''
|
||||
GPSPoint_list=[]
|
||||
for sv in stateVectors:
|
||||
GPSPoint=[sv.timeStamp.timestamp(),
|
||||
sv.xPosition,
|
||||
sv.yPosition,
|
||||
sv.zPosition,
|
||||
sv.xVelocity,
|
||||
sv.yVelocity,
|
||||
sv.zVelocity
|
||||
]
|
||||
GPSPoint_list.append(GPSPoint)
|
||||
# GPSPoint_list=[]
|
||||
# for sv in stateVectors:
|
||||
# GPSPoint=[sv.timeStamp.timestamp(),
|
||||
# sv.xPosition,
|
||||
# sv.yPosition,
|
||||
# sv.zPosition,
|
||||
# sv.xVelocity,
|
||||
# sv.yVelocity,
|
||||
# sv.zVelocity
|
||||
# ]
|
||||
# GPSPoint_list.append(GPSPoint)
|
||||
SatelliteOrbitModel = SatelliteOrbitFitPoly()
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(GPSPoint_list, starttime=starttime) is None:
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(stateVectors, starttime=starttime) is None:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
print("orbit test")
|
||||
distance=[]
|
||||
for gpsPoint in GPSPoint_list:
|
||||
for gpsPoint in stateVectors:
|
||||
temp_sv=SatelliteOrbitModel.SatelliteSpaceState(gpsPoint[0])
|
||||
sv=np.array(temp_sv[1])
|
||||
temp_distance=sv-gpsPoint[1:]
|
||||
|
@ -360,11 +563,11 @@ class orbitVector:
|
|||
def __init__(self,UTCTimes,vx,vy,vz,px,py,pz,dateformat="%Y-%m-%dT%H:%M:%S.%fZ"):
|
||||
self.UTCTime=datetime.datetime.strptime(UTCTimes,dateformat) # 字符串转UTC时间
|
||||
self.time_stamp=self.UTCTime.timestamp() # 时间戳
|
||||
self.vx=vx # Vx
|
||||
self.vx=vx
|
||||
self.vy=vy
|
||||
self.vz=vz
|
||||
self.px=px
|
||||
self.py=py # Ys
|
||||
self.py=py
|
||||
self.pz=pz
|
||||
self.orbitVector2GG() # 将坐标进行变换
|
||||
self.Check()
|
||||
|
@ -386,10 +589,10 @@ class orbitVector:
|
|||
I=self.I
|
||||
omega=self.omega
|
||||
Omega=self.Omega
|
||||
Xp=rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(Omega)*sin(I)
|
||||
print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
Xp=-rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
# print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
|
@ -554,8 +757,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
print("samples",samples)
|
||||
print("startingRange",startingRange)
|
||||
print("incidenceAngle",incidenceAngle)
|
||||
print(self.product.imageGenerationParameters.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.imageGenerationParameters.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print(self.product.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print("effective PRF %f, original PRF %f" % (prf, orig_prf) )
|
||||
print('-------------------------------------------')
|
||||
|
||||
|
@ -607,19 +810,16 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
self.frame.setProcessingSystem("LT1AB") # 陆探数据
|
||||
self.frame.getOrbit().setOrbitSource("LT1AB.META.XML")
|
||||
|
||||
|
||||
print("======= 修改轨道代码部分: =================")
|
||||
if (self.orbitFile is None) and (self.orbitDirectory is None):
|
||||
self.extractOrbit()
|
||||
|
||||
|
||||
elif (self.orbitDirectory is not None):
|
||||
self.orbitFile = findPreciseOrbit(self.orbitDirectory, self.frame.getOrbit().getOrbitSource(), self.frame.sensingStart.year)
|
||||
|
||||
if self.orbitFile is not None:
|
||||
self.extractPreciseOrbit(self.orbitFile, self.frame.sensingStart, self.frame.sensingStop)
|
||||
|
||||
|
||||
# save the Doppler centroid coefficients, converting units from product.xml file
|
||||
# units in the file are quadratic coefficients in Hz, Hz/sec, and Hz/(sec^2)
|
||||
# ISCE expects Hz, Hz/(range sample), Hz((range sample)^2
|
||||
|
@ -628,6 +828,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dc = self.product.dopplerCentroid
|
||||
poly = dc.dopplerCentroidCoefficients
|
||||
|
||||
# need to convert units
|
||||
poly[1] = poly[1]/rangeSamplingRate
|
||||
poly[2] = poly[2]/rangeSamplingRate**2
|
||||
|
@ -641,11 +842,13 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dr = self.product.dopplerRateValues
|
||||
fmpoly = dr.dopplerRateValuesCoefficients
|
||||
|
||||
# need to convert units
|
||||
fmpoly[1] = fmpoly[1]/rangeSamplingRate
|
||||
fmpoly[2] = fmpoly[2]/rangeSamplingRate**2
|
||||
self.azfmrate_coeff = fmpoly
|
||||
|
||||
|
||||
# now calculate effective PRF from the azimuth line spacing after we have the orbit info EJF 2015/08/15
|
||||
# this does not work because azimuth spacing is on ground. Instead use bandwidth ratio calculated above EJF
|
||||
# SCHvelocity = self.frame.getSchVelocity()
|
||||
|
@ -663,26 +866,50 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# Radarsat 2 needs orbit extensions.
|
||||
print("构建新的轨道程序代码:")
|
||||
|
||||
dataStartTime = self.product.dataStartTime.timestamp()
|
||||
dataStopTime = self.product.dataStopTime.timestamp()
|
||||
|
||||
tempOrbit = GGorbit()
|
||||
time_list = []
|
||||
self.frame.getOrbit().setOrbitSource('Header: ' + self.frame.getOrbit().getOrbitSource())
|
||||
stateVectors = self.product.OrbitModelInfo.stateVectors
|
||||
for i in range(len(stateVectors)):
|
||||
# print(i,stateVectors[i].timeStamp)
|
||||
# tempOrbit.addvector(stateVectors[i].timeStamp.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity,
|
||||
# stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition)
|
||||
time_list.append([stateVectors[i].timeStamp.timestamp(),
|
||||
stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition,
|
||||
stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity])
|
||||
|
||||
model = ReconstructionSatelliteOrbit(time_list, starttime=dataStartTime)
|
||||
time_dif = ((dataStopTime + 10) - (dataStartTime - 10)) / 1000
|
||||
time = np.zeros((1000, 1))
|
||||
for i in range(1000):
|
||||
time[i,:]=((dataStartTime - 10) + time_dif * i)
|
||||
t = time.reshape(-1)
|
||||
|
||||
statepoints = model.getSatelliteSpaceState(t)
|
||||
for i, value in zip(range(len(statepoints)), statepoints):
|
||||
sv= StateVector()
|
||||
sv.setTime(datetime.datetime.fromtimestamp(t[i]))
|
||||
sv.setPosition([value[0],value[1],value[2]])
|
||||
sv.setVelocity([value[3],value[4],value[5]])
|
||||
self.frame.getOrbit().addStateVector(sv) # 插值结果写进了轨道模型中
|
||||
# print(sv.position)
|
||||
# tempOrbit.createOrbit() # 构建轨道模型
|
||||
|
||||
# newOrb=tempOrbit.getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# orbitnum=1000)
|
||||
# for svect in newOrb:
|
||||
# sv= StateVector()
|
||||
# sv.setTime(svect.UTCTime)
|
||||
# sv.setPosition([svect.px,svect.py,svect.pz])
|
||||
# sv.setVelocity([svect.vx,svect.vy,svect.vz])
|
||||
# self.frame.getOrbit().addStateVector(sv)
|
||||
# print(sv.position)
|
||||
|
||||
tempOrbit= ReconstructionSatelliteOrbit(stateVectors,self.product.orbitstarttime.timestamp())
|
||||
As_arr=tempOrbit.A_arr.tolist()
|
||||
""" 构建轨道 """
|
||||
self.frame.getOrbit().setsessionMode(self.product.mission)
|
||||
print("卫星型号")
|
||||
print(self.frame.orbit.sessionMode)
|
||||
self.frame.getOrbit().setPolyParams(tempOrbit.polynum,tempOrbit.starttime,As_arr)
|
||||
self.frame.getOrbit().setDoppler(self.product.dopplerRateValues.dopplerRateReferenceTime,
|
||||
self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
""" """
|
||||
newOrb=self.frame.getOrbit().getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
orbitnum=1000)
|
||||
for svect in newOrb:
|
||||
self.frame.getOrbit().addStateVector(svect)
|
||||
|
||||
print('Successfully read state vectors from product XML')
|
||||
|
||||
|
@ -724,7 +951,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
raise Exception('Expected line to start with ";". Got {0}'.format(dummy))
|
||||
|
||||
fid.close()
|
||||
print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
# print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
|
||||
def extractImage(self, verbose=True):
|
||||
'''
|
||||
|
@ -806,7 +1033,9 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
fd_mid += poly[kk] * (tMid - t0)**kk
|
||||
|
||||
####For insarApp
|
||||
quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
|
||||
# quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
quadratic['a'] = 0.
|
||||
quadratic['b'] = 0.
|
||||
quadratic['c'] = 0.
|
||||
|
||||
|
@ -834,8 +1063,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
evals = poly(pix)
|
||||
fit = np.polyfit(pix,evals, len(coeffs)-1)
|
||||
self.frame._dopplerVsPixel = list(fit[::-1])
|
||||
self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
+self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
# self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
# +self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
|
||||
|
||||
# print('Doppler Fit: ', fit[::-1])
|
||||
|
|
|
@ -808,3 +808,139 @@ dtype = CFLOAT
|
|||
2023-12-15 11:53:03,676 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2023-12-15 11:53:03,676 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2023-12-15 11:53:04,408 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-03 18:10:12,853 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-03 18:10:12,858 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-03 18:10:12,861 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-03 18:10:14,509 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:10:17,234 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:10:18,784 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-03 18:11:50,451 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:11:50,451 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:22:33,974 - isceobj.Location.OffsetField - INFO - 812 offsets culled
|
||||
2024-01-03 18:22:34,121 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:34,279 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:34,405 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:36,271 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:22:36,271 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:23:05,205 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-03 18:23:05,217 - isce.mroipac.filter - DEBUG - width: 796
|
||||
2024-01-03 18:23:05,217 - isce.mroipac.filter - DEBUG - length: 1172
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-03 18:23:06,011 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 09:22:36,006 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:22:36,033 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:22:36,058 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:22:37,197 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:22:39,477 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:22:41,079 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:32:53,750 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:32:53,989 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,186 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,432 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:56,208 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:32:56,209 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:45:06,799 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:45:06,826 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:45:06,851 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:45:08,050 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:45:10,397 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:45:12,097 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:46:15,846 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:46:15,847 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:27,610 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:55:27,828 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,012 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,240 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:34,680 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 09:55:34,691 - isce.mroipac.filter - DEBUG - width: 803
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - length: 1173
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 09:55:35,406 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 10:01:21,651 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 10:01:21,679 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 10:01:21,705 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 10:01:22,931 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 10:01:52,504 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 10:02:10,156 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9295072709955585
|
||||
2024-01-25 10:23:47,009 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:23:47,010 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:33:35,456 - isceobj.Location.OffsetField - INFO - 397 offsets culled
|
||||
2024-01-25 10:33:35,687 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:35,896 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:36,170 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:34:49,020 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - width: 3736
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - length: 5841
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 10:35:05,337 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
|
|
|
@ -392,6 +392,11 @@ class DeformationMain:
|
|||
CreateProductXml(para_dict, model_path, meta_xml_path).create_standard_xml()
|
||||
return meta_xml_path
|
||||
|
||||
def isce_run_steps(self, run_steps, target):
|
||||
for i in range(0, len(run_steps)):
|
||||
uwm_file = os.path.join(self.__workspace_isce_path, "run_files", run_steps[i])
|
||||
shutil.move(uwm_file, target)
|
||||
|
||||
def process_handle(self,start):
|
||||
|
||||
# 执行isce2.5生成干涉图
|
||||
|
@ -464,6 +469,8 @@ class DeformationMain:
|
|||
run_files = os.path.join(self.__workspace_isce_path, 'run_files')
|
||||
for file in list(glob.glob(os.path.join(run_files, '*.job'))):
|
||||
os.remove(file)
|
||||
run_steps = ["run_08_grid_baseline"]
|
||||
self.isce_run_steps(run_steps, self.__workspace_isce_path)
|
||||
cmd = ['-e', isce_exe_dir, '-o', self.__workspace_isce_path]
|
||||
|
||||
logger.info('autorun_cmd:{}'.format(cmd))
|
||||
|
|
|
@ -234,15 +234,6 @@ class Orbit(Component):
|
|||
self._orbitSource = source or None
|
||||
self._referenceFrame = None
|
||||
self._stateVectors.configure()
|
||||
""" 自定义 """
|
||||
self.oribitStartTime=None
|
||||
self.A_arr=None
|
||||
self.polynum=None
|
||||
""" LT1AB 多普勒参数"""
|
||||
self.refrenceTime=None
|
||||
self.dopperPoly=[]
|
||||
""" 卫星名称"""
|
||||
self.sessionMode=None
|
||||
#self._stateVectors = stateVectors or []
|
||||
self._cpStateVectors = []
|
||||
type(self._stateVectors)
|
||||
|
@ -269,67 +260,6 @@ class Orbit(Component):
|
|||
# #pack the orbit into stateVectors
|
||||
# self._packOrbit(cpStateVectors[0], cpStateVectors[1], cpStateVectors[2], cpStateVectors[3])
|
||||
|
||||
def setsessionMode(self,SessionMode):
|
||||
self.sessionMode=SessionMode
|
||||
|
||||
def setPolyParams(self,polynum,orbitStartTime,A_arr):
|
||||
self.polynum=polynum
|
||||
self.oribitStartTime=orbitStartTime
|
||||
self.A_arr=A_arr
|
||||
|
||||
def setDoppler(self,refrenceTime,dopperPoly):
|
||||
self.refrenceTime=refrenceTime
|
||||
self.dopperPoly=dopperPoly
|
||||
pass
|
||||
|
||||
def getSatelliteSpaceState(self, time_float_datetime):
|
||||
'''
|
||||
逐像素求解
|
||||
根据时间戳,返回对应时间的卫星的轨迹状态,会自动计算与起算时间之差
|
||||
args:
|
||||
time_float:时间戳
|
||||
return:
|
||||
State_list:[time,Xp,Yp,Zp,Vx,Vy,Vz]
|
||||
'''
|
||||
time_float=time_float_datetime.timestamp()
|
||||
time_float = time_float - self.oribitStartTime
|
||||
#
|
||||
px=0
|
||||
py=0
|
||||
pz=0
|
||||
vx=0
|
||||
vy=0
|
||||
vz=0
|
||||
for ii in range(self.polynum):
|
||||
px+=self.A_arr[ii][0]*time_float**ii
|
||||
py+=self.A_arr[ii][1]*time_float**ii
|
||||
pz+=self.A_arr[ii][2]*time_float**ii
|
||||
vx+=self.A_arr[ii][3]*time_float**ii
|
||||
vy+=self.A_arr[ii][4]*time_float**ii
|
||||
vz+=self.A_arr[ii][5]*time_float**ii
|
||||
sv= StateVector()
|
||||
sv.setTime(time_float_datetime)
|
||||
sv.setPosition([px,py,pz])
|
||||
sv.setVelocity([vx,vy,vz])
|
||||
return sv
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f") - datetime.timedelta(seconds=30)
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f") + datetime.timedelta(seconds=30)
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp.timestamp()-startTime_stamp.timestamp())/orbitnum
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+ datetime.timedelta(seconds=delta_t)
|
||||
newOrbit=self.getSatelliteSpaceState(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getSatelliteSpaceState(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def adaptToRender(self):
|
||||
import copy
|
||||
# make a copy of the stateVectors to restore it after dumping
|
||||
|
@ -446,10 +376,10 @@ class Orbit(Component):
|
|||
@raises NotImplementedError: if the desired interpolation method
|
||||
cannot be decoded
|
||||
"""
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError(
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %(time,self.minTime,self.maxTime)
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
|
||||
(time,self.minTime,self.maxTime)
|
||||
)
|
||||
|
||||
if method == 'linear':
|
||||
|
@ -463,11 +393,9 @@ class Orbit(Component):
|
|||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
return newSV
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
## Isn't orbit redundant? -compute the method based on name
|
||||
def interpolate(self, time, method='linear'):
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
|
||||
% (time,self.minTime,self.maxTime))
|
||||
|
@ -478,13 +406,8 @@ class Orbit(Component):
|
|||
raise NotImplementedError(
|
||||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
|
||||
|
||||
|
||||
# interpolateOrbit = interpolate #暂时注释----------------------------------------------------------------------------
|
||||
# interpolateOrbit = interpolate
|
||||
|
||||
def _linearOrbitInterpolation(self,time):
|
||||
"""
|
||||
|
@ -635,6 +558,7 @@ class Orbit(Component):
|
|||
"Fewer than 4 state vectors present in orbit, cannot interpolate"
|
||||
)
|
||||
return None
|
||||
|
||||
# The Fortran routine assumes that it is getting an array of four
|
||||
# state vectors
|
||||
try:
|
||||
|
@ -655,6 +579,7 @@ class Orbit(Component):
|
|||
obsTime, obsPos, obsVel,offset = newOrbit.to_tuple(
|
||||
relativeTo=self.minTime
|
||||
)
|
||||
|
||||
td = time - self.minTime
|
||||
ansTime = DTU.timeDeltaToSeconds(td)
|
||||
flatObsPos = [item for sublist in obsPos for item in sublist]
|
||||
|
@ -676,8 +601,6 @@ class Orbit(Component):
|
|||
ansPos_C,
|
||||
ansVel_C)
|
||||
|
||||
# print('插值成功----------------------------')
|
||||
# print(StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:]))
|
||||
return StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:])
|
||||
|
||||
## This need to be public -very confusing since there is an __iter__
|
||||
|
@ -1075,7 +998,7 @@ class Orbit(Component):
|
|||
pointOnGround = rdr2geo
|
||||
|
||||
def geo2rdr(self, llh, side=-1, planet=None,
|
||||
doppler=None, wvl=None,isLT1AB=True):
|
||||
doppler=None, wvl=None):
|
||||
'''
|
||||
Takes a lat, lon, height triplet and returns azimuth time and range.
|
||||
Assumes zero doppler for now.
|
||||
|
@ -1091,79 +1014,16 @@ class Orbit(Component):
|
|||
refElp = Planet(pname='Earth').ellipsoid
|
||||
else:
|
||||
refElp = planet.ellipsoid
|
||||
# print('llh', llh)
|
||||
|
||||
xyz = refElp.llh_to_xyz(llh)
|
||||
|
||||
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
||||
tguess = self.minTime #+ datetime.timedelta(seconds = delta)
|
||||
# print("Orbits.py 1024-----------------------------------------------")
|
||||
# print("self.maxTime", self.maxTime)
|
||||
# print("self.minTime", self.minTime)
|
||||
# print(delta)
|
||||
# print(tguess)
|
||||
|
||||
LIGHTSPEED=299792458
|
||||
if wvl==0:
|
||||
isLT1AB=False
|
||||
if isLT1AB and (self.sessionMode=="LT1A" or self.sessionMode=="LT1B") : # 专门针对 LT1AB
|
||||
print("LT1AB orbit.....")
|
||||
dt=0.0001
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess+datetime.timedelta(seconds= dt)) # 获取卫星的 位置、速度
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
||||
pos1 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel1 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr1 = pos1-xyz
|
||||
rng1 = np.linalg.norm(dr1) # 斜距
|
||||
|
||||
# ((R_s1.array() * V_s1.array()).rowwise().sum().array() * (-2) / (R * this->lamda))[0];
|
||||
FdTheory1 = -2/(rng1*wvl)*np.dot(dr1,vel1)
|
||||
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
pos2 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel2 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr2 = pos2-xyz
|
||||
rng = np.linalg.norm(dr2) # 斜距
|
||||
FdTheory2= -2/(rng*wvl)*np.dot(dr2,vel2)
|
||||
TSR= rng * 2 / LIGHTSPEED - self.refrenceTime # nx1
|
||||
|
||||
FdNumerical=0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[0]*TSR**0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[1]*TSR**1
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[2]*TSR**2
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[3]*TSR**3
|
||||
|
||||
fdopper_grad=(FdTheory1 - FdTheory2)/dt
|
||||
inc_t = (FdTheory2-FdNumerical) /fdopper_grad
|
||||
# print(inc_t,rng,FdNumerical,FdTheory2,tguess,pos2)
|
||||
tguess = tguess - datetime.timedelta(seconds = inc_t)
|
||||
|
||||
if abs(inc_t) < 1e-6:
|
||||
break
|
||||
else:
|
||||
t_prev_guess = tguess
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
else:
|
||||
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv = self.interpolateOrbit(tguess, method='hermite')
|
||||
except Exception as e:
|
||||
if self.sessionMode=="LT1A" or self.sessionMode=="LT1B":
|
||||
sv = self.getSatelliteSpaceState(tguess) # 获取卫星的 位置、速度
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
@ -1171,40 +1031,25 @@ class Orbit(Component):
|
|||
pos = np.array(sv.getPosition())
|
||||
vel = np.array(sv.getVelocity())
|
||||
|
||||
# print("xyz", xyz)
|
||||
# print("pos", pos)
|
||||
dr = xyz-pos
|
||||
rng = np.linalg.norm(dr) # 求斜距
|
||||
# print("rng", rng)
|
||||
|
||||
dopfact = np.dot(dr,vel) # fd 公式
|
||||
# print("dopfact", dopfact)
|
||||
rng = np.linalg.norm(dr)
|
||||
|
||||
dopfact = np.dot(dr,vel)
|
||||
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
|
||||
# print("doppler", doppler(DTU.seconds_since_midnight(tguess),rng))
|
||||
# print("wvl", wvl)
|
||||
# print("fdop", fdop)
|
||||
|
||||
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
|
||||
# print("doppler2", doppler(DTU.seconds_since_midnight(tguess),rng+10.0))
|
||||
# print("fdopder", fdopder)
|
||||
|
||||
fn = dopfact - fdop * rng
|
||||
c1 = -np.dot(vel, vel)
|
||||
c2 = (fdop/rng + fdopder)
|
||||
# print("c1", c1)
|
||||
# print("c2", c2)
|
||||
|
||||
fnprime = c1 + c2 * dopfact
|
||||
# print("时间为", fn/fnprime)
|
||||
# if abs(fn/fnprime) > 1:
|
||||
# break
|
||||
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
||||
# print("输出的tguess", tguess)
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if abs(fn/fnprime) < 1e-6:
|
||||
break
|
||||
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
|
||||
|
||||
return tguess, rng
|
||||
|
||||
|
||||
|
|
|
@ -30,12 +30,12 @@ from iscesys.Component.Component import Component
|
|||
from iscesys.DateTimeUtil.DateTimeUtil import DateTimeUtil as DTUtil
|
||||
import os
|
||||
import numpy as np
|
||||
import copy
|
||||
import math
|
||||
import datetime
|
||||
import time
|
||||
from math import sin,cos
|
||||
from scipy.optimize import leastsq
|
||||
import numpy as np
|
||||
from isceobj.Util.Poly2D import Poly2D
|
||||
|
||||
|
||||
|
@ -122,6 +122,155 @@ def XYZOuterM2(A, B):
|
|||
return C
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
# 作为自定义轨道计算基类
|
||||
# 定义几个基本方法:addvector(),createOrbit(),getTime(),getTimes()
|
||||
# 注意均为UTC
|
||||
def __init__(self):
|
||||
self.vectors=[]
|
||||
self.baseTime=None
|
||||
def addvector(self,UTCTime,vx,vy,vz,px,py,pz):
|
||||
neworbit_point=orbitVector(UTCTime,vx,vy,vz,px,py,pz)
|
||||
self.vectors.append(neworbit_point)
|
||||
if len(self.vectors)==1:
|
||||
self.baseTime=neworbit_point.time_stamp-1 # 基线
|
||||
else:
|
||||
if self.baseTime>neworbit_point.time_stamp:
|
||||
self.baseTime=neworbit_point.time_stamp-1
|
||||
|
||||
def createOrbit(self):
|
||||
pass
|
||||
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
return None
|
||||
|
||||
def getTimeOrbitStamp(self,StampTime):
|
||||
utcStr=datetime.datetime.fromtimestamp(StampTime).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
return self.getTimeOrbit(utcStr)
|
||||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=100):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)*1000/orbitnum
|
||||
delta_t=int(delta_t)/1000 # 获取
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+delta_t
|
||||
newOrbit=self.getTimeOrbitStamp(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
pass
|
||||
|
||||
|
||||
class GGorbit(SARorbit):
|
||||
# 最小二乘法,线性函数
|
||||
def __init__(self):
|
||||
super(GGorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<3:
|
||||
raise
|
||||
# 求解GGorbit模型参数
|
||||
gg_t=[]
|
||||
gg_rho=[]
|
||||
gg_I=[]
|
||||
gg_omega=[]
|
||||
gg_Omega=[]
|
||||
for orbit_point in self.vectors:
|
||||
gg_t.append(orbit_point.time_stamp-self.baseTime)
|
||||
gg_rho.append(orbit_point.rho)
|
||||
gg_I.append(orbit_point.I)
|
||||
gg_omega.append(orbit_point.omega)
|
||||
gg_Omega.append(orbit_point.Omega)
|
||||
# 声明 x
|
||||
gg_t=np.array(gg_t) # 时间 t
|
||||
# y
|
||||
gg_rho=np.array(gg_rho) # rho
|
||||
gg_I=np.array(gg_I) # I
|
||||
gg_omega=np.array(gg_omega) # omega
|
||||
gg_Omega=np.array(gg_Omega) # Omega
|
||||
# 计算结果
|
||||
self.p_rho=leastsq(poly2derror,[30,30,2],args=(gg_t,gg_rho))[0]
|
||||
self.p_I=leastsq(poly1derror,[30,2],args=(gg_t,gg_I))[0]
|
||||
self.p_omega=leastsq(poly1derror,[30,2],args=(gg_t,gg_omega))[0]
|
||||
self.p_Oemga=leastsq(poly1derror,[30,2],args=(gg_t,gg_Omega))[0]
|
||||
#print(len(self.p_rho),len(self.p_I),len(self.p_omega),len(self.p_Oemga))
|
||||
return
|
||||
|
||||
def getXYZ(self,Inputstaptime):
|
||||
staptime=Inputstaptime-self.baseTime
|
||||
rho=poly2dfunc(self.p_rho,staptime)
|
||||
I=poly1dfunc(self.p_I,staptime)
|
||||
omega=poly1dfunc(self.p_omega,staptime)
|
||||
Omega=poly1dfunc(self.p_Oemga,staptime)
|
||||
Xp=-1*rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-1*rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
return [Xp,Yp,Zp]
|
||||
|
||||
# 获取计算结果
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()
|
||||
dtime=0.0001
|
||||
[Xp,Yp,Zp]=self.getXYZ(staptime)
|
||||
[Xp_temp,Yp_temp,Zp_temp]=self.getXYZ(staptime+dtime)
|
||||
# 线性代数方法获取轨道速度
|
||||
Vx=(Xp_temp-Xp)/dtime
|
||||
Vy=(Yp_temp-Yp)/dtime
|
||||
Vz=(Zp_temp-Zp)/dtime
|
||||
#utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(UTCTime,Vx,Vy,Vz,Xp,Yp,Zp)
|
||||
return neworbit_point
|
||||
|
||||
class polyorbit(SARorbit):
|
||||
def __init__(self):
|
||||
super(polyorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<8:
|
||||
raise
|
||||
ts,xs,ys,zs,vx,vy,vz=[],[],[],[],[],[],[]
|
||||
for orbit_point in self.vectors:
|
||||
ts.append(orbit_point.time_stamp-self.baseTime)
|
||||
xs.append(orbit_point.px)
|
||||
ys.append(orbit_point.py)
|
||||
zs.append(orbit_point.pz)
|
||||
vx.append(orbit_point.vx)
|
||||
vy.append(orbit_point.vy)
|
||||
vz.append(orbit_point.vz)
|
||||
ts=np.array(ts)
|
||||
xs=np.array(xs)
|
||||
ys=np.array(ys)
|
||||
zs=np.array(zs)
|
||||
vx=np.array(vx)
|
||||
vy=np.array(vy)
|
||||
vz=np.array(vz)
|
||||
self.p_xs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,xs))
|
||||
self.p_ys=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,ys))
|
||||
self.p_zs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,zs))
|
||||
self.p_vxs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vx))
|
||||
self.p_vy=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vy))
|
||||
self.p_vz=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vz))
|
||||
return
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-self.baseTime
|
||||
xs=poly5dfunc(self.p_xs,staptime)
|
||||
ys=poly5dfunc(self.p_ys,staptime)
|
||||
zs=poly5dfunc(self.p_zs,staptime)
|
||||
vx=poly5dfunc(self.p_vx,staptime)
|
||||
vy=poly5dfunc(self.p_vy,staptime)
|
||||
vz=poly5dfunc(self.p_vz,staptime)
|
||||
utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(utmstr,vx,vy,vz,xs,ys,zs,dateformat="%Y-%m-%d %H:%M:%S.%f")
|
||||
return neworbit_point
|
||||
|
||||
class SatelliteOrbit(object):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
@ -190,6 +339,7 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
return self.A_arr
|
||||
elif len(GPSPoints_list) > 6:
|
||||
self.polynum=4
|
||||
# 多项式的节点数,理论上是超过5个可以起算,这里为了精度选择10个点起算。
|
||||
# 多项式 XA=Y ==> A=(X'X)^X'Y,其中 A 为待求系数,X为变量,Y为因变量
|
||||
# 这里使用三次项多项式,共有6组参数。
|
||||
|
@ -199,21 +349,37 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
record_count = len(GPSPoints_list)
|
||||
time_arr = np.zeros((record_count, 1), dtype=np.float64) # 使用np.float64只是为了精度高些;如果32位也能满足需求,请用32位
|
||||
state_arr = np.zeros((record_count, 6), dtype=np.float64)
|
||||
A_arr = np.zeros((self.polynum, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum),dtype=np.float64) # 记录时间坐标
|
||||
A_arr = np.zeros((self.polynum+1, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum+1),dtype=np.float64) # 记录时间坐标
|
||||
# 将点记录转换为自变量矩阵、因变量矩阵
|
||||
|
||||
for i in range(record_count):
|
||||
GPSPoint = GPSPoints_list[i]
|
||||
time_ = GPSPoint[0] - self.starttime # 为了保证精度,对时间进行缩放
|
||||
X[i,:]=np.array(list(map(lambda ii:time_**ii,range(self.polynum))))
|
||||
X[i,:]=np.array([1,time_,time_**2,time_**3,time_**4])
|
||||
state_arr[i, :] = np.array(GPSPoint[1:],dtype=np.float64).reshape(1,6) # 空间坐标
|
||||
self.model_f=[]
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i].reshape(-1,1)
|
||||
A_arr[:,i]=np.matmul(np.matmul(np.linalg.inv(np.matmul(X.T,X)),X.T),Y)[:,0]
|
||||
|
||||
self.A_arr=A_arr.copy()
|
||||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
''' 测试误差
|
||||
from matplotlib import pyplot
|
||||
label_list=['x','y','z','vx','vy','vz']
|
||||
color_list=['r','g','b','gold','gray','pink']
|
||||
pyplot.figure()
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i]
|
||||
Y_predict=self.model_f[i](X)
|
||||
pyplot.subplot(int("23{}".format(i+1)))
|
||||
d=Y-Y_predict
|
||||
pyplot.plot(X,d,label=label_list[i],color=color_list[i])
|
||||
pyplot.title("max:{}".format(np.max(d)))
|
||||
#self.model_f.append(interpolate.interp1d(X,Y,kind='cubic',fill_value='extrapolate'))
|
||||
pyplot.legend()
|
||||
pyplot.show()
|
||||
'''
|
||||
return self.A_arr
|
||||
else:
|
||||
self.A_arr = None
|
||||
|
@ -266,8 +432,8 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-1
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+1
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)/orbitnum
|
||||
|
@ -282,6 +448,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def getSatelliteSpaceState(self, time_array):
|
||||
'''
|
||||
矩阵求解
|
||||
根据时间戳矩阵,返回对应时刻的卫星空间状态(位置,速度),且会自动计算与起算时间之差
|
||||
args:
|
||||
time_array:nparray nx1 时间戳
|
||||
return:
|
||||
SatellitSpaceStateArray:nparray nx6 状态信息
|
||||
'''
|
||||
if self.model_f is None:
|
||||
return None # 返回None,表示没有结果
|
||||
if self.polynum==4:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],5)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
time_arr[:,2]=time_float**2
|
||||
time_arr[:,3]=time_float**3
|
||||
time_arr[:,4]=time_float**4
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
else:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],self.polynum+1)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
|
||||
def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
||||
'''
|
||||
构建卫星轨道
|
||||
|
@ -289,26 +492,26 @@ def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
|||
GPSPoints_list:卫星轨道点
|
||||
starttime:起算时间
|
||||
'''
|
||||
GPSPoint_list=[]
|
||||
for sv in stateVectors:
|
||||
GPSPoint=[sv.timeStamp.timestamp(),
|
||||
sv.xPosition,
|
||||
sv.yPosition,
|
||||
sv.zPosition,
|
||||
sv.xVelocity,
|
||||
sv.yVelocity,
|
||||
sv.zVelocity
|
||||
]
|
||||
GPSPoint_list.append(GPSPoint)
|
||||
# GPSPoint_list=[]
|
||||
# for sv in stateVectors:
|
||||
# GPSPoint=[sv.timeStamp.timestamp(),
|
||||
# sv.xPosition,
|
||||
# sv.yPosition,
|
||||
# sv.zPosition,
|
||||
# sv.xVelocity,
|
||||
# sv.yVelocity,
|
||||
# sv.zVelocity
|
||||
# ]
|
||||
# GPSPoint_list.append(GPSPoint)
|
||||
SatelliteOrbitModel = SatelliteOrbitFitPoly()
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(GPSPoint_list, starttime=starttime) is None:
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(stateVectors, starttime=starttime) is None:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
print("orbit test")
|
||||
distance=[]
|
||||
for gpsPoint in GPSPoint_list:
|
||||
for gpsPoint in stateVectors:
|
||||
temp_sv=SatelliteOrbitModel.SatelliteSpaceState(gpsPoint[0])
|
||||
sv=np.array(temp_sv[1])
|
||||
temp_distance=sv-gpsPoint[1:]
|
||||
|
@ -360,11 +563,11 @@ class orbitVector:
|
|||
def __init__(self,UTCTimes,vx,vy,vz,px,py,pz,dateformat="%Y-%m-%dT%H:%M:%S.%fZ"):
|
||||
self.UTCTime=datetime.datetime.strptime(UTCTimes,dateformat) # 字符串转UTC时间
|
||||
self.time_stamp=self.UTCTime.timestamp() # 时间戳
|
||||
self.vx=vx # Vx
|
||||
self.vx=vx
|
||||
self.vy=vy
|
||||
self.vz=vz
|
||||
self.px=px
|
||||
self.py=py # Ys
|
||||
self.py=py
|
||||
self.pz=pz
|
||||
self.orbitVector2GG() # 将坐标进行变换
|
||||
self.Check()
|
||||
|
@ -386,10 +589,10 @@ class orbitVector:
|
|||
I=self.I
|
||||
omega=self.omega
|
||||
Omega=self.Omega
|
||||
Xp=rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(Omega)*sin(I)
|
||||
print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
Xp=-rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
# print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
|
@ -554,8 +757,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
print("samples",samples)
|
||||
print("startingRange",startingRange)
|
||||
print("incidenceAngle",incidenceAngle)
|
||||
print(self.product.imageGenerationParameters.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.imageGenerationParameters.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print(self.product.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print("effective PRF %f, original PRF %f" % (prf, orig_prf) )
|
||||
print('-------------------------------------------')
|
||||
|
||||
|
@ -607,19 +810,16 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
self.frame.setProcessingSystem("LT1AB") # 陆探数据
|
||||
self.frame.getOrbit().setOrbitSource("LT1AB.META.XML")
|
||||
|
||||
|
||||
print("======= 修改轨道代码部分: =================")
|
||||
if (self.orbitFile is None) and (self.orbitDirectory is None):
|
||||
self.extractOrbit()
|
||||
|
||||
|
||||
elif (self.orbitDirectory is not None):
|
||||
self.orbitFile = findPreciseOrbit(self.orbitDirectory, self.frame.getOrbit().getOrbitSource(), self.frame.sensingStart.year)
|
||||
|
||||
if self.orbitFile is not None:
|
||||
self.extractPreciseOrbit(self.orbitFile, self.frame.sensingStart, self.frame.sensingStop)
|
||||
|
||||
|
||||
# save the Doppler centroid coefficients, converting units from product.xml file
|
||||
# units in the file are quadratic coefficients in Hz, Hz/sec, and Hz/(sec^2)
|
||||
# ISCE expects Hz, Hz/(range sample), Hz((range sample)^2
|
||||
|
@ -628,6 +828,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dc = self.product.dopplerCentroid
|
||||
poly = dc.dopplerCentroidCoefficients
|
||||
|
||||
# need to convert units
|
||||
poly[1] = poly[1]/rangeSamplingRate
|
||||
poly[2] = poly[2]/rangeSamplingRate**2
|
||||
|
@ -641,11 +842,13 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dr = self.product.dopplerRateValues
|
||||
fmpoly = dr.dopplerRateValuesCoefficients
|
||||
|
||||
# need to convert units
|
||||
fmpoly[1] = fmpoly[1]/rangeSamplingRate
|
||||
fmpoly[2] = fmpoly[2]/rangeSamplingRate**2
|
||||
self.azfmrate_coeff = fmpoly
|
||||
|
||||
|
||||
# now calculate effective PRF from the azimuth line spacing after we have the orbit info EJF 2015/08/15
|
||||
# this does not work because azimuth spacing is on ground. Instead use bandwidth ratio calculated above EJF
|
||||
# SCHvelocity = self.frame.getSchVelocity()
|
||||
|
@ -663,26 +866,50 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# Radarsat 2 needs orbit extensions.
|
||||
print("构建新的轨道程序代码:")
|
||||
|
||||
dataStartTime = self.product.dataStartTime.timestamp()
|
||||
dataStopTime = self.product.dataStopTime.timestamp()
|
||||
|
||||
tempOrbit = GGorbit()
|
||||
time_list = []
|
||||
self.frame.getOrbit().setOrbitSource('Header: ' + self.frame.getOrbit().getOrbitSource())
|
||||
stateVectors = self.product.OrbitModelInfo.stateVectors
|
||||
for i in range(len(stateVectors)):
|
||||
# print(i,stateVectors[i].timeStamp)
|
||||
# tempOrbit.addvector(stateVectors[i].timeStamp.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity,
|
||||
# stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition)
|
||||
time_list.append([stateVectors[i].timeStamp.timestamp(),
|
||||
stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition,
|
||||
stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity])
|
||||
|
||||
model = ReconstructionSatelliteOrbit(time_list, starttime=dataStartTime)
|
||||
time_dif = ((dataStopTime + 10) - (dataStartTime - 10)) / 1000
|
||||
time = np.zeros((1000, 1))
|
||||
for i in range(1000):
|
||||
time[i,:]=((dataStartTime - 10) + time_dif * i)
|
||||
t = time.reshape(-1)
|
||||
|
||||
statepoints = model.getSatelliteSpaceState(t)
|
||||
for i, value in zip(range(len(statepoints)), statepoints):
|
||||
sv= StateVector()
|
||||
sv.setTime(datetime.datetime.fromtimestamp(t[i]))
|
||||
sv.setPosition([value[0],value[1],value[2]])
|
||||
sv.setVelocity([value[3],value[4],value[5]])
|
||||
self.frame.getOrbit().addStateVector(sv) # 插值结果写进了轨道模型中
|
||||
# print(sv.position)
|
||||
# tempOrbit.createOrbit() # 构建轨道模型
|
||||
|
||||
# newOrb=tempOrbit.getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# orbitnum=1000)
|
||||
# for svect in newOrb:
|
||||
# sv= StateVector()
|
||||
# sv.setTime(svect.UTCTime)
|
||||
# sv.setPosition([svect.px,svect.py,svect.pz])
|
||||
# sv.setVelocity([svect.vx,svect.vy,svect.vz])
|
||||
# self.frame.getOrbit().addStateVector(sv)
|
||||
# print(sv.position)
|
||||
|
||||
tempOrbit= ReconstructionSatelliteOrbit(stateVectors,self.product.orbitstarttime.timestamp())
|
||||
As_arr=tempOrbit.A_arr.tolist()
|
||||
""" 构建轨道 """
|
||||
self.frame.getOrbit().setsessionMode(self.product.mission)
|
||||
print("卫星型号")
|
||||
print(self.frame.orbit.sessionMode)
|
||||
self.frame.getOrbit().setPolyParams(tempOrbit.polynum,tempOrbit.starttime,As_arr)
|
||||
self.frame.getOrbit().setDoppler(self.product.dopplerRateValues.dopplerRateReferenceTime,
|
||||
self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
""" """
|
||||
newOrb=self.frame.getOrbit().getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
orbitnum=1000)
|
||||
for svect in newOrb:
|
||||
self.frame.getOrbit().addStateVector(svect)
|
||||
|
||||
print('Successfully read state vectors from product XML')
|
||||
|
||||
|
@ -724,7 +951,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
raise Exception('Expected line to start with ";". Got {0}'.format(dummy))
|
||||
|
||||
fid.close()
|
||||
print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
# print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
|
||||
def extractImage(self, verbose=True):
|
||||
'''
|
||||
|
@ -806,7 +1033,9 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
fd_mid += poly[kk] * (tMid - t0)**kk
|
||||
|
||||
####For insarApp
|
||||
quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
|
||||
# quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
quadratic['a'] = 0.
|
||||
quadratic['b'] = 0.
|
||||
quadratic['c'] = 0.
|
||||
|
||||
|
@ -834,8 +1063,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
evals = poly(pix)
|
||||
fit = np.polyfit(pix,evals, len(coeffs)-1)
|
||||
self.frame._dopplerVsPixel = list(fit[::-1])
|
||||
self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
+self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
# self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
# +self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
|
||||
|
||||
# print('Doppler Fit: ', fit[::-1])
|
||||
|
|
|
@ -844,3 +844,103 @@ dtype = CFLOAT
|
|||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-03 18:23:06,011 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 09:22:36,006 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:22:36,033 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:22:36,058 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:22:37,197 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:22:39,477 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:22:41,079 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:32:53,750 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:32:53,989 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,186 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,432 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:56,208 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:32:56,209 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:45:06,799 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:45:06,826 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:45:06,851 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:45:08,050 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:45:10,397 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 09:45:12,097 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:46:15,846 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:46:15,847 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:27,610 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:55:27,828 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,012 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,240 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:34,680 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 09:55:34,691 - isce.mroipac.filter - DEBUG - width: 803
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - length: 1173
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 09:55:35,406 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 10:01:21,651 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 10:01:21,679 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 10:01:21,705 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 10:01:22,931 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 10:01:52,504 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-25 10:02:10,156 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9295072709955585
|
||||
2024-01-25 10:23:47,009 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:23:47,010 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:33:35,456 - isceobj.Location.OffsetField - INFO - 397 offsets culled
|
||||
2024-01-25 10:33:35,687 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:35,896 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:36,170 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:34:49,020 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - width: 3736
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - length: 5841
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 10:35:05,337 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
|
|
|
@ -89,6 +89,7 @@ def saveTiff(target_data_path,xsize,ysize,gt,srs,target_arr):
|
|||
driver = gdal.GetDriverByName('GTiff') # 数据类型必须有,因为要计算需要多大内存空间
|
||||
tiff_geo=driver.Create(target_data_path, int(xsize)+1, int(ysize)+1, 1, gdal.GDT_Float32)
|
||||
tiff_geo.GetRasterBand(1).WriteArray(target_arr)
|
||||
tiff_geo.GetRasterBand(1).SetNoDataValue(-9999)
|
||||
tiff_geo.SetGeoTransform(gt)
|
||||
tiff_geo.SetProjection(srs.ExportToWkt())
|
||||
del tiff_geo
|
||||
|
|
|
@ -1,128 +0,0 @@
|
|||
[01/03/2024 18:07:55] [11356] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\deformation-L-SAR ---from: DeformationMain.check_source (DeformationMain.py:Line71)
|
||||
[01/03/2024 18:07:55] [11356] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/03/2024 18:07:55] [11356] [INFO]- create new workspace success! ---from: DeformationMain.__create_work_space (DeformationMain.py:Line237)
|
||||
[01/03/2024 18:07:58] [11356] [INFO]- check_source success! ---from: DeformationMain.check_source (DeformationMain.py:Line100)
|
||||
[01/03/2024 18:07:58] [11356] [INFO]- progress bar: 5% ---from: DeformationMain.check_source (DeformationMain.py:Line101)
|
||||
[01/03/2024 18:07:58] [11356] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/D/micro/microproduct_depdence/LT-Deformation/dem -o /cygdrive/D/micro\LWork\Deformation\Temporary\preprocessed\dem ---from: DeformationMain.process_handle (DeformationMain.py:Line417)
|
||||
[01/03/2024 18:08:03] [11356] [INFO]- cmd_result:0 ---from: DeformationMain.process_handle (DeformationMain.py:Line419)
|
||||
[01/03/2024 18:08:03] [11356] [INFO]- demhgt2wgs finish! ---from: DeformationMain.process_handle (DeformationMain.py:Line427)
|
||||
[01/03/2024 18:08:03] [11356] [INFO]- progress bar: 5% ---from: DeformationMain.process_handle (DeformationMain.py:Line428)
|
||||
[01/03/2024 18:08:03] [11356] [INFO]- prepSlcLT1AB_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/ ---from: DeformationMain.process_handle (DeformationMain.py:Line446)
|
||||
[01/03/2024 18:08:45] [11356] [INFO]- cmd_result:0 ---from: DeformationMain.process_handle (DeformationMain.py:Line448)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- unpackFrame_LT1AB_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/ ---from: DeformationMain.process_handle (DeformationMain.py:Line452)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- cmd_result:0 ---from: DeformationMain.process_handle (DeformationMain.py:Line453)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- slc to isce_data finish! ---from: DeformationMain.process_handle (DeformationMain.py:Line454)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- progress bar: 10% ---from: DeformationMain.process_handle (DeformationMain.py:Line455)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace -d /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/dem/demLat_N3097570_N3209650_Lon_E597389_E696689.dem.wgs84 -m 20230523 -a 3 -r 3 -x '28.35 28.4 100.35 100.4' -u 'snaphu' --nofocus ---from: DeformationMain.process_handle (DeformationMain.py:Line459)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- cmd_result:0 ---from: DeformationMain.process_handle (DeformationMain.py:Line461)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- stackStripMap finish! ---from: DeformationMain.process_handle (DeformationMain.py:Line462)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- autorun_cmd:['-e', 'D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp', '-o', 'D:\\micro\\LWork\\Deformation\\Temporary\\processing\\isce_workspace'] ---from: DeformationMain.process_handle (DeformationMain.py:Line469)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_01_crop========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- ==========running step:01========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:10:12] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_crop_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:10:16] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_crop_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:10:16] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_crop_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_crop_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_02_reference========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]- ==========running step:02========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:10:18] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_reference_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_reference_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_03_focus_split========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]- ==========running step:03========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:11:32] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_04_geo2rdr_coarseResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]- ==========running step:04========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:11:33] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_05_refineSecondaryTiming========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]- ==========running step:05========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:11:54] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_06_invertMisreg========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]- ==========running step:06========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:22:34] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_07_fineResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- ==========running step:07========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:22:35] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_08_grid_baseline========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]- ==========running step:08========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:22:38] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_baselinegrid_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:23:01] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_baselinegrid_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:23:01] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_baselinegrid_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_baselinegrid_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]- D:\micro\LWork\Deformation\Temporary\processing\isce_workspace\log.txt=command text:run_09_igram========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]- ==========running step:09========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/03/2024 18:23:02] [11356] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_igram_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/03/2024 18:23:39] [11356] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/deformation-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/configs/config_igram_20230523_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/03/2024 18:23:39] [11356] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/03/2024 18:23:39] [11356] [INFO]- cmd_result:0 ---from: DeformationMain.process_handle (DeformationMain.py:Line471)
|
||||
[01/03/2024 18:23:39] [11356] [INFO]- autorun_cmd success! ---from: DeformationMain.process_handle (DeformationMain.py:Line475)
|
||||
[01/03/2024 18:23:39] [11356] [INFO]- progress bar: 90% ---from: DeformationMain.process_handle (DeformationMain.py:Line476)
|
||||
[01/03/2024 18:23:40] [11356] [INFO]- write quick view and .tar.gz finish ---from: DeformationMain.process_handle (DeformationMain.py:Line510)
|
||||
[01/03/2024 18:23:40] [11356] [INFO]- Deformation production successful ! ---from: DeformationMain.process_handle (DeformationMain.py:Line511)
|
||||
[01/03/2024 18:23:40] [11356] [INFO]- progress bar: 100% ---from: DeformationMain.process_handle (DeformationMain.py:Line512)
|
||||
[01/03/2024 18:23:40] [11356] [INFO]- successful production of Deformation products! ---from: DeformationMain.<module> (DeformationMain.py:Line530)
|
|
@ -53,8 +53,10 @@
|
|||
<ParaType>File</ParaType>
|
||||
<DataType>zip</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>D:\micro\microproduct_depdence\LT-Deformation\sars\ARCHIVED_FILES\LT1B_MONO_KSC_STRIP2_006708_E100.3_N28.2_20230523_SLC_HH_L1A_0000121886.tar.gz;
|
||||
D:\micro\microproduct_depdence\LT-Deformation\sars\ARCHIVED_FILES\LT1B_MONO_KSC_STRIP2_006827_E100.3_N28.2_20230531_SLC_HH_L1A_0000125779.tar.gz</ParaValue>
|
||||
<ParaValue>
|
||||
F:\240118\干涉对\def\LT1A_MONO_KSC_STRIP4_006353_E109.3_N19.0_20230328_SLC_AHV_L1A_0000087468.tar.gz;
|
||||
F:\240118\干涉对\def\LT1A_MONO_KRN_STRIP4_006593_E109.3_N19.0_20230413_SLC_AHV_L1A_0000097039.tar.gz
|
||||
</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
@ -65,11 +67,11 @@
|
|||
<Parameter>
|
||||
<ParaName>box</ParaName>
|
||||
<ParaChsName>经纬度包围盒</ParaChsName>
|
||||
<Description>经纬度包围盒SNWE。例子:27.35;28.6;110.46;111.71</Description>
|
||||
<Description>经纬度包围盒SNWE。例子:28;28.4;100.15;100.45</Description>
|
||||
<ParaType>value</ParaType>
|
||||
<DataType>string</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>28.35;28.4;100.35;100.4</ParaValue>
|
||||
<ParaValue>18.5;19.5;108.8;109.9</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>True</EnMultipleChoice>
|
||||
<Control>UploadInput</Control>
|
||||
|
@ -82,9 +84,9 @@
|
|||
<ParaChsName>高程数据路径</ParaChsName>
|
||||
<Description>高程数据数据。数据来源:30米 ASTGTM2, 数据格式:tif。备注:数据的经纬度范围必须是整数</Description>
|
||||
<ParaType>File</ParaType>
|
||||
<DataType>tif</DataType>
|
||||
<DataType>File</DataType>
|
||||
<ParaSource>Man</ParaSource>
|
||||
<ParaValue>D:\micro\microproduct_depdence\LT-Deformation\dem\97E27N_COP30.tif</ParaValue>
|
||||
<ParaValue>F:\240118\干涉对\DEM</ParaValue>
|
||||
<EnModification>True</EnModification>
|
||||
<EnMultipleChoice>False</EnMultipleChoice>
|
||||
<Control>File</Control>
|
||||
|
|
|
@ -460,7 +460,8 @@ class DemMain:
|
|||
logger.info('progress bar: 10%')
|
||||
|
||||
# os.chdir(isce_exe_dir)
|
||||
cmd = "stackStripMap.exe -s {} -w {} -d {} -m {} -a {} -r {} -x {} -u 'snaphu' --nofocus".format(out_slc_dir, isce_work_space, dem_path, main_img, 3, 3, box)
|
||||
# cmd = "stackStripMap.exe -s {} -w {} -d {} -m {} -a {} -r {} -x {} -u 'snaphu' --nofocus".format(out_slc_dir, isce_work_space, dem_path, main_img, 3, 3, box)
|
||||
cmd = "stackStripMap.exe -s {} -w {} -d {} -m {} -a {} -r {} -u 'snaphu' --nofocus".format(out_slc_dir, isce_work_space, dem_path, main_img, 3, 3)
|
||||
logger.info('stackStripMap_cmd:{}'.format(cmd))
|
||||
result = os.system(cmd)
|
||||
logger.info('cmd_result:{}'.format(result))
|
||||
|
@ -469,7 +470,7 @@ class DemMain:
|
|||
run_files = os.path.join(self.__workspace_isce_path, 'run_files')
|
||||
for file in list(glob.glob(os.path.join(run_files, '*.job'))):
|
||||
os.remove(file)
|
||||
run_steps = ["run_11_replaceOffsets"]
|
||||
run_steps = ["run_07_grid_baseline"]
|
||||
self.isce_run_steps(run_steps, self.__workspace_isce_path)
|
||||
cmd = ['-e', isce_exe_dir, '-o', self.__workspace_isce_path]
|
||||
|
||||
|
|
|
@ -234,15 +234,6 @@ class Orbit(Component):
|
|||
self._orbitSource = source or None
|
||||
self._referenceFrame = None
|
||||
self._stateVectors.configure()
|
||||
""" 自定义 """
|
||||
self.oribitStartTime=None
|
||||
self.A_arr=None
|
||||
self.polynum=None
|
||||
""" LT1AB 多普勒参数"""
|
||||
self.refrenceTime=None
|
||||
self.dopperPoly=[]
|
||||
""" 卫星名称"""
|
||||
self.sessionMode=None
|
||||
#self._stateVectors = stateVectors or []
|
||||
self._cpStateVectors = []
|
||||
type(self._stateVectors)
|
||||
|
@ -269,67 +260,6 @@ class Orbit(Component):
|
|||
# #pack the orbit into stateVectors
|
||||
# self._packOrbit(cpStateVectors[0], cpStateVectors[1], cpStateVectors[2], cpStateVectors[3])
|
||||
|
||||
def setsessionMode(self,SessionMode):
|
||||
self.sessionMode=SessionMode
|
||||
|
||||
def setPolyParams(self,polynum,orbitStartTime,A_arr):
|
||||
self.polynum=polynum
|
||||
self.oribitStartTime=orbitStartTime
|
||||
self.A_arr=A_arr
|
||||
|
||||
def setDoppler(self,refrenceTime,dopperPoly):
|
||||
self.refrenceTime=refrenceTime
|
||||
self.dopperPoly=dopperPoly
|
||||
pass
|
||||
|
||||
def getSatelliteSpaceState(self, time_float_datetime):
|
||||
'''
|
||||
逐像素求解
|
||||
根据时间戳,返回对应时间的卫星的轨迹状态,会自动计算与起算时间之差
|
||||
args:
|
||||
time_float:时间戳
|
||||
return:
|
||||
State_list:[time,Xp,Yp,Zp,Vx,Vy,Vz]
|
||||
'''
|
||||
time_float=time_float_datetime.timestamp()
|
||||
time_float = time_float - self.oribitStartTime
|
||||
#
|
||||
px=0
|
||||
py=0
|
||||
pz=0
|
||||
vx=0
|
||||
vy=0
|
||||
vz=0
|
||||
for ii in range(self.polynum):
|
||||
px+=self.A_arr[ii][0]*time_float**ii
|
||||
py+=self.A_arr[ii][1]*time_float**ii
|
||||
pz+=self.A_arr[ii][2]*time_float**ii
|
||||
vx+=self.A_arr[ii][3]*time_float**ii
|
||||
vy+=self.A_arr[ii][4]*time_float**ii
|
||||
vz+=self.A_arr[ii][5]*time_float**ii
|
||||
sv= StateVector()
|
||||
sv.setTime(time_float_datetime)
|
||||
sv.setPosition([px,py,pz])
|
||||
sv.setVelocity([vx,vy,vz])
|
||||
return sv
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f") - datetime.timedelta(seconds=30)
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f") + datetime.timedelta(seconds=30)
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp.timestamp()-startTime_stamp.timestamp())/orbitnum
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+ datetime.timedelta(seconds=delta_t)
|
||||
newOrbit=self.getSatelliteSpaceState(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getSatelliteSpaceState(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def adaptToRender(self):
|
||||
import copy
|
||||
# make a copy of the stateVectors to restore it after dumping
|
||||
|
@ -446,10 +376,10 @@ class Orbit(Component):
|
|||
@raises NotImplementedError: if the desired interpolation method
|
||||
cannot be decoded
|
||||
"""
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError(
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %(time,self.minTime,self.maxTime)
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
|
||||
(time,self.minTime,self.maxTime)
|
||||
)
|
||||
|
||||
if method == 'linear':
|
||||
|
@ -463,11 +393,9 @@ class Orbit(Component):
|
|||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
return newSV
|
||||
elif self.sessionMode=="LT1B" or self.sessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
## Isn't orbit redundant? -compute the method based on name
|
||||
def interpolate(self, time, method='linear'):
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
|
||||
% (time,self.minTime,self.maxTime))
|
||||
|
@ -478,12 +406,8 @@ class Orbit(Component):
|
|||
raise NotImplementedError(
|
||||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
elif self.sessionMode=="LT1B" or self.sessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
|
||||
|
||||
# interpolateOrbit = interpolate #暂时注释----------------------------------------------------------------------------
|
||||
# interpolateOrbit = interpolate
|
||||
|
||||
def _linearOrbitInterpolation(self,time):
|
||||
"""
|
||||
|
@ -634,6 +558,7 @@ class Orbit(Component):
|
|||
"Fewer than 4 state vectors present in orbit, cannot interpolate"
|
||||
)
|
||||
return None
|
||||
|
||||
# The Fortran routine assumes that it is getting an array of four
|
||||
# state vectors
|
||||
try:
|
||||
|
@ -654,6 +579,7 @@ class Orbit(Component):
|
|||
obsTime, obsPos, obsVel,offset = newOrbit.to_tuple(
|
||||
relativeTo=self.minTime
|
||||
)
|
||||
|
||||
td = time - self.minTime
|
||||
ansTime = DTU.timeDeltaToSeconds(td)
|
||||
flatObsPos = [item for sublist in obsPos for item in sublist]
|
||||
|
@ -675,8 +601,6 @@ class Orbit(Component):
|
|||
ansPos_C,
|
||||
ansVel_C)
|
||||
|
||||
# print('插值成功----------------------------')
|
||||
# print(StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:]))
|
||||
return StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:])
|
||||
|
||||
## This need to be public -very confusing since there is an __iter__
|
||||
|
@ -1074,7 +998,7 @@ class Orbit(Component):
|
|||
pointOnGround = rdr2geo
|
||||
|
||||
def geo2rdr(self, llh, side=-1, planet=None,
|
||||
doppler=None, wvl=None,isLT1AB=True):
|
||||
doppler=None, wvl=None):
|
||||
'''
|
||||
Takes a lat, lon, height triplet and returns azimuth time and range.
|
||||
Assumes zero doppler for now.
|
||||
|
@ -1090,79 +1014,16 @@ class Orbit(Component):
|
|||
refElp = Planet(pname='Earth').ellipsoid
|
||||
else:
|
||||
refElp = planet.ellipsoid
|
||||
# print('llh', llh)
|
||||
|
||||
xyz = refElp.llh_to_xyz(llh)
|
||||
|
||||
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
||||
tguess = self.minTime #+ datetime.timedelta(seconds = delta)
|
||||
# print("Orbits.py 1024-----------------------------------------------")
|
||||
# print("self.maxTime", self.maxTime)
|
||||
# print("self.minTime", self.minTime)
|
||||
# print(delta)
|
||||
# print(tguess)
|
||||
|
||||
LIGHTSPEED=299792458
|
||||
if wvl==0:
|
||||
isLT1AB=False
|
||||
if isLT1AB and (self.sessionMode=="LT1A" or self.sessionMode=="LT1B") : # 专门针对 LT1AB
|
||||
print("LT1AB orbit.....")
|
||||
dt=0.0001
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess+datetime.timedelta(seconds= dt)) # 获取卫星的 位置、速度
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
||||
pos1 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel1 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr1 = pos1-xyz
|
||||
rng1 = np.linalg.norm(dr1) # 斜距
|
||||
|
||||
# ((R_s1.array() * V_s1.array()).rowwise().sum().array() * (-2) / (R * this->lamda))[0];
|
||||
FdTheory1 = -2/(rng1*wvl)*np.dot(dr1,vel1)
|
||||
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
pos2 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel2 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr2 = pos2-xyz
|
||||
rng = np.linalg.norm(dr2) # 斜距
|
||||
FdTheory2= -2/(rng*wvl)*np.dot(dr2,vel2)
|
||||
TSR= rng * 2 / LIGHTSPEED - self.refrenceTime # nx1
|
||||
|
||||
FdNumerical=0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[0]*TSR**0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[1]*TSR**1
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[2]*TSR**2
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[3]*TSR**3
|
||||
|
||||
fdopper_grad=(FdTheory1 - FdTheory2)/dt
|
||||
inc_t = (FdTheory2-FdNumerical) /fdopper_grad
|
||||
# print(inc_t,rng,FdNumerical,FdTheory2,tguess,pos2)
|
||||
tguess = tguess - datetime.timedelta(seconds = inc_t)
|
||||
|
||||
if abs(inc_t) < 1e-6:
|
||||
break
|
||||
else:
|
||||
t_prev_guess = tguess
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
else:
|
||||
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv = self.interpolateOrbit(tguess, method='hermite')
|
||||
except Exception as e:
|
||||
if self.sessionMode=="LT1A" or self.sessionMode=="LT1B":
|
||||
sv = self.getSatelliteSpaceState(tguess) # 获取卫星的 位置、速度
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
@ -1170,40 +1031,25 @@ class Orbit(Component):
|
|||
pos = np.array(sv.getPosition())
|
||||
vel = np.array(sv.getVelocity())
|
||||
|
||||
# print("xyz", xyz)
|
||||
# print("pos", pos)
|
||||
dr = xyz-pos
|
||||
rng = np.linalg.norm(dr) # 求斜距
|
||||
# print("rng", rng)
|
||||
|
||||
dopfact = np.dot(dr,vel) # fd 公式
|
||||
# print("dopfact", dopfact)
|
||||
rng = np.linalg.norm(dr)
|
||||
|
||||
dopfact = np.dot(dr,vel)
|
||||
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
|
||||
# print("doppler", doppler(DTU.seconds_since_midnight(tguess),rng))
|
||||
# print("wvl", wvl)
|
||||
# print("fdop", fdop)
|
||||
|
||||
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
|
||||
# print("doppler2", doppler(DTU.seconds_since_midnight(tguess),rng+10.0))
|
||||
# print("fdopder", fdopder)
|
||||
|
||||
fn = dopfact - fdop * rng
|
||||
c1 = -np.dot(vel, vel)
|
||||
c2 = (fdop/rng + fdopder)
|
||||
# print("c1", c1)
|
||||
# print("c2", c2)
|
||||
|
||||
fnprime = c1 + c2 * dopfact
|
||||
# print("时间为", fn/fnprime)
|
||||
# if abs(fn/fnprime) > 1:
|
||||
# break
|
||||
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
||||
# print("输出的tguess", tguess)
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if abs(fn/fnprime) < 1e-6:
|
||||
break
|
||||
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
|
||||
|
||||
return tguess, rng
|
||||
|
||||
|
||||
|
|
|
@ -30,12 +30,12 @@ from iscesys.Component.Component import Component
|
|||
from iscesys.DateTimeUtil.DateTimeUtil import DateTimeUtil as DTUtil
|
||||
import os
|
||||
import numpy as np
|
||||
import copy
|
||||
import math
|
||||
import datetime
|
||||
import time
|
||||
from math import sin,cos
|
||||
from scipy.optimize import leastsq
|
||||
import numpy as np
|
||||
from isceobj.Util.Poly2D import Poly2D
|
||||
|
||||
|
||||
|
@ -122,6 +122,155 @@ def XYZOuterM2(A, B):
|
|||
return C
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
# 作为自定义轨道计算基类
|
||||
# 定义几个基本方法:addvector(),createOrbit(),getTime(),getTimes()
|
||||
# 注意均为UTC
|
||||
def __init__(self):
|
||||
self.vectors=[]
|
||||
self.baseTime=None
|
||||
def addvector(self,UTCTime,vx,vy,vz,px,py,pz):
|
||||
neworbit_point=orbitVector(UTCTime,vx,vy,vz,px,py,pz)
|
||||
self.vectors.append(neworbit_point)
|
||||
if len(self.vectors)==1:
|
||||
self.baseTime=neworbit_point.time_stamp-1 # 基线
|
||||
else:
|
||||
if self.baseTime>neworbit_point.time_stamp:
|
||||
self.baseTime=neworbit_point.time_stamp-1
|
||||
|
||||
def createOrbit(self):
|
||||
pass
|
||||
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
return None
|
||||
|
||||
def getTimeOrbitStamp(self,StampTime):
|
||||
utcStr=datetime.datetime.fromtimestamp(StampTime).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
return self.getTimeOrbit(utcStr)
|
||||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=100):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)*1000/orbitnum
|
||||
delta_t=int(delta_t)/1000 # 获取
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+delta_t
|
||||
newOrbit=self.getTimeOrbitStamp(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
pass
|
||||
|
||||
|
||||
class GGorbit(SARorbit):
|
||||
# 最小二乘法,线性函数
|
||||
def __init__(self):
|
||||
super(GGorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<3:
|
||||
raise
|
||||
# 求解GGorbit模型参数
|
||||
gg_t=[]
|
||||
gg_rho=[]
|
||||
gg_I=[]
|
||||
gg_omega=[]
|
||||
gg_Omega=[]
|
||||
for orbit_point in self.vectors:
|
||||
gg_t.append(orbit_point.time_stamp-self.baseTime)
|
||||
gg_rho.append(orbit_point.rho)
|
||||
gg_I.append(orbit_point.I)
|
||||
gg_omega.append(orbit_point.omega)
|
||||
gg_Omega.append(orbit_point.Omega)
|
||||
# 声明 x
|
||||
gg_t=np.array(gg_t) # 时间 t
|
||||
# y
|
||||
gg_rho=np.array(gg_rho) # rho
|
||||
gg_I=np.array(gg_I) # I
|
||||
gg_omega=np.array(gg_omega) # omega
|
||||
gg_Omega=np.array(gg_Omega) # Omega
|
||||
# 计算结果
|
||||
self.p_rho=leastsq(poly2derror,[30,30,2],args=(gg_t,gg_rho))[0]
|
||||
self.p_I=leastsq(poly1derror,[30,2],args=(gg_t,gg_I))[0]
|
||||
self.p_omega=leastsq(poly1derror,[30,2],args=(gg_t,gg_omega))[0]
|
||||
self.p_Oemga=leastsq(poly1derror,[30,2],args=(gg_t,gg_Omega))[0]
|
||||
#print(len(self.p_rho),len(self.p_I),len(self.p_omega),len(self.p_Oemga))
|
||||
return
|
||||
|
||||
def getXYZ(self,Inputstaptime):
|
||||
staptime=Inputstaptime-self.baseTime
|
||||
rho=poly2dfunc(self.p_rho,staptime)
|
||||
I=poly1dfunc(self.p_I,staptime)
|
||||
omega=poly1dfunc(self.p_omega,staptime)
|
||||
Omega=poly1dfunc(self.p_Oemga,staptime)
|
||||
Xp=-1*rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-1*rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
return [Xp,Yp,Zp]
|
||||
|
||||
# 获取计算结果
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()
|
||||
dtime=0.0001
|
||||
[Xp,Yp,Zp]=self.getXYZ(staptime)
|
||||
[Xp_temp,Yp_temp,Zp_temp]=self.getXYZ(staptime+dtime)
|
||||
# 线性代数方法获取轨道速度
|
||||
Vx=(Xp_temp-Xp)/dtime
|
||||
Vy=(Yp_temp-Yp)/dtime
|
||||
Vz=(Zp_temp-Zp)/dtime
|
||||
#utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(UTCTime,Vx,Vy,Vz,Xp,Yp,Zp)
|
||||
return neworbit_point
|
||||
|
||||
class polyorbit(SARorbit):
|
||||
def __init__(self):
|
||||
super(polyorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<8:
|
||||
raise
|
||||
ts,xs,ys,zs,vx,vy,vz=[],[],[],[],[],[],[]
|
||||
for orbit_point in self.vectors:
|
||||
ts.append(orbit_point.time_stamp-self.baseTime)
|
||||
xs.append(orbit_point.px)
|
||||
ys.append(orbit_point.py)
|
||||
zs.append(orbit_point.pz)
|
||||
vx.append(orbit_point.vx)
|
||||
vy.append(orbit_point.vy)
|
||||
vz.append(orbit_point.vz)
|
||||
ts=np.array(ts)
|
||||
xs=np.array(xs)
|
||||
ys=np.array(ys)
|
||||
zs=np.array(zs)
|
||||
vx=np.array(vx)
|
||||
vy=np.array(vy)
|
||||
vz=np.array(vz)
|
||||
self.p_xs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,xs))
|
||||
self.p_ys=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,ys))
|
||||
self.p_zs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,zs))
|
||||
self.p_vxs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vx))
|
||||
self.p_vy=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vy))
|
||||
self.p_vz=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vz))
|
||||
return
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-self.baseTime
|
||||
xs=poly5dfunc(self.p_xs,staptime)
|
||||
ys=poly5dfunc(self.p_ys,staptime)
|
||||
zs=poly5dfunc(self.p_zs,staptime)
|
||||
vx=poly5dfunc(self.p_vx,staptime)
|
||||
vy=poly5dfunc(self.p_vy,staptime)
|
||||
vz=poly5dfunc(self.p_vz,staptime)
|
||||
utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(utmstr,vx,vy,vz,xs,ys,zs,dateformat="%Y-%m-%d %H:%M:%S.%f")
|
||||
return neworbit_point
|
||||
|
||||
class SatelliteOrbit(object):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
@ -190,6 +339,7 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
return self.A_arr
|
||||
elif len(GPSPoints_list) > 6:
|
||||
self.polynum=4
|
||||
# 多项式的节点数,理论上是超过5个可以起算,这里为了精度选择10个点起算。
|
||||
# 多项式 XA=Y ==> A=(X'X)^X'Y,其中 A 为待求系数,X为变量,Y为因变量
|
||||
# 这里使用三次项多项式,共有6组参数。
|
||||
|
@ -199,21 +349,37 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
record_count = len(GPSPoints_list)
|
||||
time_arr = np.zeros((record_count, 1), dtype=np.float64) # 使用np.float64只是为了精度高些;如果32位也能满足需求,请用32位
|
||||
state_arr = np.zeros((record_count, 6), dtype=np.float64)
|
||||
A_arr = np.zeros((self.polynum, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum),dtype=np.float64) # 记录时间坐标
|
||||
A_arr = np.zeros((self.polynum+1, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum+1),dtype=np.float64) # 记录时间坐标
|
||||
# 将点记录转换为自变量矩阵、因变量矩阵
|
||||
|
||||
for i in range(record_count):
|
||||
GPSPoint = GPSPoints_list[i]
|
||||
time_ = GPSPoint[0] - self.starttime # 为了保证精度,对时间进行缩放
|
||||
X[i,:]=np.array(list(map(lambda ii:time_**ii,range(self.polynum))))
|
||||
X[i,:]=np.array([1,time_,time_**2,time_**3,time_**4])
|
||||
state_arr[i, :] = np.array(GPSPoint[1:],dtype=np.float64).reshape(1,6) # 空间坐标
|
||||
self.model_f=[]
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i].reshape(-1,1)
|
||||
A_arr[:,i]=np.matmul(np.matmul(np.linalg.inv(np.matmul(X.T,X)),X.T),Y)[:,0]
|
||||
|
||||
self.A_arr=A_arr.copy()
|
||||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
''' 测试误差
|
||||
from matplotlib import pyplot
|
||||
label_list=['x','y','z','vx','vy','vz']
|
||||
color_list=['r','g','b','gold','gray','pink']
|
||||
pyplot.figure()
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i]
|
||||
Y_predict=self.model_f[i](X)
|
||||
pyplot.subplot(int("23{}".format(i+1)))
|
||||
d=Y-Y_predict
|
||||
pyplot.plot(X,d,label=label_list[i],color=color_list[i])
|
||||
pyplot.title("max:{}".format(np.max(d)))
|
||||
#self.model_f.append(interpolate.interp1d(X,Y,kind='cubic',fill_value='extrapolate'))
|
||||
pyplot.legend()
|
||||
pyplot.show()
|
||||
'''
|
||||
return self.A_arr
|
||||
else:
|
||||
self.A_arr = None
|
||||
|
@ -266,8 +432,8 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-1
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+1
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)/orbitnum
|
||||
|
@ -282,6 +448,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def getSatelliteSpaceState(self, time_array):
|
||||
'''
|
||||
矩阵求解
|
||||
根据时间戳矩阵,返回对应时刻的卫星空间状态(位置,速度),且会自动计算与起算时间之差
|
||||
args:
|
||||
time_array:nparray nx1 时间戳
|
||||
return:
|
||||
SatellitSpaceStateArray:nparray nx6 状态信息
|
||||
'''
|
||||
if self.model_f is None:
|
||||
return None # 返回None,表示没有结果
|
||||
if self.polynum==4:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],5)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
time_arr[:,2]=time_float**2
|
||||
time_arr[:,3]=time_float**3
|
||||
time_arr[:,4]=time_float**4
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
else:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],self.polynum+1)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
|
||||
def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
||||
'''
|
||||
构建卫星轨道
|
||||
|
@ -289,26 +492,26 @@ def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
|||
GPSPoints_list:卫星轨道点
|
||||
starttime:起算时间
|
||||
'''
|
||||
GPSPoint_list=[]
|
||||
for sv in stateVectors:
|
||||
GPSPoint=[sv.timeStamp.timestamp(),
|
||||
sv.xPosition,
|
||||
sv.yPosition,
|
||||
sv.zPosition,
|
||||
sv.xVelocity,
|
||||
sv.yVelocity,
|
||||
sv.zVelocity
|
||||
]
|
||||
GPSPoint_list.append(GPSPoint)
|
||||
# GPSPoint_list=[]
|
||||
# for sv in stateVectors:
|
||||
# GPSPoint=[sv.timeStamp.timestamp(),
|
||||
# sv.xPosition,
|
||||
# sv.yPosition,
|
||||
# sv.zPosition,
|
||||
# sv.xVelocity,
|
||||
# sv.yVelocity,
|
||||
# sv.zVelocity
|
||||
# ]
|
||||
# GPSPoint_list.append(GPSPoint)
|
||||
SatelliteOrbitModel = SatelliteOrbitFitPoly()
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(GPSPoint_list, starttime=starttime) is None:
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(stateVectors, starttime=starttime) is None:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
print("orbit test")
|
||||
distance=[]
|
||||
for gpsPoint in GPSPoint_list:
|
||||
for gpsPoint in stateVectors:
|
||||
temp_sv=SatelliteOrbitModel.SatelliteSpaceState(gpsPoint[0])
|
||||
sv=np.array(temp_sv[1])
|
||||
temp_distance=sv-gpsPoint[1:]
|
||||
|
@ -360,11 +563,11 @@ class orbitVector:
|
|||
def __init__(self,UTCTimes,vx,vy,vz,px,py,pz,dateformat="%Y-%m-%dT%H:%M:%S.%fZ"):
|
||||
self.UTCTime=datetime.datetime.strptime(UTCTimes,dateformat) # 字符串转UTC时间
|
||||
self.time_stamp=self.UTCTime.timestamp() # 时间戳
|
||||
self.vx=vx # Vx
|
||||
self.vx=vx
|
||||
self.vy=vy
|
||||
self.vz=vz
|
||||
self.px=px
|
||||
self.py=py # Ys
|
||||
self.py=py
|
||||
self.pz=pz
|
||||
self.orbitVector2GG() # 将坐标进行变换
|
||||
self.Check()
|
||||
|
@ -386,10 +589,10 @@ class orbitVector:
|
|||
I=self.I
|
||||
omega=self.omega
|
||||
Omega=self.Omega
|
||||
Xp=rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(Omega)*sin(I)
|
||||
print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
Xp=-rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
# print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
|
@ -554,8 +757,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
print("samples",samples)
|
||||
print("startingRange",startingRange)
|
||||
print("incidenceAngle",incidenceAngle)
|
||||
print(self.product.imageGenerationParameters.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.imageGenerationParameters.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print(self.product.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print("effective PRF %f, original PRF %f" % (prf, orig_prf) )
|
||||
print('-------------------------------------------')
|
||||
|
||||
|
@ -607,19 +810,16 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
self.frame.setProcessingSystem("LT1AB") # 陆探数据
|
||||
self.frame.getOrbit().setOrbitSource("LT1AB.META.XML")
|
||||
|
||||
|
||||
print("======= 修改轨道代码部分: =================")
|
||||
if (self.orbitFile is None) and (self.orbitDirectory is None):
|
||||
self.extractOrbit()
|
||||
|
||||
|
||||
elif (self.orbitDirectory is not None):
|
||||
self.orbitFile = findPreciseOrbit(self.orbitDirectory, self.frame.getOrbit().getOrbitSource(), self.frame.sensingStart.year)
|
||||
|
||||
if self.orbitFile is not None:
|
||||
self.extractPreciseOrbit(self.orbitFile, self.frame.sensingStart, self.frame.sensingStop)
|
||||
|
||||
|
||||
# save the Doppler centroid coefficients, converting units from product.xml file
|
||||
# units in the file are quadratic coefficients in Hz, Hz/sec, and Hz/(sec^2)
|
||||
# ISCE expects Hz, Hz/(range sample), Hz((range sample)^2
|
||||
|
@ -628,6 +828,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dc = self.product.dopplerCentroid
|
||||
poly = dc.dopplerCentroidCoefficients
|
||||
|
||||
# need to convert units
|
||||
poly[1] = poly[1]/rangeSamplingRate
|
||||
poly[2] = poly[2]/rangeSamplingRate**2
|
||||
|
@ -641,11 +842,13 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dr = self.product.dopplerRateValues
|
||||
fmpoly = dr.dopplerRateValuesCoefficients
|
||||
|
||||
# need to convert units
|
||||
fmpoly[1] = fmpoly[1]/rangeSamplingRate
|
||||
fmpoly[2] = fmpoly[2]/rangeSamplingRate**2
|
||||
self.azfmrate_coeff = fmpoly
|
||||
|
||||
|
||||
# now calculate effective PRF from the azimuth line spacing after we have the orbit info EJF 2015/08/15
|
||||
# this does not work because azimuth spacing is on ground. Instead use bandwidth ratio calculated above EJF
|
||||
# SCHvelocity = self.frame.getSchVelocity()
|
||||
|
@ -663,26 +866,50 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# Radarsat 2 needs orbit extensions.
|
||||
print("构建新的轨道程序代码:")
|
||||
|
||||
dataStartTime = self.product.dataStartTime.timestamp()
|
||||
dataStopTime = self.product.dataStopTime.timestamp()
|
||||
|
||||
tempOrbit = GGorbit()
|
||||
time_list = []
|
||||
self.frame.getOrbit().setOrbitSource('Header: ' + self.frame.getOrbit().getOrbitSource())
|
||||
stateVectors = self.product.OrbitModelInfo.stateVectors
|
||||
for i in range(len(stateVectors)):
|
||||
# print(i,stateVectors[i].timeStamp)
|
||||
# tempOrbit.addvector(stateVectors[i].timeStamp.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity,
|
||||
# stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition)
|
||||
time_list.append([stateVectors[i].timeStamp.timestamp(),
|
||||
stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition,
|
||||
stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity])
|
||||
|
||||
model = ReconstructionSatelliteOrbit(time_list, starttime=dataStartTime)
|
||||
time_dif = ((dataStopTime + 10) - (dataStartTime - 10)) / 1000
|
||||
time = np.zeros((1000, 1))
|
||||
for i in range(1000):
|
||||
time[i,:]=((dataStartTime - 10) + time_dif * i)
|
||||
t = time.reshape(-1)
|
||||
|
||||
statepoints = model.getSatelliteSpaceState(t)
|
||||
for i, value in zip(range(len(statepoints)), statepoints):
|
||||
sv= StateVector()
|
||||
sv.setTime(datetime.datetime.fromtimestamp(t[i]))
|
||||
sv.setPosition([value[0],value[1],value[2]])
|
||||
sv.setVelocity([value[3],value[4],value[5]])
|
||||
self.frame.getOrbit().addStateVector(sv) # 插值结果写进了轨道模型中
|
||||
# print(sv.position)
|
||||
# tempOrbit.createOrbit() # 构建轨道模型
|
||||
|
||||
# newOrb=tempOrbit.getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# orbitnum=1000)
|
||||
# for svect in newOrb:
|
||||
# sv= StateVector()
|
||||
# sv.setTime(svect.UTCTime)
|
||||
# sv.setPosition([svect.px,svect.py,svect.pz])
|
||||
# sv.setVelocity([svect.vx,svect.vy,svect.vz])
|
||||
# self.frame.getOrbit().addStateVector(sv)
|
||||
# print(sv.position)
|
||||
|
||||
tempOrbit= ReconstructionSatelliteOrbit(stateVectors,self.product.orbitstarttime.timestamp())
|
||||
As_arr=tempOrbit.A_arr.tolist()
|
||||
""" 构建轨道 """
|
||||
self.frame.getOrbit().setsessionMode(self.product.mission)
|
||||
print("卫星型号")
|
||||
print(self.frame.orbit.sessionMode)
|
||||
self.frame.getOrbit().setPolyParams(tempOrbit.polynum,tempOrbit.starttime,As_arr)
|
||||
self.frame.getOrbit().setDoppler(self.product.dopplerRateValues.dopplerRateReferenceTime,
|
||||
self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
""" """
|
||||
newOrb=self.frame.getOrbit().getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
orbitnum=1000)
|
||||
for svect in newOrb:
|
||||
self.frame.getOrbit().addStateVector(svect)
|
||||
|
||||
print('Successfully read state vectors from product XML')
|
||||
|
||||
|
@ -724,7 +951,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
raise Exception('Expected line to start with ";". Got {0}'.format(dummy))
|
||||
|
||||
fid.close()
|
||||
print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
# print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
|
||||
def extractImage(self, verbose=True):
|
||||
'''
|
||||
|
@ -806,7 +1033,9 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
fd_mid += poly[kk] * (tMid - t0)**kk
|
||||
|
||||
####For insarApp
|
||||
quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
|
||||
# quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
quadratic['a'] = 0.
|
||||
quadratic['b'] = 0.
|
||||
quadratic['c'] = 0.
|
||||
|
||||
|
@ -834,8 +1063,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
evals = poly(pix)
|
||||
fit = np.polyfit(pix,evals, len(coeffs)-1)
|
||||
self.frame._dopplerVsPixel = list(fit[::-1])
|
||||
self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
+self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
# self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
# +self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
|
||||
|
||||
# print('Doppler Fit: ', fit[::-1])
|
||||
|
|
|
@ -417,8 +417,8 @@ class Ampcor(Component):
|
|||
if (self.scaleFactorX < 0.9) or (self.scaleFactorX > 1.1):
|
||||
raise ValueError('Ampcor is designed to work on images with maximum of 10%% scale difference in range. Attempting to use images with scale difference of %2.2f'%(self.scaleFactorX))
|
||||
|
||||
# print('Scale Factor in Range: ', self.scaleFactorX)
|
||||
# print('Scale Factor in Azimuth: ', self.scaleFactorY)
|
||||
print('Scale Factor in Range: ', self.scaleFactorX)
|
||||
print('Scale Factor in Azimuth: ', self.scaleFactorY)
|
||||
|
||||
offAcmax = int(self.acrossGrossOffset + (self.scaleFactorX-1)*self.lineLength1)
|
||||
|
||||
|
@ -432,7 +432,7 @@ class Ampcor(Component):
|
|||
|
||||
if (self.skipSampleDown is None) and (self.numberLocationDown is not None):
|
||||
self.skipSampleDown = int((self.lastSampleDown - self.firstSampleDown) / (self.numberLocationDown - 1.))
|
||||
# print('Skip Sample Down: %d'%(self.skipSampleDown))
|
||||
print('Skip Sample Down: %d'%(self.skipSampleDown))
|
||||
else:
|
||||
raise ValueError('Both skipSampleDown and numberLocationDown undefined. Need atleast one input.')
|
||||
|
||||
|
@ -444,7 +444,7 @@ class Ampcor(Component):
|
|||
|
||||
if (self.skipSampleAcross is None) and (self.numberLocationAcross is not None):
|
||||
self.skipSampleAcross = int((self.lastSampleAcross - self.firstSampleAcross) / (self.numberLocationAcross - 1.))
|
||||
# print('Skip Sample Across: %d'%(self.skipSampleAcross))
|
||||
print('Skip Sample Across: %d'%(self.skipSampleAcross))
|
||||
else:
|
||||
raise ValueError('Both skipSampleDown and numberLocationDown undefined. Need atleast one input.')
|
||||
|
||||
|
|
|
@ -375,10 +375,10 @@ class DenseAmpcor(Component):
|
|||
|
||||
self.offsetCols, self.offsetLines = self.numLocationAcross, self.numLocationDown
|
||||
|
||||
# print('Pixels: ', self.lineLength1, self.lineLength2)
|
||||
# print('Lines: ', self.fileLength1, self.fileLength2)
|
||||
# print('Wins : ', self.windowSizeWidth, self.windowSizeHeight)
|
||||
# print('Srch: ', self.searchWindowSizeWidth, self.searchWindowSizeHeight)
|
||||
print('Pixels: ', self.lineLength1, self.lineLength2)
|
||||
print('Lines: ', self.fileLength1, self.fileLength2)
|
||||
print('Wins : ', self.windowSizeWidth, self.windowSizeHeight)
|
||||
print('Srch: ', self.searchWindowSizeWidth, self.searchWindowSizeHeight)
|
||||
|
||||
|
||||
#####Create shared memory objects
|
||||
|
@ -423,7 +423,7 @@ class DenseAmpcor(Component):
|
|||
firstind = flat_indices[istart:iend,:].ravel()[0]
|
||||
lastind = flat_indices[istart:iend,:].ravel()[-1]
|
||||
|
||||
# print(ofmt % (thrd, firstind, lastind, startAc, endAc, startDown, endDown))
|
||||
print(ofmt % (thrd, firstind, lastind, startAc, endAc, startDown, endDown))
|
||||
|
||||
# Launch job
|
||||
args = (startAc,endAc,startDown,endDown,self.numLocationAcross,
|
||||
|
|
Binary file not shown.
|
@ -1,23 +0,0 @@
|
|||
<VRTDataset rasterXSize="31" rasterYSize="48">
|
||||
<VRTRasterBand dataType="Float32" band="1" subClass="VRTRawRasterBand">
|
||||
<SourceFilename relativeToVRT="1">dense_ampcor_cov.bil</SourceFilename>
|
||||
<ByteOrder>LSB</ByteOrder>
|
||||
<ImageOffset>0</ImageOffset>
|
||||
<PixelOffset>4</PixelOffset>
|
||||
<LineOffset>372</LineOffset>
|
||||
</VRTRasterBand>
|
||||
<VRTRasterBand dataType="Float32" band="2" subClass="VRTRawRasterBand">
|
||||
<SourceFilename relativeToVRT="1">dense_ampcor_cov.bil</SourceFilename>
|
||||
<ByteOrder>LSB</ByteOrder>
|
||||
<ImageOffset>124</ImageOffset>
|
||||
<PixelOffset>4</PixelOffset>
|
||||
<LineOffset>372</LineOffset>
|
||||
</VRTRasterBand>
|
||||
<VRTRasterBand dataType="Float32" band="3" subClass="VRTRawRasterBand">
|
||||
<SourceFilename relativeToVRT="1">dense_ampcor_cov.bil</SourceFilename>
|
||||
<ByteOrder>LSB</ByteOrder>
|
||||
<ImageOffset>248</ImageOffset>
|
||||
<PixelOffset>4</PixelOffset>
|
||||
<LineOffset>372</LineOffset>
|
||||
</VRTRasterBand>
|
||||
</VRTDataset>
|
|
@ -1,111 +0,0 @@
|
|||
<imageFile>
|
||||
<property name="ISCE_VERSION">
|
||||
<value>Release: 2.6.2, svn-, 20230117. Current: svn-.</value>
|
||||
</property>
|
||||
<property name="access_mode">
|
||||
<value>read</value>
|
||||
<doc>Image access mode.</doc>
|
||||
</property>
|
||||
<property name="byte_order">
|
||||
<value>l</value>
|
||||
<doc>Endianness of the image.</doc>
|
||||
</property>
|
||||
<component name="coordinate1">
|
||||
<factorymodule>isceobj.Image</factorymodule>
|
||||
<factoryname>createCoordinate</factoryname>
|
||||
<doc>First coordinate of a 2D image (width).</doc>
|
||||
<property name="delta">
|
||||
<value>1</value>
|
||||
<doc>Coordinate quantization.</doc>
|
||||
</property>
|
||||
<property name="endingvalue">
|
||||
<value>31</value>
|
||||
<doc>Ending value of the coordinate.</doc>
|
||||
</property>
|
||||
<property name="family">
|
||||
<value>imagecoordinate</value>
|
||||
<doc>Instance family name</doc>
|
||||
</property>
|
||||
<property name="name">
|
||||
<value>imagecoordinate_name</value>
|
||||
<doc>Instance name</doc>
|
||||
</property>
|
||||
<property name="size">
|
||||
<value>31</value>
|
||||
<doc>Coordinate size.</doc>
|
||||
</property>
|
||||
<property name="startingvalue">
|
||||
<value>0</value>
|
||||
<doc>Starting value of the coordinate.</doc>
|
||||
</property>
|
||||
</component>
|
||||
<component name="coordinate2">
|
||||
<factorymodule>isceobj.Image</factorymodule>
|
||||
<factoryname>createCoordinate</factoryname>
|
||||
<doc>Second coordinate of a 2D image (length).</doc>
|
||||
<property name="delta">
|
||||
<value>1</value>
|
||||
<doc>Coordinate quantization.</doc>
|
||||
</property>
|
||||
<property name="endingvalue">
|
||||
<value>48</value>
|
||||
<doc>Ending value of the coordinate.</doc>
|
||||
</property>
|
||||
<property name="family">
|
||||
<value>imagecoordinate</value>
|
||||
<doc>Instance family name</doc>
|
||||
</property>
|
||||
<property name="name">
|
||||
<value>imagecoordinate_name</value>
|
||||
<doc>Instance name</doc>
|
||||
</property>
|
||||
<property name="size">
|
||||
<value>48</value>
|
||||
<doc>Coordinate size.</doc>
|
||||
</property>
|
||||
<property name="startingvalue">
|
||||
<value>0</value>
|
||||
<doc>Starting value of the coordinate.</doc>
|
||||
</property>
|
||||
</component>
|
||||
<property name="data_type">
|
||||
<value>FLOAT</value>
|
||||
<doc>Image data type.</doc>
|
||||
</property>
|
||||
<property name="family">
|
||||
<value>image</value>
|
||||
<doc>Instance family name</doc>
|
||||
</property>
|
||||
<property name="file_name">
|
||||
<value>dense_ampcor_cov.bil</value>
|
||||
<doc>Name of the image file.</doc>
|
||||
</property>
|
||||
<property name="length">
|
||||
<value>48</value>
|
||||
<doc>Image length</doc>
|
||||
</property>
|
||||
<property name="name">
|
||||
<value>image_name</value>
|
||||
<doc>Instance name</doc>
|
||||
</property>
|
||||
<property name="number_bands">
|
||||
<value>3</value>
|
||||
<doc>Number of image bands.</doc>
|
||||
</property>
|
||||
<property name="scheme">
|
||||
<value>BIL</value>
|
||||
<doc>Interleaving scheme of the image.</doc>
|
||||
</property>
|
||||
<property name="width">
|
||||
<value>31</value>
|
||||
<doc>Image width</doc>
|
||||
</property>
|
||||
<property name="xmax">
|
||||
<value>31</value>
|
||||
<doc>Maximum range value</doc>
|
||||
</property>
|
||||
<property name="xmin">
|
||||
<value>0</value>
|
||||
<doc>Minimum range value</doc>
|
||||
</property>
|
||||
</imageFile>
|
Binary file not shown.
|
@ -808,10 +808,46 @@ dtype = CFLOAT
|
|||
2023-12-15 11:53:03,676 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2023-12-15 11:53:03,676 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2023-12-15 11:53:04,408 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-03 18:26:08,308 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-03 18:26:08,310 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-03 18:26:08,312 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-03 18:26:09,250 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-03 18:10:12,853 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-03 18:10:12,858 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-03 18:10:12,861 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-03 18:10:14,509 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:10:17,234 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Deformation/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:10:18,784 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-03 18:11:50,451 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:11:50,451 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:22:33,974 - isceobj.Location.OffsetField - INFO - 812 offsets culled
|
||||
2024-01-03 18:22:34,121 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:34,279 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:34,405 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:22:36,271 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:22:36,271 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:23:05,205 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-03 18:23:05,217 - isce.mroipac.filter - DEBUG - width: 796
|
||||
2024-01-03 18:23:05,217 - isce.mroipac.filter - DEBUG - length: 1172
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Deformation/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-03 18:23:05,218 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-03 18:23:06,011 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 09:22:36,006 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:22:36,033 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:22:36,058 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:22:37,197 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
|
@ -819,7 +855,7 @@ length = 31514
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:26:11,238 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 09:22:39,477 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
|
@ -827,27 +863,19 @@ length = 28444
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-03 18:26:12,737 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-03 18:27:19,379 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:27:19,380 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:37:16,812 - isceobj.Location.OffsetField - INFO - 812 offsets culled
|
||||
2024-01-03 18:37:16,953 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:37:17,120 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:37:17,270 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-03 18:37:18,951 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-03 18:37:18,952 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2387 which is the width of the slc image.
|
||||
2024-01-03 18:37:49,864 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-03 18:37:49,874 - isce.mroipac.filter - DEBUG - width: 796
|
||||
2024-01-03 18:37:49,874 - isce.mroipac.filter - DEBUG - length: 1172
|
||||
2024-01-03 18:37:49,875 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-03 18:37:49,875 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-03 18:37:49,875 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-03 18:37:49,875 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-03 18:37:50,674 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-09 15:10:29,375 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-09 15:10:29,378 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-09 15:10:29,380 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-09 15:10:30,525 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 09:22:41,079 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:23:43,123 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:32:53,750 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:32:53,989 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,186 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:54,432 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:32:56,208 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:32:56,209 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:45:06,799 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 09:45:06,826 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 09:45:06,851 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 09:45:08,050 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
|
@ -855,7 +883,7 @@ length = 31514
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-09 15:10:32,844 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 09:45:10,397 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
|
@ -863,30 +891,27 @@ length = 28444
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-09 15:10:34,353 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-09 15:11:35,559 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-09 15:11:35,560 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-09 15:20:43,270 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-09 15:20:43,420 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-09 15:20:43,597 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-09 15:20:43,734 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-09 15:20:45,638 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-09 15:20:45,639 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-09 15:21:14,255 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-09 15:21:14,267 - isce.mroipac.filter - DEBUG - width: 803
|
||||
2024-01-09 15:21:14,267 - isce.mroipac.filter - DEBUG - length: 1172
|
||||
2024-01-09 15:21:14,268 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-09 15:21:14,268 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-09 15:21:14,268 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-09 15:21:14,268 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-09 15:21:15,039 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-17 16:50:35,817 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-17 16:50:35,820 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-17 16:50:35,822 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-17 17:02:37,003 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-17 17:02:37,007 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-17 17:02:37,011 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-17 17:02:50,936 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 09:45:12,097 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 09:46:15,846 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:46:15,847 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:27,610 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 09:55:27,828 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,012 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:28,240 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 09:55:29,933 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 09:55:34,680 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 09:55:34,691 - isce.mroipac.filter - DEBUG - width: 803
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - length: 1173
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 09:55:34,692 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 09:55:35,406 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 10:01:21,651 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 10:01:21,679 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 10:01:21,705 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 10:01:22,931 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
|
@ -894,7 +919,7 @@ length = 31514
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:02:55,267 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 10:01:52,504 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
|
@ -902,19 +927,27 @@ length = 28444
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:02:58,194 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-17 17:05:51,292 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:05:51,293 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-17 17:16:46,789 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-17 17:16:46,944 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:16:47,128 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:16:47,269 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:16:49,462 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:16:49,462 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-17 17:24:06,603 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-17 17:24:06,606 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-17 17:24:06,608 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-17 17:24:07,682 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 10:02:10,156 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9295072709955585
|
||||
2024-01-25 10:23:47,009 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:23:47,010 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:33:35,456 - isceobj.Location.OffsetField - INFO - 397 offsets culled
|
||||
2024-01-25 10:33:35,687 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:35,896 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:36,170 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 17481 which is the number of lines in the slc image.
|
||||
2024-01-25 10:33:42,356 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 11203 which is the width of the slc image.
|
||||
2024-01-25 10:34:49,020 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - width: 3736
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - length: 5841
|
||||
2024-01-25 10:34:49,032 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 10:34:49,033 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 10:35:05,337 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 14:52:27,852 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 14:52:27,878 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 14:52:27,911 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 14:52:29,436 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
|
@ -922,7 +955,7 @@ length = 31514
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:24:09,783 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
2024-01-25 14:52:31,897 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
|
@ -930,180 +963,43 @@ length = 28444
|
|||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:24:11,382 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-17 17:25:24,836 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:25:24,837 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-17 17:34:58,872 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-17 17:34:59,024 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:34:59,200 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:34:59,344 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:35:00,950 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:35:00,951 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-17 17:39:02,919 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-17 17:39:02,922 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-17 17:39:02,924 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-17 17:39:05,394 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:39:09,941 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-17 17:39:11,606 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-17 17:40:52,638 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:40:52,638 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-17 17:51:40,059 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-17 17:51:40,212 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:51:40,385 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:51:40,521 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-17 17:51:42,307 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-17 17:51:42,308 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 08:54:20,194 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-18 08:54:20,196 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-18 08:54:20,198 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-18 08:54:21,360 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 08:54:23,423 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 08:54:24,891 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-18 08:55:36,033 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 08:55:36,034 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 09:04:45,241 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-18 09:04:45,400 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:04:45,584 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:04:45,723 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:04:47,653 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 09:04:47,653 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 09:47:35,147 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-18 09:47:35,149 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-18 09:47:35,151 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-18 09:47:36,167 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 09:47:38,290 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 09:47:39,883 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-18 09:48:42,631 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 09:48:42,631 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 09:57:57,737 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-18 09:57:57,882 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:57:58,066 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:57:58,204 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 09:57:59,802 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 09:57:59,803 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 10:37:09,481 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-18 10:37:09,483 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-18 10:37:09,485 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-18 10:37:10,477 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 10:37:12,486 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 10:37:14,034 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-18 10:38:14,298 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 10:38:14,298 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 10:47:21,894 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-18 10:47:22,041 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 10:47:22,217 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 10:47:22,364 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 10:47:23,953 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 10:47:23,953 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 11:29:52,839 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-18 11:29:52,842 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-18 11:29:52,844 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-18 11:29:53,940 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 11:29:56,287 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 11:29:57,965 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-18 11:31:10,162 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 11:31:10,162 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 11:40:36,026 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-18 11:40:36,173 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 11:40:36,338 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 11:40:36,469 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 11:40:38,089 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 11:40:38,089 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 14:50:56,610 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-18 14:50:56,614 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-18 14:50:56,617 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-18 14:50:58,083 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230523/20230523.slc
|
||||
bands = 1
|
||||
width = 25462
|
||||
length = 31514
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 14:51:01,186 - root - DEBUG - Creating readonly ISCE mmap with
|
||||
file = /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/20230531/20230531.slc
|
||||
bands = 1
|
||||
width = 25586
|
||||
length = 28444
|
||||
scheme = BIP
|
||||
dtype = CFLOAT
|
||||
|
||||
2024-01-18 14:51:03,580 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293522057636876
|
||||
2024-01-18 14:52:50,448 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 14:52:50,449 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-18 15:05:01,340 - isceobj.Location.OffsetField - INFO - 800 offsets culled
|
||||
2024-01-18 15:05:01,545 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 15:05:01,748 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 15:05:01,918 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-18 15:05:04,366 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-18 15:05:04,367 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 14:52:33,662 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.9293511365051303
|
||||
2024-01-25 14:53:38,688 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 14:53:38,689 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 15:02:36,896 - isceobj.Location.OffsetField - INFO - 513 offsets culled
|
||||
2024-01-25 15:02:37,116 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 15:02:37,301 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 15:02:37,521 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 15:02:39,431 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 3510 which is the number of lines in the slc image.
|
||||
2024-01-25 15:02:39,432 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 2407 which is the width of the slc image.
|
||||
2024-01-25 15:02:43,887 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - DEBUG - width: 803
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - DEBUG - length: 1173
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 15:02:43,898 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 15:02:44,620 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
2024-01-25 17:54:11,795 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 17:54:11,820 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 17:54:11,843 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 17:56:43,906 - isce.mroipac.baseline - INFO - Sampling time 0
|
||||
2024-01-25 17:56:43,935 - isce.mroipac.baseline - INFO - Sampling time 1
|
||||
2024-01-25 17:56:43,961 - isce.mroipac.baseline - INFO - Sampling time 2
|
||||
2024-01-25 17:56:45,139 - isce.zerodop.topozero - WARNING - Default Peg heading set to: -2.929537927249224
|
||||
2024-01-25 19:12:41,025 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 28444 which is the number of lines in the slc image.
|
||||
2024-01-25 19:12:41,026 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 25586 which is the width of the slc image.
|
||||
2024-01-25 19:22:59,936 - isceobj.Location.OffsetField - INFO - 316 offsets culled
|
||||
2024-01-25 19:23:00,115 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 19:23:00,313 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 19:23:00,486 - isceobj.Location.OffsetField - INFO - 0 offsets culled
|
||||
2024-01-25 19:23:22,034 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_LINES has been set to the default value 28444 which is the number of lines in the slc image.
|
||||
2024-01-25 19:23:22,035 - isce.stdproc.resamp_slc - WARNING - The variable INPUT_WIDTH has been set to the default value 25586 which is the width of the slc image.
|
||||
2024-01-25 19:27:57,852 - isce.tops.runFilter - INFO - Applying power-spectral filter
|
||||
2024-01-25 19:27:57,863 - isce.mroipac.filter - DEBUG - width: 8487
|
||||
2024-01-25 19:27:57,864 - isce.mroipac.filter - DEBUG - length: 10504
|
||||
2024-01-25 19:27:57,864 - isce.mroipac.filter - DEBUG - input: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/20230523_20230531.int
|
||||
2024-01-25 19:27:57,864 - isce.mroipac.filter - DEBUG - output: /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/Igrams/20230523_20230531/filt_20230523_20230531.int
|
||||
2024-01-25 19:27:57,864 - isce.mroipac.filter - DEBUG - filter strength: 0.8
|
||||
2024-01-25 19:27:57,864 - isce.mroipac.filter - INFO - Filtering interferogram
|
||||
2024-01-25 19:28:59,009 - isce.tops.runFilter - INFO - Estimating spatial coherence based phase sigma
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,251 +0,0 @@
|
|||
Exception: STATUS_ACCESS_VIOLATION at rip=0003D36695E6
|
||||
rax=00000007FFFF4CF0 rbx=0000000A00A6E300 rcx=0000000000000000
|
||||
rdx=00007FFCB49AF1B0 rsi=00000000FFFFFFFF rdi=0000000000000001
|
||||
r8 =0000000A00A8D310 r9 =000000000000FFFF r10=0000000000000001
|
||||
r11=00000000000005D0 r12=0000000A00A8D310 r13=0000000000000040
|
||||
r14=00000000000005D0 r15=00000007FFFF4CB0
|
||||
rbp=00000007FFFF4CF0 rsp=00000007FFFF4C00
|
||||
program=D:\estar-proj\microproduct-l-sar\dem-L-SAR\ISCEApp\stripmapWrapper.exe, pid 775, thread main
|
||||
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
|
||||
Stack trace:
|
||||
Frame Function Args
|
||||
0007FFFF4CF0 0003D36695E6 (0000013A0720, 0007FFFF6048, 000000000088, FFFF013A0720) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x1795E6
|
||||
0007FFFF4CF0 0003D366CA76 (0003DAD2CCAB, 000300000000, 000000000000, 000000000000) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x17CA76
|
||||
000000000001 0003D377A3EC (000A003EC110, 00000000000E, 6FFFFF44CD50, 000000000000) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x28A3EC
|
||||
000000000001 0003D3792A0C (0003D3811C35, 000A00005548, 7FFCB48734E1, 0007FFFF5AC0) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x2A2A0C
|
||||
000000000000 0003D37995A7 (000A00A69800, 000A000068D0, 000A00008700, 6FFF00000000) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x2A95A7
|
||||
000A000068D0 0003D3799BE6 (6FFFF6FB03B0, FFFFFFFFFFFFFFFF, 0003DAC803B0, 6FFFFFF3F66E) _multiarray_umath.cpython-39-x86_64-cygwin.dll+0x2A9BE6
|
||||
000A000068D0 0003DADF4D6A (82A6A1EC30810CEA, 6FFF00000000, 0007FFFF6EA0, 000000000000) libpython3.9.dll+0x1D4D6A
|
||||
6FFFF6863F50 0003DAD2DA31 (0003DAC9357B, 000000000000, F79FFA77844554E5, 6FFFF67E4910) libpython3.9.dll+0x10DA31
|
||||
6FFFF6AA75F0 0003DAC620A4 (6FFFF6AA70B0, 00000000019C, 0003DACC3B2C, 6FFFFFFF7EE0) libpython3.9.dll+0x420A4
|
||||
000A000068D0 0003DADF3278 (82A6A1EC30810CEA, 6FFF00000000, 82A6A1EC30810CEA, 000000000000) libpython3.9.dll+0x1D3278
|
||||
000000000001 0003DAD2DA31 (6FFFF6B34CD0, 000A000068D0, 6FFFF6853630, 6FFFF6B34CC8) libpython3.9.dll+0x10DA31
|
||||
6FFFFFE3D3F0 0003DAC620A4 (6FFFF68D4BA0, 6FFFF68A03E8, 000A00008700, 6FFF00000000) libpython3.9.dll+0x420A4
|
||||
000A000068D0 0003DADF4D6A (6FFFFF4EE478, 6FFF00000000, 7FFCB49AF1B0, 6FFFF6975580) libpython3.9.dll+0x1D4D6A
|
||||
000A000068D0 0003DADED0A4 (6FFF00000000, 7FFCB49AF1B0, 6FFFF6975580, 6FFFFF4DA524) libpython3.9.dll+0x1CD0A4
|
||||
000A000068D0 6FFFFF4EE460 (7FFCB49AF1B0, 6FFFF6975580, 6FFFFF4DA524, 6FFFF6975588)
|
||||
000A000068D0 6FFFFF4EE478 (6FFFF6975580, 6FFFFF4DA524, 6FFFF6975588, 6FFFFF4E6F50)
|
||||
000A000068D0 6FFF00000000 (6FFFFF4DA524, 6FFFF6975588, 6FFFFF4E6F50, 000A00008700)
|
||||
000A000068D0 7FFCB49AF1B0 (6FFFF6975588, 6FFFFF4E6F50, 000A00008700, 0003DAC62227) cygwin1.dll+0x2DF1B0
|
||||
000A000068D0 6FFFF6975580 (6FFFFF4E6F50, 000A00008700, 0003DAC62227, 6FFFF6EF79C0)
|
||||
000A000068D0 6FFFFF4DA524 (000A00008700, 0003DAC62227, 6FFFF6EF79C0, 0003DAC9357B)
|
||||
000A000068D0 6FFFF6975588 (0003DAC62227, 6FFFF6EF79C0, 0003DAC9357B, 000A00008700)
|
||||
000A000068D0 6FFFFF4E6F50 (6FFFF6EF79C0, 0003DAC9357B, 000A00008700, 0003DACB2089)
|
||||
000A000068D0 000A00008700 (0003DAC9357B, 000A00008700, 0003DACB2089, 6FFFFFF39E40)
|
||||
000A000068D0 0003DAC62227 (6FFF00000001, 00000000000D, 6FFFF683FC80, 000000000000) libpython3.9.dll+0x42227
|
||||
000A000068D0 0003DADF4C6F (000A001FD1D0, 000A00000000, 000A000068D0, 000A001FD060) libpython3.9.dll+0x1D4C6F
|
||||
000000000002 0003DAD2DA31 (0003DAC9357B, 6FFFFFFF4A60, 6FFFFFFF4A78, 6FFFFF831B60) libpython3.9.dll+0x10DA31
|
||||
6FFFFFE3D3F0 0003DAC620A4 (82A6A1EC30810CEA, 000000000000, 000000000000, 000000000000) libpython3.9.dll+0x420A4
|
||||
000A000068D0 0003DADF3697 (0003DAC958EE, 000100000000, 7FFCB4809BE7, 6FFFFF4E6870) libpython3.9.dll+0x1D3697
|
||||
000000000000 0003DAD2DA31 (000A00000480, 6FFFFFE8BE30, 82A6A1EC30810CEA, 000000000000) libpython3.9.dll+0x10DA31
|
||||
000100410078 0003DAD2DDA1 (0007FFFF7C18, 6FFFFFFC6B50, 000A000044F0, 6FFF0000002F) libpython3.9.dll+0x10DDA1
|
||||
000100410078 0001004025BE (000000000000, 000000000000, 000000000000, 000000000000) stripmapWrapper.exe+0x25BE
|
||||
000000000000 0001004028AE (000000000000, 000000000000, 000000000000, 000000000000) stripmapWrapper.exe+0x28AE
|
||||
End of stack trace (more stack frames may be present)
|
||||
Loaded modules:
|
||||
000100400000 stripmapWrapper.exe
|
||||
7FFD374D0000 ntdll.dll
|
||||
7FFD36060000 KERNEL32.DLL
|
||||
7FFD348D0000 KERNELBASE.dll
|
||||
7FFCB46D0000 cygwin1.dll
|
||||
0003DB3C0000 cygz.dll
|
||||
7FFD36AA0000 advapi32.dll
|
||||
7FFD36960000 msvcrt.dll
|
||||
7FFD373D0000 sechost.dll
|
||||
7FFD34DF0000 bcrypt.dll
|
||||
7FFD372B0000 RPCRT4.dll
|
||||
7FFD33FB0000 CRYPTBASE.DLL
|
||||
7FFD34FB0000 bcryptPrimitives.dll
|
||||
7FFD33460000 authz.dll
|
||||
7FFD35030000 ucrtbase.dll
|
||||
0003DAC20000 libpython3.9.dll
|
||||
0003E4780000 cygintl-8.dll
|
||||
0003EEE20000 cyggcc_s-seh-1.dll
|
||||
0003E6720000 cygiconv-2.dll
|
||||
0003D62B0000 _struct.cpython-39-x86_64-cygwin.dll
|
||||
0003D5F40000 zlib.cpython-39-x86_64-cygwin.dll
|
||||
0003D65C0000 _ctypes.cpython-39-x86_64-cygwin.dll
|
||||
0003EFDF0000 cygffi-8.dll
|
||||
0003D6490000 _heapq.cpython-39-x86_64-cygwin.dll
|
||||
0003D6400000 _opcode.cpython-39-x86_64-cygwin.dll
|
||||
0003D6130000 grp.cpython-39-x86_64-cygwin.dll
|
||||
0003D63C0000 _posixsubprocess.cpython-39-x86_64-cygwin.dll
|
||||
0003D60A0000 select.cpython-39-x86_64-cygwin.dll
|
||||
0003D6110000 math.cpython-39-x86_64-cygwin.dll
|
||||
0003D6170000 binascii.cpython-39-x86_64-cygwin.dll
|
||||
0003D6740000 _bz2.cpython-39-x86_64-cygwin.dll
|
||||
0003F4250000 cygbz2-1.dll
|
||||
0003D6450000 _lzma.cpython-39-x86_64-cygwin.dll
|
||||
0003E3F40000 cyglzma-5.dll
|
||||
0003D65F0000 _csv.cpython-39-x86_64-cygwin.dll
|
||||
0003D6770000 _bisect.cpython-39-x86_64-cygwin.dll
|
||||
0003D63A0000 _random.cpython-39-x86_64-cygwin.dll
|
||||
0003D6350000 _sha512.cpython-39-x86_64-cygwin.dll
|
||||
0003D6330000 _socket.cpython-39-x86_64-cygwin.dll
|
||||
0003D61A0000 array.cpython-39-x86_64-cygwin.dll
|
||||
0003D6550000 _datetime.cpython-39-x86_64-cygwin.dll
|
||||
0003D63B0000 _queue.cpython-39-x86_64-cygwin.dll
|
||||
7FFD33330000 iphlpapi.dll
|
||||
7FFD33360000 DNSAPI.dll
|
||||
7FFD36760000 NSI.dll
|
||||
7FFD2DFC0000 dhcpcsvc6.DLL
|
||||
7FFD2DF50000 dhcpcsvc.DLL
|
||||
7FFD31DF0000 WINNSI.DLL
|
||||
0003D6470000 _json.cpython-39-x86_64-cygwin.dll
|
||||
0003D60D0000 pyexpat.cpython-39-x86_64-cygwin.dll
|
||||
0003EFEB0000 cygexpat-1.dll
|
||||
0003D63E0000 _pickle.cpython-39-x86_64-cygwin.dll
|
||||
0003D6410000 _multiprocessing.cpython-39-x86_64-cygwin.dll
|
||||
0003D63D0000 _posixshmem.cpython-39-x86_64-cygwin.dll
|
||||
0003D6210000 _tkinter.cpython-39-x86_64-cygwin.dll
|
||||
0003DA940000 libtk8.6.dll
|
||||
0003DAA80000 libtcl8.6.dll
|
||||
0003F5F90000 cygXft-2.dll
|
||||
0003F6050000 cygX11-6.dll
|
||||
7FFD35400000 USER32.dll
|
||||
0003F5C50000 cygXss-1.dll
|
||||
0003EF690000 cygfontconfig-1.dll
|
||||
7FFD35150000 win32u.dll
|
||||
0003F5C60000 cygXrender-1.dll
|
||||
0003DB820000 cygxcb-1.dll
|
||||
0003EEEE0000 cygfreetype-6.dll
|
||||
0003F5FC0000 cygXext-6.dll
|
||||
7FFD35FB0000 GDI32.dll
|
||||
7FFD34E90000 gdi32full.dll
|
||||
0003DBB50000 cyguuid-1.dll
|
||||
7FFD35180000 msvcp_win.dll
|
||||
0003F5FE0000 cygXdmcp-6.dll
|
||||
0003F6030000 cygXau-6.dll
|
||||
0003F4320000 cygbrotlidec-1.dll
|
||||
0003DE450000 cygpng16-16.dll
|
||||
0003F4340000 cygbrotlicommon-1.dll
|
||||
7FFD36130000 IMM32.DLL
|
||||
7FFD31CD0000 uxtheme.dll
|
||||
7FFD36280000 combase.dll
|
||||
7FFD36610000 MSCTF.dll
|
||||
0003D34F0000 _multiarray_umath.cpython-39-x86_64-cygwin.dll
|
||||
0003F43E0000 cygblas-0.dll
|
||||
0003D3890000 _multiarray_tests.cpython-39-x86_64-cygwin.dll
|
||||
0003D3220000 lapack_lite.cpython-39-x86_64-cygwin.dll
|
||||
0003D8E80000 cyglapack-0.dll
|
||||
0003EA5B0000 cyggfortran-5.dll
|
||||
0003DD330000 cygquadmath-0.dll
|
||||
0003D3230000 _umath_linalg.cpython-39-x86_64-cygwin.dll
|
||||
0003D3260000 _pocketfft_internal.cpython-39-x86_64-cygwin.dll
|
||||
0003D2F50000 mtrand.cpython-39-x86_64-cygwin.dll
|
||||
0003D3000000 bit_generator.cpython-39-x86_64-cygwin.dll
|
||||
0003D3180000 _common.cpython-39-x86_64-cygwin.dll
|
||||
0003D64A0000 _hashlib.cpython-39-x86_64-cygwin.dll
|
||||
0003F0910000 cygcrypto-1.1.dll
|
||||
0003D6750000 _blake2.cpython-39-x86_64-cygwin.dll
|
||||
0003D31C0000 _bounded_integers.cpython-39-x86_64-cygwin.dll
|
||||
0003D3090000 _mt19937.cpython-39-x86_64-cygwin.dll
|
||||
0003D3050000 _philox.cpython-39-x86_64-cygwin.dll
|
||||
0003D3070000 _pcg64.cpython-39-x86_64-cygwin.dll
|
||||
0003D3030000 _sfc64.cpython-39-x86_64-cygwin.dll
|
||||
0003D30B0000 _generator.cpython-39-x86_64-cygwin.dll
|
||||
0003D62E0000 _ssl.cpython-39-x86_64-cygwin.dll
|
||||
0003DCBE0000 cygssl-1.1.dll
|
||||
0004DA3D0000 StdOEL.dll
|
||||
0003DC8D0000 cygstdc++-6.dll
|
||||
0003D64D0000 _elementtree.cpython-39-x86_64-cygwin.dll
|
||||
0004CFF20000 _gdal.cpython-39-x86_64-cygwin.dll
|
||||
0003ED970000 cyggdal-30.dll
|
||||
7FFD35FE0000 WS2_32.dll
|
||||
0003F38A0000 cygcfitsio-9.dll
|
||||
0003F04A0000 cygcurl-4.dll
|
||||
0003F0000000 cygdf-0.dll
|
||||
0003EAA70000 cyggeos_c-1.dll
|
||||
0003EAA40000 cyggeotiff-5.dll
|
||||
0003EA590000 cyggif-7.dll
|
||||
0003E6A60000 cyghdf5-200.dll
|
||||
0003E6970000 cygheif-1.dll
|
||||
0003E43F0000 cygjpeg-8.dll
|
||||
0003E43D0000 cygjson-c-2.dll
|
||||
0003E3C10000 cygmfhdf-0.dll
|
||||
0003E3380000 cygnetcdf-19.dll
|
||||
0003DEE20000 cygopenjp2-7.dll
|
||||
0003DE950000 cygpcre2-8-0.dll
|
||||
0003DDFC0000 cygpq-5.dll
|
||||
0003DDC70000 cygproj-22.dll
|
||||
0003DD6F0000 cygqhull_r-8.0.dll
|
||||
0003DCD30000 cygsqlite3-0.dll
|
||||
0003DC580000 cygtiff-6.dll
|
||||
0003DB970000 cygwebp-7.dll
|
||||
0003DB530000 cygxml2-2.dll
|
||||
0003DB220000 cygzstd-1.dll
|
||||
7FFCF4480000 ODBC32.dll
|
||||
7FFD0C200000 ODBCCP32.dll
|
||||
0003E8870000 cyggsasl-18.dll
|
||||
7FFD34C80000 CRYPT32.dll
|
||||
0003E85C0000 cyggssapi_krb5-2.dll
|
||||
0003E48E0000 cygidn2-0.dll
|
||||
0003E4150000 cyglber-2.dll
|
||||
0003E4030000 cygldap-2.dll
|
||||
0003E30B0000 cygnghttp2-14.dll
|
||||
0003DC660000 cygsz-2.dll
|
||||
0003DD8A0000 cygpsl-5.dll
|
||||
0003DCCE0000 cygssh2-1.dll
|
||||
0003EAAB0000 cyggeos-3.11.1.dll
|
||||
0003DD8F0000 cygproj-25.dll
|
||||
0003F00E0000 cygde265-0.dll
|
||||
0003DB6E0000 cygxdr-0.dll
|
||||
0003E6A00000 cyghdf5_hl-200.dll
|
||||
0003DB370000 cygzip-5.dll
|
||||
0003F00C0000 cygdeflate-0.dll
|
||||
0003E44B0000 cygjbig-2.dll
|
||||
0003DD1E0000 cygsharpyuv-0.dll
|
||||
0003EED40000 cyggcrypt-20.dll
|
||||
7FFD2E2C0000 VERSION.dll
|
||||
0003E4940000 cygidn-12.dll
|
||||
0003E2E70000 cygntlm-0.dll
|
||||
0003E42C0000 cygk5crypto-3.dll
|
||||
0003E41B0000 cygkrb5-3.dll
|
||||
0003E4190000 cygkrb5support-0.dll
|
||||
0003F0E70000 cygcom_err-2.dll
|
||||
0003DD1F0000 cygsasl2-3.dll
|
||||
0003F5BD0000 cygaec-0.dll
|
||||
0003DBB90000 cygunistring-5.dll
|
||||
0003DC500000 cygtiff-7.dll
|
||||
0003F0B90000 cygcrypto-1.0.0.dll
|
||||
0003E9D20000 cyggpg-error-0.dll
|
||||
7FFD34570000 DPAPI.DLL
|
||||
00059ABB0000 _gdalconst.cpython-39-x86_64-cygwin.dll
|
||||
0005D9F90000 _ogr.cpython-39-x86_64-cygwin.dll
|
||||
00047DEE0000 _osr.cpython-39-x86_64-cygwin.dll
|
||||
0003D64F0000 _decimal.cpython-39-x86_64-cygwin.dll
|
||||
0003D62D0000 _statistics.cpython-39-x86_64-cygwin.dll
|
||||
00058FED0000 DataAccessor.dll
|
||||
000513F10000 ampcor.dll
|
||||
0005D2D00000 cygfftw3f-3.5.7.dll
|
||||
0003D59B0000 _imaging.cpython-39-x86_64-cygwin.dll
|
||||
0003E48C0000 cygimagequant-0.dll
|
||||
0003E9D50000 cyggomp-1.dll
|
||||
0004BC430000 snaphu.dll
|
||||
0004DD1A0000 _ccallback_c.cpython-39-x86_64-cygwin.dll
|
||||
00042B3D0000 _nd_image.cpython-39-x86_64-cygwin.dll
|
||||
000532C90000 _ufuncs.cpython-39-x86_64-cygwin.dll
|
||||
0005953A0000 _ufuncs_cxx.cpython-39-x86_64-cygwin.dll
|
||||
0004BA780000 specfun.cpython-39-x86_64-cygwin.dll
|
||||
00041A120000 _fblas.cpython-39-x86_64-cygwin.dll
|
||||
0005CFA10000 _flapack.cpython-39-x86_64-cygwin.dll
|
||||
00046A730000 _flinalg.cpython-39-x86_64-cygwin.dll
|
||||
0005E2940000 _solve_toeplitz.cpython-39-x86_64-cygwin.dll
|
||||
00040FF20000 _matfuncs_sqrtm_triu.cpython-39-x86_64-cygwin.dll
|
||||
0004BD8D0000 _decomp_update.cpython-39-x86_64-cygwin.dll
|
||||
0005A1880000 cython_blas.cpython-39-x86_64-cygwin.dll
|
||||
00041CEC0000 cython_lapack.cpython-39-x86_64-cygwin.dll
|
||||
000567D90000 _sparsetools.cpython-39-x86_64-cygwin.dll
|
||||
000491080000 _csparsetools.cpython-39-x86_64-cygwin.dll
|
||||
0004EDBC0000 _shortest_path.cpython-39-x86_64-cygwin.dll
|
||||
0005BEC70000 _tools.cpython-39-x86_64-cygwin.dll
|
||||
000446210000 _traversal.cpython-39-x86_64-cygwin.dll
|
||||
000482ED0000 _min_spanning_tree.cpython-39-x86_64-cygwin.dll
|
||||
000593F90000 _flow.cpython-39-x86_64-cygwin.dll
|
||||
00059B0A0000 _matching.cpython-39-x86_64-cygwin.dll
|
||||
0000011E0000 _reordering.cpython-39-x86_64-cygwin.dll
|
||||
000550FA0000 _comb.cpython-39-x86_64-cygwin.dll
|
||||
000424780000 _ellip_harm_2.cpython-39-x86_64-cygwin.dll
|
||||
0004334F0000 _ni_label.cpython-39-x86_64-cygwin.dll
|
||||
0003D6100000 mmap.cpython-39-x86_64-cygwin.dll
|
||||
000451E00000 _gdal_array.cpython-39-x86_64-cygwin.dll
|
|
@ -89,6 +89,7 @@ def saveTiff(target_data_path,xsize,ysize,gt,srs,target_arr):
|
|||
driver = gdal.GetDriverByName('GTiff') # 数据类型必须有,因为要计算需要多大内存空间
|
||||
tiff_geo=driver.Create(target_data_path, int(xsize)+1, int(ysize)+1, 1, gdal.GDT_Float32)
|
||||
tiff_geo.GetRasterBand(1).WriteArray(target_arr)
|
||||
tiff_geo.GetRasterBand(1).SetNoDataValue(-9999)
|
||||
tiff_geo.SetGeoTransform(gt)
|
||||
tiff_geo.SetProjection(srs.ExportToWkt())
|
||||
del tiff_geo
|
||||
|
|
|
@ -1,11 +0,0 @@
|
|||
[01/17/2024 16:47:17] [21104] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\dem-L-SAR ---from: DemMain.check_source (DemMain.py:Line71)
|
||||
[01/17/2024 16:47:17] [21104] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/17/2024 16:47:17] [21104] [ERROR]- run-time error! ---from: DemMain.<module> (DemMain.py:Line536)
|
||||
Traceback (most recent call last):
|
||||
File "D:/estar-proj/microproduct-l-sar/dem-L-SAR/DemMain.py", line 530, in <module>
|
||||
if not Main.check_source():
|
||||
File "D:/estar-proj/microproduct-l-sar/dem-L-SAR/DemMain.py", line 80, in check_source
|
||||
if self.__check_handler.check_input_paras(input_para_names) is False:
|
||||
File "D:\estar-proj\microproduct-l-sar\tool\algorithm\xml\AlgXmlHandle.py", line 427, in check_input_paras
|
||||
raise Exception(msg)
|
||||
Exception: check para:DEM is failed!FilePath:D:\micro\microproduct_depdence\LT-Deformation\dem\97E27N_COP30.tif
|
|
@ -1,17 +0,0 @@
|
|||
[01/17/2024 16:47:41] [29508] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\dem-L-SAR ---from: DemMain.check_source (DemMain.py:Line71)
|
||||
[01/17/2024 16:47:41] [29508] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/17/2024 16:47:41] [29508] [INFO]- create new workspace success! ---from: DemMain.__create_work_space (DemMain.py:Line237)
|
||||
[01/17/2024 16:47:45] [29508] [INFO]- check_source success! ---from: DemMain.check_source (DemMain.py:Line100)
|
||||
[01/17/2024 16:47:45] [29508] [INFO]- progress bar: 5% ---from: DemMain.check_source (DemMain.py:Line101)
|
||||
[01/17/2024 16:47:45] [29508] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/origin/DEM -o /cygdrive/D/micro\LWork\Dem\Temporary\preprocessed\dem ---from: DemMain.process_handle (DemMain.py:Line418)
|
||||
[01/17/2024 16:48:26] [29508] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line420)
|
||||
[01/17/2024 16:48:26] [29508] [INFO]- demhgt2wgs finish! ---from: DemMain.process_handle (DemMain.py:Line428)
|
||||
[01/17/2024 16:48:26] [29508] [INFO]- progress bar: 5% ---from: DemMain.process_handle (DemMain.py:Line429)
|
||||
[01/17/2024 16:48:26] [29508] [INFO]- prepSlcGF3_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line447)
|
||||
[01/17/2024 16:49:30] [29508] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line449)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- unpackFrame_LT1AB:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line453)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- slc to isce_data finish! ---from: DemMain.process_handle (DemMain.py:Line454)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- progress bar: 10% ---from: DemMain.process_handle (DemMain.py:Line455)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace -d /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/dem/demLat_N27_N33_Lon_E97_E103.dem.wgs84 -m 20230523 -a 3 -r 3 -x '28.35 28.4 100.35 100.4' -u 'snaphu' --nofocus ---from: DemMain.process_handle (DemMain.py:Line459)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line461)
|
||||
[01/17/2024 16:50:35] [29508] [INFO]- stackStripMap finish! ---from: DemMain.process_handle (DemMain.py:Line462)
|
|
@ -1,144 +0,0 @@
|
|||
[01/17/2024 16:58:40] [29688] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\dem-L-SAR ---from: DemMain.check_source (DemMain.py:Line71)
|
||||
[01/17/2024 16:58:40] [29688] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/17/2024 16:58:41] [29688] [INFO]- create new workspace success! ---from: DemMain.__create_work_space (DemMain.py:Line237)
|
||||
[01/17/2024 16:58:54] [29688] [INFO]- check_source success! ---from: DemMain.check_source (DemMain.py:Line100)
|
||||
[01/17/2024 16:58:54] [29688] [INFO]- progress bar: 5% ---from: DemMain.check_source (DemMain.py:Line101)
|
||||
[01/17/2024 16:58:54] [29688] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/origin/DEM -o /cygdrive/D/micro\LWork\Dem\Temporary\preprocessed\dem ---from: DemMain.process_handle (DemMain.py:Line418)
|
||||
[01/17/2024 16:59:45] [29688] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line420)
|
||||
[01/17/2024 16:59:45] [29688] [INFO]- demhgt2wgs finish! ---from: DemMain.process_handle (DemMain.py:Line428)
|
||||
[01/17/2024 16:59:45] [29688] [INFO]- progress bar: 5% ---from: DemMain.process_handle (DemMain.py:Line429)
|
||||
[01/17/2024 16:59:45] [29688] [INFO]- prepSlcGF3_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line447)
|
||||
[01/17/2024 17:01:00] [29688] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line449)
|
||||
[01/17/2024 17:02:35] [29688] [INFO]- unpackFrame_LT1AB:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line453)
|
||||
[01/17/2024 17:02:35] [29688] [INFO]- slc to isce_data finish! ---from: DemMain.process_handle (DemMain.py:Line454)
|
||||
[01/17/2024 17:02:35] [29688] [INFO]- progress bar: 10% ---from: DemMain.process_handle (DemMain.py:Line455)
|
||||
[01/17/2024 17:02:35] [29688] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace -d /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/dem/demLat_N27_N33_Lon_E97_E103.dem.wgs84 -m 20230523 -a 3 -r 3 -x '28.35 28.4 100.35 100.4' -u 'snaphu' --nofocus ---from: DemMain.process_handle (DemMain.py:Line459)
|
||||
[01/17/2024 17:02:37] [29688] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line461)
|
||||
[01/17/2024 17:02:37] [29688] [INFO]- stackStripMap finish! ---from: DemMain.process_handle (DemMain.py:Line462)
|
||||
[01/17/2024 17:02:48] [29688] [INFO]- autorun_cmd:['-e', 'D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp', '-o', 'D:\\micro\\LWork\\Dem\\Temporary\\processing\\isce_workspace'] ---from: DemMain.process_handle (DemMain.py:Line469)
|
||||
[01/17/2024 17:02:48] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:02:48] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_01_crop========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:02:48] [29688] [INFO]- ==========running step:01========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:02:48] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:02:53] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:02:53] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_02_reference========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]- ==========running step:02========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:02:56] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_03_focus_split========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]- ==========running step:03========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:05:25] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_04_geo2rdr_coarseResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]- ==========running step:04========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:05:26] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_05_refineSecondaryTiming========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]- ==========running step:05========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:05:55] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_06_invertMisreg========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]- ==========running step:06========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:16:47] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_07_fineResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- ==========running step:07========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:16:48] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_08_denseOffset========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]- ==========running step:08========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:16:52] [29688] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:16:53] [29688] [INFO]- state: 1 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ==========
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc
|
||||
Warning: '/dev/shm' does not exists or is not a directory.
|
||||
|
||||
POSIX semaphores require the existance of this directory.
|
||||
Create the directory '/dev/shm' and set the permissions to 01777.
|
||||
For instance on the command line: mkdir -m 01777 /dev/shm
|
||||
Traceback (most recent call last):
|
||||
File "stripmapWrapper.py", line 163, in <module>
|
||||
File "stripmapWrapper.py", line 154, in main
|
||||
File "stripmapWrapper.py", line 58, in runCmd
|
||||
File "denseOffsets.py", line 132, in main
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "denseOffsets.py", line 115, in estimateOffsetField
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "/ISCEApp/_internal/isce/components/mroipac/ampcor/DenseAmpcor.py", line 386, in denseampcor
|
||||
self.locationDown = np.frombuffer(mp.Array('i', numlen).get_obj(), dtype='i')
|
||||
File "multiprocessing/context.py", line 141, in Array
|
||||
File "multiprocessing/sharedctypes.py", line 93, in Array
|
||||
File "multiprocessing/context.py", line 73, in RLock
|
||||
File "multiprocessing/synchronize.py", line 187, in __init__
|
||||
File "multiprocessing/synchronize.py", line 57, in __init__
|
||||
OSError: [Errno 22] Invalid argument
|
||||
[56] Failed to execute script 'stripmapWrapper' due to unhandled exception!
|
||||
Using default ISCE Path: /ISCEApp/_internal/isce
|
||||
This is the Open Source version of ISCE.
|
||||
Some of the workflows depend on a separate licensed package.
|
||||
To obtain the licensed package, please make a request for ISCE
|
||||
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
|
||||
Alternatively, if you are a member, or can become a member of WinSAR
|
||||
you may be able to obtain access to a version of the licensed sofware at
|
||||
https://winsar.unavco.org/software/isce
|
||||
Completed Parsing the Configuration file
|
||||
Running: denseOffsets
|
||||
['--reference', '/cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc', '--secondary', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc', '--outPrefix', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/dense_offsets/pairs/20230523_20230531/20230523_20230531']
|
||||
Pixels: 2409 2409
|
||||
Lines: 3518 3518
|
||||
Wins : 64 64
|
||||
Srch: 20 20
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
|
@ -1,144 +0,0 @@
|
|||
[01/17/2024 17:20:30] [30520] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\dem-L-SAR ---from: DemMain.check_source (DemMain.py:Line71)
|
||||
[01/17/2024 17:20:30] [30520] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/17/2024 17:20:30] [30520] [INFO]- create new workspace success! ---from: DemMain.__create_work_space (DemMain.py:Line237)
|
||||
[01/17/2024 17:20:34] [30520] [INFO]- check_source success! ---from: DemMain.check_source (DemMain.py:Line100)
|
||||
[01/17/2024 17:20:34] [30520] [INFO]- progress bar: 5% ---from: DemMain.check_source (DemMain.py:Line101)
|
||||
[01/17/2024 17:20:34] [30520] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/origin/DEM -o /cygdrive/D/micro\LWork\Dem\Temporary\preprocessed\dem ---from: DemMain.process_handle (DemMain.py:Line423)
|
||||
[01/17/2024 17:21:01] [30520] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line425)
|
||||
[01/17/2024 17:21:01] [30520] [INFO]- demhgt2wgs finish! ---from: DemMain.process_handle (DemMain.py:Line433)
|
||||
[01/17/2024 17:21:01] [30520] [INFO]- progress bar: 5% ---from: DemMain.process_handle (DemMain.py:Line434)
|
||||
[01/17/2024 17:21:01] [30520] [INFO]- prepSlcGF3_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line452)
|
||||
[01/17/2024 17:21:45] [30520] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line454)
|
||||
[01/17/2024 17:24:05] [30520] [INFO]- unpackFrame_LT1AB:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line458)
|
||||
[01/17/2024 17:24:05] [30520] [INFO]- slc to isce_data finish! ---from: DemMain.process_handle (DemMain.py:Line459)
|
||||
[01/17/2024 17:24:05] [30520] [INFO]- progress bar: 10% ---from: DemMain.process_handle (DemMain.py:Line460)
|
||||
[01/17/2024 17:24:05] [30520] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace -d /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/dem/demLat_N27_N33_Lon_E97_E103.dem.wgs84 -m 20230523 -a 3 -r 3 -x '28.35 28.4 100.35 100.4' -u 'snaphu' --nofocus ---from: DemMain.process_handle (DemMain.py:Line464)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line466)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- stackStripMap finish! ---from: DemMain.process_handle (DemMain.py:Line467)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- autorun_cmd:['-e', 'D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp', '-o', 'D:\\micro\\LWork\\Dem\\Temporary\\processing\\isce_workspace'] ---from: DemMain.process_handle (DemMain.py:Line476)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_01_crop========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- ==========running step:01========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:24:06] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:24:08] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:24:08] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_02_reference========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]- ==========running step:02========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:24:10] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_03_focus_split========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]- ==========running step:03========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:25:06] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_04_geo2rdr_coarseResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]- ==========running step:04========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:25:07] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_05_refineSecondaryTiming========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]- ==========running step:05========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:25:27] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_06_invertMisreg========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- ==========running step:06========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_07_fineResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- ==========running step:07========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:34:59] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:35:00] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:35:00] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_08_denseOffset========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]- ==========running step:08========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:35:03] [30520] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:35:05] [30520] [INFO]- state: 1 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ==========
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc
|
||||
Warning: '/dev/shm' does not exists or is not a directory.
|
||||
|
||||
POSIX semaphores require the existance of this directory.
|
||||
Create the directory '/dev/shm' and set the permissions to 01777.
|
||||
For instance on the command line: mkdir -m 01777 /dev/shm
|
||||
Traceback (most recent call last):
|
||||
File "stripmapWrapper.py", line 163, in <module>
|
||||
File "stripmapWrapper.py", line 154, in main
|
||||
File "stripmapWrapper.py", line 58, in runCmd
|
||||
File "denseOffsets.py", line 132, in main
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "denseOffsets.py", line 115, in estimateOffsetField
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "/ISCEApp/_internal/isce/components/mroipac/ampcor/DenseAmpcor.py", line 386, in denseampcor
|
||||
self.locationDown = np.frombuffer(mp.Array('i', numlen).get_obj(), dtype='i')
|
||||
File "multiprocessing/context.py", line 141, in Array
|
||||
File "multiprocessing/sharedctypes.py", line 93, in Array
|
||||
File "multiprocessing/context.py", line 73, in RLock
|
||||
File "multiprocessing/synchronize.py", line 187, in __init__
|
||||
File "multiprocessing/synchronize.py", line 57, in __init__
|
||||
OSError: [Errno 22] Invalid argument
|
||||
[119] Failed to execute script 'stripmapWrapper' due to unhandled exception!
|
||||
Using default ISCE Path: /ISCEApp/_internal/isce
|
||||
This is the Open Source version of ISCE.
|
||||
Some of the workflows depend on a separate licensed package.
|
||||
To obtain the licensed package, please make a request for ISCE
|
||||
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
|
||||
Alternatively, if you are a member, or can become a member of WinSAR
|
||||
you may be able to obtain access to a version of the licensed sofware at
|
||||
https://winsar.unavco.org/software/isce
|
||||
Completed Parsing the Configuration file
|
||||
Running: denseOffsets
|
||||
['--reference', '/cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc', '--secondary', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc', '--outPrefix', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/dense_offsets/pairs/20230523_20230531/20230523_20230531']
|
||||
Pixels: 2409 2409
|
||||
Lines: 3518 3518
|
||||
Wins : 64 64
|
||||
Srch: 20 20
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
|
@ -1,144 +0,0 @@
|
|||
[01/17/2024 17:35:55] [32176] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\dem-L-SAR ---from: DemMain.check_source (DemMain.py:Line71)
|
||||
[01/17/2024 17:35:55] [32176] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/17/2024 17:35:55] [32176] [INFO]- create new workspace success! ---from: DemMain.__create_work_space (DemMain.py:Line237)
|
||||
[01/17/2024 17:36:04] [32176] [INFO]- check_source success! ---from: DemMain.check_source (DemMain.py:Line100)
|
||||
[01/17/2024 17:36:04] [32176] [INFO]- progress bar: 5% ---from: DemMain.check_source (DemMain.py:Line101)
|
||||
[01/17/2024 17:36:04] [32176] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/origin/DEM -o /cygdrive/D/micro\LWork\Dem\Temporary\preprocessed\dem ---from: DemMain.process_handle (DemMain.py:Line423)
|
||||
[01/17/2024 17:36:34] [32176] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line425)
|
||||
[01/17/2024 17:36:34] [32176] [INFO]- demhgt2wgs finish! ---from: DemMain.process_handle (DemMain.py:Line433)
|
||||
[01/17/2024 17:36:34] [32176] [INFO]- progress bar: 5% ---from: DemMain.process_handle (DemMain.py:Line434)
|
||||
[01/17/2024 17:36:34] [32176] [INFO]- prepSlcGF3_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line452)
|
||||
[01/17/2024 17:37:24] [32176] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line454)
|
||||
[01/17/2024 17:39:01] [32176] [INFO]- unpackFrame_LT1AB:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ ---from: DemMain.process_handle (DemMain.py:Line458)
|
||||
[01/17/2024 17:39:01] [32176] [INFO]- slc to isce_data finish! ---from: DemMain.process_handle (DemMain.py:Line459)
|
||||
[01/17/2024 17:39:01] [32176] [INFO]- progress bar: 10% ---from: DemMain.process_handle (DemMain.py:Line460)
|
||||
[01/17/2024 17:39:01] [32176] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace -d /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/dem/demLat_N27_N33_Lon_E97_E103.dem.wgs84 -m 20230523 -a 3 -r 3 -x '28.35 28.4 100.35 100.4' -u 'snaphu' --nofocus ---from: DemMain.process_handle (DemMain.py:Line464)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- cmd_result:0 ---from: DemMain.process_handle (DemMain.py:Line466)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- stackStripMap finish! ---from: DemMain.process_handle (DemMain.py:Line467)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- autorun_cmd:['-e', 'D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp', '-o', 'D:\\micro\\LWork\\Dem\\Temporary\\processing\\isce_workspace'] ---from: DemMain.process_handle (DemMain.py:Line476)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_01_crop========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- ==========running step:01========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:39:03] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:39:09] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:39:09] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_crop_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_02_reference========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]- ==========running step:02========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:39:10] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_reference_20230523 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_03_focus_split========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- ==========running step:03========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_focus_split_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_04_geo2rdr_coarseResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- ==========running step:04========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:40:34] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_geo2rdr_coarseResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_05_refineSecondaryTiming========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]- ==========running step:05========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:40:55] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_refineSecondaryTiming_20230523_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_06_invertMisreg========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]- ==========running step:06========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:51:40] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\invertMisreg.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/pairs/ -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/refineSecondaryTiming/dates/ ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_07_fineResamp========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- ==========running step:07========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\referenceStackCopy.exe -i /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc -o /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230523/20230523.slc ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:51:41] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_fineResamp_20230531 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]- D:\micro\LWork\Dem\Temporary\processing\isce_workspace\log.txt=command text:run_08_denseOffset========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]- ==========running step:08========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/17/2024 17:51:45] [32176] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/17/2024 17:51:46] [32176] [INFO]- state: 1 cmdline: D:/estar-proj/microproduct-l-sar/dem-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/configs/config_denseOffset_20230523_20230531 ==========
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc
|
||||
API open (R): /cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc
|
||||
Warning: '/dev/shm' does not exists or is not a directory.
|
||||
|
||||
POSIX semaphores require the existance of this directory.
|
||||
Create the directory '/dev/shm' and set the permissions to 01777.
|
||||
For instance on the command line: mkdir -m 01777 /dev/shm
|
||||
Traceback (most recent call last):
|
||||
File "stripmapWrapper.py", line 163, in <module>
|
||||
File "stripmapWrapper.py", line 154, in main
|
||||
File "stripmapWrapper.py", line 58, in runCmd
|
||||
File "denseOffsets.py", line 132, in main
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "denseOffsets.py", line 115, in estimateOffsetField
|
||||
File "/ISCEApp/_internal/isce/components/isceobj/Util/decorators.py", line 290, in use_api_decorator
|
||||
ret = func(*args,**kwargs)
|
||||
File "/ISCEApp/_internal/isce/components/mroipac/ampcor/DenseAmpcor.py", line 386, in denseampcor
|
||||
self.locationDown = np.frombuffer(mp.Array('i', numlen).get_obj(), dtype='i')
|
||||
File "multiprocessing/context.py", line 141, in Array
|
||||
File "multiprocessing/sharedctypes.py", line 93, in Array
|
||||
File "multiprocessing/context.py", line 73, in RLock
|
||||
File "multiprocessing/synchronize.py", line 187, in __init__
|
||||
File "multiprocessing/synchronize.py", line 57, in __init__
|
||||
OSError: [Errno 22] Invalid argument
|
||||
[1034] Failed to execute script 'stripmapWrapper' due to unhandled exception!
|
||||
Using default ISCE Path: /ISCEApp/_internal/isce
|
||||
This is the Open Source version of ISCE.
|
||||
Some of the workflows depend on a separate licensed package.
|
||||
To obtain the licensed package, please make a request for ISCE
|
||||
through the website: https://download.jpl.nasa.gov/ops/request/index.cfm.
|
||||
Alternatively, if you are a member, or can become a member of WinSAR
|
||||
you may be able to obtain access to a version of the licensed sofware at
|
||||
https://winsar.unavco.org/software/isce
|
||||
Completed Parsing the Configuration file
|
||||
Running: denseOffsets
|
||||
['--reference', '/cygdrive/D/micro/LWork/Dem/Temporary/preprocessed/slc_crop/20230523/20230523.slc', '--secondary', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/merged/SLC/20230531/20230531.slc', '--outPrefix', '/cygdrive/D/micro/LWork/Dem/Temporary/processing/isce_workspace/dense_offsets/pairs/20230523_20230531/20230523_20230531']
|
||||
Pixels: 2409 2409
|
||||
Lines: 3518 3518
|
||||
Wins : 64 64
|
||||
Srch: 20 20
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
|
@ -234,15 +234,6 @@ class Orbit(Component):
|
|||
self._orbitSource = source or None
|
||||
self._referenceFrame = None
|
||||
self._stateVectors.configure()
|
||||
""" 自定义 """
|
||||
self.oribitStartTime=None
|
||||
self.A_arr=None
|
||||
self.polynum=None
|
||||
""" LT1AB 多普勒参数"""
|
||||
self.refrenceTime=None
|
||||
self.dopperPoly=[]
|
||||
""" 卫星名称"""
|
||||
self.sessionMode=None
|
||||
#self._stateVectors = stateVectors or []
|
||||
self._cpStateVectors = []
|
||||
type(self._stateVectors)
|
||||
|
@ -269,67 +260,6 @@ class Orbit(Component):
|
|||
# #pack the orbit into stateVectors
|
||||
# self._packOrbit(cpStateVectors[0], cpStateVectors[1], cpStateVectors[2], cpStateVectors[3])
|
||||
|
||||
def setsessionMode(self,SessionMode):
|
||||
self.sessionMode=SessionMode
|
||||
|
||||
def setPolyParams(self,polynum,orbitStartTime,A_arr):
|
||||
self.polynum=polynum
|
||||
self.oribitStartTime=orbitStartTime
|
||||
self.A_arr=A_arr
|
||||
|
||||
def setDoppler(self,refrenceTime,dopperPoly):
|
||||
self.refrenceTime=refrenceTime
|
||||
self.dopperPoly=dopperPoly
|
||||
pass
|
||||
|
||||
def getSatelliteSpaceState(self, time_float_datetime):
|
||||
'''
|
||||
逐像素求解
|
||||
根据时间戳,返回对应时间的卫星的轨迹状态,会自动计算与起算时间之差
|
||||
args:
|
||||
time_float:时间戳
|
||||
return:
|
||||
State_list:[time,Xp,Yp,Zp,Vx,Vy,Vz]
|
||||
'''
|
||||
time_float=time_float_datetime.timestamp()
|
||||
time_float = time_float - self.oribitStartTime
|
||||
#
|
||||
px=0
|
||||
py=0
|
||||
pz=0
|
||||
vx=0
|
||||
vy=0
|
||||
vz=0
|
||||
for ii in range(self.polynum):
|
||||
px+=self.A_arr[ii][0]*time_float**ii
|
||||
py+=self.A_arr[ii][1]*time_float**ii
|
||||
pz+=self.A_arr[ii][2]*time_float**ii
|
||||
vx+=self.A_arr[ii][3]*time_float**ii
|
||||
vy+=self.A_arr[ii][4]*time_float**ii
|
||||
vz+=self.A_arr[ii][5]*time_float**ii
|
||||
sv= StateVector()
|
||||
sv.setTime(time_float_datetime)
|
||||
sv.setPosition([px,py,pz])
|
||||
sv.setVelocity([vx,vy,vz])
|
||||
return sv
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f") - datetime.timedelta(seconds=30)
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f") + datetime.timedelta(seconds=30)
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp.timestamp()-startTime_stamp.timestamp())/orbitnum
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+ datetime.timedelta(seconds=delta_t)
|
||||
newOrbit=self.getSatelliteSpaceState(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getSatelliteSpaceState(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def adaptToRender(self):
|
||||
import copy
|
||||
# make a copy of the stateVectors to restore it after dumping
|
||||
|
@ -446,10 +376,10 @@ class Orbit(Component):
|
|||
@raises NotImplementedError: if the desired interpolation method
|
||||
cannot be decoded
|
||||
"""
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError(
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %(time,self.minTime,self.maxTime)
|
||||
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
|
||||
(time,self.minTime,self.maxTime)
|
||||
)
|
||||
|
||||
if method == 'linear':
|
||||
|
@ -463,11 +393,9 @@ class Orbit(Component):
|
|||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
return newSV
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
## Isn't orbit redundant? -compute the method based on name
|
||||
def interpolate(self, time, method='linear'):
|
||||
if self.sessionMode is None:
|
||||
if time not in self:
|
||||
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
|
||||
% (time,self.minTime,self.maxTime))
|
||||
|
@ -478,13 +406,8 @@ class Orbit(Component):
|
|||
raise NotImplementedError(
|
||||
"Orbit interpolation type %s, is not implemented" % method
|
||||
)
|
||||
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
|
||||
return self.getSatelliteSpaceState(time)
|
||||
|
||||
|
||||
|
||||
|
||||
# interpolateOrbit = interpolate #暂时注释----------------------------------------------------------------------------
|
||||
# interpolateOrbit = interpolate
|
||||
|
||||
def _linearOrbitInterpolation(self,time):
|
||||
"""
|
||||
|
@ -635,6 +558,7 @@ class Orbit(Component):
|
|||
"Fewer than 4 state vectors present in orbit, cannot interpolate"
|
||||
)
|
||||
return None
|
||||
|
||||
# The Fortran routine assumes that it is getting an array of four
|
||||
# state vectors
|
||||
try:
|
||||
|
@ -655,6 +579,7 @@ class Orbit(Component):
|
|||
obsTime, obsPos, obsVel,offset = newOrbit.to_tuple(
|
||||
relativeTo=self.minTime
|
||||
)
|
||||
|
||||
td = time - self.minTime
|
||||
ansTime = DTU.timeDeltaToSeconds(td)
|
||||
flatObsPos = [item for sublist in obsPos for item in sublist]
|
||||
|
@ -676,8 +601,6 @@ class Orbit(Component):
|
|||
ansPos_C,
|
||||
ansVel_C)
|
||||
|
||||
# print('插值成功----------------------------')
|
||||
# print(StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:]))
|
||||
return StateVector(time=time, position=ansPos_C[:], velocity=ansVel_C[:])
|
||||
|
||||
## This need to be public -very confusing since there is an __iter__
|
||||
|
@ -1075,7 +998,7 @@ class Orbit(Component):
|
|||
pointOnGround = rdr2geo
|
||||
|
||||
def geo2rdr(self, llh, side=-1, planet=None,
|
||||
doppler=None, wvl=None,isLT1AB=True):
|
||||
doppler=None, wvl=None):
|
||||
'''
|
||||
Takes a lat, lon, height triplet and returns azimuth time and range.
|
||||
Assumes zero doppler for now.
|
||||
|
@ -1091,79 +1014,16 @@ class Orbit(Component):
|
|||
refElp = Planet(pname='Earth').ellipsoid
|
||||
else:
|
||||
refElp = planet.ellipsoid
|
||||
# print('llh', llh)
|
||||
|
||||
xyz = refElp.llh_to_xyz(llh)
|
||||
|
||||
delta = (self.maxTime - self.minTime).total_seconds() * 0.5
|
||||
tguess = self.minTime #+ datetime.timedelta(seconds = delta)
|
||||
# print("Orbits.py 1024-----------------------------------------------")
|
||||
# print("self.maxTime", self.maxTime)
|
||||
# print("self.minTime", self.minTime)
|
||||
# print(delta)
|
||||
# print(tguess)
|
||||
|
||||
LIGHTSPEED=299792458
|
||||
if wvl==0:
|
||||
isLT1AB=False
|
||||
if isLT1AB and (self.sessionMode=="LT1A" or self.sessionMode=="LT1B") : # 专门针对 LT1AB
|
||||
print("LT1AB orbit.....")
|
||||
dt=0.0001
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess+datetime.timedelta(seconds= dt)) # 获取卫星的 位置、速度
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
||||
pos1 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel1 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr1 = pos1-xyz
|
||||
rng1 = np.linalg.norm(dr1) # 斜距
|
||||
|
||||
# ((R_s1.array() * V_s1.array()).rowwise().sum().array() * (-2) / (R * this->lamda))[0];
|
||||
FdTheory1 = -2/(rng1*wvl)*np.dot(dr1,vel1)
|
||||
|
||||
try:
|
||||
sv= self.getSatelliteSpaceState(tguess)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
pos2 = np.array(sv.getPosition()) # 卫星坐标
|
||||
vel2 = np.array(sv.getVelocity()) # 卫星速度
|
||||
dr2 = pos2-xyz
|
||||
rng = np.linalg.norm(dr2) # 斜距
|
||||
FdTheory2= -2/(rng*wvl)*np.dot(dr2,vel2)
|
||||
TSR= rng * 2 / LIGHTSPEED - self.refrenceTime # nx1
|
||||
|
||||
FdNumerical=0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[0]*TSR**0
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[1]*TSR**1
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[2]*TSR**2
|
||||
# FdNumerical=FdNumerical+self.dopperPoly[3]*TSR**3
|
||||
|
||||
fdopper_grad=(FdTheory1 - FdTheory2)/dt
|
||||
inc_t = (FdTheory2-FdNumerical) /fdopper_grad
|
||||
# print(inc_t,rng,FdNumerical,FdTheory2,tguess,pos2)
|
||||
tguess = tguess - datetime.timedelta(seconds = inc_t)
|
||||
|
||||
if abs(inc_t) < 1e-6:
|
||||
break
|
||||
else:
|
||||
t_prev_guess = tguess
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
else:
|
||||
tguess = self.minTime + datetime.timedelta(seconds = delta)
|
||||
outOfBounds = False
|
||||
for ii in range(51):
|
||||
try:
|
||||
sv = self.interpolateOrbit(tguess, method='hermite')
|
||||
except Exception as e:
|
||||
if self.sessionMode=="LT1A" or self.sessionMode=="LT1B":
|
||||
sv = self.getSatelliteSpaceState(tguess) # 获取卫星的 位置、速度
|
||||
print(e)
|
||||
outOfBounds = True
|
||||
break
|
||||
|
@ -1171,40 +1031,25 @@ class Orbit(Component):
|
|||
pos = np.array(sv.getPosition())
|
||||
vel = np.array(sv.getVelocity())
|
||||
|
||||
# print("xyz", xyz)
|
||||
# print("pos", pos)
|
||||
dr = xyz-pos
|
||||
rng = np.linalg.norm(dr) # 求斜距
|
||||
# print("rng", rng)
|
||||
|
||||
dopfact = np.dot(dr,vel) # fd 公式
|
||||
# print("dopfact", dopfact)
|
||||
rng = np.linalg.norm(dr)
|
||||
|
||||
dopfact = np.dot(dr,vel)
|
||||
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
|
||||
# print("doppler", doppler(DTU.seconds_since_midnight(tguess),rng))
|
||||
# print("wvl", wvl)
|
||||
# print("fdop", fdop)
|
||||
|
||||
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
|
||||
# print("doppler2", doppler(DTU.seconds_since_midnight(tguess),rng+10.0))
|
||||
# print("fdopder", fdopder)
|
||||
|
||||
fn = dopfact - fdop * rng
|
||||
c1 = -np.dot(vel, vel)
|
||||
c2 = (fdop/rng + fdopder)
|
||||
# print("c1", c1)
|
||||
# print("c2", c2)
|
||||
|
||||
fnprime = c1 + c2 * dopfact
|
||||
# print("时间为", fn/fnprime)
|
||||
# if abs(fn/fnprime) > 1:
|
||||
# break
|
||||
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
|
||||
# print("输出的tguess", tguess)
|
||||
# print(outOfBounds)
|
||||
# print("end ------------------------------------------------------------\n")
|
||||
if abs(fn/fnprime) < 1e-6:
|
||||
break
|
||||
|
||||
if outOfBounds:
|
||||
raise Exception('Interpolation time out of bounds')
|
||||
|
||||
|
||||
return tguess, rng
|
||||
|
||||
|
||||
|
|
|
@ -30,12 +30,12 @@ from iscesys.Component.Component import Component
|
|||
from iscesys.DateTimeUtil.DateTimeUtil import DateTimeUtil as DTUtil
|
||||
import os
|
||||
import numpy as np
|
||||
import copy
|
||||
import math
|
||||
import datetime
|
||||
import time
|
||||
from math import sin,cos
|
||||
from scipy.optimize import leastsq
|
||||
import numpy as np
|
||||
from isceobj.Util.Poly2D import Poly2D
|
||||
|
||||
|
||||
|
@ -122,6 +122,155 @@ def XYZOuterM2(A, B):
|
|||
return C
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
# 作为自定义轨道计算基类
|
||||
# 定义几个基本方法:addvector(),createOrbit(),getTime(),getTimes()
|
||||
# 注意均为UTC
|
||||
def __init__(self):
|
||||
self.vectors=[]
|
||||
self.baseTime=None
|
||||
def addvector(self,UTCTime,vx,vy,vz,px,py,pz):
|
||||
neworbit_point=orbitVector(UTCTime,vx,vy,vz,px,py,pz)
|
||||
self.vectors.append(neworbit_point)
|
||||
if len(self.vectors)==1:
|
||||
self.baseTime=neworbit_point.time_stamp-1 # 基线
|
||||
else:
|
||||
if self.baseTime>neworbit_point.time_stamp:
|
||||
self.baseTime=neworbit_point.time_stamp-1
|
||||
|
||||
def createOrbit(self):
|
||||
pass
|
||||
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
return None
|
||||
|
||||
def getTimeOrbitStamp(self,StampTime):
|
||||
utcStr=datetime.datetime.fromtimestamp(StampTime).strftime("%Y-%m-%dT%H:%M:%S.%fZ")
|
||||
return self.getTimeOrbit(utcStr)
|
||||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=100):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)*1000/orbitnum
|
||||
delta_t=int(delta_t)/1000 # 获取
|
||||
extractOrbits=[]
|
||||
#
|
||||
temptime=startTime_stamp
|
||||
while temptime<endTime_stamp:
|
||||
temptime=temptime+delta_t
|
||||
newOrbit=self.getTimeOrbitStamp(temptime)
|
||||
extractOrbits.append(newOrbit)
|
||||
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
|
||||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
pass
|
||||
|
||||
|
||||
class GGorbit(SARorbit):
|
||||
# 最小二乘法,线性函数
|
||||
def __init__(self):
|
||||
super(GGorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<3:
|
||||
raise
|
||||
# 求解GGorbit模型参数
|
||||
gg_t=[]
|
||||
gg_rho=[]
|
||||
gg_I=[]
|
||||
gg_omega=[]
|
||||
gg_Omega=[]
|
||||
for orbit_point in self.vectors:
|
||||
gg_t.append(orbit_point.time_stamp-self.baseTime)
|
||||
gg_rho.append(orbit_point.rho)
|
||||
gg_I.append(orbit_point.I)
|
||||
gg_omega.append(orbit_point.omega)
|
||||
gg_Omega.append(orbit_point.Omega)
|
||||
# 声明 x
|
||||
gg_t=np.array(gg_t) # 时间 t
|
||||
# y
|
||||
gg_rho=np.array(gg_rho) # rho
|
||||
gg_I=np.array(gg_I) # I
|
||||
gg_omega=np.array(gg_omega) # omega
|
||||
gg_Omega=np.array(gg_Omega) # Omega
|
||||
# 计算结果
|
||||
self.p_rho=leastsq(poly2derror,[30,30,2],args=(gg_t,gg_rho))[0]
|
||||
self.p_I=leastsq(poly1derror,[30,2],args=(gg_t,gg_I))[0]
|
||||
self.p_omega=leastsq(poly1derror,[30,2],args=(gg_t,gg_omega))[0]
|
||||
self.p_Oemga=leastsq(poly1derror,[30,2],args=(gg_t,gg_Omega))[0]
|
||||
#print(len(self.p_rho),len(self.p_I),len(self.p_omega),len(self.p_Oemga))
|
||||
return
|
||||
|
||||
def getXYZ(self,Inputstaptime):
|
||||
staptime=Inputstaptime-self.baseTime
|
||||
rho=poly2dfunc(self.p_rho,staptime)
|
||||
I=poly1dfunc(self.p_I,staptime)
|
||||
omega=poly1dfunc(self.p_omega,staptime)
|
||||
Omega=poly1dfunc(self.p_Oemga,staptime)
|
||||
Xp=-1*rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-1*rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
return [Xp,Yp,Zp]
|
||||
|
||||
# 获取计算结果
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()
|
||||
dtime=0.0001
|
||||
[Xp,Yp,Zp]=self.getXYZ(staptime)
|
||||
[Xp_temp,Yp_temp,Zp_temp]=self.getXYZ(staptime+dtime)
|
||||
# 线性代数方法获取轨道速度
|
||||
Vx=(Xp_temp-Xp)/dtime
|
||||
Vy=(Yp_temp-Yp)/dtime
|
||||
Vz=(Zp_temp-Zp)/dtime
|
||||
#utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(UTCTime,Vx,Vy,Vz,Xp,Yp,Zp)
|
||||
return neworbit_point
|
||||
|
||||
class polyorbit(SARorbit):
|
||||
def __init__(self):
|
||||
super(polyorbit,self).__init__()
|
||||
|
||||
def createOrbit(self):
|
||||
if len(self.vectors)<8:
|
||||
raise
|
||||
ts,xs,ys,zs,vx,vy,vz=[],[],[],[],[],[],[]
|
||||
for orbit_point in self.vectors:
|
||||
ts.append(orbit_point.time_stamp-self.baseTime)
|
||||
xs.append(orbit_point.px)
|
||||
ys.append(orbit_point.py)
|
||||
zs.append(orbit_point.pz)
|
||||
vx.append(orbit_point.vx)
|
||||
vy.append(orbit_point.vy)
|
||||
vz.append(orbit_point.vz)
|
||||
ts=np.array(ts)
|
||||
xs=np.array(xs)
|
||||
ys=np.array(ys)
|
||||
zs=np.array(zs)
|
||||
vx=np.array(vx)
|
||||
vy=np.array(vy)
|
||||
vz=np.array(vz)
|
||||
self.p_xs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,xs))
|
||||
self.p_ys=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,ys))
|
||||
self.p_zs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,zs))
|
||||
self.p_vxs=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vx))
|
||||
self.p_vy=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vy))
|
||||
self.p_vz=leastsq(poly5derror,[100,100,100,100,100,100],args=(ts,vz))
|
||||
return
|
||||
def getTimeOrbit(self,UTCTime):
|
||||
staptime=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").timestamp()-self.baseTime
|
||||
xs=poly5dfunc(self.p_xs,staptime)
|
||||
ys=poly5dfunc(self.p_ys,staptime)
|
||||
zs=poly5dfunc(self.p_zs,staptime)
|
||||
vx=poly5dfunc(self.p_vx,staptime)
|
||||
vy=poly5dfunc(self.p_vy,staptime)
|
||||
vz=poly5dfunc(self.p_vz,staptime)
|
||||
utmstr=datetime.datetime.strptime(UTCTime,"%Y-%m-%dT%H:%M:%S.%fZ").strftime("%Y-%m-%d %H:%M:%S.%f")
|
||||
neworbit_point=orbitVector(utmstr,vx,vy,vz,xs,ys,zs,dateformat="%Y-%m-%d %H:%M:%S.%f")
|
||||
return neworbit_point
|
||||
|
||||
class SatelliteOrbit(object):
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
|
@ -190,6 +339,7 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
return self.A_arr
|
||||
elif len(GPSPoints_list) > 6:
|
||||
self.polynum=4
|
||||
# 多项式的节点数,理论上是超过5个可以起算,这里为了精度选择10个点起算。
|
||||
# 多项式 XA=Y ==> A=(X'X)^X'Y,其中 A 为待求系数,X为变量,Y为因变量
|
||||
# 这里使用三次项多项式,共有6组参数。
|
||||
|
@ -199,21 +349,37 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
record_count = len(GPSPoints_list)
|
||||
time_arr = np.zeros((record_count, 1), dtype=np.float64) # 使用np.float64只是为了精度高些;如果32位也能满足需求,请用32位
|
||||
state_arr = np.zeros((record_count, 6), dtype=np.float64)
|
||||
A_arr = np.zeros((self.polynum, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum),dtype=np.float64) # 记录时间坐标
|
||||
A_arr = np.zeros((self.polynum+1, 6), dtype=np.float64) # 四次项
|
||||
X=np.ones((record_count,self.polynum+1),dtype=np.float64) # 记录时间坐标
|
||||
# 将点记录转换为自变量矩阵、因变量矩阵
|
||||
|
||||
for i in range(record_count):
|
||||
GPSPoint = GPSPoints_list[i]
|
||||
time_ = GPSPoint[0] - self.starttime # 为了保证精度,对时间进行缩放
|
||||
X[i,:]=np.array(list(map(lambda ii:time_**ii,range(self.polynum))))
|
||||
X[i,:]=np.array([1,time_,time_**2,time_**3,time_**4])
|
||||
state_arr[i, :] = np.array(GPSPoint[1:],dtype=np.float64).reshape(1,6) # 空间坐标
|
||||
self.model_f=[]
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i].reshape(-1,1)
|
||||
A_arr[:,i]=np.matmul(np.matmul(np.linalg.inv(np.matmul(X.T,X)),X.T),Y)[:,0]
|
||||
|
||||
self.A_arr=A_arr.copy()
|
||||
self.A_arr=copy.deepcopy(A_arr.copy())
|
||||
''' 测试误差
|
||||
from matplotlib import pyplot
|
||||
label_list=['x','y','z','vx','vy','vz']
|
||||
color_list=['r','g','b','gold','gray','pink']
|
||||
pyplot.figure()
|
||||
for i in range(6):
|
||||
Y = state_arr[:, i]
|
||||
Y_predict=self.model_f[i](X)
|
||||
pyplot.subplot(int("23{}".format(i+1)))
|
||||
d=Y-Y_predict
|
||||
pyplot.plot(X,d,label=label_list[i],color=color_list[i])
|
||||
pyplot.title("max:{}".format(np.max(d)))
|
||||
#self.model_f.append(interpolate.interp1d(X,Y,kind='cubic',fill_value='extrapolate'))
|
||||
pyplot.legend()
|
||||
pyplot.show()
|
||||
'''
|
||||
return self.A_arr
|
||||
else:
|
||||
self.A_arr = None
|
||||
|
@ -266,8 +432,8 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
|
||||
def getTimeOrbits(self,UTCStartTime,UTCEndTime,orbitnum=1000):
|
||||
#
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-1
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+1
|
||||
startTime_stamp=datetime.datetime.strptime(UTCStartTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()-10
|
||||
endTime_stamp=datetime.datetime.strptime(UTCEndTime,"%Y-%m-%dT%H:%M:%S.%f").timestamp()+10
|
||||
if startTime_stamp>endTime_stamp:
|
||||
raise
|
||||
delta_t=(endTime_stamp-startTime_stamp)/orbitnum
|
||||
|
@ -282,6 +448,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
|
|||
extractOrbits.append(newOrbit)
|
||||
return extractOrbits # 扩展的轨道节点
|
||||
|
||||
def getSatelliteSpaceState(self, time_array):
|
||||
'''
|
||||
矩阵求解
|
||||
根据时间戳矩阵,返回对应时刻的卫星空间状态(位置,速度),且会自动计算与起算时间之差
|
||||
args:
|
||||
time_array:nparray nx1 时间戳
|
||||
return:
|
||||
SatellitSpaceStateArray:nparray nx6 状态信息
|
||||
'''
|
||||
if self.model_f is None:
|
||||
return None # 返回None,表示没有结果
|
||||
if self.polynum==4:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],5)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
time_arr[:,2]=time_float**2
|
||||
time_arr[:,3]=time_float**3
|
||||
time_arr[:,4]=time_float**4
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
else:
|
||||
n=time_array.shape[0]
|
||||
result_arr_=np.zeros((n,6),dtype=np.float64)
|
||||
time_float = time_array - self.starttime
|
||||
time_float=time_float.reshape(-1) # nx1
|
||||
time_arr=np.ones((time_float.shape[0],self.polynum+1)) # nx5
|
||||
time_arr[:,1]=time_float
|
||||
result_arr_=np.matmul(time_arr,self.A_arr) # nx5 5x6
|
||||
#time_arr[0, 4] = time_arr[0, 3] * time_float ** 4
|
||||
#result_arr=result_arr_
|
||||
return result_arr_ # 位置矩阵
|
||||
|
||||
def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
||||
'''
|
||||
构建卫星轨道
|
||||
|
@ -289,26 +492,26 @@ def ReconstructionSatelliteOrbit(stateVectors, starttime):
|
|||
GPSPoints_list:卫星轨道点
|
||||
starttime:起算时间
|
||||
'''
|
||||
GPSPoint_list=[]
|
||||
for sv in stateVectors:
|
||||
GPSPoint=[sv.timeStamp.timestamp(),
|
||||
sv.xPosition,
|
||||
sv.yPosition,
|
||||
sv.zPosition,
|
||||
sv.xVelocity,
|
||||
sv.yVelocity,
|
||||
sv.zVelocity
|
||||
]
|
||||
GPSPoint_list.append(GPSPoint)
|
||||
# GPSPoint_list=[]
|
||||
# for sv in stateVectors:
|
||||
# GPSPoint=[sv.timeStamp.timestamp(),
|
||||
# sv.xPosition,
|
||||
# sv.yPosition,
|
||||
# sv.zPosition,
|
||||
# sv.xVelocity,
|
||||
# sv.yVelocity,
|
||||
# sv.zVelocity
|
||||
# ]
|
||||
# GPSPoint_list.append(GPSPoint)
|
||||
SatelliteOrbitModel = SatelliteOrbitFitPoly()
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(GPSPoint_list, starttime=starttime) is None:
|
||||
if SatelliteOrbitModel.ReconstructionSatelliteOrbit(stateVectors, starttime=starttime) is None:
|
||||
return None
|
||||
|
||||
|
||||
|
||||
print("orbit test")
|
||||
distance=[]
|
||||
for gpsPoint in GPSPoint_list:
|
||||
for gpsPoint in stateVectors:
|
||||
temp_sv=SatelliteOrbitModel.SatelliteSpaceState(gpsPoint[0])
|
||||
sv=np.array(temp_sv[1])
|
||||
temp_distance=sv-gpsPoint[1:]
|
||||
|
@ -360,11 +563,11 @@ class orbitVector:
|
|||
def __init__(self,UTCTimes,vx,vy,vz,px,py,pz,dateformat="%Y-%m-%dT%H:%M:%S.%fZ"):
|
||||
self.UTCTime=datetime.datetime.strptime(UTCTimes,dateformat) # 字符串转UTC时间
|
||||
self.time_stamp=self.UTCTime.timestamp() # 时间戳
|
||||
self.vx=vx # Vx
|
||||
self.vx=vx
|
||||
self.vy=vy
|
||||
self.vz=vz
|
||||
self.px=px
|
||||
self.py=py # Ys
|
||||
self.py=py
|
||||
self.pz=pz
|
||||
self.orbitVector2GG() # 将坐标进行变换
|
||||
self.Check()
|
||||
|
@ -386,10 +589,10 @@ class orbitVector:
|
|||
I=self.I
|
||||
omega=self.omega
|
||||
Omega=self.Omega
|
||||
Xp=rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(Omega)*sin(I)
|
||||
print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
Xp=-rho*(cos(omega)*cos(Omega)-sin(omega)*sin(Omega)*cos(I))
|
||||
Yp=-rho*(cos(omega)*sin(Omega)+sin(omega)*cos(Omega)*cos(I))
|
||||
Zp=rho*sin(omega)*sin(I)
|
||||
# print("计算插值:",self.UTCTime,self.px,self.py,self.pz,self.vx,self.vy,self.vz,"|",Xp-self.px,Yp-self.py,Zp-self.pz)
|
||||
|
||||
|
||||
class SARorbit(object):
|
||||
|
@ -538,26 +741,26 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
azimuthPixelSize = self.product.azimuthPixelSize # ground spacing in meters
|
||||
totalProcessedAzimuthBandwidth = self.product.totalProcessedAzimuthBandwidth
|
||||
prf = orig_prf * np.ceil(totalProcessedAzimuthBandwidth / orig_prf) # effective PRF can be double original, suggested by Piyush
|
||||
# print('-------------------------------------')
|
||||
# print("mission",mission)
|
||||
# print("swath",swath)
|
||||
# print("frequency",frequency)
|
||||
# print("orig_prf",orig_prf)
|
||||
# print("prf",prf)
|
||||
# print("rangePixelSize",rangePixelSize)
|
||||
# print("rangeSamplingRate",rangeSamplingRate)
|
||||
# print("pulseLength",pulseLength)
|
||||
# print("pulseBandwidth",pulseBandwidth)
|
||||
# print("polarization",polarization)
|
||||
# print("lookSide",lookSide)
|
||||
# print("lines",lines)
|
||||
# print("samples",samples)
|
||||
# print("startingRange",startingRange)
|
||||
# print("incidenceAngle",incidenceAngle)
|
||||
# print(self.product.imageGenerationParameters.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
# print(self.product.imageGenerationParameters.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
# print("effective PRF %f, original PRF %f" % (prf, orig_prf) )
|
||||
# print('-------------------------------------------')
|
||||
print('-------------------------------------')
|
||||
print("mission",mission)
|
||||
print("swath",swath)
|
||||
print("frequency",frequency)
|
||||
print("orig_prf",orig_prf)
|
||||
print("prf",prf)
|
||||
print("rangePixelSize",rangePixelSize)
|
||||
print("rangeSamplingRate",rangeSamplingRate)
|
||||
print("pulseLength",pulseLength)
|
||||
print("pulseBandwidth",pulseBandwidth)
|
||||
print("polarization",polarization)
|
||||
print("lookSide",lookSide)
|
||||
print("lines",lines)
|
||||
print("samples",samples)
|
||||
print("startingRange",startingRange)
|
||||
print("incidenceAngle",incidenceAngle)
|
||||
print(self.product.dopplerCentroid.dopplerCentroidCoefficients)
|
||||
print(self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
print("effective PRF %f, original PRF %f" % (prf, orig_prf) )
|
||||
print('-------------------------------------------')
|
||||
|
||||
|
||||
#lineFlip = (self.product.imageAttributes.rasterAttributes.lineTimeOrdering.upper() == 'DECREASING')
|
||||
|
@ -607,19 +810,16 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
self.frame.setProcessingSystem("LT1AB") # 陆探数据
|
||||
self.frame.getOrbit().setOrbitSource("LT1AB.META.XML")
|
||||
|
||||
|
||||
print("======= 修改轨道代码部分: =================")
|
||||
if (self.orbitFile is None) and (self.orbitDirectory is None):
|
||||
self.extractOrbit()
|
||||
|
||||
|
||||
elif (self.orbitDirectory is not None):
|
||||
self.orbitFile = findPreciseOrbit(self.orbitDirectory, self.frame.getOrbit().getOrbitSource(), self.frame.sensingStart.year)
|
||||
|
||||
if self.orbitFile is not None:
|
||||
self.extractPreciseOrbit(self.orbitFile, self.frame.sensingStart, self.frame.sensingStop)
|
||||
|
||||
|
||||
# save the Doppler centroid coefficients, converting units from product.xml file
|
||||
# units in the file are quadratic coefficients in Hz, Hz/sec, and Hz/(sec^2)
|
||||
# ISCE expects Hz, Hz/(range sample), Hz((range sample)^2
|
||||
|
@ -628,6 +828,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dc = self.product.dopplerCentroid
|
||||
poly = dc.dopplerCentroidCoefficients
|
||||
|
||||
# need to convert units
|
||||
poly[1] = poly[1]/rangeSamplingRate
|
||||
poly[2] = poly[2]/rangeSamplingRate**2
|
||||
|
@ -641,11 +842,13 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# added EJF 2015/08/17
|
||||
dr = self.product.dopplerRateValues
|
||||
fmpoly = dr.dopplerRateValuesCoefficients
|
||||
|
||||
# need to convert units
|
||||
fmpoly[1] = fmpoly[1]/rangeSamplingRate
|
||||
fmpoly[2] = fmpoly[2]/rangeSamplingRate**2
|
||||
self.azfmrate_coeff = fmpoly
|
||||
|
||||
|
||||
# now calculate effective PRF from the azimuth line spacing after we have the orbit info EJF 2015/08/15
|
||||
# this does not work because azimuth spacing is on ground. Instead use bandwidth ratio calculated above EJF
|
||||
# SCHvelocity = self.frame.getSchVelocity()
|
||||
|
@ -663,26 +866,50 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
# Radarsat 2 needs orbit extensions.
|
||||
print("构建新的轨道程序代码:")
|
||||
|
||||
dataStartTime = self.product.dataStartTime.timestamp()
|
||||
dataStopTime = self.product.dataStopTime.timestamp()
|
||||
|
||||
tempOrbit = GGorbit()
|
||||
time_list = []
|
||||
self.frame.getOrbit().setOrbitSource('Header: ' + self.frame.getOrbit().getOrbitSource())
|
||||
stateVectors = self.product.OrbitModelInfo.stateVectors
|
||||
for i in range(len(stateVectors)):
|
||||
# print(i,stateVectors[i].timeStamp)
|
||||
# tempOrbit.addvector(stateVectors[i].timeStamp.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity,
|
||||
# stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition)
|
||||
time_list.append([stateVectors[i].timeStamp.timestamp(),
|
||||
stateVectors[i].xPosition, stateVectors[i].yPosition, stateVectors[i].zPosition,
|
||||
stateVectors[i].xVelocity, stateVectors[i].yVelocity, stateVectors[i].zVelocity])
|
||||
|
||||
model = ReconstructionSatelliteOrbit(time_list, starttime=dataStartTime)
|
||||
time_dif = ((dataStopTime + 10) - (dataStartTime - 10)) / 1000
|
||||
time = np.zeros((1000, 1))
|
||||
for i in range(1000):
|
||||
time[i,:]=((dataStartTime - 10) + time_dif * i)
|
||||
t = time.reshape(-1)
|
||||
|
||||
statepoints = model.getSatelliteSpaceState(t)
|
||||
for i, value in zip(range(len(statepoints)), statepoints):
|
||||
sv= StateVector()
|
||||
sv.setTime(datetime.datetime.fromtimestamp(t[i]))
|
||||
sv.setPosition([value[0],value[1],value[2]])
|
||||
sv.setVelocity([value[3],value[4],value[5]])
|
||||
self.frame.getOrbit().addStateVector(sv) # 插值结果写进了轨道模型中
|
||||
# print(sv.position)
|
||||
# tempOrbit.createOrbit() # 构建轨道模型
|
||||
|
||||
# newOrb=tempOrbit.getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%fZ"),
|
||||
# orbitnum=1000)
|
||||
# for svect in newOrb:
|
||||
# sv= StateVector()
|
||||
# sv.setTime(svect.UTCTime)
|
||||
# sv.setPosition([svect.px,svect.py,svect.pz])
|
||||
# sv.setVelocity([svect.vx,svect.vy,svect.vz])
|
||||
# self.frame.getOrbit().addStateVector(sv)
|
||||
# print(sv.position)
|
||||
|
||||
tempOrbit= ReconstructionSatelliteOrbit(stateVectors,self.product.orbitstarttime.timestamp())
|
||||
As_arr=tempOrbit.A_arr.tolist()
|
||||
""" 构建轨道 """
|
||||
self.frame.getOrbit().setsessionMode(self.product.mission)
|
||||
print("卫星型号")
|
||||
print(self.frame.orbit.sessionMode)
|
||||
self.frame.getOrbit().setPolyParams(tempOrbit.polynum,tempOrbit.starttime,As_arr)
|
||||
self.frame.getOrbit().setDoppler(self.product.dopplerRateValues.dopplerRateReferenceTime,
|
||||
self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
""" """
|
||||
newOrb=self.frame.getOrbit().getTimeOrbits(self.frame.sensingStart.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
self.frame.sensingStop.strftime("%Y-%m-%dT%H:%M:%S.%f"),
|
||||
orbitnum=1000)
|
||||
for svect in newOrb:
|
||||
self.frame.getOrbit().addStateVector(svect)
|
||||
|
||||
print('Successfully read state vectors from product XML')
|
||||
|
||||
|
@ -724,7 +951,7 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
raise Exception('Expected line to start with ";". Got {0}'.format(dummy))
|
||||
|
||||
fid.close()
|
||||
print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
# print('Successfully read {0} state vectors from {1}'.format( len(self.frame.getOrbit()._stateVectors), orbitfile))
|
||||
|
||||
def extractImage(self, verbose=True):
|
||||
'''
|
||||
|
@ -806,7 +1033,9 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
fd_mid += poly[kk] * (tMid - t0)**kk
|
||||
|
||||
####For insarApp
|
||||
quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
|
||||
# quadratic['a'] = fd_mid / ins.getPulseRepetitionFrequency()
|
||||
quadratic['a'] = 0.
|
||||
quadratic['b'] = 0.
|
||||
quadratic['c'] = 0.
|
||||
|
||||
|
@ -834,8 +1063,8 @@ class LT1ABLT1ABREPEAT(Sensor):
|
|||
evals = poly(pix)
|
||||
fit = np.polyfit(pix,evals, len(coeffs)-1)
|
||||
self.frame._dopplerVsPixel = list(fit[::-1])
|
||||
self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
+self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
# self.frame._dopplerVsPixel_LT1AB = list([self.product.dopplerRateValues.dopplerRateReferenceTime]
|
||||
# +self.product.dopplerRateValues.dopplerRateValuesCoefficients)
|
||||
|
||||
|
||||
# print('Doppler Fit: ', fit[::-1])
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
|
@ -1,61 +0,0 @@
|
|||
[01/15/2024 18:04:12] [17824] [INFO]- sysdir: D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR ---from: VegetationHeightMain.check_source (VegetationHeightMain.py:Line93)
|
||||
[01/15/2024 18:04:12] [17824] [INFO]- init algXML succeed ---from: AlgXmlHandle.check_alg_xml (AlgXmlHandle.py:Line319)
|
||||
[01/15/2024 18:04:12] [17824] [INFO]- create new workspace success! ---from: VegetationHeightMain.__create_work_space (VegetationHeightMain.py:Line266)
|
||||
[01/15/2024 18:04:41] [17824] [INFO]- check_source success! ---from: VegetationHeightMain.check_source (VegetationHeightMain.py:Line113)
|
||||
[01/15/2024 18:04:41] [17824] [INFO]- progress bar :10% ---from: VegetationHeightMain.check_source (VegetationHeightMain.py:Line114)
|
||||
[01/15/2024 18:04:41] [17824] [INFO]- demhgt2wgs_cmd:DEM2ISCE.exe -s /cygdrive/E/MicroWorkspace/LT1B/LT230919/dem -o /cygdrive/D/micro\LWork\VegetationHeight\Temporary\isce\preprocessed\dem ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line949)
|
||||
[01/15/2024 18:04:49] [17824] [INFO]- cmd_result:0 ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line951)
|
||||
[01/15/2024 18:04:49] [17824] [INFO]- demhgt2wgs finish! ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line958)
|
||||
[01/15/2024 18:04:49] [17824] [INFO]- progress bar: 5% ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line959)
|
||||
[01/15/2024 18:04:49] [17824] [INFO]- prepSlcLT1AB_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/VegetationHeight/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/VegetationHeight/Temporary/preprocessed/slc/ ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line971)
|
||||
[01/15/2024 18:05:21] [17824] [INFO]- cmd_result:0 ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line973)
|
||||
[01/15/2024 18:05:38] [17824] [INFO]- unpackFrame_LT1AB_cmd:prepSlcLT1AB.exe -i /cygdrive/D/micro/LWork/VegetationHeight/Temporary/origin/SARS/ -o /cygdrive/D/micro/LWork/VegetationHeight/Temporary/preprocessed/slc/ ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line977)
|
||||
[01/15/2024 18:05:38] [17824] [INFO]- cmd_result:0 ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line978)
|
||||
[01/15/2024 18:05:38] [17824] [INFO]- slc to isce_data finish! ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line979)
|
||||
[01/15/2024 18:05:38] [17824] [INFO]- progress bar: 10% ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line980)
|
||||
[01/15/2024 18:05:38] [17824] [INFO]- stackStripMap_cmd:stackStripMap.exe -s /cygdrive/D/micro/LWork/VegetationHeight/Temporary/preprocessed/slc/ -w /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace -d /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/preprocessed/dem/demLat_N47_N49_Lon_E129_E131.dem.wgs84 -m 20230404 -a 3 -r 3 -x '47.75 47.8 130.82 130.87' -u 'snaphu' --nofocus ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line989)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- cmd_result:0 ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line991)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- mas slc stackStripMap finish! ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line995)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- autorun_cmd:['-e', 'D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp', '-o', 'D:\\micro\\LWork\\VegetationHeight\\Temporary\\isce\\processing\\isce_workspace'] ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line1015)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- D:\micro\LWork\VegetationHeight\Temporary\isce\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- D:\micro\LWork\VegetationHeight\Temporary\isce\processing\isce_workspace\log.txt=command text:run_01_crop========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- ==========running step:01========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/15/2024 18:05:39] [17824] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_crop_20230404 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/15/2024 18:05:41] [17824] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_crop_20230404 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/15/2024 18:05:41] [17824] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_crop_20230420 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_crop_20230420 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]- D:\micro\LWork\VegetationHeight\Temporary\isce\processing\isce_workspace\log.txt=Excetding data================= ---from: autorun.auto_run_main (autorun.py:Line242)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]- D:\micro\LWork\VegetationHeight\Temporary\isce\processing\isce_workspace\log.txt=command text:run_02_reference========= ---from: autorun.auto_run_main (autorun.py:Line253)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]- ==========running step:02========== ---from: autorun.auto_run_main (autorun.py:Line262)
|
||||
[01/15/2024 18:05:42] [17824] [INFO]- waitline cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_reference_20230404 ---from: autorun.excteCMD (autorun.py:Line18)
|
||||
[01/15/2024 18:06:06] [17824] [INFO]- state: 0 cmdline: D:/estar-proj/microproduct-l-sar/vegetationHeight-L-SAR/ISCEApp\stripmapWrapper.exe -c /cygdrive/D/micro/LWork/VegetationHeight/Temporary/isce/processing/isce_workspace/configs/config_reference_20230404 ==========
|
||||
|
||||
**************************************** ---from: autorun.excteCMD (autorun.py:Line24)
|
||||
[01/15/2024 18:06:06] [17824] [INFO]-
|
||||
====================================exceted=========================
|
||||
---from: autorun.auto_run_main (autorun.py:Line277)
|
||||
[01/15/2024 18:06:06] [17824] [INFO]- cmd_result:0 ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line1017)
|
||||
[01/15/2024 18:06:06] [17824] [INFO]- progress bar :30% ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line1022)
|
||||
[01/15/2024 18:06:22] [17824] [INFO]- progress bar :40% ---from: VegetationHeightMain.get_interv_img (VegetationHeightMain.py:Line1069)
|
||||
[01/15/2024 19:36:08] [17824] [INFO]- calc kz finish ---from: VegetationHeightMain.calc_kz (VegetationHeightMain.py:Line643)
|
||||
[01/15/2024 19:37:13] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\lee_refined_filter_dual.exe -idm D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2\ -ids D:\micro\LWork\VegetationHeight\Temporary\preprocessed\slave_s2\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf S2T6 -nw 7 -nlk 1 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line512)
|
||||
[01/15/2024 19:37:18] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HH -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:22] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:26] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type VV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:30] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type LL -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:34] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type LR -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:38] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type RR -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:42] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HHpVV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:46] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HHmVV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:50] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HVpVH -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:37:54] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -type HHVV -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line531)
|
||||
[01/15/2024 19:38:04] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\complex_coherence_opt_estimation.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -iodf T6 -nwr 7 -nwc 7 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line535)
|
||||
[01/15/2024 19:38:34] [17824] [INFO]- 1 : D:\estar-proj\microproduct-l-sar\vegetationHeight-L-SAR\height_estimation_inversion_procedure_RVOG.exe -id D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -od D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\ -ifgh D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\cmplx_coh_HV.bin -ifgl D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2_slave_s2_LEE\T6\cmplx_coh_HHpVV.bin -kz D:\micro\LWork\VegetationHeight\Temporary\preprocessed\kz\kz.bin -nwr 11 -nwc 11 -coef 0.5 -nc 2407 -ofr 0 -ofc 0 -fnr 2613 -fnc 2407 ---from: VegetationHeightMain.preprocess_handle (VegetationHeightMain.py:Line560)
|
||||
[01/15/2024 19:38:39] [17824] [INFO]- successful production of VegetationHeight Product.mate.xml ---from: VegetationHeightMain.<module> (VegetationHeightMain.py:Line1100)
|
Loading…
Reference in New Issue