Suite

Placer un message dans la boîte de dialogue de progression du géotraitement ?


Je cherche un moyen d'utiliser arcpy.GetMessage pour obtenir le message suivant dans la fenêtre de résultat de la boîte de dialogue de géotraitement ? ;

Les 4 jeux de données ci-dessus ont été reprojetés sur : WGS Web Mercator (sphère auxiliaire) et enregistrés dans S:GisData

Est-ce que quelqu'un sait comment cela peut être réalisé?


OK, voici ma tentative, qui ne fonctionne pas actuellement ;

# Obtenir la référence spatiale spatialRef = arcpy.Describe(template).spatialReference.name # Boucler les fichiers shapfiles dans le dossier et reprojeter pour fc dans fcList : fcspatialRef = arcpy.Describe(fc).spatialReference.name if fcspatialRef != spatialRef: arcpy. Project_management(fc, outFolder + "" + fc, template) projCount = int(arcpy.GetCount_management(fc).getOutput(0)) else: arcpy.CopyFeatures_management(fc, outFolder + "" + fc) # Imprimer shapefile Résultats du projet arcpy.AddMessage(fc) # Obtenir le nombre à partir de l'objet Result de GetCount msg = "{0} ensembles de données ont été reprojetés sur : {1} et enregistrés dans {2}".format(projCount, spatialRef, OutFolder) arcpy. Ajouter un message (msg)

Je mettrais tous vos messages dans la condition où l'exportation a lieu. Sinon, vous obtiendrez des messages de noms fc qui ne sont pas re-projetés ou une erreur sur la valeur projCount si la condition est fausse et que la variable n'a pas encore été créée.

pour fc dans fcList : fcspatialRef = arcpy.Describe(fc).spatialReference.name if fcspatialRef != spatialRef : arcpy.Project_management(fc, outFolder + "" + fc, template) projCount = int(arcpy.GetCount_management(fc) .getOutput(0)) # Imprimer le fichier de formes Résultats du projet arcpy.AddMessage(fc) # Obtenir le nombre à partir de l'objet Result de GetCount msg = "{0} ensembles de données ont été reprojetés sur : {1} et enregistrés dans {2}".format( projCount, spatialRef, OutFolder) arcpy.AddMessage(msg) else : arcpy.CopyFeatures_management(fc, outFolder + "" + fc)

Il semble que vous ayez une chaîne avec trois variables que vous essayez d'envoyer à la boîte de dialogue de progression du cadre de géotraitement. J'ai fait ce que je pense être les variables apparaissent en gras ci-dessous.

4 les ensembles de données ont été reprojetés pour : WGS Web Mercator (sphère auxiliaire) et enregistré dans S:GisData

Je suggère que vous utilisiez une variable Python pour compter le nombre d'ensembles de données que vous avez reprojetés, au fur et à mesure que vous reprojetez chacun. Peut-être l'appelernombreproj.

Vous devriez pouvoir obtenir un nom de référence spatiale à partir de arcpy.Describe() d'un jeu de données. Peut-être l'appelersrName.

Appelez peut-être la variable de dossiernom de dossier.

Ensuite, l'une (des nombreuses façons) de faire le reste est :

msg = "{0} ensembles de données ont été reprojetés sur : {1} et enregistrés dans {2}".format(projCount,srName,folderName) arcpy.AddMessage(msg)


Voir la vidéo: 28 - JavaScript: Les boites de dialogue Darija (Octobre 2021).