8 votos

el uso concurrente de in_memory área de trabajo en arcpy

estoy usando un script de python que la eliminación de pequeños polígonos de una clase de entidad. este script crea temporal de las clases de entidades fijas (codificado) nombres en el "in_memory" área de trabajo. ejemplo:

arcpy.CopyFeatures_management("in_fc","in_memory/item_a")

es bastante reutilizables script, por lo que yo lo uso en muchos puntos de geoprocesamiento de la cadena.

estoy en peligro, que el mismo script llamado dos veces a partir de diferentes procesos (al mismo tiempo) va a tener un conflicto, por ejemplo "in_memory/item_a" ? o son los "in_memory" áreas de trabajo separadas para cada proceso?

estoy usando ArcInfo 10.0.

8voto

Prachur Puntos 111

Para poner a prueba tu pregunta, me escribió una rápida secuencia de comandos que me encontré con dos copias simultáneamente de uno como una herramienta de secuencia de comandos en ArcMap y uno en Pythonwin. Para mi sorpresa, no era capaz de ejecutarlos al mismo tiempo, porque el "in_memory" espacio de trabajo compartido. Hay una forma de evitar esto, sin embargo. Usted puede agregar en un resultado de la verificación para determinar si el archivo en la memoria existe, y el nombre de algo más, si es así:

i=0
check = 0
while check == 0:
    memoryFeat = "in_memory" + "\\" + "testMemoryFeature" + str(i)
    if arcpy.Exists(memoryFeat):
        i+=1
    else:
        check = 1

Esto intentará su nombre en función de memoria testMemoryFeature0. Si que la función de memoria ya existe, se intentará nombre testMemoryFeature1, y así sucesivamente hasta que encuentre un nombre que será suficiente.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X