修改干涉模块配准错误导致干涉图出现条纹问题

dev
tian jiax 2024-01-26 17:57:41 +08:00
parent 2dc9e52974
commit 75e50fffe4
45 changed files with 1926 additions and 4121 deletions

View File

@ -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生成干涉图

View File

@ -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,45 +376,38 @@ 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)
)
if time not in self:
raise ValueError(
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
(time,self.minTime,self.maxTime)
)
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"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))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
return self.getSatelliteSpaceState(time)
return newSV
## Isn't orbit redundant? -compute the method based on name
def interpolate(self, time, method='linear'):
if time not in self:
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
% (time,self.minTime,self.maxTime))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
# 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.
@ -1088,122 +1011,44 @@ class Orbit(Component):
wvl = 0.0
if planet is None:
refElp = Planet(pname='Earth'). ellipsoid
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:
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
pos = np.array(sv.getPosition())
vel = np.array(sv.getVelocity())
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:
print(e)
outOfBounds = True
break
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)
dr = xyz-pos
rng = np.linalg.norm(dr)
dopfact = np.dot(dr,vel) # fd 公式
# print("dopfact", dopfact)
dopfact = np.dot(dr,vel)
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
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 outOfBounds:
raise Exception('Interpolation time out of bounds')
fn = dopfact - fdop * rng
c1 = -np.dot(vel, vel)
c2 = (fdop/rng + fdopder)
fnprime = c1 + c2 * dopfact
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
if abs(fn/fnprime) < 1e-6:
break
if outOfBounds:
raise Exception('Interpolation time out of bounds')
return tguess, rng

View File

@ -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
@ -121,6 +121,155 @@ def XYZOuterM2(A, B):
C[:, 2] = A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0]
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:
@ -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
@ -281,6 +447,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
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,10 +842,12 @@ 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
@ -662,27 +865,51 @@ class LT1ABLT1ABREPEAT(Sensor):
# Read into temp orbit first.
# 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])

View File

@ -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

View File

@ -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))

View File

@ -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,45 +376,38 @@ 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)
)
if time not in self:
raise ValueError(
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
(time,self.minTime,self.maxTime)
)
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"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))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
return self.getSatelliteSpaceState(time)
return newSV
## Isn't orbit redundant? -compute the method based on name
def interpolate(self, time, method='linear'):
if time not in self:
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
% (time,self.minTime,self.maxTime))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
# 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.
@ -1088,122 +1011,44 @@ class Orbit(Component):
wvl = 0.0
if planet is None:
refElp = Planet(pname='Earth'). ellipsoid
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:
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
pos = np.array(sv.getPosition())
vel = np.array(sv.getVelocity())
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:
print(e)
outOfBounds = True
break
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)
dr = xyz-pos
rng = np.linalg.norm(dr)
dopfact = np.dot(dr,vel) # fd 公式
# print("dopfact", dopfact)
dopfact = np.dot(dr,vel)
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
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 outOfBounds:
raise Exception('Interpolation time out of bounds')
fn = dopfact - fdop * rng
c1 = -np.dot(vel, vel)
c2 = (fdop/rng + fdopder)
fnprime = c1 + c2 * dopfact
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
if abs(fn/fnprime) < 1e-6:
break
if outOfBounds:
raise Exception('Interpolation time out of bounds')
return tguess, rng

View File

@ -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
@ -121,6 +121,155 @@ def XYZOuterM2(A, B):
C[:, 2] = A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0]
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:
@ -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
@ -281,6 +447,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
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,10 +842,12 @@ 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
@ -662,27 +865,51 @@ class LT1ABLT1ABREPEAT(Sensor):
# Read into temp orbit first.
# 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])

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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>

View File

@ -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]

View File

@ -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,44 +376,38 @@ 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)
)
if time not in self:
raise ValueError(
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
(time,self.minTime,self.maxTime)
)
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"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))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
elif self.sessionMode=="LT1B" or self.sessionMode=="LT1A":
return self.getSatelliteSpaceState(time)
return newSV
## Isn't orbit redundant? -compute the method based on name
def interpolate(self, time, method='linear'):
if time not in self:
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
% (time,self.minTime,self.maxTime))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
# 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.
@ -1087,122 +1011,44 @@ class Orbit(Component):
wvl = 0.0
if planet is None:
refElp = Planet(pname='Earth'). ellipsoid
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:
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
pos = np.array(sv.getPosition())
vel = np.array(sv.getVelocity())
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:
print(e)
outOfBounds = True
break
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)
dr = xyz-pos
rng = np.linalg.norm(dr)
dopfact = np.dot(dr,vel) # fd 公式
# print("dopfact", dopfact)
dopfact = np.dot(dr,vel)
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
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 outOfBounds:
raise Exception('Interpolation time out of bounds')
fn = dopfact - fdop * rng
c1 = -np.dot(vel, vel)
c2 = (fdop/rng + fdopder)
fnprime = c1 + c2 * dopfact
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
if abs(fn/fnprime) < 1e-6:
break
if outOfBounds:
raise Exception('Interpolation time out of bounds')
return tguess, rng

View File

@ -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
@ -121,6 +121,155 @@ def XYZOuterM2(A, B):
C[:, 2] = A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0]
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:
@ -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
@ -281,6 +447,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
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,10 +842,12 @@ 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
@ -662,27 +865,51 @@ class LT1ABLT1ABREPEAT(Sensor):
# Read into temp orbit first.
# 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])

View File

@ -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.')

View File

@ -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,

View File

@ -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>

View File

@ -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.

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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)

View File

@ -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,45 +376,38 @@ 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)
)
if time not in self:
raise ValueError(
"Time stamp (%s) falls outside of the interpolation interval [%s:%s]" %
(time,self.minTime,self.maxTime)
)
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"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))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
if method == 'linear':
newSV = self._linearOrbitInterpolation(time)
elif method == 'legendre':
newSV = self._legendreOrbitInterpolation(time)
elif method == 'hermite':
newSV = self._hermiteOrbitInterpolation(time)
else:
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
elif self.sessionMode=="LT1B" or self.setsessionMode=="LT1A":
return self.getSatelliteSpaceState(time)
return newSV
## Isn't orbit redundant? -compute the method based on name
def interpolate(self, time, method='linear'):
if time not in self:
raise ValueError("Time stamp (%s) falls outside of the interpolation interval [%s:%s]"
% (time,self.minTime,self.maxTime))
try:
return getattr(self, '_'+method+'OrbitInterpolation')(time)
except AttributeError:
pass
raise NotImplementedError(
"Orbit interpolation type %s, is not implemented" % method
)
# 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.
@ -1088,122 +1011,44 @@ class Orbit(Component):
wvl = 0.0
if planet is None:
refElp = Planet(pname='Earth'). ellipsoid
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:
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
pos = np.array(sv.getPosition())
vel = np.array(sv.getVelocity())
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:
print(e)
outOfBounds = True
break
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)
dr = xyz-pos
rng = np.linalg.norm(dr)
dopfact = np.dot(dr,vel) # fd 公式
# print("dopfact", dopfact)
dopfact = np.dot(dr,vel)
fdop = doppler(DTU.seconds_since_midnight(tguess),rng) * wvl * 0.5
fdopder = (0.5*wvl*doppler(DTU.seconds_since_midnight(tguess),rng+10.0) - fdop) / 10.0
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 outOfBounds:
raise Exception('Interpolation time out of bounds')
fn = dopfact - fdop * rng
c1 = -np.dot(vel, vel)
c2 = (fdop/rng + fdopder)
fnprime = c1 + c2 * dopfact
tguess = tguess - datetime.timedelta(seconds = fn/fnprime)
if abs(fn/fnprime) < 1e-6:
break
if outOfBounds:
raise Exception('Interpolation time out of bounds')
return tguess, rng

View File

@ -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
@ -121,6 +121,155 @@ def XYZOuterM2(A, B):
C[:, 2] = A[:, 0] * B[:, 1] - A[:, 1] * B[:, 0]
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:
@ -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
@ -281,6 +447,43 @@ class SatelliteOrbitFitPoly(SatelliteOrbit):
newOrbit=self.getTimeOrbitStamp(endTime_stamp)
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,10 +842,12 @@ 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
@ -662,27 +865,51 @@ class LT1ABLT1ABREPEAT(Sensor):
# Read into temp orbit first.
# 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

View File

@ -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)