当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python ArcGIS copy_raster用法及代码示例


本文简要介绍 python 语言中 arcgis.raster.analytics.copy_raster 的用法。

用法:

arcgis.raster.analytics.copy_raster(input_raster, output_cellsize=None, resampling_method='NEAREST', clip_setting=None, output_name=None, process_as_multidimensional=None, build_transpose=None, context=None, raster_type_name=None, raster_type_params=None, source_mosaic_dataset=None, *, gis=None, future=False, **kwargs)

返回:

ra_copy_raster.png

复制栅格任务采用单个栅格输入并使用并行处理生成输出图像。可以根据设置对输入栅格进行裁剪、重新采样和重新投影。

该函数还可以通过将数据上传到服务器,从本地栅格数据集在 ArcGIS Enterprise 和 ArcGIS Online 中创建托管影像图层。将多个图像镶嵌到单个数据集中以创建一个图层。

为了使此函数在 ArcGIS Online 中运行,需要预先安装适用于 Python 的 Azure 库包(适用于 Python 的 Azure SDK - azure-storage-blob:12.1<= 版本 <=12.9)。参考https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-python#install-the-package

Parameter

Description

input_raster

所需的栅格图层或字符串或列表。要复制到的输入栅格图层。还可以指定本地栅格数据集的路径,以便在企业和 AGOL 上创建托管影像图层。

output_cellsize

必需的字典。输出图像层的像元大小和单位。可用单位有英尺、英里、米和公里。

例子:

{“distance”:60,”units”:meters}

resampling_method

可选字符串。将用于为输出栅格分配值的字段。

clip_setting

可选字符串。将用于为输出栅格分配值的字段。

output_name

可选字符串。如果未提供,则该方法将创建图像服务并将其用作输出栅格。

您可以从 GIS 中传入现有的影像服务项目来使用它。

或者,您可以传入应通过此方法创建的输出图像服务的名称,以用作工具的输出。如果该名称的服务已经存在,则会引发 RuntimeError

process_as_multidimensional

可选布尔值,如果设置为 True,则处理为多维,如果输入是多维栅格。

build_transpose

可选布尔值,如果设置为 true,则会转换输出多维栅格。仅当 process_as_multidimensional 设置为 True 时才有效。

context

context 包含影响任务执行的其他设置。

context 参数覆盖通过arcgis.env 参数设置的值

此函数具有以下设置:

  • 输出空间参考 (outSR):输出栅格将投影到输出空间参考中。

    例子:

    {“outSR”: {spatial reference}}

  • 上传属性 (upload_properties):当尝试从本地栅格数据集在 ArcGIS Online 中创建托管影像图层时,upload_properties 键可用于控制特定上传参数。

    可用选项:

    • maxUploadConcurrency:可选整数。用于大型上传的最大并行连接数(当单个文件/blob 大小超过 64MB 时)。这是max_concurrency的参数BlobClient.upload_blob()方法。 (默认为 6)

    • maxWorkerThreads:可选整数。上传多个文件时异步执行的最大线程数。这是max_workers的参数ThreadPoolExecutor()类。 (默认为无)

    • displayProgress:可选布尔值。如果设置为 True,将显示一个进度条,用于跟踪上传到用户光栅存储的进度。 (默认为False)

    例子:

    {“upload_properties”: {“maxUploadConcurrency”:8,
    “maxWorkerThreads”:20,
    “displayProgress”:True}
    }

context 参数还可用于指定是否构建足迹、表示 NoData 的像素值、重采样方法等。

例子:

{“buildFootprints”:True,
“footprintsArguments”:{“method”:”RADIOMETRY”,”minValue”:1,”maxValue”:5,
“shrinkDistance”:50,”skipOverviews”:True,”updateBoundary”:True,
“maintainEdge”:False,”simplification”:None,”numVertices”:20,
“minThinnessRatio”:0.05,”maxSliverSize”:20,”requestSize”:2000,
“minRegionSize”:100},
“defineNodata”:True,
“noDataArguments”:{“noDataValues”:[500],”numberOfBand”:99,”compositeValue”:True},
“buildOverview”:True}

raster_type_name

可选字符串。用于向镶嵌数据集添加数据的栅格类型的名称。

选择清单:

