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

ArcGIS教程:含障碍的等值线

ArcGIS教程:含障碍的等值线
根据栅格表面创建等值线。如果包含障碍要素,则允许在障碍两侧独立生成等值线。

摘要

    根据栅格表面创建等值线。如果包含障碍要素,则允许在障碍两侧独立生成等值线。

用法

·      当前版本的含障碍的等值线仅支持折线 (polyline) 输出。如果使用面输出选项,则会将其忽略并会创建折线 (polyline) 输出。

·      较平滑却欠精确的等值线可通过预处理输入栅格获得,可以使用 MEAN 选项进行 Focal_Statistics 操作,或者通过 LOW 选项使用过滤器工具来执行该预处理过程。

·      等值线将延伸到栅格的 NoData 像元,延伸距离为栅格像元大小的一半。这意味着将在单个 NoData 像元上生成等值线。但是,一个 3 像元 × 3 像元的 NoData 区域仅会让等值线延伸到该区域,且延伸距离为像元大小的一半。

·      输出等值线要素类的类型字段的值为:

·             1 for contours

·             2 for indexed contours

    3 for explicit contours

·      计曲线间距可用于生成附加等值线,且其类型值在输出要素类中的编码为 2

·      例如,在您想要从 10 米处开始每隔 15 米创建等值线时使用起始等值线。此处 10 用于起始等值线,而 15 则为等值线间距。要绘制等值线的值为 10254055,依此类推。

·      指定起始等值线不会阻止等值线以高于或低于该值的值创建。

·      包含等值线值规范的文本文件可包括以下内容:

  • 忽略任何以非数字值开头的行,并将其视为注释行。
  • 将具有单个值的行视为建立等值线的值。
  • 将具有三个值的行视为起始等值线、等值线间距和计曲线。
  • 将具有四个值的行视为起始等值线、终止等值线、等值线间距和计曲线。

例如,如果栅格的最小值为 102,最大值为 500,则具有以下内容的文本文件:

    # contour values and ranges

    122.75

    485 500 5 12

    4 100 99

将在以下值处生成等值线:

    122.75

    104, 204, 304, 404

    103, 202, 301, 400, 499

    485, 490, 495, 500

    497

·      如果障碍面要素中存在栅格的像元值,则在障碍处分割等值线。如果要忽略面要素内的像元值,将此类像元值更改为 NoData

·      如果输入栅格表面很大或请求的输出要素很多,则会在操作系统的临时文件位置中创建很多临时文件。如果因此发生问题,执行以下操作之一:

  • 增加临时文件的可用磁盘空间。
  • 减少指定的等值线数,或对等值线范围进行分组并分别处理每一组,然后将每个范围的结果合并为最终结果。
  • 按部分(切片)处理输入数据,然后将各个结果合并为一个数据集。

·      使用等值线注记工具可标注输出等值线要素。

语法

    ContourWithBarriers (in_raster, out_contour_feature_class, {in_barrier_features}, {in_contour_type}, {in_contour_values_file}, {explicit_only}, {in_base_contour}, {in_contour_interval}, {in_indexed_contour_interval}, {in_contour_list}, {in_z_factor})

参数

说明

数据类型

in_raster

输入表面栅格。

Raster Layer

out_contour_feature_class

输出等值线要素。

Feature Class

in_barrier_features

(可选)

输入障碍要素。

Feature Layer

in_contour_type

(可选)

要创建的等值线的类型。

·         POLYLINES — 用等值线或等值线图表示输入栅格。

·         POLYGONS — 用闭合面表示等值线。

当前版本的含障碍的等值线仅支持折线 (polyline) 输出。如果使用面输出选项,则会将其忽略并会创建折线 (polyline) 输出。

String

in_contour_values_file

(可选)

也可通过文本文件指定起始等值线、等值线间距、计曲线间距和建立等值线的值。

File

explicit_only

(可选)

只使用建立等值线的值。未指定起始等值线、等值线间距和计曲线间距。

·         NO_EXPLICIT_VALUES_ONLY — 必须指定默认的等值线间距。

·         EXPLICIT_VALUES_ONLY — 仅指定建立等值线的值。

Boolean

in_base_contour

(可选)

起始等值线值。

根据需要生成高于和低于该值的等值线可覆盖输入栅格的整个值范围。默认值为零。

Double

in_contour_interval

(可选)

等值线间的间距或距离。

该值可为任意正数。

Double

in_indexed_contour_interval

(可选)

此外,也会在输出要素类中按此间距生成等值线并相应地进行标记。

Double

in_contour_list

[in_explicit_contour,...]

(可选)

要创建等值线的值。

Double

in_z_factor

(可选)

在生成等值线时使用的单位转换因子。默认值为 1

等值线是基于输入栅格中的 z 值生成的,所采用的测量单位通常为米或英尺。如果使用默认值 1,等值线将采用与输入栅格中的 z 值相同的单位。要以不同于 z 值的单位创建等值线,请为 z 因子设置适当的值。注意,对于此工具,没有必要使地面 x,y 单位与表面 z 单位保持一致。

例如,如果输入栅格中的高程值单位为英尺,但您希望以米为单位来生成等值线,则可将 z 因子设置为0.3048(因为 1 英尺 = 0.3048 米)。

Double

代码实例

    含障碍的等值线示例 1Python 窗口)

    此例使用输入障碍要素以及指定的起始等值线和等值线间距参数,根据 Esri Grid 栅格创建了等值线。输出等值线区域为 shapefile 中的折线 (polyline)

import arcpy

from arcpy import env 

from arcpy.sa import *

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

ContourWithBarriers("elevation", "C:/sapyexamples/output/outcontourwithbarriers.shp", "elevation_barrier.shp", "POLYLINES",

                    "", "", 0, 300)

    含障碍的等值线示例 2(独立脚本)

    此例使用输入障碍要素以及指定的起始等值线和等值线间距参数,根据 Esri Grid 栅格创建了等值线。输出等值线区域为 shapefile 中的折线 (polyline)

# Name: ContourWithBarriers_Ex_02.py

# Description: Creates contours from a raster surface.

#           The inclusion of barrier features will allow one to independently generate contours on either side of a barrier.

# 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"

inBarrier = "elevation_barrier.shp"

inTextFile = ""

explicitValues = "NO_EXPLICIT_VALUES_ONLY"

contourInterval = 200

contourList = [600, 935, 1237.4]

baseContour = 0

outContours = "C:/sapyexamples/output/outcontourwithbarriers02.shp"

# Check out the ArcGIS Spatial Analyst extension license

arcpy.CheckOutExtension("Spatial")

# Execute Contour

ContourWithBarriers(inRaster, outContours, inBarrier, "POLYLINES", inTextFile,

                    explicitValues, baseContour, contourInterval, "",

                    contourList, "")

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