public static TiePointGrid createTiePointGrid(final Variable variable, final int gridWidth, final int gridHeight,
final int sceneWidth, final int sceneHeight) throws IOException {
final NcAttributeMap attMap = NcAttributeMap.create(variable);
final double subSamplingX = (double) sceneWidth / (double) (gridWidth - 1);
final double subSamplingY = (double) sceneHeight / (double) (gridHeight - 1);
final Array data = variable.read();
final float[] dataArray = new float[(int) data.getSize()];
for (int i = 0; i < data.getSize(); ++i) {
dataArray[i] = data.getFloat(i);
}
final TiePointGrid tpg = new TiePointGrid(variable.getShortName(), gridWidth, gridHeight, 0, 0,
subSamplingX, subSamplingY, dataArray);
tpg.setDescription(getDescription(variable, attMap));
tpg.setUnit(getUnit(variable, attMap));
tpg.setScalingFactor(getScalingFactor(attMap));
tpg.setScalingOffset(getAddOffset(attMap));
final Number noDataValue = getNoDataValue(attMap);
if (noDataValue != null) {
tpg.setNoDataValue(noDataValue.doubleValue());
tpg.setNoDataValueUsed(true);
}
return tpg;
}