Question

How much land is within a certain area of a city

  • 2 November 2017
  • 5 replies
  • 1 view

Badge

Hi!

I've used the instructions on this page

https://knowledge.safe.com/questions/21627/finding-percentage-of-a-area-within-other-areas.html (clipper), since I'd like to know how much recreational land is within a certain service area (buffer zone) of each city in a region. The problem is that the method in the link above does'nt work for this, as far as I know, since the geographical buffer zones of the cities overlap each other. I'd like the final result to be a file with all of the cities and an attribute column with a number for the amount of recreational land (hectar) available.

I wonder if you could help me figure out how to achive this in FME? I am not looking forward to calculating this individually for each city, even though that would of course be an option.

Thank you!


5 replies

Userlevel 4
Badge +25
Also see this tutorial: https://knowledge.safe.com/articles/28735/extracting-polygon-intersections.html

 

Although it might not help with the overlapping zones (I'm looking into that) it will be a general help.

 

 

Userlevel 2
Badge +16

I think this approach will work:

First establish a relationship between City and recreational area (using Spatial Filter and setting the City ID on the recreational area). If the rec area is in more than one City, use a list and follow with a ListExploder to duplicate the rec area for each City.

Then you could use a Clipper or AreaonAreaOverlayer, grouping by the city ID (which by now should also be on the rec area).

That would give you the overlapping polygons for the City's rec areas.

If need be the Aggregator (group by City ID) will create 1 feature per City.

The AreaCalculator will calculate the area size.

Userlevel 2
Badge +17

Hi @elinbr, similar to @erik_jan's approach. Assuming that buffer areas have unique ID attribute, make copies of each land for every intersecting buffer zone, and then clip the lands by buffer zones grouping by buffer ID.

Badge

It worked! Thank you so much for this - you made my week :)

Userlevel 4
Badge +25

Another solution. This one uses the AreaOnAreaOverlayer. The problem with the Clipper is that it has no list capability: it can't create a list of areas that each buffer zone overlaps (or vice versa). The AreaOnAreaOverlayer can create such a list.

 

multiplepolygonintersections.fmwt

Reply