Suite

Script ou code pour créer un package de carte arc gis , mpk

Script ou code pour créer un package de carte arc gis , mpk


Je recherche de l'aide ou si quelqu'un a un script ou un outil pour parcourir un dossier donné de fichiers MXD et créer des fichiers MPK du même nom.

Je n'ai pas tellement d'expérience dans la création de scripts ou dans l'utilisation de la fenêtre python. J'ai trouvé la question précédente ci-dessous

entrez la description du lien ici

Où il détaille l'ESRI, page d'aide pour la gestion des données

entrez la description du lien ici

J'ai essayé de saisir le code de la fenêtre python en changeant le code de mes exemples, mais je continue à recevoir des messages d'erreur différents. Je ne suis pas sûr de ce que je fais mal. Je ne suis pas sûr de la configuration des paramètres d'un outil réel. Je me demandais si quelqu'un l'avait déjà fait.


Voici un script que j'ai écrit, basé sur l'exemple Carte du package (gestion des données).
Il y a quelques changements dont vous devez être conscient. Il supprime tous les rasters des mxd et définit le résumé, la description et les balises requis sur le nom du MXD. Cela changera vos fichiers sources, alors assurez-vous de les sauvegarder.
Il regarde également dans un seul répertoire et crée un petit fichier CSV détaillant les erreurs avec certains mxds.
Pour empêcher la suppression des rasters, commentez les lignes 54-58.
Ce script est exécuté à partir de la ligne de commande Windows avecpython .pyvous devrez donc vous assurer que python.exe est inclus avec ArcGIS est ajouté à votre système PATH. Le plus probableC:Python27ArcGIS10.2

# Importez les modules python requis import arcpy from arcpy import env import os import os.path import glob import string import traceback # Définissez des variables pour les MXD d'entrée print 'Setting Paths' path = raw_input('File Path to Folder Containing MXDs : ' ) print path mxdList = glob.glob(os.path.join(path, '*.mxd')) print 'Paths Set' env.workspace = path arcpy.env.scratchWorkspace = path env.overwriteOutput = True arcpy.gp. overwriteOutput = True outputcsv = chemin + "OutputLog_MXDs.csv" outFile = open(outputcsv, "w") outFile.write("MXD" + "," + "Status" + "," + "Error" + "
" ) successcount = 0 failcount = 0 # Module pour définir les descriptions, le résumé et les balises pour le mxd. pour le nom de fichier dans mxdList : essayez : mxdname = filename mxd = arcpy.mapping.MapDocument(filename) mxdleft = str(string.lstrip(filename, path)) mxdname = str(string.rstrip(mxdleft, ".mxd")) print 'Traitement ' + mxdname + '
' mxd.description = mxdname print "Description = " + mxd.description mxd.summary = mxdname print "Summary = " + mxd.summary mxd.tags = mxdname print "Tag = " + mxd .tags + '
' # Enregistrez le MXD mxd.save() # Maintenant empaquetez le mxd # Lisez les trames de données, identifiez les couches raster et supprimez-les. print 'Reading Data Frames… ' DF = arcpy.mapping.ListDataFrames(mxd) print '… Found ' + str(len(DF)) + 'Data Frames' + '
' pour DF dans arcpy.mapping.ListDataFrames(mxd ): DFname = DF.name print "Traitement - " + str(DFname) lyrs = arcpy.mapping.ListLayers(mxd) pour les lyrs dans arcpy.mapping.ListLayers(mxd): if lyrs.isBroken: print lyrs.name + " est cassé." break if lyrs.isRasterLayer: print "Found Raster - " + str(lyrs) # Partie pour supprimer réellement le raster, utilise le bloc de données (DF) et le calque (lyrs) arcpy.mapping.RemoveLayer(DF, lyrs) print str (lyrs) + " Supprimé" # Après les modifications apportées, nous devons enregistrer le MXD. mxd.save() print '
' + "All Rasters Removed" print "
" + "Packaging " + mxdname arcpy.PackageMap_management(filename, os.path.splitext(filename)[0] + '.mpk', "CONVERT", "CONVERT_ARCSDE", "#", "ALL") print mxdname + " Packaged Successfully" successcount += 1 outFile.write(mxdname + "," + "Packaged" + "," + "Aucun" + " 
") del mxd, mxdname, DF sauf exception comme e: print "-----" print "Error" traceback.print_exc() error = str(e.message.split('
')) print "Problème avec " + mxdname print "Ignorer l'erreur, comme un patron" outFile.write(mxdname + "," + "Non emballé" + "," + error.replace('
',") + "
 ") failcount += 1 continue # End Statement pour afficher les statistiques de base. print "
" print "Finished" print str(successcount) + " MXDs Packaged Successfully - " + str(failcount) + " MXDs Failed" print "Check Output Connectez-vous pour plus de détails" # Libérez le fichier journal CSV outFile.close()

Jetez un œil à cette page :

http://help.arcgis.com/en/arcgisdesktop/10.0/help/index.html#//0017000000q5000000

Je vous ai donné le lien 10.0 en fonction de votre balise.

# Nom : PackageMap.py # Description : Recherchez toutes les cartes qui résident dans un dossier spécifié et créez des packages de carte pour chaque carte. # import system modules import os import arcpy from arcpy import env # Définir les paramètres d'environnement env.overwriteOutput = True env.workspace = "C:/arcgis/ArcTutor/Editing" # Parcourez l'espace de travail, trouvez tous les mxds et créez un package de carte en utilisant le même nom que le mxd pour mxd dans arcpy.ListFiles("*.mxd") : print "Packaging " + mxd arcpy.PackageMap_management(mxd, os.path.splitext(mxd)[0] + '.mpk', "CONSERVER", "CONVERT_ARCSDE", "#", "TOUS")