Skip to main content
Solved

NeighborFinder with a barrier?

  • September 19, 2019
  • 2 replies
  • 35 views

joshuadamron
Contributor
Forum|alt.badge.img+7

Howdy,

I have street light points that I need to match up with their nearest address based upon an address point file. However I need to make sure that the matching address is on the same side of the street.

 

1) Is there a way to have the neighbor finder tool recognize a street center line geometry as a barrier and exclude a potential neighbor if the candidate angle crosses over a street center line?

2) If that can't be done then I'd love suggestions on how to do this most efficiently.

 

Assuming the NeighborFinder can't evaluate a match based on a line barrier, the first process of achieving my goal that comes to mind for achieving this would be:

  1. run the NeighborFinder, then create a line between the street light point and the nearest neighbor address point (PointConnector),
  2. check to see if the new line crosses a street centerline (e.g. SpatialFilter),
  3. use the results to identify which light point to address point matches ought to be excluded/prevented;
  4. re-run the neighbor finder to exclude matching up those that exclusion list, however, as far as I know there's no way to force a match to be excludes in the Neighbor Finder. So this would lead to:
    1. Option A: would be a water fall approach similar to this question: https://knowledge.safe.com/questions/59605/neighborfinder-and-excluding-candidates-after-matc.html
    2. Option B: Set a max distance parameter then generate a list in the NeighborFinder and then process the list to kick out any hits that match my list of excluded matches then keep the next closest hit.

Am I missing anything? Is there a way to speed this up?

Thank you in advance for the assistance.

 

 

Best answer by erik_jan

You could use the LeftRightSpatialCalculator to assign an attribute to each address and streetlight (Left or Right from the Centerline).

Then you could use the Group By function on the NeighborFinder to group by Left or Right.

Hope this helps.

View original
Did this help you find an answer to your question?

2 replies

erik_jan
Contributor
Forum|alt.badge.img+17
  • Contributor
  • Best Answer
  • September 19, 2019

You could use the LeftRightSpatialCalculator to assign an attribute to each address and streetlight (Left or Right from the Centerline).

Then you could use the Group By function on the NeighborFinder to group by Left or Right.

Hope this helps.


joshuadamron
Contributor
Forum|alt.badge.img+7
  • Author
  • Contributor
  • September 19, 2019
erik_jan wrote:

You could use the LeftRightSpatialCalculator to assign an attribute to each address and streetlight (Left or Right from the Centerline).

Then you could use the Group By function on the NeighborFinder to group by Left or Right.

Hope this helps.

I've never used the LeftRightSpatialCalculator before, it 100% did the trick!

Brilliant! Thanks for leading me to discover a new tool!


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings