Examples¶
InSAR processing¶
Forcing CR with unstable RCS into PS network¶
First we perform full InSAR processing of our network.
Then, let’s force new PSC layer for a given coordinates:
import numpy as np
plh = np.array([[
48.9819620432/180*np.pi,
21.3368903188/180*np.pi,
515.6192],[
48.9806016952/180*np.pi,
21.3397319418/180*np.pi,
543.5802
]])
HDFfile = '/data/GUDS/CR_VYCHOD/insar_Presov_202109/insar_DSC153.hdf5'
insarUtils.extract_PSC_manual(HDFfile, plh, psc_name = 'psc_C')
Now we can check on the extracted PSc, e.g. check their ampltide dispersion:
data['psc_C/D_A'][:]
Now let’s connect them to 1st order network via densification routine. We use different estimation bounds as we know these point undergo significant motion:
insarUtils.getPreciseH2PH(data['psc_C'],
parms['outDir'],
parms['stackId'])
bounds = {'dH' : 5, # [m]
'vel': 30, # [mm/year]
'seasonal': 5
}
insarUtils.densify_network(data,
k = 3,
mode_thr = 5,
std_thr = 50,
plot_flag = 1,
ps_label = 'psc2',
network_label = 'network2',
new_ps_label = 'psc_C',
model = 'polynomial',
bounds = bounds)
Optionally check for unwrapping errors:
#%% check unwrapping errrors:
plt.plot(data['network3']['ps_displ'][0])
plt.plot(data['network3']['ps_displ'][0]-np.pi)
plt.plot(data['network3']['ps_displ'][0]+np.pi)
Removing noisy epochs from InSAR processing¶
First we perform full InSAR processing of our network.
Then, let’s identify problematic epochs, e.g. exceeding noise variance over 40deg:
thr = 40
idx = np.where(data['network']['VC_mean'][:]*180/np.pi > thr)
bad_epochs = data['stack']['slcs'][idx]
Here we identify epoch 20210211 as a problematic one. Let’s remove it from the stack:
stackData = insarUtils.openHDF('/data/GUDS/RNV/insar_RNV_202109/stack_DSC153.hdf5')
del stackData['SLC']['20210211']
And we also remove it from metadata:
stack = ioUtils.fromJSON('/data/GUDS/RNV/insar_RNV_202109/stack_ASC102.json')
stack.remove_date(['20210211'])
ioUtils.toJSON(stack, parms['outDir'])
Now repeat the processing starting with generating new insar HDF.