Suite

Comment écrire un code python pour ajouter une classe d'entités au terrain à l'aide de l'interface ?


J'essaie d'écrire un code qui crée un terrain à partir de données lidar (LAS). Le problème est que les entrées sont dans Feature Dataset dans GDB mais je ne sais pas comment écrire du code pour utiliser une interface. Je n'écrirai pas tout le code, juste la partie qui ne fonctionne pas. Les données finales sont enregistrées dans le nouveau jeu de classes d'entités créé dans le même script. Je dois en quelque sorte remplacer D:Google DriveGDB2.gdbdata2las par juste las. J'ai tout essayé - en supprimant "et cela ne fonctionne pas. L'erreur que j'obtiens toujours est: outil d'exécution - Échec de l'exécution (GDB). Quelqu'un peut-il m'aider? J'ai écrit les parties du code qui sont importantes pour la création de terrain, la dernière ligne ne fonctionne pas :

import arcpy GDB_Location = arcpy.GetParameterAsText(0) GDB_name = arcpy.GetParameterAsText(1) GDB_file = arcpy.CreateFileGDB_management(GDB_Location, GDB_name) out_dataset_path = GDB_file out_dataset_name = arcpy.GetParameter_Aspy. .DefineProjection_management(feature_dataset, "PROJCS['WGS_1984_World_Mercator',GEOGCS['GCS_WGS_1984',DATUM['D_WGS_1984',SPHEROID['WGS_1984',6378137.0,298.257223563]],UNIMEM['Grewiche ,0.0174532925199433]],PROJECTION['Mercator'],PARAMETRE['False_Easting',0.0],PARAMETRE['False_Northing',0.0],PARAMETRE['Central_Meridian',0.0],PARAMETRE['Standard_Parallel_1',0.0],UNIT[ 'Mètre',1.0]]")

l_g = 'las' las_data = '{0}{1}'.format(feature_dataset,l_g) arcpy.LASToMultipoint_3d #dans cette étape dans las fd = feature_dataset terrain = 'terrain' terrain2 = '{0}{1 }'.format(feature_dataset,terrain) # Processus : Créer un terrain arcpy.CreateTerrain_3d(fd,lidar_terrain, Average_Point_Spacing, "50000", "", "WINDOWSIZE", "ZMIN", "NONE", "1") # Processus : Ajouter un niveau de pyramide de terrain arcpy.AddTerrainPyramidLevel_3d(terrain2, "", "'1 5000'") # Processus : ajouter une classe d'entités au terrain arcpy.AddFeatureClassToTerrain_3d(terrain2, "'D:Google DriveGDB2.gdbdata2las' Forme Mass_Points 1 0 1 vrai faux las_ground_embed  faux")

Essayez de supprimer les guillemets simples autour du chemin complet et utilisez des barres obliques. Comme:

# Processus : ajouter une classe d'entités au terrain arcpy.AddFeatureClassToTerrain_3d(terrain2, "D:/Google Drive/GDB2.gdb/data2/las Shape Mass_Points 1 0 1 true false las_ground_embed  faux")

Exemple:

arcpy.CheckOutExtension("3D") env.workspace = "C:/data" params = "terrain.gdb/terrainFDS/points2 SHAPE masspoints 2 0 10 true false " "points_embed  false" arcpy.AddFeatureClassToTerrain_3d("test.gdb/featuredataset/terrain", params)