Skip to content

Commit af5da71

Browse files
Merge pull request #367 from johntruckenbrodt/release/v0.32.0
v0.32.0
2 parents d8f3516 + 6dbaaf0 commit af5da71

File tree

1 file changed

+68
-1
lines changed

1 file changed

+68
-1
lines changed

docs/source/about/changelog.rst

Lines changed: 68 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1166,4 +1166,71 @@ Drivers
11661166
GAMMA API
11671167
---------
11681168
- :func:`~pyroSAR.gamma.util.convert2gamma`, :func:`~pyroSAR.gamma.util.correctOSV`: add file locking
1169-
- fixed argument names of `isp.MLI_cat`
1169+
- fixed argument names of `isp.MLI_cat`
1170+
1171+
0.32.0 | 2025-10-29
1172+
===================
1173+
1174+
SNAP API
1175+
--------
1176+
- :func:`~pyroSAR.snap.auxil.orb_parametrize`: improved ERS/ASAR orbit handling (more work necessary to always select the best available file, because all options are limited in time (e.g. use option 1 if possible, fall back to option 2 otherwise, etc.); needs a download functionality like :class:`pyroSAR.S1.auxil.OSV` to know which ones are available)
1177+
- :func:`~pyroSAR.snap.util.geocode`:
1178+
1179+
+ explicitly use 'Latest Auxiliary File' for Envisat calibration (just for readability, this is already the default value of the parsed node; other options: 'Product Auxiliary File', 'External Auxiliary File')
1180+
+ leave calibration node polarizations field empty when processing all polarizations (otherwise processing may finish without errors but no product is being written; looks like a SNAP bug, also reported in `step-44830 <https://forum.step.esa.int/t/naming-of-source-bands/44830>`_)
1181+
+ `Calibration` in/out band handling improvements
1182+
1183+
* select source bands based on sensor and acquisition mode (also described in `step-44830 <https://forum.step.esa.int/t/naming-of-source-bands/44830>`_)
1184+
* more explicit handling of output bands: all that are not needed set to `False`
1185+
* commented out output bands that are apparently not needed
1186+
1187+
+ fixed sarsim-cc geocoding:
1188+
1189+
* old: `SAR-Simulation->Cross-Correlation->Terrain-Flattening->SARSim-Terrain-Correction` (does not work because `Terrain-Flattening` does not pass through any source layers)
1190+
* new: `SAR-Simulation->Cross-Correlation->Warp->Terrain-Flattening->Terrain-Correction`
1191+
* this reveals a flaw in current SNAP processing: the additional `Warp` step introduces unnecessary resampling, the created lookup table is not passed between operators and thus makes the process inefficient, the whole procedure only works with EPSG:4326 as map geometry thus, by the looks of it, requiring three forward geocoding steps (for `SAR-Simulation`, `Terrain-Flattening` and `Terrain-Correction`, respectively)
1192+
1193+
- :func:`~pyroSAR.snap.auxil.groupbyWorkers`: add `Warp` operator to the group of its source node, because it cannot be executed alone (just like `ThermalNoiseRemoval`)
1194+
- ancillary layer writing fix: a layover-shadow-mask can also be created by `SAR-Simulation`, but the output layer is named differently ('layover_shadow_mask' instead of 'layoverShadowMask' by `Terrain-Correction`); this must be handled correctly in :func:`pyroSAR.snap.auxil.writer`
1195+
1196+
Drivers
1197+
-------
1198+
- :class:`~pyroSAR.drivers.ESA`:
1199+
1200+
+ :meth:`~pyroSAR.drivers.ESA.scanMetadata`:
1201+
1202+
* read out all MPH, SPH, DSD and GEOLOCATION_GRID_ADS metadata and expose it via `meta['origin']`
1203+
* use absolute orbit number as `frameNumber` instead of product counter (which often seems to be 0)
1204+
* convert original metadata to Python types (int, float, datetime)
1205+
* renamed several meta attributes:
1206+
1207+
- `incidenceAngleMin` -> `incidence_nr`
1208+
- `incidenceAngleMax` -> `incidence_fr`
1209+
- `rangeResolution`, `azimuthResolution` -> `resolution` (tuple)
1210+
- `neszNear`, `neszFar` -> `nesz` (tuple)
1211+
1212+
+ new method :meth:`~pyroSAR.drivers.ESA.geo_grid` (like for `SAFE`)
1213+
+ corrected `acquisition_mode` for ASAR WSM, WSS
1214+
+ added MR product type
1215+
1216+
- :class:`~pyroSAR.drivers.BEAM_DIMAP`
1217+
1218+
+ improved metadata parsing
1219+
1220+
* `incidenceAngleMidSwath` not always present, use `incidence_near` and `incidence_far` alternatively
1221+
* the cycle number may be named `orbit_cycle` or `CYCLE`
1222+
* for pyroSAR `frameNumber`, use `ABS_ORBIT`, not `data_take_id` as for Sentinel-1
1223+
* added further `meta` attributes: `swath`, `looks`
1224+
* always four `Polarizations` fields present, some may be set to None -> filtered out
1225+
* for Sentinel-1 the product and acquisition_mode attributes can be obtained from `ACQUISITION_MODE` and `PRODUCT_TYPE` respectively; for ASAR/ERS `ACQUISITION_MODE` is missing and `PRODUCT_TYPE` contains the original values, e.g. 'ASA_APP_1P' -> must be abstracted
1226+
1227+
+ added MR product type
1228+
1229+
- :class:`~pyroSAR.drivers.ID`
1230+
1231+
+ added methods `start_dt` and `stop_dt` returning timezone-aware datetime objects
1232+
1233+
Ancillary Tools
1234+
---------------
1235+
1236+
- :meth:`~pyroSAR.ancillary.multilook_factors`: fixed bug in returning 0 as range factor

0 commit comments

Comments
 (0)