how to Join returned feature set from group by function using arcade data expression in ArcGIS dashboards (ArcGIS enterprise 10.91)

345
0
03-22-2024 04:45 PM
Labels (1)
AnatoliHailemariam
New Contributor II

Hello,

I am trying to join 2 returned feature set from a group by function but ended up getting empty table with specified fields in it.    ( I am implementing this in dashboard, data expression to power serial chart element, list ...ArcGIS enterprise 10.91)

pls have a look at the expression below

// read layer 1 
var p = 'https://xyz.com';
var itemID = '123456789';
var fs_pipe = FeatureSetByPortalItem(Portal(p), itemID, 1, ['DRINKINGWATERSYSTEM','Shape__Length', 'INSTALLDATE', 'ASSETID','OBJECTID'], false);
 
 
//group layer 1
var fs_pipe_grouped = GroupBy(fs_pipe, ['DRINKINGWATERSYSTEM'],[
{ name: 'number_of_Pipes', expression: 'OBJECTID', statistic: 'COUNT'},
{name: 'Pipe_len_Sum', expression: 'Shape__Length', statistic: 'SUM'},
])
 
//read layer 2
var p = 'https://xyz.com';
var itemID = '987654321';
var fs_break = FeatureSetByPortalItem(Portal(p), itemID, 2, ['wsystem', 'pipe_length', 'breakid', 'year','objectid'], false);
 
//group layer 2
var fs_break_grouped = GroupBy(fs_break, ['wsystem'],[
    {name:'breakCount', expression:'objectid', statistic:'COUNT'}])
 
 
// Create empty features array and feat object
var features = [];
var feat;
 
// Populate Feature Array
for (var b in fs_break_grouped) {
    var tableID = b["wsystem"]
    for (var q in Filter(fs_pipe_grouped, "DRINKINGWATERSYSTEM = @tableID")){
        feat = {
            attributes: {
                wsystem: tableID,
                Pipe_len_Sum: q["Pipe_len_Sum"],
breakCount: b["breakCount"],
                
            }
        };
 
    Push(features, feat)
    }
}
 
 
var joinedDict = {
    fields: [
        { name: "wsystem", type: "esriFieldTypeString" },
        { name: "Pipe_len_Sum", type: "esriFieldTypeInteger" },
        { name: "breakCount", type: "esriFieldTypeInteger" },
    ],
    'geometryType': '',
    'features':features
    };
    
return FeatureSet(Text(joinedDict));

 

result (empty featureSet)

AnatoliHailemariam_0-1711150847471.png

 

 

My goal is once I get the joined table/ featureSet, then to calculate break ratio by dividing "breakCount" by "Pipe_len_Sum"

 

your help is greatly appreciated!

 

Thanks in advance!

 

Anatoli

 

 

0 Kudos
0 Replies