『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS教程:视点分析

ArcGIS教程:视点分析
识别从各栅格表面位置进行观察时可见的观察点。

摘要

    识别从各栅格表面位置进行观察时可见的观察点。

用法

·      确定观察点是信息密集型处理。处理时间取决于分辨率。对于初级研究,您可能需要使用粗糙像元大小来减少输入中的像元数。已准备好生成最终结果时,将使用全分辨率栅格。

·      如果输入栅格含有因采样错误导致的不希望出现的噪点,则在运行此工具之前,可使用低通滤波器(如焦点统计平均值选项)对栅格进行平滑处理。

·      每个像元中心的可见性可通过比较与像元中心所成的高度角和与本地地平线所成的高度角来确定。计算本地地平线时要考虑观测点和当前像元中心之间的中间地形。如果该点位于本地地平线之上,则视其为可见。

·      该工具提供一个可选的地表以上 (AGL) 输出栅格。AGL 输出栅格上的每一个像元都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度。

如果输入观察点要素包含多个观察点时,输出值是所有单个观察点中 AGL 值的最小值。

语法

    ObserverPoints (in_raster, in_observer_point_features, {z_factor}, {curvature_correction}, {refractivity_coefficient}, {out_agl_raster})

参数

说明

数据类型

in_raster

输入表面栅格。

Raster Layer

in_observer_point_features

用于识别观察点位置的点要素类。

允许的最大点数为 16

Feature Layer

z_factor

(可选)

一个表面 z 单位中地面 x,y 单位的数量。

z 单位与输入表面的 x,y 单位不同时,可使用 z 因子调整 z 单位的测量单位。计算最终输出表面时,将用 z 因子乘以输入表面的 z 值。

如果 x,y 单位和 z 单位采用相同的测量单位,则 z 因子为 1。这是默认值。

如果 x,y 单位和 z 单位采用不同的测量单位,则必须将 z 因子设置为适当的因子,否则会得到错误的结果。例如,如果 z 单位是英尺而 x,y 单位是米,则应使用 z 因子 0.3048 z 单位从英尺转换为米(1 英尺 = 0.3048 米)。

Double

curvature_correction

(可选)

允许对地球的曲率进行校正。

·         FLAT_EARTH — 不应用任何曲率校正。这是默认设置。

·         CURVED_EARTH — 应用曲率校正。

Boolean

refractivity_coefficient

(可选)

空气中可见光的折射系数。

默认值为 0.13

Double

out_agl_raster

(可选)

地表以上 (AGL) 输出栅格。

AGL 结果是一个栅格,其中每个像元值都记录了为保证像元至少对一个观察点可见而需要向该像元添加的最小高度(若不添加此高度,像元不可见)。

在输出栅格中,已可见像元的栅格值为 0

Raster

返回值

名称

说明

数据类型

out_raster

输出栅格。

输出将精确识别从各栅格表面位置进行观察时可见的观察点。

Raster

代码实例

    ObserverPoints 示例 1Python 窗口)

    在此示例中,将精确识别从各栅格表面位置进行观察时可见的观察点。

import arcpy

from arcpy import env

from arcpy.sa import *

env.workspace = "C:/sapyexamples/data"

outObsPoints = ObserverPoints("elevation","observers.shp", 1, "CURVED_EARTH", 0.13)

outObsPoints.save("C:/sapyexamples/output/outobspnt01")

    ObserverPoints 示例 2(独立脚本)

    在此示例中,将精确识别从各栅格表面位置进行观察时可见的观察点。

# Name: ObserverPoints_Ex_02.py

# Description: Identifies exactly which observer points are visible

#              from each raster surface location.

# Requirements: Spatial Analyst Extension

# Import system modules

import arcpy

from arcpy import env

from arcpy.sa import *

# Set environment settings

env.workspace = "C:/sapyexamples/data"

# Set local variables

inRaster = "elevation"

inObsPoints = "observers.shp"

zFactor = 1

useEarthCurv = "CURVED_EARTH"

refractionVal = 0.13

# Check out the ArcGIS Spatial Analyst extension license

arcpy.CheckOutExtension("Spatial")

# Execute ObserverPoints

outObsPoints = ObserverPoints(inRaster, inObsPoints, zFactor,

                              useEarthCurv, refractionVal)

# Save the output

outObsPoints.save("C:/sapyexamples/output/outobspnt02")

      京ICP备2025132830号-1 京公网安备 号