Suite

Le curseur de mise à jour continue de planter et de sauter

Le curseur de mise à jour continue de planter et de sauter


J'utilise un logiciel tiers qui exporte le nom JPEG au fur et à mesure que je collecte des points, dans ce cas des panneaux de signalisation. Je sais que les noms restent statiques et sont tous uniques, mais différentes fonctionnalités peuvent avoir le même JPEG (ce qui, je pense, ne posera pas de problème). Donc, le problème que j'ai, alors que mon curseur de mise à jour est en cours d'exécution, semble se bloquer et ignorer souvent des champs (ils existent et sont toujours ignorés). Lorsque j'exécute à nouveau mes codes, j'obtiens parfois ce "Trop de sorties à traiter". Voici mon code :

J'utilise Pycharm, j'ai quelques théories sur les raisons pour lesquelles il continue de planter, pas assez de mémoire, des données trop volumineuses ou le programme est maladroit lors du traitement de données volumineuses. Si quelqu'un a des suggestions ou des programmes plus efficaces pour traiter le code python pour mes grands ensembles de données, ce serait génial.

Voici mon code :

importer arcpy à partir de la gestion des importations d'arcpy arcpy.env.workspace = r'F:Compton LTI ImageryImagery' folders = arcpy.ListWorkspaces("*") pour le dossier dans les dossiers : arcpy.env.workspace = folder rasters = arcpy.ListRasters ("*") pour raster dans les rasters : desc = arcpy.Describe(raster) input = r'C:UsersfernaDesktopCompton_SignsCompton_Signs.shp' management.AddField(input,"Direct_R", "TEXT" , "","", 100) fields = ['Right_Img', 'Direct_R'] avec arcpy.da.UpdateCursor(input, fields)as cursor : pour la ligne dans le curseur : name = desc.baseName if row[0] = = nom : ligne[1] = dossier + "" + curseur raster.updateRow(ligne) print raster + " " + "Directory_R Copié" gestion.AddField(input,"Direct_L", "TEXT", ""," ", 100) fields_2 = ['Left_Img', 'Direct_L'] avec arcpy.da.UpdateCursor(input, fields_2) comme curseur : pour la ligne dans le curseur : nom = desc.baseName si ligne[0] == nom : ligne[ 1] = dossier + "" + raster cursor.updateRow(row) print raster + " " + "Directory_L Copié"

imprimer "Opération terminée"


Ce:

importer arcpy, traceback, os, sys theFolder = r'C:D drive from ToshibaPeter_CD' inputSHP = r'C:FELIX_DATACompton_Signs.shp' try: def showPyMessage(): arcpy.AddMessage(str(time. ctime()) + " - " + message) aDictionary={} jpeg=".jpg">

J'ai quelques suggestions :

  • Où vous avez :

    avec arcpy.da.UpdateCursor(input, fields)comme curseur :

essaie de mettre un espace avantcomme:

avec arcpy.da.UpdateCursor(input, fields) comme curseur :
  • Où vous avez :

    avec arcpy.da.UpdateCursor(input, fields_2) comme curseur :

essayez de supprimer leligneetle curseurvariables de votre premier curseur avant de les réutiliser, et en ajoutant le même espace qu'avant :

del row,cursor avec arcpy.da.UpdateCursor(input, fields_2) comme curseur :

Voir la vidéo: Langage PLSQL: Les curseurs