Solved

HELP: Detecting aggregate features and setting writer type


Badge

Please help, at a complete loose end. I have a process that's copying data from one SDE database to another. So far it's working almost okay. My main problem is a featureclass which uses multipoint geometry, and I'm dynamically setting the geometry on the writer (intended as this process will be a child workspace run against different datasources). The only way I could initially get it to work was to tell it to set the geometry based on the first feature, but I have one dataset that has 4-5 multipoint features towards the end of the dataset, so the process bombs out trying to put an aggregate into a simple feature type.

icon

Best answer by davideagle 7 June 2018, 15:36

View original

8 replies

Badge +14

How about using an AggregateFilter or a PartCounter and a Tester to filter off the multi-part features and either Deaggregate them, throw them away or route them to a separate FeatureClass?

Badge

I agree with @1spatialdave approach

Badge

Not viable. All features need to go into the same featureclass, plus the workspace is being fed by a workspace runner that will send all sorts of geometry types to it. Still can't understand why the features of a multi-point featureclass would deaggregate on load though?

Badge

Plus aggregates need to be retained as aggregates.

Badge +3

After filtering the aggregates as @1spatialdave suggested, you can set an attribute of the aggregates to 0 and to 1 of non aggregates. Now you can sort the features ascending on that attribute so the aggregates will reach the writer first.

Badge

My mandate is to copy the data from one system to the other, splitting features into a new structure just because the process can't deal with it will not go down well with my manager.

Maybe a PartsCounter, through a StatisticsCalulator to get the max value, merged with each record, through a tester that redirects the data through a path that will make the single point geometry aggregated point geometry with a single feature might work? Does that sound okay to anyone as a solution?

Badge

Actually, what if I split the geometry by whether it's an aggregate or not, and featurehold non-aggregates aggregated feature hit the writer first?

Badge +14

Actually, what if I split the geometry by whether it's an aggregate or not, and featurehold non-aggregates aggregated feature hit the writer first?

Hi Andy, that's effectively what @revesz is suggesting. Tag the aggregate features, then sort all features so that the aggregates load first. A FeatureHolder might work, but there's a chance that depending on your workflow it won't block up all the features, so a sort will be more reliable.

 

Reply