点文件信息 (3D Analyst)
摘要
生成一个新的包含一个或多个点文件统计信息的输出要素类。
插图
用法
-
输入文件格式必须是 LAS、XYZ、XYZI 或 GENERATE 中的一种。
-
如果输入的是一个包含点数据文件的文件夹,则必须输入文件的后缀。如果输入的是单个文件,可以不输入文件后缀。
-
如果没有选中汇总选项,要素属性表中显示的统计信息会包括输入的各点文件的点数、平均点间距、最小 z 值和最大 z 值。每个输入文件单独生成一行信息。点间距值是通过假设每个输入文件中的点都平均分布在该输入文件的 XY 范围内估算出来的。
-
在输入文件的 XY 范围内生成一个输出面要素类。另外,通过使用每个输入文件的最小和最大 z 值范围信息可以生成多面体 (Multipatch) 要素。这就提供了一个可以在 ArcScene 或 ArcGlobe 中查看的 3D 边界框表达。
汇总选项在统计输入文件中每个类代码的汇总信息时十分有用,但由于必须扫描和分析每个文件,代价可能较高。
点文件信息所报告的点间距并不精确,它是一个估计值。所给出的点间距是考察多组文件趋势之后的汇总结果。该工具使用粗略的估计值,只是将点数与文件边界框的面积做了比较。如果所检查文件的矩形范围内布满了数据,则精确度最高。对于点主要分布在大型水体上或者研究区域周围的文件,由于只是部分填充了数据,因此,不能生成精确的估计值。
语法
参数 | 说明 | 数据类型 |
input |
一个或多个点数据文件或文件夹。 | File; Folder |
out_feature_class |
输出要素类。 | Feature Class |
in_file_type |
输入文件的格式。输入文件格式必须是 LAS、XYZ、XYZI 或 GENERATE 中的一种。 | String |
file_suffix |
当输入参数中指定的是一个文件夹时所导入的文件的后缀。 | String |
input_coordinate_system (可选) |
输入数据的坐标系。 | Coordinate System |
summarize_by_class_code (可选) |
扫描 LAS 文件并分析类代码值。输出要素类的属性表中会包括每个所涵盖的类代码的统计信息。
| Boolean |
folder_recursion (可选) |
当所选输入文件夹中的子文件夹含有数据时,扫描子文件夹。为文件夹结构中包含的每个文件生成一行输出要素类。
| Boolean |
extrude_geometry (可选) |
基于每个输入文件的最小和最大 z 值,生成 3D 多面体要素类。
| Boolean |
decimal_separator (可选) |
ASCII 文件中使用的分隔符。默认为小数点。用户可通过该参数声明文件中使用的小数符号是点还是逗号。 | String |
代码示例
以下 Python 窗口脚本演示了如何在即时模式下使用点文件信息函数。
import arcpy from arcpy import env arcpy.CheckOutExtension("3D") env.workspace = "C:/data" arcpy.PointFileInformation_3d(env.workspace, "Test.gdb/two_las", "LAS", "las", "Coordinate Systems/Projected Coordinate Systems/UTM/NAD 1983/NAD 1983 UTM Zone 17N.prj", True, True, "DECIMAL_POINT", True)
以下 Python 脚本演示了如何在独立脚本中使用点文件信息函数。
'''**************************************************************************** Name: PointFileInformation Example Description: This script demonstrates how to use the PointFileInformation tool to create an output file that contains all LAS files under a parent folder. ****************************************************************************''' # Import system modules import arcpy from arcpy import env import exceptions, sys, traceback try: # Obtain a license for the ArcGIS 3D Analyst extension arcpy.CheckOutExtension("3D") # Set environment settings env.workspace = "C:/data" lidarList = arcpy.ListFiles("*.las") if lidarList: # Set Local Variables outputFC = "Test.gdb/output_las_info" prj = "Coordinate Systems/Geographic Coordinate Systems/World/WGS 1984.prj" extrudeGeom = True # Indicates whether to create extruded geometry shapes sumClass = True # Indicates whether to summarize output by class code decSep = "DECIMAL_POINT" # Identifies the decimal separator #Execute PointFileInformation arcpy.PointFileInformation_3d(lidarList, outputFC, "LAS", "las", prj, "", extrudeGeom, decSep, sumClass) print "Finished executing Point File Information." else: print "There are no LAS files in {0}.".format(env.workspace) except arcpy.ExecuteError: print arcpy.GetMessages() except: # Get the traceback object tb = sys.exc_info()[2] tbinfo = traceback.format_tb(tb)[0] # Concatenate error information into message string pymsg = 'PYTHON ERRORS:\nTraceback info:\n{0}\nError Info:\n{1}'\ .format(tbinfo, str(sys.exc_info()[1])) msgs = 'ArcPy ERRORS:\n {0}\n'.format(arcpy.GetMessages(2)) # Return python error messages for script tool or Python Window arcpy.AddError(pymsg) arcpy.AddError(msgs)