Suite

Obtenir le nom du fichier de forme dans le champ d'attribut à l'aide du calculateur de champ

Obtenir le nom du fichier de forme dans le champ d'attribut à l'aide du calculateur de champ


Je m'excuse pour le crosspostage contre le forum de géotraitement ESRI, mais il semble que celui-ci obtienne des réponses. J'aimerais avoir un outil d'ajout modifié (ArcToolbox) qui prend plusieurs fichiers de formes avec des données d'attribut de point et copie le(s) nom(s) du fichier de formes entré dans une colonne d'attribut "nom de fichier", puis l'ajoute à un jeu de données cible. De cette façon, je peux savoir d'où proviennent les données. La seule façon dont je peux penser à le faire est quelque chose du genre de ce qui suit :

pour chaque shp dans les classes d'entités : outFeatureClass = os.path.join("C:GISScripts	emp	emptrks", shp.strip(".shp")) arcpy.CopyFeatures_management(shp, outFeatureClass) arcpy.AddField_management(outFeatureClass , "filename", "TEXT", "","", "254") arcpy.CalculateField_management(outFeatureClass, "filename", str(shp), "PYTHON")

Effectuez ensuite l'ajout pour chaque fichier dans le nouvel espace de travail.

Ce que j'aimerais faire, c'est pouvoir demander à un utilisateur de faire glisser et de déposer plusieurs fichiers de formes à partir de plusieurs répertoires dans une zone de saisie à valeurs multiples (comme celle de l'outil Ajouter).

J'ai deux questions:

  1. Existe-t-il une manière plus simple/meilleure d'effectuer la tâche ?
  2. Sinon, sur quoi dois-je définir le type de paramètre (la valeur multiple n'est pas une sélection).

Dans les propriétés de votre outil ArcToolbox, je définirais le paramètre sur un FeatureLayer/FeatureDataset avec MultiValue=Yes et utiliserais un code comme celui-ci pour obtenir le nom de fichier :

pour shp dans featureclasses.split(';'): dsc = arcpy.Describe(shp) filename=dsc.CatalogPath #unicode est renvoyé

Voir la vidéo: Tietokoneen peruskäyttö: tiedostojen pakkaus