Solved

How to list parcels in a field

  • 22 January 2019
  • 3 replies
  • 3 views

I have one reader with buildings (areas), and one with parcels (also areas, having 2 attributes: parcel_no, parcel_id). I would like to output an Excel file of every building, with the parcel or parcels where it is located, separated with a "/". For example:

Building_no

 

Parcel_no

 

Parcel_id

 

1

 

1051/1052

 

P0356684/P0356685

 

2

 

1053/1054

 

P0264568/P0258934

 

3

 

1102

 

P0256425

 

4

 

1173

 

P0546742

 

Parcel_no and parcel_id have to be in the same order.

What should I use (SpatialRelator or AreaOnAreaOverlayer)? What options should I select?

And then, how can I aggregate the fields in one field (ListRangeExtractor, Aggregator, other...)?

Additionnal question: can I list only the parcels where the building occupies more than 5 square meters (to avoid parcels that are juste a little bit on the edge)?

icon

Best answer by redgeographics 22 January 2019, 15:29

View original

3 replies

Userlevel 5
Badge +25

SpatialRelator and ListConcatenator is what you're looking for.

For your additional question I would try saving the building geometry (GeometryExtractor), clipping the buildings with the parcels and then calculating the area, throw away and building parts smaller than 5 sq meters, ListBuilder to gather them all together again and a GeometryReplacer to restore the original geometry, then ListConcatenator again to list all the parcel numbers.

SpatialRelator and ListConcatenator is what you're looking for.

For your additional question I would try saving the building geometry (GeometryExtractor), clipping the buildings with the parcels and then calculating the area, throw away and building parts smaller than 5 sq meters, ListBuilder to gather them all together again and a GeometryReplacer to restore the original geometry, then ListConcatenator again to list all the parcel numbers.

@redgeographics thank you very much for your support. It is working!

However, I am not sure how to deal with buildings that touch boundaries of other parcels. On this example, I want the building 1 and 2 to to list only parcel 2920 (same with buildings 3-4 and parcel 2921). Unfortunately, the result of my workflow is both parcels for the 4 buildings. How do I do that? I guess the answer is in the SpatialRelator Parameters...?

 

Userlevel 5
Badge +25

I think this is it:

Buildings as Requestors, parcels as Suppliers. Test for Within, Equals and Intersects and have the SpatialRelator create a list. Explode that list, test for the de9im values that correspond to the scenarios we want:

  • Building completely inside parcel - 2FF1FF212
  • Building completely inside parcel but touching the boundary - 2FF11F212
  • Building intersects parcel boundary - 212101212
  • Building equal to parcel - 2FFF1FFF2

(no, I don't know those off the top of my head, I used the Data Inspector to figure it out)

Then create a list again and you have your data. Could use a ListConcatenator to put that all in one attribute.

none2none.fmw

Reply