6 votos

arcpy "el nombre de La tabla no es válido"

Escribí un guión que, idealmente, las cargas de crudo .las (los datos LiDAR) archivos en una geodatabase y, a continuación, crea un terreno en el multipunto archivos que se crean. Cuando ejecute la secuencia de comandos a pesar de recibir:

ExecuteError: ERROR 000210: No se puede crear una salida C:\Users\peter\Desktop\test.gdb\bare_earth\1las El nombre de la tabla no es válido. No se pudo ejecutar (LASToMultipoint)

Hasta ahora, la única cosa que puedo encontrar es que Windows 7 sigue cambiando mi carpeta con permisos de sólo lectura, pero todavía puedo manualmente crear, editar y eliminar en los directorios.

import os
import arcpy, math, glob
from arcpy import env

arcpy.CheckOutExtension("3D")
arcpy.env.overwriteOutput = True
#make workspace in memory
arcpy.env.workspace = "in_memory"

#define parameters using GetParameter in ArcMap
geodatabase = arcpy.GetParameter(0)         #0)input Geodatabase
outfeaturedataset = arcpy.GetParameter(1)   #1)Desired Name for the feature class
projection = arcpy.GetParameter(2)          #2)coordinate system
terrain_name = arcpy.GetParameter(3)        #3)Name of the Terrain
class_code = arcpy.GetParameter(4)          #4) the return class code to use
lasdirectory = arcpy.GetParameter(5)        #5) directory to get las data in

#designate directory where .las files are located
os.chdir (lasdirectory)

created_FC_tool = arcpy.CreateFeatureDataset_management(geodatabase, outfeaturedataset, projection)
created_FC = created_FC_tool.getOutput(0)
#Create a Terrain


arcpy.CreateTerrain_3d (created_FC, terrain_name, 1.24605815948, 50000, '', 'WINDOWSIZE', 'ZMIN', 'NONE', 1)

output_terrain = os.path.join (created_FC, terrain_name)
arcpy.AddTerrainPyramidLevel_3d (output_terrain, 'WINDOWSIZE', '2.5 1000; 5 2000; 10 4000; 20 8000; 40 16000')
#process the .las file and add to the feature dataset and terrain



for LASfiles in glob.glob("*.las"):
    print LASfiles
    pointinfo = "point_file_information"
    #Get Pointfile information
    arcpy.PointFileInformation_3d(LASfiles, pointinfo, "LAS", "", projection)

    #get average point spacing variable
    pointspacing = arcpy.SearchCursor (pointinfo)
    field = "Pt_Spacing"
    for row in pointspacing:
        avg_space = (row.getValue(field))
    print avg_space

    #convert las  to multipoint

    #create lable for multipoint file
    listlable = list(LASfiles)
    del listlable[-4]
    multipointlable = ''.join(listlable)
    print multipointlable

    print created_FC
    outputPlable = os.path.join (created_FC, multipointlable)
    arcpy.LASToMultipoint_3d(LASfiles, outputPlable, 1.5, class_code, "", "INTENSITY", projection, "las", 1)



    print outputPlable

    outputPlable_parameters = outputPlable + ' Shape masspoints 1 0 40 true false R06305328las_embed <None> false'
    print outputPlable_parameters
    arcpy.AddFeatureClassToTerrain_3d (output_terrain, outputPlable_parameters)

#Build the terrain
arcpy.BuildTerrain_3d (output_terrain)

Cualquier ayuda es muy apreciada, si es un Windows 7 el problema de no sé qué voy a hacer como mi equipo de trabajo está bloqueado como Fort Knox por nuestra mesa de ayuda :(

Gracias de antemano,

Pete

11voto

Mister Smith Puntos 133

Dentro de una Geodatabase, hay ciertas maneras que usted puede no del nombre de una tabla o Clase de entidad. Comienzo con una serie es una de esas formas.

La validación de Nombres de Tabla y Campo en Python: http://resources.arcgis.com/en/help/main/10.1/index.html#//002z00000020000000

Trate de cambiar el nombre de la tabla a las_1 o algo y a ver si funciona

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X