What is the equivalent FME Transformer(s) of this ArcGIS Pro Geoprocessing Tool:
Join Features (GeoAnalytics)—ArcGIS Pro | Documentation
Including JoinFeatures by geometry (intersect).
What is the equivalent FME Transformer(s) of this ArcGIS Pro Geoprocessing Tool:
Join Features (GeoAnalytics)—ArcGIS Pro | Documentation
Including JoinFeatures by geometry (intersect).
You have several options. Not an all-inclusive list but, you have transformers such as SpatialRelator and Aggregator that can 'join' based on geometry. Then you have transformers such as FeatureMerger and DatabaseJoiner that geared more toward an attribute relationship. I would suggest visiting the Transformer Gallery in Workbench and looking under Filters and Joins.
I tried Spatial Relator and it does not seem to work using different geometries (I have points and lines). I am looking to merge based on spatial relationship...merge the points attributes to the lines attributes for all points that intersect a line and output a line feature class that contains the point attributes. I tried using Spatial Relator and it outputs null values in the fields from points. Seems in FME, according to their chart "Determine the Right Spatial Join Transformer" that PointOnLineOverlayer is the only one that can use different geometries for the Readers, but since my lines are already split at each point this Transformer does not seem to work. I can do this easily in ArcGIS Pro with the Join Features tool as I mentioned above, still "scratching my head" as to why this same operation cannot be done in FME. Of course, I am still relatively new to FME. Seems like I need to try several Transformers together, not just one. Can you give me some ideas as to what Transformers I could "string together"? At this point any idea is a good one as I have run out of ideas.
I tried Spatial Relator and it does not seem to work using different geometries (I have points and lines). I am looking to merge based on spatial relationship...merge the points attributes to the lines attributes for all points that intersect a line and output a line feature class that contains the point attributes. I tried using Spatial Relator and it outputs null values in the fields from points. Seems in FME, according to their chart "Determine the Right Spatial Join Transformer" that PointOnLineOverlayer is the only one that can use different geometries for the Readers, but since my lines are already split at each point this Transformer does not seem to work. I can do this easily in ArcGIS Pro with the Join Features tool as I mentioned above, still "scratching my head" as to why this same operation cannot be done in FME. Of course, I am still relatively new to FME. Seems like I need to try several Transformers together, not just one. Can you give me some ideas as to what Transformers I could "string together"? At this point any idea is a good one as I have run out of ideas.
Hi @timh From reading the documentation about the Join Features (GeoAnalytics) Tool from Esri, I think the SpatialRelator should do the job. Their documentation summarizes the tool as the following:
"Joins attributes from one layer to another based on spatial, temporal, or attribute relationships, or a combination of those relationships."
In the SpatialRelator, you can do the same by making sure you enable the Merge Attributes parameter. This will merge attributes from the Supplier onto the Requestor. The SpatialRelator should also be able to handle different geometry types. If you're still having issues then you may need to make sure you've defined your coordinate system for your data first and that it's in the same coordinate system.
We have some additional information on performing spatial joins here: https://community.safe.com/s/article/performing-spatial-joins-and-merges
Hope this helps!
I agree that SpatialRelator is the best option. In the below screenshot, ST_NAMES_MASTER is the street centerlines, STCL_NODES...are intersection points. Each of these points intersects from 2 to 5 street centerlines. I have a field named CROSS_ST_NAMES in STCL_NODES that I want to join to ST_NAMES_MASTER based on the street centerlines it intersects with, but the field CROSS_ST_NAMES in the Writer is empty, even with the Merge Attributes parameter enabled. I have added CROSS_ST_NAMES as a user defined field in the Writer.
Your assistance is much appreciated.
I agree that SpatialRelator is the best option. In the below screenshot, ST_NAMES_MASTER is the street centerlines, STCL_NODES...are intersection points. Each of these points intersects from 2 to 5 street centerlines. I have a field named CROSS_ST_NAMES in STCL_NODES that I want to join to ST_NAMES_MASTER based on the street centerlines it intersects with, but the field CROSS_ST_NAMES in the Writer is empty, even with the Merge Attributes parameter enabled. I have added CROSS_ST_NAMES as a user defined field in the Writer.
Your assistance is much appreciated.
@timh Your workspace and its parameters look okay from a first look. I have a few follow up questions to better understand the issue: