描述
保存栅格数据集的副本或将镶嵌数据集转换成单个栅格数据集。
使用方法
可将输出结果保存为 BIL、BIP、BMP、BSQ、CRF、DAT、Esri Grid、GIF、IMG、JPEG、JPEG 2000、MRF、PNG、TIFF 格式或任意地理数据库栅格数据集。
以地理数据库形式存储栅格数据集时,不应向栅格数据集的名称添加文件扩展名。以文件格式存储栅格数据集时,需要指定文件扩展名,具体如下:
- Esri BIL 为 .bil
- Esri BIP 为 .bip
- BMP 为 .bmp
- Esri BSQ 为 .bsq
- ENVI DAT 为 .dat
- GIF 为 .gif
- ERDAS IMAGINE 为 .img
- JPEG 为 .jpg
- JPEG 2000 为 .jp2
- PNG 为 .png
- TIFF 为 .tif
- MRF 为 .mrf
- CRF 为 .crf
- Esri Grid 无扩展名
此工具可用于将像素类型从一个位深度缩放到另一个位深度。在缩放像素深度时,栅格会显示相同的位深度,而值却缩放到指定的新的位深度。
此工具的输出始终是栅格数据集。该工具将接受镶嵌数据集作为输入,但输出将为栅格数据集 - 镶嵌数据集的内容将被镶嵌以创建栅格数据集。
如果已选中选项中的使用坐标定位文件定义栅格坐标,将写出一个坐标定位文件。如果存在相应的坐标定位文件,则会覆盖该文件。也可能在输出空间参考中偏移半个像素。
对于基于文件的栅格,要忽略背景值,必须将其设置为与 NoData 相同的值。文件地理数据库栅格和企业级地理数据库栅格无需经过此额外步骤即可忽略背景值。
将栅格数据集存储到 JPEG 文件、JPEG 2000 文件或地理数据库时,可在环境中指定压缩类型和压缩质量。
GIF 格式仅支持单波段栅格数据集。
像素类型参数将决定输出栅格数据集的位深度。当选择不同像素类型时,会重设栅格值的比例。如果像素类型的范围被降级(降低),则在此像素深度的有效范围外的栅格值将被截断并丢失。要了解有关受支持的导出格式的位深度容量的信息,请参阅受支持的传感器列表。
构建多维转置参数可用于数据访问优化。默认情况下,CRF 文件会将每个多维切割片存储在单独的文件夹中,并将每个切割片拆分为多个切片。执行转置时,数据将沿维度进行分段,而不是通过切割片或切片进行分段,从而使分析(例如时态分析)变得更迅速、更简便。
如果指定栅格数据集边界外部的范围,则将使用 NoData 值填充不包含数据的区域。
语法
arcpy.management.CopyRaster(in_raster, out_rasterdataset, {config_keyword}, {background_value}, {nodata_value}, {onebit_to_eightbit}, {colormap_to_RGB}, {pixel_type}, {scale_pixel_value}, {RGB_to_Colormap}, {format}, {transform}, {process_as_multidimensional}, {build_multidimensional_transpose})
参数 | 说明 | 数据类型 |
in_raster | 要复制的栅格数据集或镶嵌数据集。 | Raster Dataset; Mosaic Dataset; Mosaic Layer; Raster Layer; File; Image Service |
out_rasterdataset | 要创建的栅格数据集的名称和格式。
将栅格数据集存储到地理数据库时,请勿向栅格数据集的名称添加文件扩展名。 将栅格数据集存储到 JPEG 文件、JPEG 2000 文件、TIFF 文件或地理数据库时,可以指定压缩类型和压缩质量。 | Raster Dataset |
config_keyword (可选) | 指定地理数据库的存储参数(配置)。配置关键字由数据库管理员进行设置。 | String |
background_value (可选) | 移除在栅格数据周围创建的不需要的值。指定的值与栅格数据集中的其他有用数据不同。例如,栅格边界上为零的值不同于栅格数据集内的零值。 指定的像素值在输出栅格数据集中将被设置为 NoData。 对于基于文件的栅格,要忽略背景值,必须将其设置为与 NoData 相同的值。企业级和地理数据库栅格无需经过此额外步骤即可忽略背景值。 | Double |
nodata_value (可选) | 具有指定值的所有像素将在输出栅格数据集中被设置为 NoData。 | String |
onebit_to_eightbit (可选) | 选择是否将输入 1 位栅格数据集转换为 8 位栅格数据集。使用这种转换方法时,输入栅格数据集中的值 1 将在输出栅格数据集中更改为 255。这在将 1 位栅格数据集导入地理数据库时十分有用。1 位栅格数据集存储在文件系统中时包含 8 位金字塔图层,但在地理数据库中,1 位栅格数据集只能包含 1 位金字塔图层,这使得显示画面看起来没有吸引力。通过在地理数据库中将数据转换为 8 位,可将金字塔图层构建为 8 位而非 1 位,从而在显示画面中生成适合的栅格数据集。
| Boolean |
colormap_to_RGB (可选) | 如果输入栅格数据集具有色彩映射表,则可将输出栅格数据集转换为三波段输出栅格数据集。这在镶嵌包含不同色彩映射表的栅格时很有用。
| Boolean |
pixel_type (可选) | 指定要用于栅格数据集或镶嵌数据集的位深度或辐射分辨率。如果未定义,则将从第一个栅格数据集获取此值。
| String |
scale_pixel_value (可选) | 指定是否将缩放像素值。当输出的像素类型不同于输入像素类型时(如从 16 位到 8 位),可将值缩放到符合新的范围;否则,会丢弃不符合新的像素范围的值。 如果进行放大(如从 8 位到 16 位),8 位值的最小值和最大值会放大到 16 位范围中的最小值和最大值。如果进行缩小(如从 16 位到 8 位),16 位值的最小值和最大值会缩小到 8 位范围中的最小值和最大值。
| Boolean |
RGB_to_Colormap (可选) | 指定是否将 8 位 3 波段 (RGB) 栅格数据集转换为带色彩映射表的单波段栅格数据集。此操作会抑制经常出现在扫描图像中的噪声,这非常适用于屏幕捕获、扫描的地图或扫描的文档。但并不建议将其用于卫星、航空影像或专题栅格数据。
| Boolean |
format (可选) | 指定输出栅格格式。
| String |
transform (可选) | 指定是否将与输入栅格关联的变换应用于输出。输入栅格可以具有与其相关联的变换,该变换未保存在输入中,例如作为坐标定位文件或者作为几何函数。
| Boolean |
process_as_multidimensional (可选) | 指定是否将输入镶嵌数据集处理为多维栅格数据集。
| Boolean |
build_multidimensional_transpose (可选) | 指定是否为输入多维栅格数据集构建转置,这将沿每个维度对数据进行分段,以优化访问所有切割片的像素值时的性能。
| Boolean |
代码示例
这是 CopyRaster 工具的 Python 示例。
##====================================
##Copy Raster
##Usage: CopyRaster_management(
## in_raster, out_rasterdataset, {config_keyword}, {background_value},
## {nodata_value}, {NONE | OneBitTo8Bit}, {NONE | ColormapToRGB},
## {1_BIT | 2_BIT | 4_BIT | 8_BIT_UNSIGNED | 8_BIT_SIGNED | 16_BIT_UNSIGNED |
## 16_BIT_SIGNED | 32_BIT_UNSIGNED | 32_BIT_SIGNED | 32_BIT_FLOAT | 64_BIT},
## {NONE | ScalePixelValue}, {NONE | RGBToColormap}, {TIFF | IMAGINE Image |
## BMP | GIF | PNG | JPEG | JPEG2000 | Esri Grid | Esri BIL | Esri BSQ |
## Esri BIP | ENVI | CRF | MRF}, {NONE | Transform}, {CURRENT_SLICE | ALL_SLICES}, {NO_TRANSPOSE | TRANSPOSE})
try:
import arcpy
arcpy.env.workspace = r"C:\PrjWorkspace"
##Copy Multidimensional Raster Dataset to a new multidimensional dataset in Cloud raster format and with transpose for faster data access
arcpy.CopyRaster_management('SeaSurfaceTemp.nc',"https://s3.amazonaws.com/S3Storage/seasurfacetemp","","","","","","","","", format = "CRF",'NONE',process_as_multidimensional = 'ALL_SLICES', build_multidimensional_transpose='TRANSPOSE')
##Copy 1 BIT
arcpy.CopyRaster_management("1bit.tif","SDE94.sde\\bit8","DEFAULTS","","","OneBitTo8Bit","","")
##Copy File RasterDataset to GDB Dataset with Background and Nodata setting
arcpy.CopyRaster_management("background.tif","CpRaster.gdb\\background","DEFAULTS","0","9","","","8_BIT_UNSIGNED")
except:
print "Copy Raster example failed."
print arcpy.GetMessages()
这是 CopyRaster 工具的 Python 脚本示例。
##====================================
##Usage: CopyRaster_management(
## in_raster, out_rasterdataset, {config_keyword}, {background_value},
## {nodata_value}, {NONE | OneBitTo8Bit}, {NONE | ColormapToRGB},
## {1_BIT | 2_BIT | 4_BIT | 8_BIT_UNSIGNED | 8_BIT_SIGNED | 16_BIT_UNSIGNED |
## 16_BIT_SIGNED | 32_BIT_UNSIGNED | 32_BIT_SIGNED | 32_BIT_FLOAT | 64_BIT},
## {NONE | ScalePixelValue}, {NONE | RGBToColormap}, {TIFF | IMAGINE Image |
## BMP | GIF | PNG | JPEG | JPEG2000 | Esri Grid | Esri BIL | Esri BSQ |
## Esri BIP | ENVI | CRF | MRF}, {NONE | Transform}, {CURRENT_SLICE | ALL_SLICES}, {NO_TRANSPOSE | TRANSPOSE})
import arcpy
arcpy.env.workspace = r"C:\PrjWorkspace"
##Copy to new multidimensional dataset in cloud raster format and with transpose for faster data access
arcpy.CopyRaster_management(
"SeaSurfaceTemp.nc", "SST_Transpose.crf","","",-3.402823e+38,"NONE","NONE","","NONE","NONE", "CRF", "NONE", "ALL_SLICES", "TRANSPOSE")
环境
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是