1 votos

¿Refiriéndose en una capa a otra capa en ModelBuilder o ArcPy?

Tengo un problema al utilizar Python en ModelBuilder.

Mi modelo va a calcular el ritmo de la erosión lateral.

He restado dos capas de polígonos por Diferencia simétrica y añadir el campo "tempo" a la nueva capa con la expresión en "Wyrazenie na tempo" "Shape Area"/55.5 (55.5 es la longitud de mi segmento). No hay problema cuando el ritmo es positivo porque la salida de la diferencia simétrica es un valor absoluto. El problema es cuando el ritmo debe ser inferior a cero.

Debería usar algún tipo de sentencia if pero no sé cómo.

Mi declaración debería ser así:

If Shape Area of Dane 2 > Shape Area of Dane1: tempo * (-1)
else: tempo *1

No estoy seguro de en qué parte del modelo debo utilizarlo (tal vez añadir la siguiente herramienta de cálculo de campos o escribir un script) y cómo hacer referencia en una capa a otras capas.

enter image description here

1voto

UnkwnTech Puntos 21942

Eso dices tú:

La salida de la diferencia simétrica es un valor absoluto

pero no lo es. La salida de Symmetrical Difference es una clase de característica.

En consecuencia, tempo es una clase de característica y multiplicarla por cualquier número no tiene sentido. Supongo que te refieres a añadir un campo llamado tempo a su clase de característica llamada tempo y luego multiplicarlo por 1 o -1.

Según lo comentado por @j.stanfield:

Creo que el uso de la herramienta "Obtener el valor del campo" en las herramientas de sólo modelo en [ModelBuilder] podría hacerlo. A continuación, utilice la herramienta [Calcular campo] para hacer su ecuación.

0voto

Ricalsin Puntos 161

No estoy seguro de haberle entendido bien. Sería útil si usted acaba de pasar su código, pero por lo que estoy concierto después de su "Añadir campo" puede usted acaba de separar los valores que están por debajo de cero y los valores que son más de cero. Después de usar "Seleccionar" o "Seleccionar por atributos" sólo "Copiar la característica seleccionada" y hacer lo que usted quiere en la nueva capa de la característica. Y después de la edición sólo combinarlos de nuevo.

Consejo Puede utilizar la selección inversa que se encuentra dentro de "Seleccionar por atributos" para obtener todos los valores superiores a 0.

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