es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

ArcGIS Pro – Cálculo acumulativo de regla de atributos Arcade

Estoy atascado intentando crear una regla de atributo/cálculo de campo utilizando Arcade donde las áreas aguas arriba se suman a un área aguas abajo llamada “Área Acumulada”.

NodoDesde NodoHasta Área ÁreaAcumulada
1 2 10 10
2 3 5 15
4 3 6 6
4 3 6 6
3 5 8 20

Básicamente estoy pensando en el equivalente SQL de SUMA DONDE NodoHasta = NodoDesde. O un equivalente en Excel de [Área + SUMAR.SI(ÁreaAcumulada, NodoDesde, NodoHasta)].

Esto es para verificar cálculos de alcantarillado, así que por favor avíseme si existen herramientas que ya tengan este tipo de funcionalidad.

¡Gracias!

Tags:  

Answer

  1. Avatar for davy.ai

    Para crear una regla de atributo/cálculo de campo utilizando Arcade para agregar áreas aguas abajo a un área aguas arriba llamada “Área acumulada”, puedes usar el siguiente código:

    // Crear un diccionario para almacenar el área acumulada para cada nodo
    var dict = {};
    
    // Recorrer cada elemento y actualizar el área acumulada
    for(var feature in FeatureSetByName($datastore, "InputFeature")){
        // Obtener los valores de NodoDesde y NodoHasta
        var nodoDesde = feature.NodoDesde;
        var nodoHasta = feature.NodoHasta;
        // Obtener el valor de área
        var area = feature.Area;
        // Actualizar el área acumulada para el nodo
        if(dict[nodoDesde]){
            dict[nodoHasta] = dict[nodoDesde] + area;
        } else {
            dict[nodoHasta] = area;
        }
        // Establecer el valor del campo Área acumulada
        feature.AreaAcumulada = dict[nodoHasta];
        // Devolver el elemento con el valor actualizado del campo Área acumulada
        return feature;
    }
    

    Este código crea un diccionario para almacenar el área acumulada para cada nodo. Luego recorre cada elemento y actualiza el área acumulada basándose en los valores de NodoDesde y NodoHasta. El valor del campo Área acumulada se establece en el área acumulada actualizada para el valor actual de NodoHasta del elemento. Finalmente, se devuelve el elemento con el valor actualizado del campo Área acumulada.

    En cuanto a las herramientas que podrían tener esta funcionalidad, podrías considerar utilizar ModelBuilder en ArcGIS Pro o ArcMap para crear un flujo de trabajo que realice este cálculo utilizando herramientas de geoprocesamiento. También puedes explorar las soluciones de ArcGIS para el análisis de redes de alcantarillado, las cuales brindan funcionalidad para analizar el flujo de la red de alcantarillado y calcular resultados hidráulicos.

Comments are closed.