Bild der einzubettenden Seite (Satellitenbild in diesem Beispiel)
Eingebettetes Bild (Gutschrift auf dem Satellitenbild in diesem Beispiel) --Credit.bmp
EmbedOtherImageToRaster.py
import arcpy
import numpy
inRasterLayer = arcpy.GetParameterAsText(0) #Raster (Ebene) auf der eingebetteten Seite
inOtherImage = arcpy.GetParameterAsText(1) #Bild zum Einbetten
outRasterData = arcpy.GetParameterAsText(2) #Zielraster ausgeben
inOffsetRow = arcpy.GetParameterAsText(3) #Einbetten von Zielkoordinaten (Zeilenrichtung)
inOffsetCol = arcpy.GetParameterAsText(4) #Einbetten von Zielkoordinaten (Spaltenrichtung)
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() #Ausgabezielpixelarray
#Überschreiben Sie den Pixelwert des Bildes, das in das Ausgabeziel-Pixelarray eingebettet werden soll
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]
#Speichern Sie das Pixelarray des Ausgabeziels als Raster
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
Recommended Posts