3D Analyst Tools(3D Analyst 工具)

3D Analyst 工具

工具里有又细分如下分类:

注:以下代码的参数需要另行配置,不能直接执行;Python2不支持中文变量!

1、3D 要素

# Process: 3D 内部
arcpy.Inside3D_3d("", "", 输出表, "SIMPLE")

# Process: 3D 差异
arcpy.Difference3D_3d("", "", 输出要素类, 输出表__2_)

# Process: 3D 相交
arcpy.Intersect3D_3d("", 输出要素类__2_, "", "SOLID")

# Process: 3D 线与多面体相交
arcpy.Intersect3DLineWithMultiPatch_3d("", "", "IDS_ONLY", 输出点, 输出线)

# Process: 3D 缓冲
arcpy.Buffer3D_3d("", 输出要素类__3_, "", "STRAIGHT", "20", "")

# Process: 3D 联合
arcpy.Union3D_3d("", 输出要素类__4_, "", "ENABLE", "ENABLE", 输出表__3_)

# Process: 3D 邻近
arcpy.Near3D_3d("", "", "", "NO_LOCATION", "NO_ANGLE", "NO_DELTA")

# Process: 依据属性实现要素转 3D
arcpy.FeatureTo3DByAttribute_3d("", 输出要素类__6_, "", "")

# Process: 封闭多面体
arcpy.EncloseMultiPatch_3d("", 输出多面体要素类, "0.15")

# Process: 是否为闭合 3D
arcpy.IsClosed3D_3d("")

# Process: 更新要素 Z
arcpy.UpdateFeatureZ_3d("", "", "LINEAR", "")

# Process: 最小包围体
arcpy.MinimumBoundingVolume_3d("", "", 输出要素类__8_, "CONVEX_HULL", "NONE", "", "NO_MBV_FIELDS")

# Process: 添加 Z 信息
arcpy.AddZInformation_3d("", "", "NO_FILTER")

# Process: 规则化建筑物覆盖区
arcpy.RegularizeBuildingFootprint_3d("", 输出要素类__10_, "RIGHT_ANGLES", "", "", "0.25", "1.5", "0.1", "1000000")

2、CityEngine

# Process: 基于 CityEngine 规则转换要素
arcpy.FeaturesFromCityEngineRules_3d("", "", 输出要素)

# Process: 导出为 3D Web 场景
arcpy.ExportTo3DWebScene_3d("", Web_场景)

3、功能性表面

# Process: 3D 线与表面相交
arcpy.Intersect3DLineWithSurface_3d("", "", 输出线, 输出点)

# Process: 插值 Shape
arcpy.InterpolateShape_3d("", "", 输出要素类, "", "1", "LINEAR", "DENSIFY", "0", "EXCLUDE")

# Process: 添加表面信息
arcpy.AddSurfaceInformation_3d("", "", "", "LINEAR", "", "1", "0", "NO_FILTER")

# Process: 表面体积
arcpy.SurfaceVolume_3d("", 输出文本文件, "ABOVE", "", "1", "0")

# Process: 重叠剖面
arcpy.StackProfile_3d("", "", 输出表, 输出图表名称)

4、可见性

# Process: 可见性
arcpy.Visibility_3d("", "", 输出栅格, 输出地平面以上的栅格, "FREQUENCY", "ZERO", "1", "FLAT_EARTH", "0.13", "", "", "", "", "", "", "", "", "")

# Process: 天际线
arcpy.Skyline_3d("", 输出要素类, "", "1000 Meters", "0 Meters", "", "FULL_DETAIL", "0", "360", "1", "0 Meters", "NO_SEGMENT_SKYLINE", "100", "VERTICAL_ANGLE", "SKYLINE_MAXIMUM", "NO_CURVATURE", "NO_REFRACTION", "0.13", "0", "NO_CREATE_SILHOUETTES")

# Process: 天际线图
arcpy.SkylineGraph_3d("", "", "0", "NO_ADDITIONAL_FIELDS", 输出角度表, 输出图表名称)

# Process: 天际线障碍
arcpy.SkylineBarrier_3d("", "", 输出要素类__2_, "0 Meters", "0 Meters", "NO_CLOSED", "0 Meters", "NO_PROJECT_TO_PLANE")

# Process: 太阳阴影体
arcpy.SunShadowVolume_3d("", "2021/10/7 9:24:07", 输出要素类__3_, "ADJUSTED_FOR_DST", "China_Standard_Time", "", "0", "DAYS")

# Process: 构造视线
arcpy.ConstructSightLines_3d("", "", 输出, "<None>", "<None>", "<None>", "1", "NOT_OUTPUT_THE_DIRECTION")

