Selecting only the first row of polygons around polygons

372
5
Jump to solution
12-24-2020 01:55 AM
Labels (1)
Floris508
New Contributor II

Hi all,

I am currently working on my thesis and after trying for a few days I decided to ask this questions since I guess I'm stuck. I'm working on ArcGIS PRO 2.7.0 with datasets obtained via Esri (online) the Netherlands.

Basically, I have data from a lot of buildings all depicted by polygons which is one data layer (I have clipped it to the municipality of Amsterdam and hence it contains around 120000 rows). In addition I have outlined a few parks in Amsterdam I wanted to research and I have made buffers of 10~50m around them. What I want to research is the functions of buildings in close adjacency to parks.

I have tried to intersect the buffer layer with the buildings layer which has given me outcomes as expected. However, I want to research only the FIRST ROW of buildings close to parks. Is there a way to do this (non-manually). I have attached a screenshot of the outcome of the buffer (40m) and buildings layer in which you can clearly see multiple rows of "buildings" are selected. To clarify, I am trying to obtain an output in which only the first row of buildings (i.e. the buildings that are adjacent to the parks) are selected; the buildings that are surrounding the park on each site.

I am thinking that an option could be to change the polygon layer of the parks (indicated in black in the picture below) to a line. I read somewhere that this could help but I am not sure.

Thanks in advance for answering!

 

Tags (3)
1 Solution

Accepted Solutions
JoshuaBixby
MVP Esteemed Contributor

Given the park boundary is fairly regular, in the sense it doesn't look like gerrymandered political districts, I would use Densify, Feature Vertices to Points, Near, and then identify unique results from Near analysis.  Given the situation David raises, i.e., a gap between blocks where the nearest perpendicular building may be blocks away, this approach may not be 100% but it should be much closer than a straight buffer.

View solution in original post

5 Replies
DanPatterson
MVP Honored Contributor

In short, I suspect you want the buildings "adjacent" to the park, hence your attempt at buffering (or select by location within a distance of) to perform the selection. 

The problem is that you have a variable distance from the perimeter of the park to the buildings in all directions.  What you really want is the buildings adjacent to the "gap" or road that surrounds the park.... so how to nothing into something to find adjacency.  (interesting problem, like a raster RegionGrow for polygons)


... sort of retired...
DavidPike
MVP Frequent Contributor

It seems like quite a complex question.  I would also better define what you mean by 'First Row' of buildings, a human can understand that concept easily enough - but how would you explain it to a computer?  Writing down a set of rules would help with any programming you have to do.

I'm just going to throw down some of my ideas, though they will have flaws and not apply to all cases.

create points along the perimeter of the polygon, then iterate over each point - running a spatial join with the match option set to 'closest'.

create points along the perimeter, then generate lines of increasing length perpendicular to the perimeter.  when a match is found, the polygon OID is captured, and the next point is processed, and so on..  This is a bit of a mad idea if I'm honest, and would see errors at the polygon vertices..

calculate a viewshed from points generated along the perimeter, with an observer height of 0.  (What happens when there's a gap in the 'front row' of buildings, does the visible building behind get counted? how would you tell the computer to do/ not to do that?)

 

Floris508
New Contributor II

Hi David thanks for your reply! I'm gonna try it these next few days and let you know how it went 🙂

JoshuaBixby
MVP Esteemed Contributor

Given the park boundary is fairly regular, in the sense it doesn't look like gerrymandered political districts, I would use Densify, Feature Vertices to Points, Near, and then identify unique results from Near analysis.  Given the situation David raises, i.e., a gap between blocks where the nearest perpendicular building may be blocks away, this approach may not be 100% but it should be much closer than a straight buffer.

View solution in original post

Floris508
New Contributor II

Hi Joshua, I am going to try it one of these days and will let you know how it went. Thanks in advance for answering me 🙂

0 Kudos