[
“Aerial”, “ASTER”, “DMCII”, “DubaiSat-2”, “GeoEye-1”, “GF-1 PMS”, “GF-1 WFV”,
“GF-2 PMS”, “GRIB”, “HDF”, “IKONOS”, “Jilin-1”, “KOMPSAT-2”, “KOMPSAT-3”,
“Landsat 1-5 MSS”, “Landsat 4-5 TM”, “Landsat 7 ETM+”, “Landsat 8”, “Landsat 9”
“NetCDF”, “PlanetScope”, “Pleiades-1”, “Pleiades NEO”, “QuickBird”, “RapidEye”,
“Raster Dataset”, “ScannedAerial”, “Sentinel-2”, “SkySat”, “SPOT 5”, “SPOT 6”,
“SPOT 7”, “Superview-1”, “Tiled Imagery Layer”, “UAV/UAS”, “WordView-1”,
“WordView-2”, “WordView-3”, “WordView-4”, “ZY3-SASMAC”, “ZY3-CRESDA”
]

如果使用 source_mosaic_dataset 参数将现有镶嵌数据集发布为影像图层,则 raster_type_name 参数可以设置为“无”,因为这不是必需的。

例子:

“QuickBird”

raster_type_params

可选字典。其他 raster_type 特定参数。

将栅格添加到图像集合的过程可以通过指定其他栅格类型参数来控制。

栅格类型参数参数是一个字典。

字典可以包含productType、processingTemplate、pansharpenType、Filter、pansharpenWeights、ConstantZ、dem、zoffset、CorreateGeoid、ZFactor、StretchType、ScaleFactor、ValidRange

请查看下表(支持的栅格类型),了解有关每种栅格类型的产品类型、处理模板、全色锐化权重的更多详细信息。

  • pansharpenType 的可能值 - [“Mean”、“IHS”、“Brovey”、“Esri”、“Mean”、“Gram-Schmidt”]

  • 过滤器的可能值 - [无、“Sharpen”、“SharpenMore”]

  • StretchType 字典的值可以如下:

    • “None”

    • “最小最大; <分钟>; <最大>”

    • “百分比最小最大; <最小百分比>; <最大百分比>”

    • “标准差; <标准偏差数>”

    示例:{“StretchType”:“MinMax; <分钟>; <最大>”}

  • ValidRange 字典的值可以如下:

    • “<掩码最小值>,<掩码最大值>”

    示例:{“ValidRange”: “10, 200”}

例子:

{“productType”:”All”,”processingTemplate”:”Pansharpen”, “pansharpenType”:”Gram-Schmidt”,”filter”:”SharpenMore”, “pansharpenWeights”:”0.85 0.7 0.35 1”,”constantZ”:-9999}

source_mosaic_dataset

可选字符串。要发布为影像图层的现有镶嵌数据集的路径。

要发布现有镶嵌数据集,请在 input_raster 参数中指定镶嵌输入数据的路径。数据将上传至ArcGIS Online。

raster_type_name 参数可以设置为“无”,因为不需要从镶嵌数据集发布影像图层。

注意:

该选项仅适用于 ArcGIS 在线

例子:

“./data/temp_uploaded.gdb/test”

gis

可选的 GIS 对象。如果未指定,则使用当前活动的连接。

future

仅关键字参数。可选的布尔值。如果为 True,则结果将是一个 GPJob 对象,并且结果将异步返回。

folder

仅关键字参数。可选的 str 或 dict。使用给定的文件夹名称在门户中创建一个文件夹(如果不存在),并将输出保留在此文件夹中。 create_folder() 返回的字典也可以作为输入传入。

例子:

{‘username’: ‘user1’,
‘id’: ‘6a3b77c187514ef7873ba73338cf1af8’,
‘title’: ‘trial’}

tiles_only

仅关键字参数。可选的布尔值。在 AGOL 上,此函数的默认输出影像服务是平铺影像图层。

要在 ArcGIS Online 上创建动态影像图层作为输出,请将 tiles_only 参数设置为 False。

函数在企业版上不支持tiles_only参数,默认生成动态影像图层。

output_raster:影像图层项目

例子:

# Usage Example 1: This example creates a tiled imagery layer in ArcGIS Online. 
# (To create dynamic imagery layer set the tiles_only keyword argument to False)

