Skip to main content
Hi,

 

 

I have two sets of polygon data which overlap and I want to assign attributes from layer A onto layer B, without altering the geometry of polygons into layer B. I know I can use the Spatial Relator to do this. The problem that I have is that I only want a polygon in layer B to inherit attributes from an overlapping layer A polygon where the two polygons share a significant proportion of overlap - i.e. I don't want to copy attributes if the overlap is a tiny sliver.

 

 

One idea I did have was to shrink each polygon in from its edges by giving it a negative buffer (can you do that?) since that would then get round the issue of marginal edges overlapping.

 

 

Another idea was to calculate the proportion of overlap - i.e. polygon Y in layer A has xx% of its area overlapping polygon Z in layer B.

 

 

Any suggestions folks?

 

 

cheers

 

 

IanM
Hi,

 

 

first of all, yes it is possible to use negative values in a Bufferer.

 

 

To calculate the percentage of overlap, you can use the AreaOnAreaOverlayer and the AreaCalculator with the ExpressionEvaluator to find a list of all the features in A that overlap B more than a certain percentage. Then use this list in a FeatureMerger with the original attributes before sending them through the SpatialRelator to transfer the attributes.

 

 

Something like this:

 

 

 

 

David

 

 

 


You can indeed manpulate and chop up your features, as long as u have unique identifiers (some ID) to recollect the original features.

 

This means u need to take care to advance relevant attributes (and created ones) through the process so they can later be joined with original features.

 

Often u will need listing to manage this. Unlike Davids example you might encounter areas wich multi-overlap eachother. Wich would generate a list and you would have to sum listelements to get total overlapping area.

 

 

Gio
Folks,

 

 

Thanks for those - very helpful. I also found some similar answers dating back to 2011 on FME Talk. But ... SAFE guys ... doesn't it highlight the need to provide an option to perform those calculations in the first place when you're using transformers that perform an overlap / intersection? Maybe another tick box option "Output Stats", "Output Overlap" or summat like that which adds some extra attributes or even just a single attribute for the area of overlap (or length of overlap where a link is intersected with a polygon). Yes - it would slow the transformer down - but only when the option was selected.

Reply