"""Carries the misfit configuration.""" default=True, help='Switch to account for a linear orbital ramp or not') String.T(), gf.Range.T(), default={'offset': '-0.5 .. 0.5', 'ramp_east': '-1e-7 .. 1e-7', 'ramp_north': '-1e-7 .. 1e-7' }, help='These parameters give bounds for an offset [m], a linear' ' gradient in east direction [m/m] and a linear gradient in north' ' direction [m/m]. Note, while the optimisation of these ramps' ' is individual for each target, the ranges set here are common' ' for all satellite targets.')
r"""Handles maps of static ground motion from satellite observations (InSAR)
The InSAR displacement maps post-processed by the `pyrocko` module `kite` are usually `Quadtree` downsampled (Jonsson, 2002). Each data point has a latitude, longitude, Line-of-sight displacement value [m] as well as an orientation and elevation angle, which define the Line-of-Sight. The data are associated with a weight matrix, which is the inverse of a full variance-covariance matrix (Sudhaus \& Jonsson, 2009). In principle, these data sets could stem from pixel offset maps. See also the documentation of the `kite` module. """ optional=True, help='List of InSAR data files prepared \ by the ``pyrocko`` module ``kite``') help='Settings for the objective function of these targets')
'*all' not in self.kite_scenes: continue
% scene.meta.scene_id) % scene.meta.scene_id) else: assert False
quantity='displacement', scene_id=scene.meta.scene_id, lats=lats, lons=lons, east_shifts=east_shifts, north_shifts=north_shifts, theta=qt.leaf_thetas, phi=qt.leaf_phis, tsnapshot=None, interpolation=self.interpolation, store_id=self.store_id, normalisation_family=self.normalisation_family, path=self.path or default_path, misfit_config=self.misfit_config)
"""Carries the observations for a target and corresponding synthetics.""" optional=True, help='Predicted static displacements for a target (synthetics).') optional=True, help='Observed static displacement for a target.')
"""Handles and carries out operations related to the objective functions.
Standard operations are the calculation of the weighted misfit between observed and predicted (synthetic) data. If enabled in the misfit configuration, orbital ramps are optimized for. """ help='UID string each Kite displacemente scene.' ' Corresponds to Kite scene_id.') help='Configuration of the ``SatelliteTarget``')
Parameter('offset', 'm'), Parameter('ramp_north', 'm/m'), Parameter('ramp_east', 'm/m')]
else:
def target_ranges(self):
def id(self): return self.scene_id
def nmisfits(self):
''' is for L2-norm weighting, the square-rooted, inverse covar ''' 'Inverting scene covariance matrix (nthreads=%i)...' % nthreads)
num.linalg.inv(cov.covariance_matrix))
def scene(self):
"""Applies the objective function.
As a result the weighted misfits are given and the observed and synthetic data. For the satellite target the orbital ramp is calculated and applied here."""
* self.parameter_values['ramp_east']) * self.parameter_values['ramp_north'])
misfits=mf)
# invcov = self.scene.covariance.weight_matrix # self._combined_weight = invcov * self.manual_weight
self, engine, source, modelling_targets, modelling_results):
'Scene "%s", initializing bootstrapping residuals from noise ' 'pertubations...' % self.scene_id)
rstate = num.random.RandomState()
# TODO:mi Signal handler is not given back to the main task! # This is a python3.7 bug 'Python 3.7 is buggy and needs to be killed hard:' ' `killall grond`')
cov.getQuadtreeNoise, [rstate for _ in range(nbootstraps)])
except ImportError: for ibs in range(nbootstraps): if not (ibs+1) % 5: logger.info('Calculating noise realisation %d/%d.' % (ibs+1, nbootstraps)) bootstraps[ibs, :] = cov.getQuadtreeNoise(rstate=rstate)
def get_plot_classes(cls):
SatelliteTargetGroup SatelliteMisfitConfig SatelliteMisfitTarget SatelliteMisfitResult '''.split() |