自然邻域法 (空间分析)
用法
-
如果输出栅格最外围像元的像元中心落在凸包(由输入点定义)之外,那么这些像元将被赋予 NoData 值。如果输入点落在其中一个最外围像元之内,而该像元的中心落在凸包之外,那么该像元仍将被赋予 NoData 值。
-
某些输入数据集可能包含多个具有相同 x,y 坐标的点。如果共有位置处点的值相同,则将其视为重复项,但并不影响输出。如果值不同,则将这些点视为重合点。
各种插值工具可在不同条件下以不同方式处理此数据。例如,在某些情况下,使用遇到的第一个重合点进行计算;而在其他情况下,则使用遇到的最后一个点进行计算。这可能导致输出栅格中某些位置的值与预期值不同。解决办法就是在准备数据时移除这些重合点。“空间统计”工具箱中的收集事件工具用于识别数据中所有的重合点。
-
此工具最多可处理约 1,500 万个输入点。如果输入要素类包含非常多的点(大约 1,500 万或更多的点),此工具可能无法生成结果。
可通过以下方法避免此限制:将研究区域分为多个部分进行处理并将结果镶嵌到一个较大的栅格数据集中。请确保各部分之间有一些重叠。此外,您可以使用 Terrain 数据集来存储和显示点和由数十亿个测量点组成的表面。
建议使用投影坐标系表示输入数据,而不使用地理坐标系。
-
如果 ArcGIS 3D Analyst 可用,那么使用 TIN 数据集也是一个可行的方法。首先,基于源数据创建 TIN。然后,使用 TIN 转栅格工具将生成的 TIN 转换为栅格,并使用“自然邻域法”选项。如果存在隔断线或形状不规则的数据区域,此方法尤为有用。
语法
参数 | 说明 | 数据类型 |
in_point_features |
包含要插值到表面栅格中的 z 值的输入点要素。 | Feature Layer |
z_field |
存放每个点的高度值或量级值的字段。 如果输入点要素包含 z 值,则该字段可以是数值型字段或者 Shape 字段。 | Field |
cell_size (可选) |
要创建的输出栅格的像元大小。 如果明确设置该值,则它将是环境中的值,否则,它是输入空间参考中输入点要素范围的宽度或高度除以 250 之后得到的较小值。 | Analysis Cell Size |
返回值
名称 | 说明 | 数据类型 |
out_raster |
输出插值后的表面栅格。 | Raster |
代码示例
该示例输入一个点 shapefile,然后通过对表面插值,输出得到 TIFF 栅格。
import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outNaturalNeighbor = NaturalNeighbor("ozone_pts.shp", "ozone", 2000) outNaturalNeighbor.save("C:/sapyexamples/output/nnout.tif")
该示例输入一个点 shapefile,然后通过对表面插值,输出得到 Grid 栅格。
# Name: NaturalNeighbor_Ex_02.py # Description: Interpolate a series of point features onto a # rectangular raster using Natural Neighbor interpolation. # 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 inPointFeatures = "ca_ozone_pts.shp" zField = "ozone" cellSize = 40000 # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute NaturalNeighbor outNatNbr = NaturalNeighbor(inPointFeatures, zField, cellSize) # Save the output outNatNbr.save("C:/sapyexamples/output/nnout02")