# Process: 视域
arcpy.Viewshed_3d("", "", 输出栅格__2_, "1", "FLAT_EARTH", "0.13", 输出地平面以上的栅格__2_)

# Process: 视域 2
arcpy.Viewshed2_3d("", "", 输出栅格__3_, 输出地平面以上的栅格__3_, "FREQUENCY", "0 Meters", 输出观察点_区域关系表, "0.13", "0 Meters", "", "1 Meters", "", "GROUND", "", "GROUND", "0", "360", "90", "-90", "ALL_SIGHTLINES")

# Process: 视点分析
arcpy.ObserverPoints_3d("", "", 输出栅格__4_, "1", "FLAT_EARTH", "0.13", 输出地平面以上的栅格__4_)

# Process: 通视分析
arcpy.LineOfSight_3d("", "", 输出要素类__4_, 输出障碍点要素类, "NO_CURVATURE", "NO_REFRACTION", "0.13", "0", "")

# Process: 通视性
arcpy.Intervisibility_3d("", "", "VISIBLE")

5、数据管理

数据管理—LAS数据集

# Process: LAS 高度度量
arcpy.LasHeightMetrics_3d("", "", "height_", "", "", "2 Meters", "4", "20 Meters")

# Process: 使用要素设置 LAS 类代码
arcpy.SetLasClassCodesUsingFeatures_3d("", "", "NO_COMPUTE_STATS")

# Process: 分类 LAS 噪点
arcpy.ClassifyLasNoise_3d("", "ISOLATION", "CLASSIFY", "NO_WITHHELD", "NO_COMPUTE_STATS", "", "", "", "", "", "", "DEFAULT", "PROCESS_EXTENT", 输出要素类)

# Process: 分类 LAS 地面点
arcpy.ClassifyLasGround_3d("", "STANDARD", "RECLASSIFY_GROUND", "", "COMPUTE_STATS", "DEFAULT", "", "PROCESS_EXTENT")

# Process: 分类 LAS 建筑物
arcpy.ClassifyLasBuilding_3d("", "", "0 Unknown", "COMPUTE_STATS", "DEFAULT", "", "PROCESS_EXTENT", "", "RECLASSIFY_BUILDING", "NOT_PHOTOGRAMMETRIC_DATA", "STANDARD", "NO_CLASSIFY_ABOVE_ROOF", "", "")

# Process: 分类 LAS 重叠
arcpy.ClassifyLasOverlap_3d("", "", "DEFAULT", "PROCESS_EXTENT", "NO_COMPUTE_STATS")

# Process: 切片 LAS
arcpy.TileLas_3d("", "", "切片", 输出_LAS_数据集__3_, "COMPUTE_STATS", "", "", "NO_COMPRESSION", "REARRANGE_POINTS", "", "XY_COORDS", "250", "", "", "")

# Process: 按区域统计 LAS 点
arcpy.LasPointStatsByArea_3d("", "", "")

# Process: 按邻域查找 LAS 点
arcpy.LocateLasPointsByProximity_3d("", "", "", "COUNT", 输出要素类__2_, "MULTIPOINT", "", "NO_COMPUTE_STATS")

# Process: 按高度分类 LAS
arcpy.ClassifyLasByHeight_3d("", "GROUND", "3 5;4 25;5 50", "NONE", "NO_COMPUTE_STATS", "DEFAULT", "PROCESS_EXTENT", "")

# Process: 提取 LAS
arcpy.ExtractLas_3d("", "", "DEFAULT", "", "PROCESS_EXTENT", "", "MAINTAIN_VLR", "REARRANGE_POINTS", "COMPUTE_STATS", 输出_LAS_数据集__7_, "SAME_AS_INPUT")

# Process: 更改 LAS 类代码
arcpy.ChangeLasClassCodes_3d("", "", "NO_COMPUTE_STATS", "DEFAULT", "", "PROCESS_EXTENT")

# Process: 着色 LAS
arcpy.ColorizeLas_3d("", "", "", "", "_colorized", "1.4", "7", "NO_COMPRESSION", "REARRANGE_POINTS", "NO_COMPUTE_STATS", 输出_LAS_数据集__8_)

# Process: 稀疏化 LAS 点
arcpy.ThinLas_3d("", "", "3D", "", "", "CLOSEST_TO_CENTER", "", "thinned", 输出_LAS_数据集__9_, "", "", "", "", "", "", "NO_COMPRESSION", "MAINTAIN_VLR", "REARRANGE_POINTS", "NO_COMPUTE_STATS")

数据管理—Terrain数据集

# Process: 从 Terrain 中移除要素类
arcpy.RemoveFeatureClassFromTerrain_3d("", "")

# Process: 创建 Terrain
arcpy.CreateTerrain_3d("", "", "", "50000", "", "WINDOWSIZE", "ZMIN", "NONE", "1")

