目次
データ例
- 埋め込まれる側の画像(ここでの例では衛星画像)
- before.tif,
- 7871 x 7751 pixels (row x column)

- 埋め込む画像(ここでの例では衛星画像に載せるクレジット表記)
- クレジット.bmp
- 526 x 4300 pixels (row x column)

※Landsat-8画像にクレジット表記が必要かどうかの規約や、必要な場合の表記フォーマットの情報がいまいちよく分からなかったため、ここではあくまでも例として。
実行結果

Pythonコード
import arcpy import numpy inRasterLayer = arcpy.GetParameterAsText(0) # 埋め込まれる側のラスター(レイヤー) inOtherImage = arcpy.GetParameterAsText(1) # 埋め込む画像 outRasterData = arcpy.GetParameterAsText(2) # 出力先ラスター inOffsetRow = arcpy.GetParameterAsText(3) # 埋め込み先の座標(行方向) inOffsetCol = arcpy.GetParameterAsText(4) # 埋め込み先の座標(列方向) baseRaster = arcpy.Raster(inRasterLayer) baseArray = arcpy.RasterToNumPyArray(baseRaster) otherRaster = arcpy.Raster(inOtherImage) otherArray = arcpy.RasterToNumPyArray(otherRaster) offsetRow = int(inOffsetRow) offsetCol = int(inOffsetCol) outArray = baseArray.copy() # 出力先の画素配列 # 出力先の画素配列に、埋め込む画像の画素値を上書き for band in range(0, 3): for row in range(0, otherArray.shape[1]): for col in range(0, otherArray.shape[2]): outArray[band, offsetRow + row, offsetCol + col] = otherArray[band, row, col] # 出力先の画素配列を、ラスターとして保存 outRaster = arcpy.NumPyArrayToRaster( outArray, arcpy.Point(baseRaster.extent.XMin, baseRaster.extent.YMin), baseRaster.meanCellWidth, baseRaster.meanCellHeight) arcpy.DefineProjection_management(outRaster, baseRaster.spatialReference) compressionTypes = { 'LZ77' : 'LZ77', 'JPEG' : 'JPEG', 'JPEG2000' : 'JPEG2000', 'PACKBITS' : 'PackBits', 'LZW' : 'LZW', 'RLE' : 'RLE', 'CCITT GROUP 3' : 'CCITT_G3', 'CCITT GROUP 4' : 'CCITT_G4', 'CCITT (1D)' : 'CCITT_1D', 'None' : 'NONE' } arcpy.env.compression = compressionTypes[baseRaster.compressionType] pixelTypes = { 'U1' : '1_BIT', 'U2' : '2_BIT', 'U4' : '4_BIT', 'U8' : '8_BIT_UNSIGNED', 'S8' : '8_BIT_SIGNED', 'U16' : '16_BIT_UNSIGNED', 'S16' : '16_BIT_SIGNED', 'U32' : '32_BIT_UNSIGNED', 'S32' : '32_BIT_SIGNED', 'F32' : '32_BIT_FLOAT', 'F64' : '64_BIT' } formats = { 'BIL' : 'BIL', 'BIP' : 'BIP', 'BMP' : 'BMP', 'BSQ' : 'BSQ', 'DAT' : 'ENVI', 'GIF' : 'GIF', 'Grid' : 'GRID', 'IMAGINE Image' : 'IMAGINE Image', 'JP2000' : 'JP2', 'JPEG' : 'JPEG', 'PNG' : 'PNG', 'TIFF' : 'TIFF' } arcpy.CopyRaster_management(outRaster, outRasterData, pixel_type = pixelTypes[baseRaster.pixelType], format = formats[baseRaster.format], nodata_value = baseRaster.noDataValue) del baseRaster, baseArray, otherRaster, otherArray, outArray, outRaster