Skip to content

polsarpro.physical_inversion

This code is part of the Python PolSARpro software:

"A re-implementation of selected PolSARPro functions in Python, following the scientific recommendations of PolInSAR 2021"

developed within an ESA funded project with SATIM.

Author: Olivier D'Hondt, 2026. Scientific advisors: Armando Marino and Eric Pottier.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


Description: module containing physical inversion functions

dubois_surface_inversion(input_data, incidence_angle, freq_ghz, thresh1, thresh2, calibration_coeff=None)

Run the Dubois surface inversion on a PolSAR covariance dataset.

The function accepts a single-scattering input product in any of the supported polarimetric representations, converts it to C3 form when needed, and applies the Dubois empirical model using the supplied incidence-angle raster.

Parameters:

Name Type Description Default
input_data Dataset

Input polarimetric dataset. Supported products are:

  • "S": Sinclair scattering matrix

  • "C3": Lexicographic covariance matrix (3x3)

  • "T3": Pauli coherency matrix (3x3)

  • "C4": 4x4 covariance matrix

  • "T4": 4x4 coherency matrix

The dataset must share the same spatial grid as incidence_angle.

required
incidence_angle DataArray

Incidence angle raster in radians. Values must be numeric and in the range (0, pi/2).

required
freq_ghz float

Radar center frequency in GHz.

required
thresh1 float

Maximum allowed HV / VV ratio in dB for the Dubois validity mask.

required
thresh2 float

Maximum allowed HH / VV ratio in dB for the Dubois validity mask.

required
calibration_coeff float or None

Optional multiplicative calibration coefficient. When provided, the HH, VV, and HV channels are scaled by sin(theta) / calibration_coeff before the inversion is applied. Defaults to None.

None

Returns:

Type Description
Dataset

xr.Dataset: Dataset containing the Dubois estimates and masks: dubois_ks (surface roughness parameter), dubois_er (relative dielectric constant), dubois_mv (volumetric moisture estimate), dubois_mask_in (input validity mask), dubois_mask_out (model validity mask), and dubois_mask_valid_in_out (combined mask).

Notes

The returned dataset preserves the input coordinates and uses the input spatial dimensions. Output variables are stored as float32 arrays.