Skip to content
Merged
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
d1c4d7f
disable polarimetric symmetrization by default
gshiroma Jul 3, 2025
0ef09a8
Merge branch 'isce-framework:develop' into develop
gshiroma Jul 9, 2025
2ac2694
revert changes to `symmetrize_cross_pol_channels`
gshiroma Jul 22, 2025
05d7fda
Update GCOV and GSLC specification XMLs
gshiroma Jul 22, 2025
749058d
Revert changes to the GCOV and GSLC specification XMLs
gshiroma Jul 23, 2025
fc8ac53
Merge branch 'isce-framework:develop' into develop
gshiroma Jul 24, 2025
064d073
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 7, 2025
22464ef
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 7, 2025
a75e7f1
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 11, 2025
ab21d36
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 12, 2025
d61d489
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 18, 2025
0af53dd
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 20, 2025
d454e6a
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 21, 2025
6e7e9d1
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 28, 2025
dd80c38
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 29, 2025
63853b2
Merge branch 'isce-framework:develop' into develop
gshiroma Aug 29, 2025
7c7272f
Merge branch 'isce-framework:develop' into develop
gshiroma Sep 2, 2025
dd18a84
Merge branch 'isce-framework:develop' into develop
gshiroma Sep 17, 2025
d43ca22
Merge branch 'isce-framework:develop' into develop
gshiroma Oct 6, 2025
c62d750
Merge branch 'isce-framework:develop' into develop
gshiroma Oct 29, 2025
5922bbf
Merge branch 'isce-framework:develop' into develop
gshiroma Nov 6, 2025
9cc7088
Merge branch 'isce-framework:develop' into develop
gshiroma Dec 15, 2025
c207327
Merge branch 'isce-framework:develop' into develop
gshiroma Jan 10, 2026
5458d8b
ensure that `_FillValue` and statistical attributes have the same dat…
gshiroma Feb 9, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 39 additions & 19 deletions python/packages/nisar/products/writers/BaseL2WriterSingleInput.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ def _get_attribute_dict(band,
valid_max=None,
stats_obj_list=None,
stats_real_imag_obj_list=None,
to_string_function=str):
to_string_function=str,
to_data_format_function=lambda x: x):
'''
Get attribute dictionary for a raster layer

Expand All @@ -79,6 +80,8 @@ def _get_attribute_dict(band,
List of complex stats object
to_string_function: function, optional
Function to convert input data type to string
to_data_format_function: function, optional
Function to convert input data type to the desired output data type.

Returns
-------
Expand All @@ -97,33 +100,42 @@ def _get_attribute_dict(band,
attr_dict['units'] = to_string_function(units)

if fill_value is not None:
attr_dict['_FillValue'] = fill_value
attr_dict['_FillValue'] = to_data_format_function(fill_value)

if stats_obj_list is not None:
stats_obj = stats_obj_list[band]
attr_dict['min_value'] = stats_obj.min
attr_dict['mean_value'] = stats_obj.mean
attr_dict['max_value'] = stats_obj.max
attr_dict['sample_stddev'] = stats_obj.sample_stddev
attr_dict['min_value'] = to_data_format_function(stats_obj.min)
attr_dict['mean_value'] = to_data_format_function(stats_obj.mean)
attr_dict['max_value'] = to_data_format_function(stats_obj.max)
attr_dict['sample_stddev'] = \
to_data_format_function(stats_obj.sample_stddev)

elif stats_real_imag_obj_list is not None:

stats_obj = stats_real_imag_obj_list[band]
attr_dict['min_real_value'] = stats_obj.real.min
attr_dict['mean_real_value'] = stats_obj.real.mean
attr_dict['max_real_value'] = stats_obj.real.max
attr_dict['sample_stddev_real'] = stats_obj.real.sample_stddev

attr_dict['min_imag_value'] = stats_obj.imag.min
attr_dict['mean_imag_value'] = stats_obj.imag.mean
attr_dict['max_imag_value'] = stats_obj.imag.max
attr_dict['sample_stddev_imag'] = stats_obj.imag.sample_stddev
attr_dict['min_real_value'] = \
to_data_format_function(stats_obj.real.min)
attr_dict['mean_real_value'] = \
to_data_format_function(stats_obj.real.mean)
attr_dict['max_real_value'] = \
to_data_format_function(stats_obj.real.max)
attr_dict['sample_stddev_real'] = \
to_data_format_function(stats_obj.real.sample_stddev)

attr_dict['min_imag_value'] = \
to_data_format_function(stats_obj.imag.min)
attr_dict['mean_imag_value'] = \
to_data_format_function(stats_obj.imag.mean)
attr_dict['max_imag_value'] = \
to_data_format_function(stats_obj.imag.max)
attr_dict['sample_stddev_imag'] = \
to_data_format_function(stats_obj.imag.sample_stddev)

if valid_min is not None:
attr_dict['valid_min'] = valid_min
attr_dict['valid_min'] = to_data_format_function(valid_min)

if valid_max is not None:
attr_dict['valid_max'] = valid_max
attr_dict['valid_max'] = to_data_format_function(valid_max)

return attr_dict

Expand Down Expand Up @@ -456,6 +468,9 @@ def save_hdf5_dataset(ds_filename, h5py_obj, root_path,
for band in range(nbands):
gdal_band = gdal_ds.GetRasterBand(band+1)

to_data_format_function = gdal_array.GDALTypeCodeToNumericTypeCode(
gdal_band.DataType)

attr_dict = _get_attribute_dict(
band,
standard_name=standard_name,
Expand All @@ -466,7 +481,8 @@ def save_hdf5_dataset(ds_filename, h5py_obj, root_path,
valid_max=valid_max,
stats_obj_list=stats_obj_list,
stats_real_imag_obj_list=stats_real_imag_obj_list,
to_string_function=np.bytes_)
to_string_function=np.bytes_,
to_data_format_function=to_data_format_function)

if isinstance(output_ds_name, str):
output_ds_name_band = output_ds_name
Expand Down Expand Up @@ -675,6 +691,9 @@ def save_raster(ds_filename, output_ds_name,
if mantissa_nbits is not None:
truncate_mantissa(data, mantissa_nbits)

to_data_format_function = gdal_array.GDALTypeCodeToNumericTypeCode(
gdal_band.DataType)

attr_dict = _get_attribute_dict(
band,
standard_name=standard_name,
Expand All @@ -684,7 +703,8 @@ def save_raster(ds_filename, output_ds_name,
valid_min=valid_min,
valid_max=valid_max,
stats_obj_list=stats_obj_list,
stats_real_imag_obj_list=stats_real_imag_obj_list)
stats_real_imag_obj_list=stats_real_imag_obj_list,
to_data_format_function=to_data_format_function)

if isinstance(output_ds_name, str):
output_ds_name_band = output_ds_name
Expand Down