Suite

Fuite de mémoire dans les points d'agrégation ArcGIS/buffer/Addfield/cursor ?


Il existe des inquiétudes quant à la capacité d'ArcGIS 10 à remplir une de mes exigences.

ET Geowizards a été essayé, bien qu'il n'ait pas la même capacité qu'ArcGIS, par ex. Je ne peux pas agréger tous les points que j'ai avec ET, à l'échelle où je les ai tracés.

Il y a une fuite de mémoire, ce qui signifie parcourir 700 objets en boucle, en effectuant :

  1. Points agrégés.
  2. Amortir.
  3. Ajouter le champ.
  4. Mettre à jour le curseur.

Commence en prenant 5 à 9 secondes par objet et continue jusqu'à 2 minutes par objet (de taille similaire).

Dans SP2, il semble que AggPoints ne fonctionne plus pour créer un FC à la volée. Il y en a plus, mais c'est une liste trop longue à compiler !

Code, simplifié sans buffer, ajouter un champ ou un curseur. geom est une collection ou des points arcpy

def createGeom(geom, scratchDB): filetime = (str(time.time())).split(".") outfile = "fc" + filetime[0]+filetime[1] outpath = scratchDB + "tmpV.gdb /Polygon/" outFeatureAggClass = outpath+outfile +"_Agg" arcpy.AggregatePoints_cartography(geom, outFeatureAggClass,"124000 mètres")

Il semble que la taille de la géodatabase fichier dans laquelle nous écrivons soit l'un des principaux problèmes ; Je pense que le problème est que les performances se dégradent à mesure que la géodatabase de fichiers locale se remplit - de manière significative.

Avez-vous des idées sur la façon de régler la géodatabase de fichiers locaux ?


Si vous affichez la forme la plus simple possible du code, il peut être avantageux d'utiliser un dictionnaire au lieu du curseur, ou un espace de travail en mémoire, ou une modification du flux de travail (par exemple, agrégat et tampon puis curseur au lieu de curseur puis agrégat et tampon [ref ]), ou… Dans tous les cas, commencez ici : Performances d'ArcGISScripting et de grands ensembles de données spatiales


Voir la vidéo: How To Fix High MemoryRAM Usage In Windows 10 (Octobre 2021).