# Process: 删除 Terrain 点
arcpy.DeleteTerrainPoints_3d("", "", "")

# Process: 向 Terrain 添加要素类
arcpy.AddFeatureClassToTerrain_3d("", "")

# Process: 更改 Terrain 分辨率界限
arcpy.ChangeTerrainResolutionBounds_3d("", "", "", "", "OVERVIEW")

# Process: 更改 Terrain 参考比例
arcpy.ChangeTerrainReferenceScale_3d("", "", "")

# Process: 替换 Terrain 点
arcpy.ReplaceTerrainPoints_3d("", "", "", "")

# Process: 构建 Terrain
arcpy.BuildTerrain_3d("", "NO_UPDATE_EXTENT")

# Process: 添加 Terrain 金字塔等级
arcpy.AddTerrainPyramidLevel_3d("", "", "")

# Process: 移除 Terrain 金字塔等级
arcpy.RemoveTerrainPyramidLevel_3d("", "")

# Process: 追加 Terrain 点
arcpy.AppendTerrainPoints_3d("", "", "", "")

数据管理—TIN

# Process: 创建 TIN
arcpy.CreateTin_3d(输出_TIN, "", "", "DELAUNAY")

# Process: 复制 TIN
arcpy.CopyTin_3d("", 输出_TIN__2_, "CURRENT")

# Process: 描绘 TIN 数据区
arcpy.DelineateTinDataArea_3d("", "", "PERIMETER_ONLY")

# Process: 编辑 TIN
arcpy.EditTin_3d("", "", "DELAUNAY")

6、栅格插值

# Process: 克里金法
arcpy.Kriging_3d("", "", 输出表面栅格, "None #", "", "VARIABLE 12", 输出预测栅格数据的方差)

# Process: 反距离权重法
arcpy.Idw_3d("", "", 输出栅格, "", "2", "VARIABLE 12", "")

# Process: 含障碍的样条函数
arcpy.SplineWithBarriers_3d("", "", "", "", 输出栅格__2_, "0")

# Process: 地形转栅格
arcpy.TopoToRaster_3d("", 输出表面栅格__2_, "", "DEFAULT", "20", "", "", "ENFORCE", "CONTOUR", "20", "", "1", "0", "2.5", "100", 输出河流折线要素, 输出其余汇点要素, 输出诊断文件, 输出参数文件, "", 输出残差点要素, 输出河流和悬崖错误点要素, 输出等值线错误点要素)

# Process: 样条函数法
arcpy.Spline_3d("", "", 输出栅格__3_, "", "REGULARIZED", "0.1", "12")

# Process: 自然邻域法
arcpy.NaturalNeighbor_3d("", "", 输出栅格__4_, "")

# Process: 趋势面法
arcpy.Trend_3d("", "", 输出栅格__5_, "", "1", "LINEAR", 输出_RMS_文件)

# Process: 通过文件实现地形转栅格
arcpy.TopoToRasterByFile_3d("", 输出表面栅格__3_, 输出河流折线要素__2_, 输出其余汇点要素__2_, 输出残差点要素__2_, 输出河流和悬崖错误点要素__2_, 输出等值线错误点要素__2_)

7、栅格表面

# Process: 含障碍的等值线
arcpy.ContourWithBarriers_3d("", 输出等值线要素, "", "POLYLINES", "", "NO_EXPLICIT_VALUES_ONLY", "0", "", "0", "", "1")

# Process: 坡向
arcpy.Aspect_3d("", 输出栅格, "PLANAR", "METER")

# Process: 坡度
arcpy.Slope_3d("", 输出栅格__2_, "DEGREE", "1", "PLANAR", "METER")

# Process: 填挖方
arcpy.CutFill_3d("", "", 输出栅格__3_, "1")

# Process: 山体阴影
arcpy.HillShade_3d("", 输出栅格__4_, "315", "45", "NO_SHADOWS", "1")

# Process: 曲率
arcpy.Curvature_3d("", 输出曲率栅格, "1", 输出剖面曲线栅格, 输出平面曲线栅格)

# Process: 等值线
arcpy.Contour_3d("", 输出要素类, "", "0", "1", "CONTOUR", "")

# Process: 等值线列表
arcpy.ContourList_3d("", 输出折线要素, "")

8、栅格计算

# Process: 乘
arcpy.Times_3d("", "", 输出栅格)

# Process: 减
arcpy.Minus_3d("", "", 输出栅格__2_)

# Process: 加
arcpy.Plus_3d("", "", 输出栅格__3_)

# Process: 转为整型
arcpy.Int_3d("", 输出栅格__4_)

# Process: 转为浮点型
arcpy.Float_3d("", 输出栅格__5_)

