Dear SNAP Community and Developers,
I am writing to report a reproducibility issue with Sentinel-1 GRD processing in SNAP 12. I am getting different pixel values (Gamma0) for the exact same input file depending on the software session and the machine used.
The Issue:
-
Same Session (Consistent): If I run the graph, then run it again immediately within the same open SNAP session, the results are identical.
-
Restarted Session (Inconsistent): If I close SNAP, reopen it, and run the exact same graph on the exact same input data, the output pixel values change.
-
Different PC (Inconsistent): Running this exact graph on a different computer (also SNAP 12) yields different Gamma0 values compared to my machine.
Workflow: Read → Apply Orbit → Calibration (Beta0) → Speckle Filter (Refined Lee) → Terrain Flattening → Terrain Correction → Write.
Relevant Configuration: I am using an external DEM and NEAREST_NEIGHBOUR resampling. Below are the full parameter blocks for the geometry nodes where I suspect the variation is originating.
Terrain Flattening Node:
XML
<node id="Terrain-Flattening">
<operator>Terrain-Flattening</operator>
<sources>
<sourceProduct refid="Speckle-Filter"/>
</sources>
<parameters class="com.bc.ceres.binding.dom.XppDomElement">
<demName>External DEM</demName>
<externalDEMFile>C:\DEM\output_SRTMGL1.tif</externalDEMFile>
<externalDEMApplyEGM>true</externalDEMApplyEGM>
<externalDEMNoDataValue>0.0</externalDEMNoDataValue>
<demResamplingMethod>NEAREST_NEIGHBOUR</demResamplingMethod>
<outputSimulatedImage>false</outputSimulatedImage>
<additionalOverlap>0.1</additionalOverlap>
<oversamplingMultiple>1.0</oversamplingMultiple>
</parameters>
</node>
Terrain Correction Node:
XML
<node id="Terrain-Correction">
<operator>Terrain-Correction</operator>
<sources>
<sourceProduct refid="Terrain-Flattening"/>
</sources>
<parameters class="com.bc.ceres.binding.dom.XppDomElement">
<demName>External DEM</demName>
<externalDEMFile>C:\DEM\output_SRTMGL1.tif</externalDEMFile>
<externalDEMApplyEGM>false</externalDEMApplyEGM>
<externalDEMNoDataValue>0.0</externalDEMNoDataValue>
<demResamplingMethod>NEAREST_NEIGHBOUR</demResamplingMethod>
<imgResamplingMethod>NEAREST_NEIGHBOUR</imgResamplingMethod>
<pixelSpacingInMeter>10.0</pixelSpacingInMeter>
<mapProjection>GEOGCS["WGS84(DD)", DATUM["WGS84", SPHEROID["WGS84",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["degree",0.017453292519943295], AXIS["Geodetic longitude",EAST], AXIS["Geodetic latitude",NORTH]]</mapProjection>
<alignToStandardGrid>true</alignToStandardGrid>
<standardGridOriginX>0.0</standardGridOriginX>
<standardGridOriginY>0.0</standardGridOriginY>
<nodataValueAtSea>true</nodataValueAtSea>
<saveSelectedSourceBand>true</saveSelectedSourceBand>
<outputComplex>false</outputComplex>
<applyRadiometricNormalization>false</applyRadiometricNormalization>
<saveGammaNought>false</saveGammaNought>
<saveSigmaNought>false</saveSigmaNought>
<saveBetaNought>false</saveBetaNought>
<incidenceAngleForGamma0>Use projected local incidence angle from DEM</incidenceAngleForGamma0>
</parameters>
</node>
Has anyone observed this behavior or is there a setting to enforce strict deterministic results across sessions?