C'est une question assez générale. Je me demande simplement quels trucs et astuces les programmeurs SIG ont utilisés pour accélérer les scripts arcpy que vous importez dans la boîte à outils et exécutez.
La plupart du temps, j'écris de petits scripts pour aider les utilisateurs non SIG de mon bureau à traiter les données SIG. J'ai constaté que le traitement ArcGIS 10.0 en général est plus lent que 9.3.1 et parfois il devient encore plus lent lors de l'exécution d'un script python.
Je vais énumérer un exemple particulier d'un script qui prend plus de 24 heures pour s'exécuter. Il s'agit d'une boucle qui tabule la zone d'un raster dans un tampon pour chaque forme du tampon. Le tampon a environ 7 000 formes. Je ne pense pas que cela devrait durer aussi longtemps. UNE
while x <= layerRecords:
arcpy.SetProgressorLabel("Tabulating Row: " + str(x) + " of " + str(ELClayerRecords))
arcpy.SelectLayerByAttribute_management(Buff,"NEW_SELECTION", "Recno = " + str(x)) # Selecting the record
TabulateArea(Buff, "Recno", MatGRID, "VALUE", ScratchWS + "/tab" + str(z) +".dbf", nMatGRIDc) # Tabulate the area of the single row
arcpy.AddMessage (" - Row: " + str(x) + " completed")
x = x + 1
z = z + 1
Avant que quelqu'un ne le dise, j'ai exécuté une zone de tabulation sur tout le tampon, mais cela produit des erreurs s'il est exécuté sur plus d'un enregistrement. C'est un outil imparfait, mais je dois l'utiliser.
Quoi qu'il en soit, si quelqu'un a des idées sur la façon d'optimiser ou d'accélérer ce script, ce serait très apprécié. Sinon, di vous avez des astuces pour accélérer python, lorsqu'il est utilisé dans ArcGIS?