Suite

Les scripts Arcpy se bloquent lorsqu'ils atteignent un certain niveau sur les grands ensembles de données


J'ai une géodatabase avec 300 classes d'entités avec environ 4,5 millions d'entités dans chaque classe d'entités. Je mets à jour chaque classe d'entités avec une valeur calculée via un algorithme.

L'idée IDLE pour le script arcpy se bloque après avoir été exécutée pour 20 classes d'entités. Ensuite, je dois forcer la fermeture du script.

Comment la gestion de la mémoire peut-elle être effectuée pour un ensemble de données aussi énorme ?


Une chose que je recommanderais certainement est d'indexer tous les champs référencés dans les requêtes de définition de chaque classe d'entités participant à votre traitement par lots.

J'ai un outil mixte ModelBuilder / ArcPy qui produit régulièrement 400 classes d'entités dans une seule géodatabase fichier, dont le plus grand était un jeu de données OpenStreetMap pour toute la France qui a abouti à 400 classes d'entités thématiques et une taille de fichier totale pour la géodatabase fichier de 271 Go , et la plus grande classe d'entités avec près de 42 millions d'enregistrements. En fait, l'une des classes d'entités de base qui représente les données source pour la création de ce grand ensemble de classes d'entités est un jeu de données de points avec plus de 334 millions d'enregistrements.

Tout cela fonctionne sur un modeste bureau quadcore W7, Core i5 avec 16 Go de RAM (dont la plupart ne sont en fait d'aucune utilité pour ArcGIS for Desktop, car il ne peut pas l'utiliser comme ArcGIS Pro 64 bits).

S'assurer que tous les champs d'attribut pertinents avaient des index appropriés s'est avéré faire une réelle différence sur les performances. Cela dit, ArcGIS peut toujours sembler "se bloquer" de temps en temps au cours de certains processus, mais il échoue rarement sur cet outil malgré le grand nombre de classes d'entités créées.


Voir la vidéo: AUTOMATIZACIÓN de Geoprocesos con ArcPy. WEBINAR 02. Antonio Pantoja Cu (Octobre 2021).