private void addTiePointGrids(final Product product) {
final int gridWidth = 11;
final int gridHeight = 11;
final int subSamplingX = product.getSceneRasterWidth() / (gridWidth - 1);
final int subSamplingY = product.getSceneRasterHeight() / (gridHeight - 1);
final BinaryRecord sceneRec = leaderFile.getSceneRecord();
final TiePointGrid slantRangeGrid = new TiePointGrid(OperatorUtils.TPG_SLANT_RANGE_TIME,
gridWidth, gridHeight, 0, 0, subSamplingX, subSamplingY);
slantRangeGrid.setUnit(Unit.NANOSECONDS);
product.addTiePointGrid(slantRangeGrid);
if (isProductIPF) {
setIPFTiePointGridRasterData(slantRangeGrid);
}
if (sceneRec != null) {
final TiePointGrid incidentAngleGrid = new TiePointGrid(OperatorUtils.TPG_INCIDENT_ANGLE,
gridWidth, gridHeight, 0, 0, subSamplingX, subSamplingY);
incidentAngleGrid.setDiscontinuity(TiePointGrid.DISCONT_AUTO);
incidentAngleGrid.setUnit(Unit.DEGREES);
product.addTiePointGrid(incidentAngleGrid);
}
}