# Process: 除
arcpy.Divide_3d("", "", 输出栅格__6_)

9、栅格重分类

# Process: 使用 ASCII 文件重分类
arcpy.ReclassByASCIIFile_3d("", "", 输出栅格, "DATA")

# Process: 使用表重分类
arcpy.ReclassByTable_3d("", "", "", "", "", 输出栅格__2_, "DATA")

# Process: 分割
arcpy.Slice_3d("", 输出栅格__3_, "", "EQUAL_INTERVAL", "1")

# Process: 查找表
arcpy.Lookup_3d("", "", 输出栅格__4_)

# Process: 重分类
arcpy.Reclassify_3d("", "", "", 输出栅格__5_, "DATA")

10、表面三角化

# Process: 在两个 TIN 间拉伸
arcpy.ExtrudeBetween_3d("", "", "", 输出要素类)

# Process: 定位异常值
arcpy.LocateOutliers_3d("", 输出要素类__2_, "NO_APPLY_HARD_LIMIT", "0", "0", "APPLY_COMPARISON_FILTER", "0", "150", "0.5", "2500")

# Process: 抽稀 TIN 结点
arcpy.DecimateTinNodes_3d("", 输出_TIN, "", "NO_BREAKLINES")

# Process: 表面坡向
arcpy.SurfaceAspect_3d("", 输出要素类__3_, "", "AspectCode", "0")

# Process: 表面坡度
arcpy.SurfaceSlope_3d("", 输出要素类__4_, "PERCENT", "", "SlopeCode", "1", "0")

# Process: 表面差异
arcpy.SurfaceDifference_3d("", "", 输出要素类__5_, "0", "0", 输出栅格, "10", "", "", "CLOSEST_TO_MEAN", "CLOSEST_TO_MEAN", "DEFAULT", "")

# Process: 表面等值线
arcpy.SurfaceContour_3d("", 输出要素类__6_, "", "0", "Contour", "0", "", "Index_Cont", "1", "0")

# Process: 面体积
arcpy.PolygonVolume_3d("", "", "", "BELOW", "Volume", "SArea", "0")

# Process: 面插值为多面体
arcpy.InterpolatePolyToPatch_3d("", "", 输出要素类__8_, "1024", "1", "Area", "SArea", "0")

11、转换

从LAS数据集转出

# Process: LAS 数据集转 TIN
arcpy.LasDatasetToTin_3d("", 输出_TIN, "NONE", "", "", "5000000", "1", "CLIP")

由Terrain转出

# Process: Terrain 转 TIN
arcpy.TerrainToTin_3d("", 输出_TIN, "0", "5000000", "CLIP")

# Process: Terrain 转栅格
arcpy.TerrainToRaster_3d("", 输出栅格, "FLOAT", "LINEAR", "OBSERVATIONS 250", "0")

# Process: Terrain 转点
arcpy.TerrainToPoints_3d("", 输出要素类, "0", "<NONE>", "MULTIPOINT")

由TIN转出

# Process: TIN 三角形
arcpy.TinTriangle_3d("", 输出要素类, "PERCENT", "1", "", "")

# Process: TIN 线
arcpy.TinLine_3d("", 输出要素类__2_, "Code")

# Process: TIN 结点
arcpy.TinNode_3d("", 输出要素类__3_, "", "Tag_Value")

# Process: TIN 范围
arcpy.TinDomain_3d("", 输出要素类__4_, "LINE")

# Process: TIN 转栅格
arcpy.TinRaster_3d("", 输出栅格, "FLOAT", "LINEAR", "OBSERVATIONS 250", "1")

# Process: TIN 边
arcpy.TinEdge_3d("", 输出要素类__5_, "DATA")

# Process: TIN 面标签
arcpy.TinPolygonTag_3d("", 输出要素类__6_, "Tag_Value")

由栅格转出

# Process: 栅格范围
arcpy.RasterDomain_3d("", 输出要素类, "LINE")

# Process: 栅格转 TIN
arcpy.RasterTin_3d("", 输出_TIN, "", "1500000", "1")

# Process: 栅格转多点
arcpy.RasterToMultipoint_3d("", 输出要素类__2_, 输出_VIP_表, "NO_THIN", "MIN", "1")

由要素类转出

# Process: 多面体覆盖区
arcpy.MultiPatchFootprint_3d("", 输出要素类, "")

# Process: 要素类 Z 转 ASCII
arcpy.FeatureClassZToASCII_3d("", "", "pf.txt", "GENERATE", "SPACE", "AUTOMATIC", "3", "DECIMAL_POINT")

# Process: 3D 图层转要素类
arcpy.Layer3DToFeatureClass_3d("", 输出要素类__2_, "")
posted @   槑孒  阅读(732)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
点击右上角即可分享
微信分享提示