Skip to main content
Solved

I have two polygon shapefiles that I need to spatially join. I'm trying to populate township/range/section in my dataset based on a TRS shapefile. I have it working in ModelBuilder through ArcGIS but I can't get it to correlate the same in FME Desk

  • January 15, 2021
  • 8 replies
  • 138 views

Forum|alt.badge.img
I have two polygon shapefiles that I need to spatially join. I'm trying to populate township/range/section in my dataset based on a TRS shapefile. I have it working in ModelBuilder through ArcGIS but I can't get it to correlate the same in FME Desktop.

Best answer by markatsafe

@m_stateland​ Thanks for attaching the data. The issue is that your boundaries do not match exactly. SpatialRelator is very exacting, so if you use the 'Within' predicate and the boundaries cross, even very slightly, the test will fail. If you use 'Intersects' then you might pickup the neighbouring TRS as well (getting two matches). So you have two options:

  • clean the data to make sure the edges match then use SpatialRelator with a 'Within' predicate
  • replace the ASLD features with an inside point and then do the spatial join with either SpatialRelator or PointOnAreaOverlayer.

I think I'd lean to the second option using PointOnAreaOverlayer.

workspace 

I've attached an example workspace (FME 2020.2.2)

(actually you could use a single Snapper instead of the two AnchorSnapper's)

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

Forum|alt.badge.img+2
  • 1891 replies
  • January 15, 2021

@m_stateland​ did you try SpatialRelator? Have a look at this knowledge article on spatial joins for ideas.

If you can attach a small sample dataset someone might create a proof-of-concept workspace


Forum|alt.badge.img
  • Author
  • 5 replies
  • January 19, 2021

@m_stateland​ did you try SpatialRelator? Have a look at this knowledge article on spatial joins for ideas.

If you can attach a small sample dataset someone might create a proof-of-concept workspace

@Mark Stoakes​ Yes I tried that. So the GCDB_TRS input does not having any blank attributes, but my output below does? I'm trying to populate the first four attributes via their spatial reference to the GCDB_TRS file, so where there are related candidates, fill in the attributes based on the file.WorkflowOutputTable


Forum|alt.badge.img+2
  • 1891 replies
  • January 20, 2021

@m_stateland​ are the ASLDP and TRS features in the same coordinate system? Without sample data I'm just guessing.


Forum|alt.badge.img
  • Author
  • 5 replies
  • January 21, 2021

@m_stateland​ are the ASLDP and TRS features in the same coordinate system? Without sample data I'm just guessing.

@Mark Stoakes​ Yes they are both in the same coordinate system. I have attached a sample of the ASLD and the TRS areas related to them. Thank you for your help!


Forum|alt.badge.img+2
  • 194 replies
  • January 21, 2021

Use a center point replacer and intersect using a point on area overlay. After that, merge them back together using a feature merger with the unique ID to get the polygons. I very rarely use the spatial relator due to the speed difference with simply converting them to points.

 

Reference my @jlbaker2779​  in future questions if you have other questions related to lease mapping. I've dealt with the legal description polys quite a bit and have mapped hundreds of thousands of the descriptions in FME. I actually made my own lease mapper in FME that maps tens of thousands of descriptions per minute vs the hand mapping with Parcel Edit Tools or similar software. :D


Forum|alt.badge.img+2
  • 1891 replies
  • Best Answer
  • January 21, 2021

@m_stateland​ Thanks for attaching the data. The issue is that your boundaries do not match exactly. SpatialRelator is very exacting, so if you use the 'Within' predicate and the boundaries cross, even very slightly, the test will fail. If you use 'Intersects' then you might pickup the neighbouring TRS as well (getting two matches). So you have two options:

  • clean the data to make sure the edges match then use SpatialRelator with a 'Within' predicate
  • replace the ASLD features with an inside point and then do the spatial join with either SpatialRelator or PointOnAreaOverlayer.

I think I'd lean to the second option using PointOnAreaOverlayer.

workspace 

I've attached an example workspace (FME 2020.2.2)

(actually you could use a single Snapper instead of the two AnchorSnapper's)


Forum|alt.badge.img
  • Author
  • 5 replies
  • January 25, 2021

Use a center point replacer and intersect using a point on area overlay. After that, merge them back together using a feature merger with the unique ID to get the polygons. I very rarely use the spatial relator due to the speed difference with simply converting them to points.

 

Reference my @jlbaker2779​  in future questions if you have other questions related to lease mapping. I've dealt with the legal description polys quite a bit and have mapped hundreds of thousands of the descriptions in FME. I actually made my own lease mapper in FME that maps tens of thousands of descriptions per minute vs the hand mapping with Parcel Edit Tools or similar software. :D

Thank you so much


Forum|alt.badge.img
  • Author
  • 5 replies
  • January 25, 2021

@m_stateland​ Thanks for attaching the data. The issue is that your boundaries do not match exactly. SpatialRelator is very exacting, so if you use the 'Within' predicate and the boundaries cross, even very slightly, the test will fail. If you use 'Intersects' then you might pickup the neighbouring TRS as well (getting two matches). So you have two options:

  • clean the data to make sure the edges match then use SpatialRelator with a 'Within' predicate
  • replace the ASLD features with an inside point and then do the spatial join with either SpatialRelator or PointOnAreaOverlayer.

I think I'd lean to the second option using PointOnAreaOverlayer.

workspace 

I've attached an example workspace (FME 2020.2.2)

(actually you could use a single Snapper instead of the two AnchorSnapper's)

Thank you thank you!!!