1

The problem:

I have a dataset of polygons representing neighborhoods with FSI (Floor-Space Index) values (among others). I want to consider for each neighborhood (target) the surrounding neighborhoods (features), in this case, based on a 450m radius from my feature. I want to score a neighborhood based on it's FSI and based on the score of the surrounding FSI's to in the end say something about an access level to facilities. Score of target would be something like

FSI target + 0.35 * FSI neighbors

However, this seems like quite a simple process to do for 1 feature, but I want to apply it to all my features.

Done so far

I have calculated already the significant features using ArcGIS Pro's Hot Spot Analysis (Getis-Ord Gi)* with a fixed radius.

Possible Software QGIS with GRASS, ArcGIS Pro basic license

Possible extensions

In the future I would like to vary the chosen conceptualization of Spatial Relationship (= what does it mean to be a neighbor?) as I will use this approach also on other variables that have different underlaying mechanics e.g. a road network.

Possible solution

Build a function that takes 1 feature, use summary statistics / select by location and loop this process for each feature in my dataset.

Main question

Is there already some algorithm in QGIS / ArcGIS or a plug-in that does such a job? Or can you recommend another approach?

1 Answer 1

2

Using SQL in QGIS DB-manager, you have lots of flexibility

select a.id, a.FSI,
       sum(b.FSI*0.35) as sum_neigbour,
       sum(b.FSI*0.35) + a.FSI as result
from FSI a
left join FSI b on st_intersects(st_buffer(a.geometry, 450), b.geometry)
group by a.id

Gives you following result:

enter image description here

1
  • Sorry for this late reply. I just had time to test this out. Thank you as this is just what I was looking for!
    – MarcM
    Apr 22, 2020 at 12:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.