OSGB转SLPK过程中,更换临时文件夹路径的方法

【问题】:

在ArcGIS Pro中,使用GP工具Create Integrated Mesh Scene Layer Package生成SLPK过程中,会先写临时文件,然后再将临时文件打包到指定的SLPK输出路径。

2.2版本中,SLPK的临时文件的默认路径为:

C:\Users<用户名>\AppData\Local\Temp\scratch

很多时候,C盘的空间很小。当OSGB数据量很大时,SLPK临时文件会占用很多空间。所以希望这个目录可以更换到其他盘符。

【解决方案】:

这个问题在2.3版本中有所改善。

  • 如果新建工程,那么临时文件的默认路径和工程在一个文件夹下。
  • 如果不新建工程,SLPK临时文件的路径依然在C盘Local下。

当使用独立的Python代码执行转换时,可以指定临时文件的目录,这样临时文件就存储在指定文件了。

arcpy.env.scratchWorkspace = r'E:\Temp\scratch'


OSGB转SLPK独立Python代码如下:

__author__ = 'Xurk'

import arcpy
import os,os.path

# OSGB路径
OSGB_par_folder=r'E:\20190321_ModifiedOSGB\TestData\OSGB'#arcpy.GetParameterAsText(0)

# SLPK名字
spkName=r'MeshChangJiang.slpk'#arcpy.GetParameterAsText(1)

# 锚点Shapefile路径
shpfile=r'E:\20190321_ModifiedOSGB\TestData\point3857.shp'

# 生成SLPK过程中临时文件夹路径
arcpy.env.scratchWorkspace = r'E:\Temp\scratch'

# SLPK存放路径
arcpy.env.workspace = r'E:\20190321_ModifiedOSGB\TestData\OSGB'

def getSubFolder(OSGBfolder):
    subDirs=os.listdir(OSGBfolder)
    subDirName=[]
    arcpy.AddMessage(subDirName)
                
    for subdir in subDirs:
        if os.path.isdir(os.path.join(OSGBfolder,subdir)):
            subDirName.append(subdir)
            
    return subDirName

folders=getSubFolder(OSGB_par_folder)
print(folders)

arcpy.CreateIntegratedMeshSceneLayerPackage_management(folders, spkName, shpfile, "OSGB")


你可能感兴趣的:(三维,解决方案)