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


Python ArcGIS create_viewshed用法及代碼示例

本文簡要介紹 python 語言中 arcgis.raster.analytics.create_viewshed 的用法。

用法:

arcgis.raster.analytics.create_viewshed(input_elevation_surface, input_observer_features, optimize_for=None, maximum_viewing_distance=None, maximum_viewing_distance_field=None, minimum_viewing_distance=None, minimum_viewing_distance_field=None, viewing_distance_is_3d=None, observers_elevation=None, observers_elevation_field=None, observers_height=None, observers_height_field=None, target_height=None, target_height_field=None, above_ground_level_output_name=None, output_name=None, context=None, *, gis=None, future=False, **kwargs)

返回:

ra_create_viewshed.png

函數允許您對分布式服務器部署執行柵格分析。

Parameter

Description

input_elevation_surface

所需的圖像層。用於計算視域的輸入高程表麵。

input_observer_features

必需的要素圖層。輸入觀察者位置要素。

optimize_for

可選字符串。選擇用於計算視域的優化方法。

該參數提供兩種方法:SPEED 和 ACCURACY。

例子:

“ACCURACY”

maximum_viewing_distance

可選字典。這是可見區域計算停止的截止距離。超出這個距離,不知道分析點和其他物體是否能看到對方。

支持單位:米 |公裏 |腳 |碼 |英裏

例子:

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

maximum_viewing_distance_field

可選字符串。提供一個字段,指定每個觀察者的最大觀看距離。您可以使用輸入觀察點要素中的任何數值字段。

字段中包含的值的單位必須與輸入高程表麵的 XY 單位相同。

例子:

“radius2”

minimum_viewing_distance

可選字典。這是開始計算可見區域的距離。

支持單位:米 |公裏 |腳 |碼 |英裏

例子:

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

minimum_viewing_distance_field

可選字符串。提供一個字段,指定每個觀察者的最小觀看距離。

您可以使用輸入觀察點要素中的任何數值字段。字段中包含的值的單位必須與輸入高程表麵的 XY 單位相同。

例子:

“radius1”

viewing_distance_is_3d

可選的布爾值。指定minimum_viewing_distance 和maximum_viewing_distance 輸入參數是以三維方式還是二維方式測量的。

  • 如果為 True,則以 3D 形式測量觀看距離。

  • 如果為 False,則以 2D 測量觀看距離。這是默認設置。

observers_elevation

可選字典。指定觀察點位置的高程。

支持單位:米 |公裏 |腳 |碼 |英裏

例子:

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

observers_elevation_field

可選字符串。提供一個指定觀察者海拔的字段。

您可以使用輸入觀察點要素中的任何數值字段。字段中包含的值的單位必須與輸入高程表麵的 Z 單位相同。

例子:

“spot”

observers_height

可選字典。觀察者位置的地麵高度。

支持單位:米 |公裏 |腳 |碼 |英裏

例子:

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

observers_height_field

可選字符串。提供一個指定觀察者高度的字段。您可以使用輸入觀察點要素中的任何數值字段。

字段中包含的值的單位必須與輸入高程表麵的 Z 單位相同。

例子:

“offseta”

target_height

可選字典。輸入用於建立能見度的結構或地麵人員的高度。

支持單位:米 |公裏 |腳 |碼 |英裏

例子:

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

target_height_field

可選字符串。提供一個指定目標高度的字段。您可以使用輸入觀察點要素中的任何數值字段。

字段中包含的值的單位必須與輸入高程表麵的 Z 單位相同。

例子:

“offsetb”

above_ground_level_output_name

可選的。如果未提供,則通過該方法創建影像服務並將其用作地麵以上輸出柵格。

您可以從 GIS 中傳入現有的影像服務項目來使用它。

或者,您可以傳入應通過此方法創建的地麵輸出圖像服務的名稱,以用作工具的輸出。如果該名稱的服務已經存在,則會引發 RuntimeError

output_name

可選的。如果未提供,則由該方法創建影像服務並將其用作輸出柵格。

您可以從 GIS 中傳入現有的影像服務項目來使用它。

或者,您可以傳入應通過此方法創建的輸出圖像服務的名稱,以用作工具的輸出。如果該名稱的服務已經存在,則會引發 RuntimeError

context

context 包含影響任務執行的其他設置。

context 參數覆蓋通過arcgis.env 參數設置的值

此函數具有以下設置:

  • Extent(範圍):定義分析區域的邊界框。

    例子:

    {“extent”: {“xmin”: -122.68,
    “ymin”: 45.53,
    “xmax”: -122.45,
    “ymax”: 45.6,
    “spatialReference”: {“wkid”: 4326}}}
  • 輸出空間參考 (outSR):輸出柵格將投影到輸出空間參考中。

    例子:

    {“outSR”: {spatial reference}}

  • 捕捉柵格 (snapRaster):輸出柵格的像元將與指定的捕捉柵格對齊。

    例子:

    {‘snapRaster’: {‘url’: ‘<image_service_url>’}}

  • 掩碼(mask):在操作中隻考慮落在分析掩碼內的單元格。

    例子:

    {“mask”: {“url”: “<image_service_url>”}}

  • 像元大小(cellSize):輸出柵格將具有由像元大小指定的分辨率。

    例子:

    {‘cellSize’: 11} or {‘cellSize’: {‘url’: <image_service_url>}} or {‘cellSize’: ‘MaxOfIn’}

  • 重采樣方法(resamplingMethod):輸出柵格將被重采樣到指定的方法。支持的值是:雙線性、最近、三次。

    例子:

    {‘resamplingMethod’: “Nearest”}

gis

可選的 GIS 對象。如果未指定,則使用當前活動的連接。

future

僅關鍵字參數。可選的布爾值。如果為 True,則結果將是一個 GPJob 對象,並且結果將異步返回。

folder

僅關鍵字參數。可選的 str 或 dict。使用給定的文件夾名稱在門戶中創建一個文件夾(如果不存在),並將輸出保留在此文件夾中。 create_folder() 返回的字典也可以作為輸入傳入。

例子:

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

tiles_only

僅關鍵字參數。可選的布爾值。在ArcGIS Online 中,此函數的默認輸出影像服務將是平鋪影像圖層。

要在 ArcGIS Online 上創建動態影像圖層作為輸出,請將 tiles_only 參數設置為 False。

函數將不支持ArcGIS Enterprise 中的tiles_only 參數,默認情況下會生成動態影像圖層。

命名元組的名稱值為:

  • output_raster

  • output_above_ground_level_raster(如果為above_ground_level_output_name指定值,則生成)

例子:

# Usage Example 1: Creates viewshed with cut-off distance

elevation = gis.content.search("elev_lyr")[0].layers[0]
observer =  gis.content.search("obs_shp", item_type="Feature Layer Collection")[0].layers[0]

create_viewshed_op = create_viewshed(input_elevation_surface=elevation,
                                     input_observer_features=observer,
                                     maximum_viewing_distance={"distance":"100","units":"Miles"},
                                     gis=gis)

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 arcgis.raster.analytics.create_viewshed。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。