diff --git a/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.txx b/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.txx index 96cbf7120c497f340b31f7657e7161bbeafd2d63..336f399df82f4fb35c9e3c820d3e9a319fdb6ff3 100644 --- a/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.txx +++ b/Modules/MPI/MPITiffWriter/include/otbSimpleParallelTiffWriter.txx @@ -458,6 +458,7 @@ SimpleParallelTiffWriter<TInputImage> */ inputPtr->UpdateOutputInformation(); InputImageRegionType inputRegion = inputPtr->GetLargestPossibleRegion(); + typename InputImageType::PointType origin = inputPtr->GetOrigin(); /** Parse region size modes */ if(m_FilenameHelper->BoxIsSet()) @@ -497,6 +498,9 @@ SimpleParallelTiffWriter<TInputImage> throw e; } otbMsgDevMacro(<< "inputRegion " << inputRegion); + + // Update the origin + inputPtr->TransformIndexToPhysicalPoint(inputRegion.GetIndex(), origin); } // Get number of bands & pixel data type @@ -538,7 +542,7 @@ SimpleParallelTiffWriter<TInputImage> else { // When mode is not tiled (i.e. striped) - block_size_x = inputPtr->GetLargestPossibleRegion().GetSize()[0]; + block_size_x = inputRegion.GetSize()[0]; } // Master process (Rank 0) is responsible for the creation of the output raster. @@ -546,10 +550,10 @@ SimpleParallelTiffWriter<TInputImage> { // Set geotransform double geotransform[6]; - geotransform[0] = inputPtr->GetOrigin()[0] - 0.5*inputPtr->GetSignedSpacing()[0]; + geotransform[0] = origin[0] - 0.5*inputPtr->GetSignedSpacing()[0]; geotransform[1] = inputPtr->GetSignedSpacing()[0]; geotransform[2] = 0.0; - geotransform[3] = inputPtr->GetOrigin()[1] - 0.5*inputPtr->GetSignedSpacing()[1]; + geotransform[3] = origin[1] - 0.5*inputPtr->GetSignedSpacing()[1]; geotransform[4] = 0.0; geotransform[5] = inputPtr->GetSignedSpacing()[1]; @@ -557,8 +561,8 @@ SimpleParallelTiffWriter<TInputImage> if(!m_TiffTiledMode) { SPTW_ERROR sperr = sptw::create_raster(m_FileName, - inputPtr->GetLargestPossibleRegion().GetSize()[0], - inputPtr->GetLargestPossibleRegion().GetSize()[1], + inputRegion.GetSize()[0], + inputRegion.GetSize()[1], nBands, dataType, geotransform, @@ -573,8 +577,8 @@ SimpleParallelTiffWriter<TInputImage> else { SPTW_ERROR sperr = sptw::create_tiled_raster(m_FileName, - inputPtr->GetLargestPossibleRegion().GetSize()[0], - inputPtr->GetLargestPossibleRegion().GetSize()[1], + inputRegion.GetSize()[0], + inputRegion.GetSize()[1], nBands, dataType, geotransform,