商业网站初期建设资金预算,设计制作图片,目前做汽配的网站有哪些,襄阳建设网站首页说明#xff1a;
该专栏之前的文章中python脚本使用的是ArcMap10.6自带的arcpy#xff08;好几年前的文章#xff09;#xff0c;从本篇开始使用的是ArcGIS Pro 3.3.2版本自带的arcpy#xff0c;需要注意不同版本对应的arcpy函数是存在差异的
数据准备#xff1a;准备一…说明
该专栏之前的文章中python脚本使用的是ArcMap10.6自带的arcpy好几年前的文章从本篇开始使用的是ArcGIS Pro 3.3.2版本自带的arcpy需要注意不同版本对应的arcpy函数是存在差异的
数据准备准备一个带高度属性的二维面图层shape文件
示例代码说明
①2D要素类Polygon转换为3D要素类PolygonZ
②3D要素类PolygonZ三维表面转3D要素类MultiPatch体三维模型
③3D要素类(MultiPatch)转3D对象场景图层包.slpk数据
# -*- coding: utf-8 -*-
import arcpy
from arcpy import env
import os
import sys
import shutil
import datetime,timestarttime datetime.datetime.now()
output_dir E:/Dataset/output
# 检查文件夹是否存在
if os.path.exists(output_dir):# 如果文件夹不为空则删除其中的所有文件和子文件夹for filename in os.listdir(output_dir):file_path os.path.join(output_dir, filename)try:if os.path.isfile(file_path) or os.path.islink(file_path):os.unlink(file_path) # 删除文件或符号链接elif os.path.isdir(file_path):shutil.rmtree(file_path) # 删除子文件夹及其内容except Exception as e:print(f无法删除 {file_path}。原因{e})print(f文件夹 {output_dir} 已清空。)
else:print(f文件夹 {output_dir} 不存在无需清空。)
# 设置工作空间
env.workspace output_dir
# 输入 Shapefile 文件路径
in_features E:/Dataset/build/build.shp
# 输出 Shapefile 文件名称
out_featurebuild3d.shp
# 设置高度字段
height_field height
arcpy.ddd.FeatureTo3DByAttribute(in_features, out_feature, height_field)
print(2D要素类转换为3D要素类完成,文件类型为PolygonZ)
# 创建要素图层
layer_name_polygonz temp_layer_polygonz # 临时图层的名称
arcpy.MakeFeatureLayer_management(out_feature, layer_name_polygonz)
print(PolygonZ文件转临时图层文件完成)
# 输出3D要素类路径
output_feature_classbuild3dmultipatce.shp
# 执行 Layer3DToFeatureClass 工具
arcpy.ddd.Layer3DToFeatureClass(layer_name_polygonz,output_feature_class)
print(3D图层转换为3D要素类完成,文件类型为MultiPatch)
out_slpkbuildslpk.slpk
# 创建要素图层
layer_name_multipatch temp_layer_multipatch # 临时图层的名称
arcpy.MakeFeatureLayer_management(output_feature_class, layer_name_multipatch)
print(MultiPatch文件转临时图层文件完成)
arcpy.management.Create3DObjectSceneLayerPackage(in_datasetlayer_name_multipatch,# 输入的3D模型数据out_slpkout_slpk,# 输出的SLPK文件路径out_coor_systemNone,# 使用输入数据的坐标系与ArcGIS Pro默认行为一致# 输出坐标系设置为默认即与输入数据相同transform_method,# 不进行坐标转换与ArcGIS Pro默认行为一致 # 转换方法可选texture_optimizationNone, # 不进行纹理优化与ArcGIS Pro默认行为一致# 纹理优化:ALL | DESKTOP | MOBILE | NONEtarget_cloud_connection# 不使用云连接与ArcGIS Pro默认行为一致# 目标云连接可选
)
print(3D对象场景图层包.slpk数据转换完成)
endtime datetime.datetime.now()
timesendtime-starttime
times_seconds times.seconds
print (用时,times_seconds,s)
输出结果示例 使用脚本完成slpk数据的生成接下来一般是上传slpk数据到门户网站发布为三维服务给出之前的发布结果示例图