copy_raster_op = copy_raster(input_raster=r"C:\data\input_raster.tif",
                             output_name="output_name",
                             raster_type_name="Raster Dataset",
                             gis=gis,
                             tiles_only=True)

# Usage Example 2: This example creates a tiled imagery layer in AGOL from the datasets detected in the input folder. 
# (To create dynamic imagery layer set the tiles_only keyword argument to False)

copy_raster_op = copy_raster(input_raster=r"C:\data",
                             output_name="output_name",
                             raster_type_name="Raster Dataset",
                             gis=gis,
                             tiles_only=True)

# Usage Example 3: This example creates an imagery layer using Landsat 1-5 MSS Raster Type with a Level 1 product and a Multispectral template.

copy_raster_op_landsat15 = copy_raster(input_raster=r"C:\data\Landsat15MSS",
                                       output_name="landsat15_op",
                                       raster_type_name="Landsat 1-5 MSS",
                                       raster_type_params={"productType": "Level1", "processingTemplate": "Multispectral"},
                                       gis=gis)

# Usage Example 4: This example creates an imagery layer using Sentinel-2 Raster Type with a Level 1 product and a Multispectral template.

copy_raster_op_sentinel2 = copy_raster(input_raster=r"C:\data\Sentinel2",
                                       output_name="sentinel2_op",
                                       raster_type_name="Sentinel-2",
                                       raster_type_params={"productType": "Level1", "processingTemplate": "Multispectral-10m"},
                                       gis=gis)

# Usage Example 5: This example creates an imagery layer using Pleiades-1 Raster Type with an Ortho product and a Pansharpen template.

copy_raster_op_pleiades1 = copy_raster(input_raster=r"C:\data\Pleiades1",
                                       output_name="pleiades1_op",
                                       raster_type_name="Pleiades-1",
                                       raster_type_params={"productType":"ORTHO","processingTemplate":"Pansharpen"},
                                       gis=gis)

# Usage Example 6: This example creates an imagery layer using SPOT 6 Raster Type with an Ortho Reflectance product and a Pansharpen Reflectance template.

copy_raster_op_spot6 = copy_raster(input_raster=r"C:\data\SPOT6",
                                  output_name="spot6_op",
                                  raster_type_name="SPOT 6",
                                  raster_type_params={"productType": "ORTHO REFLECTANCE", "processingTemplate": "Pansharpen Reflectance"},
                                  gis=gis)

# Usage Example 7: This example creates an imagery layer using WorldView-2 Raster Type with a Pansharpen and Multispectral template.

copy_raster_op_worldview2 = copy_raster(input_raster=r"C:\data\WorldView",
                                        output_name="worldview2_op",
                                        raster_type_name="WorldView-2",
                                        raster_type_params= {"productType": "Basic", "processingTemplate": "Pansharpen and Multispectral"},
                                        gis=gis)    

# Usage Example 8: This example creates an imagery layer from Tiled Imagery Layers.

copy_raster_op_til = copy_raster(input_raster=[tile_lyr_input1, tile_lyr_input2],
                                 output_name="til_op",
                                 raster_type_name="Tiled Imagery Layer", 
                                 gis = gis)

# Usage Example 9: This example copies the imagery layer and creates a new imagery layer item in the GIS. 

raster = gis.content.search("raster_lyr")[0].layers[0]
copy_raster_op = copy_raster(input_raster=raster,
                             output_name="output_name",
                             gis=gis)

# Usage Example 10: This example publishes an existing mosaic dataset as a tiled imagery layer in ArcGIS Online.
# (To create dynamic imagery layer set the tiles_only keyword argument to False)

# Specify the actual source data path referenced by the uploaded mosaic dataset using input_raster parameter.
# The data would be uploaded to the ArcGIS Online's user store from this path.

landsat_mosaic = copy_raster(input_raster=[r"C:\data\landsat_data_folder"],
                             output_name="mosaic_datset_op",
                             context={"upload_properties":{"displayProgress":True}},
                             source_mosaic_dataset=r"C:\data\md.gdb\landsat",
                             gis = gis)

相关用法


注:本文由纯净天空筛选整理自arcgis.com大神的英文原创作品 arcgis.raster.analytics.copy_raster。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。