API reference
- xsar.open_dataset(*args, **kwargs)
- Parameters:
*args – Passed to xsar.SentinelDataset
**kwargs – Passed to xsar.SentinelDataset
- Return type:
xarray.Dataset
Notes
xsar.open_dataset` is a simple wrapper to xsar.SentinelDataset that directly returns the xarray.Dataset object.
>>> xsar.Sentinel1Dataset(*args, **kwargs).dataset >>> xsar.RadarSat2Dataset(*args, **kwargs).dataset >>> xsar.RcmDataset(*args, **kwargs).dataset
- xsar.product_info(path, columns='minimal', include_multi=False)
- Parameters:
path (str or iterable of str) – path or gdal url.
columns (list of str or str, optional) – ‘minimal’ by default: only include columns from attributes found in manifest.safe. Use ‘spatial’ to have ‘time_range’ and ‘geometry’. Might be a list of properties from xsar.Sentinel1Meta
include_multi (bool, optional) – False by default: don’t include multi datasets
- Returns:
One dataset per lines, with info as columns
- Return type:
geopandas.GeoDataFrame
See also
Base classes
- class xsar.BaseMeta
Abstract class that defines necessary common functions for the computation of different SAR metadata (Radarsat2, Sentinel1, RCM…). This also permit a better maintenance, because these functions aren’t redefined many times.
- classmethod set_mask_feature(name, feature)
Set a named mask from a shapefile or a cartopy feature.
- Parameters:
name (str) – mask name
feature (str or cartopy.feature.Feature) – if str, feature is a path to a shapefile or whatever file readable with fiona. It is recommended to use str, as the serialization of cartopy feature might be big.
Examples
Add an ‘ocean’ mask at class level (ie as default mask):
` >>> xsar.RadarSat2Meta.set_mask_feature('ocean', cartopy.feature.OCEAN) >>> xsar.Sentinel1Meta.set_mask_feature('ocean', cartopy.feature.OCEAN) `
Add an ‘ocean’ mask at instance level (ie only for this self Sentinel1Meta (or RadarSat2Meta instance):
` >>> xsar.RadarSat2Meta.set_mask_feature('ocean', cartopy.feature.OCEAN) >>> xsar.Sentinel1Meta.set_mask_feature('ocean', cartopy.feature.OCEAN) `
High resoltion shapefiles can be found from openstreetmap. It is recommended to use WGS84 with large polygons split from https://osmdata.openstreetmap.de/
See also
- get_mask(name, describe=False)
Get mask from name (e.g. ‘land’) as a shapely Polygon. The resulting polygon is contained in the footprint.
- Parameters:
name (str)
- Return type:
shapely.geometry.Polygon
- abstract property footprint
alias for xsar.BaseDataset.geometry
- property cross_antemeridian
True if footprint cross antemeridian
- property swath
string like ‘EW’, ‘IW’, ‘WV’, etc …
- property mask_names
returns: mask names :rtype: list of str
- coords2ll(*args, to_grid=False, approx=False)
convert lines, samples arrays to longitude and latitude arrays. or a shapely object in lines, samples coordinates to longitude and latitude.
- Parameters:
*args (lines, samples or a shapely geometry) – lines, samples are iterables or scalar
to_grid (bool, default False) – If True, lines and samples must be 1D arrays. The results will be 2D array of shape (lines.size, samples.size).
- Returns:
(longitude, latitude) , with shape depending on to_grid keyword.
- Return type:
tuple of np.array or tuple of float
- ll2coords(*args)
Get (lines, samples) from (lon, lat), or convert a lon/lat shapely object to line/sample coordinates.
- Parameters:
*args (lon, lat or shapely object) – lon and lat might be iterables or scalars
- Return type:
tuple of np.array or tuple of float (lines, samples) , or a shapely object
Examples
get nearest (line,sample) from (lon,lat) = (84.81, 21.32) in ds, without bounds checks
>>> (line, sample) = self.ll2coords(84.81, 21.32) # (lon, lat) >>> (line, sample) (9752.766349989339, 17852.571322887554)
- coords2heading(lines, samples, to_grid=False, approx=True)
Get image heading (lines increasing direction) at coords lines, samples.
- Parameters:
lines (np.array or scalar)
samples (np.array or scalar)
to_grid (bool) – If True, lines and samples must be 1D arrays. The results will be 2D array of shape (lines.size, samples.size).
- Returns:
heading , with shape depending on to_grid keyword.
- Return type:
np.array or float
- property time_range
time range as pd.Interval
- property start_date
start date, as datetime.datetime
- property stop_date
stop date, as datetime.datetime
- class xsar.BaseDataset
Abstract class that defines necessary common functions for the computation of different SAR dataset variables (Radarsat2, Sentinel1, RCM…). This also permit a better maintenance, because these functions aren’t redefined many times.
- property len_line_m
line length, in meters
- property len_sample_m
sample length, in meters
- property coverage
coverage string
- property geometry
geometry of this dataset, as a shapely.geometry.Polygon (lon/lat coordinates)
- load_ground_heading()
Load ground heading as delayed thanks to BaseMeta.coords2heading.
- Returns:
Contains the ground heading
- Return type:
xarray.Dataset
- add_rasterized_masks()
add rasterized masks only (included in add_high_resolution_variables() for Sentinel-1) :return:
- recompute_attrs()
Recompute dataset attributes. It’s automaticaly called if you assign a new dataset, for example
>>> xsar_obj.dataset = xsar_obj.dataset.isel(line=slice(1000,5000)) >>> #xsar_obj.recompute_attrs() # not neededThis function must be manually called before using the .rio accessor of a variable
>>> xsar_obj.recompute_attrs() >>> xsar_obj.dataset['sigma0'].rio.reproject(...)
- coords2ll(*args, **kwargs)
Alias for xsar.BaseMeta.coords2ll .. seealso::
xsar.BaseMeta.coords2ll
- ll2coords(*args)
Get (lines, samples) from (lon, lat), or convert a lon/lat shapely object to line/sample coordinates.
- Parameters:
*args (lon, lat or shapely object) – lon and lat might be iterables or scalars
- Return type:
tuple of np.array or tuple of float (lines, samples) , or a shapely object
Notes
The difference with xsar.BaseMeta.ll2coords is that coordinates are rounded to the nearest dataset coordinates.
See also
- get_burst_valid_location()
add a field ‘valid_location’ in the bursts sub-group of the datatree
Returns:
- get_bursts_polygons(only_valid_location=True)
get the polygons of radar bursts in the image geometry
- Parameters:
only_valid_location (bool) – [True] -> polygons of the TOPS SLC bursts are cropped using valid location index False -> polygons of the TOPS SLC bursts are aligned with azimuth time start/stop index
- Returns:
polygons of the burst in the image (ie line/sample) geometry ‘geometry’ is the polygon
- Return type:
geopandas.GeoDataframe
- load_rasterized_masks()
Load rasterized masks
- Returns:
Contains rasterized masks dataset
- Return type:
xarray.Dataset
- ll2coords_SLC(*args)
for SLC product with irregular projected pixel spacing in range Affine transformation are not relevant :return:
- coords2ll_SLC(*args)
for SLC product with irregular projected pixel spacing in range Affine transformation are not relevant
- land_mask_slc_per_bursts(lazy_loading=True)
loop on burst polygons to get rasterized landmask
merge the landmask pieces into a single Dataset to replace existing ‘land_mask’ is any
- Parameters:
bool (lazy_loading)
- property footprint
alias for xsar.BaseDataset.geometry
- map_raster(raster_ds)
Map a raster onto xsar grid
- Parameters:
raster_ds (xarray.Dataset or xarray.DataArray) – The dataset we want to project onto xsar grid. The raster_ds.rio accessor must be valid.
- Returns:
The projected dataset, with ‘line’ and ‘sample’ coordinate (same size as xsar dataset), and with valid .rio accessor.
- Return type:
xarray.Dataset or xarray.DataArray
XSAR Meta classes
- class xsar.Sentinel1Meta(name)
Handle dataset metadata. A xsar.Sentinel1Meta object can be used with xsar.open_dataset, but it can be used as itself: it contains usefull attributes and methods.
- Parameters:
name (str) – path or gdal identifier like ‘SENTINEL1_DS:%s:WV_001’ % path
- platform
Mission platform
- have_child(name)
Check if dataset name belong to this Sentinel1Meta object.
- Parameters:
name (str) – dataset name
- Return type:
bool
- annotation_angle(line, sample, angle)
Interpolate angle with RectBivariateSpline
- property orbit_pass
Orbit pass, i.e ‘Ascending’ or ‘Descending’
- property platform_heading
Platform heading, relative to north
- property footprint
footprint, as a shapely polygon or multi polygon
- property geometry
alias for footprint
- property geoloc
xarray.Dataset with [‘longitude’, ‘latitude’, ‘altitude’, ‘azimuth_time’, ‘slant_range_time’,’incidence’,’elevation’ ] variables and [‘line’, ‘sample’] coordinates, at the geolocation grid
- property coverage
coverage, as a string like ‘251km * 170km (sample * line )’
- property pixel_line_m
pixel line spacing, in meters (at sensor level)
- property pixel_sample_m
pixel sample spacing, in meters (at sensor level)
- property denoised
dict with pol as key, and bool as values (True is DN is predenoised at L1 level)
- property ipf
ipf version
- property pols
polarisations strings, separated by spaces
- property orbit
- orbit, as a geopandas.GeoDataFrame, with columns:
‘velocity’ : shapely.geometry.Point with velocity in x, y, z direction
‘geometry’ : shapely.geometry.Point with position in x, y, z direction
crs is set to ‘geocentric’
- attrs keys:
‘orbit_pass’: ‘Ascending’ or ‘Descending’
‘platform_heading’: in degrees, relative to north
Notes
orbit is longer than the SAFE, because it belongs to all datatakes, not only this slice
- property azimuth_fmrate
xarray.Dataset Frequency Modulation rate annotations such as t0 (azimuth time reference) and polynomial coefficients: Azimuth FM rate = c0 + c1(tSR - t0) + c2(tSR - t0)^2
- property approx_transform
Affine transfom from geoloc.
This is an inaccurate transform, with errors up to 600 meters. But it’s fast, and may fit some needs, because the error is stable localy. See xsar.BaseMeta.coords2ll xsar.BaseMeta.ll2coords for accurate methods.
Examples
get longitude and latitude from tuple (line, sample):
>>> longitude, latitude = self.approx_transform * (line, sample)get line and sample from tuple (longitude, latitude)
>>> line, sample = ~self.approx_transform * (longitude, latitude)
- property get_calibration_luts
get original (ie not interpolation) xr.Dataset sigma0 and gamma0 Look Up Tables to apply calibration
- class xsar.RadarSat2Meta(name)
Handle dataset metadata. A xsar.RadarSat2Meta object can be used with xsar.open_dataset, but it can be used as itself: it contains usefull attributes and methods.
- Parameters:
name (str) – path or gdal identifier
- property approx_transform
Affine transfom from geoloc.
This is an inaccurate transform, with errors up to 600 meters. But it’s fast, and may fit some needs, because the error is stable localy. See xsar.BaseMeta.coords2ll xsar.BaseMeta.ll2coords for accurate methods.
Examples
get longitude and latitude from tuple (line, sample):
>>> longitude, latitude = self.approx_transform * (line, sample)get line and sample from tuple (longitude, latitude)
>>> line, sample = ~self.approx_transform * (longitude, latitude)
- property pols
polarisations strings, separated by spaces
- property footprint
footprint, as a shapely polygon or multi polygon
- property pixel_line_m
pixel line spacing, in meters (at sensor level)
- property pixel_sample_m
pixel sample spacing, in meters (at sensor level)
- property get_azitime
Get time at low resolution
- Returns:
times
- Return type:
array[datetime64[ns]]
- flip_sample_da()
When a product is flipped, flip back data arrays (from the reader datatree) sample dimensions to respect the xsar convention (increasing incidence values)
- flip_line_da()
Flip dataArrays (from the reader datatree) that depend on line dimension when a product is ascending, in order to respect the xsar convention (increasing time along line axis, whatever ascending or descending product). Reference : schemas/rs2prod_burstAttributes.xsd:This corresponds to the top-left pixel in a coordinate system where the range increases to the right and the zero-Doppler time increases downward. Note that this is not necessarily the top-left pixel of the image block in the final product.
- class xsar.RcmMeta(name)
Handle dataset metadata. A xsar.RadarSat2Meta object can be used with xsar.open_dataset, but it can be used as itself: it contains usefull attributes and methods.
- Parameters:
name (str) – path or gdal identifier
- flip_sample_da()
When a product is flipped, flip back data arrays (from the reader datatree) sample dimensions to respect the xsar convention (increasing incidence values). Documentation reference : RCM Image Product Format Definition (4.2.1)
- flip_line_da()
Flip dataArrays (from the reader datatree) that depend on line dimension when a product is ascending, in order to respect the xsar convention (increasing time along line axis, whatever ascending or descending product). Documentation reference : RCM Image Product Format Definition (4.2.1)
- assign_index(ds_list)
Generate a list of increasing indexes as a dataset coord. The change is made directly in the reader’s datatree to all the datasets given in ds_list. The list of indexes is built thanks to a firstPixelValue, a step and a number of values. Documentation reference : RCM Image Product Format Definition (7.5.1)
- Parameters:
ds_list (List[str]) – List of dataset that don’t have the samples list built. The list can contain these values : [‘lut’, ‘noise_lut’, ‘incidence’].
- property approx_transform
Affine transfom from geoloc.
This is an inaccurate transform, with errors up to 600 meters. But it’s fast, and may fit some needs, because the error is stable localy. See xsar.BaseMeta.coords2ll xsar.BaseMeta.ll2coords for accurate methods.
Examples
get longitude and latitude from tuple (line, sample):
>>> longitude, latitude = self.approx_transform * (line, sample)get line and sample from tuple (longitude, latitude)
>>> line, sample = ~self.approx_transform * (longitude, latitude)
- property footprint
footprint, as a shapely polygon or multi polygon
- property pixel_line_m
pixel line spacing, in meters (at sensor level)
- property pixel_sample_m
pixel sample spacing, in meters (at sensor level)
- property get_azitime
Get time at low resolution
- Returns:
times
- Return type:
array[datetime64[ns]]
- property pols
polarisations strings, separated by spaces
XSAR Dataset classes
- class xsar.Sentinel1Dataset(dataset_id, resolution=None, resampling=Resampling.rms, luts=False, chunks={'line': 5000, 'sample': 5000}, dtypes=None, patch_variable=True, lazyloading=True, recalibration=False)
Handle a SAFE subdataset. A dataset might contain several tiff files (multiples polarizations), but all tiff files must share the same footprint.
The main attribute useful to the end-user is self.dataset (xarray.Dataset , with all variables parsed from xml and tiff files.)
- Parameters:
dataset_id (str or Sentinel1Meta object) – if str, it can be a path, or a gdal dataset identifier like ‘SENTINEL1_DS:%s:WV_001’ % filename)
resolution (dict, number or string, optional) –
resampling dict like {‘line’: 20, ‘sample’: 20} where 20 is in pixels.
if a number, dict will be constructed from {‘line’: number, ‘sample’: number}
if str, it must end with ‘m’ (meters), like ‘100m’. dict will be computed from sensor pixel size.
resampling (rasterio.enums.Resampling or str, optional) –
Only used if resolution is not None.
` rasterio.enums.Resampling.rms` by default. rasterio.enums.Resampling.nearest (decimation) is fastest.
luts (bool, optional) – if True return also luts as variables (ie sigma0_lut, gamma0_lut, etc…). False by default.
chunks (dict, optional) – dict with keys [‘pol’,’line’,’sample’] (dask chunks).
dtypes (None or dict, optional) – Specify the data type for each variable.
patch_variable (bool, optional) – activate or not variable pathching ( currently noise lut correction for IPF2.9X)
lazyloading (bool, optional) – activate or not the lazy loading of the high resolution fields
- interpolation_func_slc
xsar.Sentinel1Meta object
- resampled
True if dataset is not a sensor resolution
- corrected_range_noise_lut(dt)
Patch F.Nouguier see https://jira-projects.cls.fr/browse/MPCS-3581 and https://github.com/umr-lops/xsar_slc/issues/175 Return range noise lut with corrected line numbering. This function should be used only on the full SLC dataset dt :param dt: datatree returned by xsar corresponding to one subswath :type dt: xarray.datatree
- Returns:
range noise lut with corrected line number
- Return type:
(xarray.dataset)
- select_gains()
attribution of the good swath gain by getting the swath number of each pixel
Returns:
- add_high_resolution_variables(luts=False, patch_variable=True, skip_variables=None, load_luts=True, lazy_loading=True)
- Parameters:
luts (bool, optional) – if True return also luts as variables (ie sigma0_lut, gamma0_lut, etc…). False by default.
patch_variable (bool, optional) – activate or not variable pathching ( currently noise lut correction for IPF2.9X)
skip_variables (list, optional) – list of strings eg [‘land_mask’,’longitude’] to skip at rasterisation step
load_luts (bool) – True -> load hiddens luts sigma0 beta0 gamma0, False -> no luts reading
lazy_loading (bool) – True -> use map_blocks_coords() to have delayed rasterization on variables such as longitude, latitude, incidence,…, False -> directly compute RectBivariateSpline with memory usage (Currently the lazy_loading generate a memory leak)
- add_swath_number()
add a DataArray with the swath number chosen for each pixel of the dataset ; also add a DataArray with a flag
Returns:
- apply_calibration_and_denoising()
apply calibration and denoising functions to get high resolution sigma0 , beta0 and gamma0 + variables *_raw
Returns:
- property dataset
xarray.Dataset representation of this xsar.Sentinel1Dataset object. This property can be set with a new dataset, if the dataset was computed from the original dataset.
- get_ll_from_SLC_geoloc(line, sample, varname)
- Parameters:
(np.ndarray) (sample)
(np.ndarray)
(str) (varname)
- Return type:
z_interp_value (np.ndarray)
- reverse_calibration_lut(var_name)
ONLY MADE FOR GRD YET can’t retrieve complex number for SLC
Reverse the calibration Look Up Table (LUT) applied to var_name to retrieve the original digital number (DN). This is the inverse operation of _apply_calibration_lut. Refer to the official ESA documentation for more details on the radiometric calibration of Level-1 products: https://sentinel.esa.int/web/sentinel/radiometric-calibration-of-level-1-products
- Parameters:
var_name (str) – The variable name from which the LUT should be reversed to get ‘digital_number’. The variable must exist in self._map_var_lut.
- Returns:
A dataset with one variable named ‘digital_number’.
- Return type:
xarray.Dataset
- Raises:
ValueErro – If var_name does not have an associated LUT in self._map_var_lut.
- property get_burst_azitime
Get azimuth time at high resolution.
- Returns:
the high resolution azimuth time vector interpolated at the middle of the sub-swath
- Return type:
xarray.DataArray
- get_sensor_velocity()
Interpolated sensor velocity :returns: containing a single variable velocity :rtype: xarray.Dataset()
- class xsar.RadarSat2Dataset(dataset_id, resolution=None, resampling=Resampling.rms, chunks={'line': 5000, 'sample': 5000}, dtypes=None, lazyloading=True, skip_variables=None)
Handle a SAFE subdataset. A dataset might contain several tiff files (multiples polarizations), but all tiff files must share the same footprint.
The main attribute useful to the end-user is self.dataset (xarray.Dataset , with all variables parsed from xml and tiff files.)
- Parameters:
dataset_id (str or RadarSat2Meta object) – if str, it can be a path, or a gdal dataset identifier)
resolution (dict, number or string, optional) –
resampling dict like {‘line’: 20, ‘sample’: 20} where 20 is in pixels.
if a number, dict will be constructed from {‘line’: number, ‘sample’: number}
if str, it must end with ‘m’ (meters), like ‘100m’. dict will be computed from sensor pixel size.
resampling (rasterio.enums.Resampling or str, optional) –
Only used if resolution is not None.
` rasterio.enums.Resampling.rms` by default. rasterio.enums.Resampling.nearest (decimation) is fastest.
chunks (dict, optional) – dict with keys [‘pol’,’line’,’sample’] (dask chunks).
dtypes (None or dict, optional) – Specify the data type for each variable.
lazyloading (bool, optional) – activate or not the lazy loading of the high resolution fields
- lazy_load_luts()
Lazy load luts from the reader as delayed
- Returns:
Contains delayed dataArrays of luts
- Return type:
xarray.Dataset
- load_from_geoloc(varnames, lazy_loading=True)
Interpolate (with RectBiVariateSpline) variables from self.sar_meta.geoloc to self._dataset
- Parameters:
varnames (list of str) – subset of variables names in self.sar_meta.geoloc
- Returns:
With interpolated variables
- Return type:
xarray.Dataset
- apply_calibration_and_denoising()
apply calibration and denoising functions to get high resolution sigma0 , beta0 and gamma0 + variables *_raw
Returns:
- flip_sample_da(ds)
When a product is flipped, flip back data arrays (from a dataset) sample dimensions to respect the xsar convention (increasing incidence values)
- Parameters:
ds (xarray.Dataset) – Contains dataArrays which depends on sample dimension
- Returns:
Flipped back, respecting the xsar convention
- Return type:
xarray.Dataset
- flip_line_da(ds)
Flip dataArrays (from a dataset) that depend on line dimension when a product is ascending, in order to respect the xsar convention (increasing time along line axis, whatever ascending or descending product). Reference : schemas/rs2prod_burstAttributes.xsd:This corresponds to the top-left pixel in a coordinate system where the range increases to the right and the zero-Doppler time increases downward. Note that this is not necessarily the top-left pixel of the image block in the final product.
- Parameters:
ds (xarray.Dataset) – Contains dataArrays which depends on line dimension
- Returns:
Flipped back, respecting the xsar convention
- Return type:
xarray.Dataset
- property interpolate_times
Apply interpolation with RectBivariateSpline to the azimuth time extracted from self.sar_meta.geoloc
- Returns:
Contains the time as delayed at the good resolution and expressed as type datetime64[ns]
- Return type:
xarray.Dataset
- get_sensor_velocity()
Interpolated sensor velocity :returns: containing a single variable velocity :rtype: xarray.Dataset()
- property dataset
xarray.Dataset representation of this xsar.RadarSat2Dataset object. This property can be set with a new dataset, if the dataset was computed from the original dataset.
- class xsar.RcmDataset(dataset_id, resolution=None, resampling=Resampling.rms, chunks={'line': 5000, 'sample': 5000}, dtypes=None, lazyloading=True, skip_variables=None)
Handle a SAFE subdataset. A dataset might contain several tiff files (multiples polarizations), but all tiff files must share the same footprint.
The main attribute useful to the end-user is self.dataset (xarray.Dataset , with all variables parsed from xml and tiff files.)
- Parameters:
dataset_id (str or RadarSat2Meta object) – if str, it can be a path, or a gdal dataset identifier)
resolution (dict, number or string, optional) –
resampling dict like {‘line’: 20, ‘sample’: 20} where 20 is in pixels.
if a number, dict will be constructed from {‘line’: number, ‘sample’: number}
if str, it must end with ‘m’ (meters), like ‘100m’. dict will be computed from sensor pixel size.
resampling (rasterio.enums.Resampling or str, optional) –
Only used if resolution is not None.
` rasterio.enums.Resampling.rms` by default. rasterio.enums.Resampling.nearest (decimation) is fastest.
chunks (dict, optional) – dict with keys [‘pol’,’line’,’sample’] (dask chunks).
dtypes (None or dict, optional) – Specify the data type for each variable.
lazyloading (bool, optional) – activate or not the lazy loading of the high resolution fields
- lazy_load_luts()
Lazy load luts from the reader as delayed
- Returns:
Contains delayed dataArrays of luts
- Return type:
xarray.Dataset
- lazy_load_noise_luts()
Lazy load noise luts from the reader as delayed
- Returns:
Contains delayed dataArrays of luts
- Return type:
xarray.Dataset
- apply_calibration_and_denoising()
apply calibration and denoising functions to get high resolution sigma0 , beta0 and gamma0 + variables *_raw
Returns:
- load_from_geoloc(varnames, lazy_loading=True)
Interpolate (with RectBiVariateSpline) variables from self.sar_meta.geoloc to self._dataset
- Parameters:
varnames (list of str) – subset of variables names in self.sar_meta.geoloc
- Returns:
With interpolated variables
- Return type:
xarray.Dataset
- property interpolate_times
Apply interpolation with RectBivariateSpline to the azimuth time extracted from self.sar_meta.geoloc
- Returns:
Contains the time as delayed at the good resolution and expressed as type datetime64[ns]
- Return type:
xarray.Dataset
- get_sensor_velocity()
Interpolated sensor velocity :returns: containing a single variable velocity :rtype: xarray.Dataset()
- load_digital_number(resolution=None, chunks=None, resampling=Resampling.rms)
load digital_number from tiff files, as an xarray.Dataset.
- Parameters:
resolution (None, number, str or dict) – see xsar.open_dataset
resampling (rasterio.enums.Resampling) – see xsar.open_dataset
- Returns:
dataset (possibly dual-pol), with basic coords/dims naming convention
- Return type:
xarray.Dataset
- flip_sample_da(ds)
When a product is flipped, flip back data arrays (from a dataset) sample dimensions to respect the xsar convention (increasing incidence values). Documentation reference : RCM Image Product Format Definition (4.2.1)
- Parameters:
ds (xarray.Dataset) – Contains dataArrays which depends on sample dimension
- Returns:
Flipped back, respecting the xsar convention
- Return type:
xarray.Dataset
- flip_line_da(ds)
Flip dataArrays (from a dataset) that depend on line dimension when a product is ascending, in order to respect the xsar convention (increasing time along line axis, whatever ascending or descending product). Documentation reference : RCM Image Product Format Definition (4.2.1)
- Parameters:
ds (xarray.Dataset) – Contains dataArrays which depends on line dimension
- Returns:
Flipped back, respecting the xsar convention
- Return type:
xarray.Dataset
- reconfigure_reader_datatree()
Merge self.datatree with the reader’s one. Merge attributes of the reader’s datatree in the attributes of self.datatree
- property dataset
xarray.Dataset representation of this xsar.RcmDataset object. This property can be set with a new dataset, if the dataset was computed from the original dataset.