Skip to main content
Solved

HELP: Detecting aggregate features and setting writer type

  • June 7, 2018
  • 8 replies
  • 115 views

Forum|alt.badge.img

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.

Best answer by davideagle

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?

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

8 replies

davideagle
Contributor
Forum|alt.badge.img+22
  • Contributor
  • Best Answer
  • June 7, 2018

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?


adieporter
Forum|alt.badge.img

I agree with @1spatialdave approach


Forum|alt.badge.img

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?


Forum|alt.badge.img

Plus aggregates need to be retained as aggregates.


revesz
Contributor
Forum|alt.badge.img+21
  • Contributor
  • June 7, 2018

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.


Forum|alt.badge.img

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?


Forum|alt.badge.img

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?


davideagle
Contributor
Forum|alt.badge.img+22
  • Contributor
  • June 8, 2018

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.