Question

Spatial join of polygons


  Hi,

 

 

I've been trying the Spatial Relator to get the desired output. (a hypothetical example given in the image below).

 

( as seen in admin B and admin C, admin boundaries and postal boundaries match... this works fine. )

 

Now, the problem lies in cases such as, admin A, where the postal areas are further divided and do not match the admin boundary.

 

Tried using Test to perform as touches... but that gives values of A, B and C within A

 

Did try the othe transformers but spatial relator has been the closest. How to arrive at the desired output!

 

 

 

 

 

Regards,

 

Sani.

8 replies

Badge +11
Hi Sani, 

 

 

what exactly is your desired output? Do you want to clip the areas by PostalCode? (Clipper) Or do you want to add attribute A to the three objects with postal codes (AreaOnAreaOverlayer)

 

 

 

best regards, 

 

Jelle

 

Badge +1
Hi Sani,

 

 

Do you need to get all the inputs? It seems that some attributes have two values, and if you will run the workbench using SpatialRelator, the transformer will replace the previous value and display the second one. Thus, you need to get more number of outputs than inputs (as more in number as there are overlapping values). For this instance, I guess LineOnAreaOverlay with List Name as parameters would work. Then you can use ListExploder,using the same List Elements. (:

 

 

Regards. 
Userlevel 2
Badge +17
Hi Sani,

 

 

I think the SpatialRelator (Tests to Perform = WITHIN) should work fine?

 

 

Takashi
Hello, 

 

Thank u for the replies!

 

As far as I'm getting through is:

 

 

 

 

An example above:

 

1) SpatialRelator (Tests to Perform = OVERLAP) Works well for Admin A, B and D ( as admin area=Postal area) shown in yellow.

 

2) SpatialRelator (Tests to Perform = WITHIN) Works well for Postal 41104 and 41107 that do not touch the boundary lines, shown in lavender color.

 

 

Postal in white are the ones which aren't getting spatially joined.

 

(spatial joining is being tried of the admin area polygon with the postal area polygons.)

 

 

Regards,

 

Sani.

 

 

* Overlaps does the job only after the areas are calculated and matched....

 

(forgot to mention)

 

 

Userlevel 2
Badge +17
I guess the administrative boundary parts of Postal area boundaries do not exactly match with the Admin boundaries (red lines in your image).

 

How about comparing inside points of Postal and Admin areas?

 

 

Yes :) 

 

I had tried comparing the points of the postal and admin area...

 

It does give the output, only I had used two spatial relations,

 

Geometry extractor and replacer seem better way !

 

Thank You.

 

 

Badge +3
Try use a combo OVERLAPS,CROSSES and TOUCHES.

 

 

If the passcriteria is of relevance here, u can then test the attribute _relationships_PASS{}

 

Or check DE9IM, if you are brave.

 

 

Unwanted touches u can eliminate by exposing and testing cardinality btw.

 

 

If criteria is not relevant for merging of data, i suggest using INTERSECT.

 

 

 

How about just using a overlayer or intersector.

 

Then a spatialrelator using intersect comparing these intersected/overlayed objects with the original objects.

 

Testing on the occurence of postalcode and admin area as well as overlaps>0 and then using result to reaquire original objects (using ie a featuremerger).

 

 

Gio

Reply