2010-12-02 16 views
0

J'essaye d'écrire un script python pour traiter des fichiers d'image dans des fichiers de formes, puis de mettre ces fichiers en tampon avec un tampon de 5 mètres. J'ai d'abord fait le script dans le constructeur de modèles dans arcmap mais j'essaye de l'exécuter pour plusieurs fichiers d'image, commençant tous par les lettres LG. Je continue d'obtenir l'erreur 00865, qui indique que le raster d'entrée (fichier image) n'existe pas !! J'ai vérifié le dossier un million de fois et ça existe vraiment! Voici mon code:erreur 00865! Géotraitement ArcMap. Raster to Polygon

# Import system modules 
import sys, string, os, arcgisscripting 

# Create the Geoprocessor object 
gp = arcgisscripting.create() 

# Load required toolboxes... 
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Conversion Tools.tbx") 
gp.AddToolbox("C:/Program Files/ArcGIS/ArcToolbox/Toolboxes/Analysis Tools.tbx") 

# Script arguments... 

folder = "D:\\J04-0083\\IMAGEFILES" 
for root, dirs, filenames in os.walk(folder): # returms root, dirs, and files 
    for filename in filenames: 
     filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1]) 
     filename_zero = filename_split[0] 

     try: 
      first_2_letters = filename_zero[0] + filename_zero[1] 
     except: 
      first_2_letters = "XX" 

     if first_2_letters == "LG": 
      Output_polygon_features = "D:\\J04-0083\\ShapeFiles.gdb\\" + "SH_" + filename + ".shp" 

      # Process: Raster to Polygon... 

      InRaster = filename_zero + ".png" 
      gp.RasterToPolygon_conversion(InRaster, Output_polygon_features, "SIMPLIFY", "VALUE") # FILL IN THE CORRECT VALUES! 

      Distance__value_or_field_ = "5 Meters" 
      Raster_Buffer_shp = "D:\\J04-0083\\ShapeFiles.gdb\\" + "SB_" + filename + ".shp" 
      # Process: Buffer... 
      gp.Buffer_analysis(Output_polygon_features, Raster_Buffer_shp, Distance__value_or_field_, "FULL", "ROUND", "NONE", "") 

Quelqu'un at-il une idée de pourquoi cela ne fonctionne pas? Je vous remercie!

+0

Salut Alice: si vous modifiez votre question afin que tout le code est formaté en code (sélectionnez-le et cliquez sur le bouton 101010), il va être plus facile à suivre. –

Répondre

0

Je ne sais pas d'où vous exécutez le script, mais lorsque vous appelez gp.RasterToPolygon_conversion, vous lui donnez uniquement le fichier nom, pas le chemin complet. Si le fichier n'est pas dans le répertoire de travail, il ne le trouvera pas. Essayez de remplacer la ligne:

InRaster = filename_zero + ".png" 

Avec:

InRaster = os.path.join(root, filename_zero + ".png") 
+0

merci beaucoup !! J'ai une nouvelle erreur maintenant mais je vais devoir prendre ça avec ESRI! Je cours le script de pyscripter! –

+0

@Alice: OK, content qu'il a résolu ce problème, de toute façon. Astuce: utilisez le symbole de la coche sur la gauche pour accepter ma réponse (en supposant que le premier problème soit complètement résolu). En plus de me donner des points de «réputation», les gens verront votre «taux d'acceptation» lorsque vous poserez des questions à l'avenir, et ils seront plus enclins à répondre si c'est élevé. –