faninsar.NSBAS.inversion.NSBASInversion#

class faninsar.NSBAS.inversion.NSBASInversion(matrix_factory: NSBASMatrixFactory, device: str | device | None = None, dtype: dtype = torch.float64, verbose: bool = True)[source]#

Bases: object

a class used to operate NSBAS inversion.

The NSBAS inversion is usually expressed as: d = Gm, where d is the unwrapped interferograms matrix, G is the NSBAS matrix, and m is the model parameters, which is the combination of the deformation increment and the model parameters.

see paper: TODO for more details.

__init__(matrix_factory: NSBASMatrixFactory, device: str | device | None = None, dtype: dtype = torch.float64, verbose: bool = True) None[source]#

Initialize NSBASInversion.

Parameters:
  • matrix_factory (NSBASMatrixFactory) – NSBASMatrixFactory instance

  • device (Optional[str | torch.device], optional) – device of torch.tensor used for computation. If None, use GPU if available, otherwise use CPU.

  • dtype (torch.dtype) – dtype of torch.tensor used for computation.

  • verbose (bool, optional) – If True, show progress bar, by default True

Methods

__init__(matrix_factory[, device, dtype, ...])

Initialize NSBASInversion.

inverse()

Calculate increment displacement difference by NSBAS inversion.

inverse() tuple[NDArray[np.floating], NDArray[np.floating], NDArray[np.floating], NDArray[np.floating]][source]#

Calculate increment displacement difference by NSBAS inversion.

Returns:

  • incs (np.ndarray (n_date - 1, n_pt)) – Incremental displacement

  • params (np.ndarray (n_param, n_pt)) – parameters of model in NSBAS inversion

  • residual_pair (np.ndarray (n_pair, n_pt)) – residual between interferograms and model result

  • residual_tsm (np.ndarray (n_date, n_pt)) – residual between time-series model and model result