2 votos

¿Cómo puedo utilizar Join Attribute by nearest en este caso, para evitar hacer referencia a la salida de un algoritmo en una expresión de calculadora de campo?

Tengo un modelo que he construido para automatizar el proceso de evaluación de la peligrosidad del viento en los bordes de los bosques.

Actualmente puedo ejecutarlo con éxito pero:

  • Tengo que ejecutarlo una vez, crear la capa de prueba, y luego ejecutarlo una segunda vez para Offset_Azimuth Calc para completar
  • Offset_Azimuth Calc expresión así: (haciendo referencia a la capa "Test")

    degrees( with_variable( 'line', shortest_line ( centroid ( array_first( overlay_nearest( 'Test', $geometry ) ) ), $geometry ), azimuth ( start_point (@line), end_point (@line) ) ) )

Model example


He intentado lo siguiente, pero creo que debo estar malinterpretando algo aquí - creo que debería ser más fácil de lo que lo estoy haciendo.

  • Separe el modelo en dos, un modelo "prep" que explote las líneas y asigne azimut a cada segmento, y un modelo "assessment" que tenga Exploded_Boundary como entrada (desde prep) y referencie la capa "Exploded_Boundary" dentro de la expresión calc offset_azimuth. Esto sólo funcionará si la capa de preparación se guarda como corresponde, y es menos ideal para compartir con compañeros de trabajo.

No he tenido éxito en mi intento de convertirlo en un único modelo con 2 entradas y 1 salida (wind_hazard). He intentado utilizar Wind_Hazard_Prep dentro del segundo modelo de evaluación, pero tampoco funcionó - no pude hacer referencia a la salida Wind_Hazard_Prep desde dentro de la expresión Offset_Azimuth Calc.

Veo que hay una solución utilizando Join Attribute by nearest, pero no puedo averiguar cómo añadir y calcular el campo offset_azimuth con él, ya que el problema aquí es que no puedo hacer referencia a la capa exploded lines y a Intersection_OUTPUT (capa de puntos) al mismo tiempo.

Separating Models

1voto

Qsiris Puntos 108

Modelo de trabajo:

Working Single Model

Probablemente lo tengo más complicado de lo necesario, pero funciona. Para evitar la diferencia de tipo de geometría (segmentos de línea y puntos), interpolé los puntos medios y los fusioné, luego usé la calculadora de campo para calcular el offset_azimuth como deseaba.

Ahora este modelo funciona, tome una sola entrada de capa límite y la dirección del viento. Algunos ajustes, como ya he descubierto un problema si utilizo un windDir superior a 315 o inferior a 45. Siéntase libre de responder con una solución más adecuada

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