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


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。