當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。