Skip to main content
Solved

HELP: Detecting aggregate features and setting writer type


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?

View original

8 replies

davideagle
Contributor
Forum|alt.badge.img+19
  • 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+14
  • 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+19
  • Contributor
  • June 8, 2018
andypcatbcc wrote:

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


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings