1

I have a list of addresses and I have geocoded into a shapefile in ArcMap 10.4. I've also made a raster that stores NDVI data (with water masked out as it will skew the values we are hoping to obtain later) within the area that the addresses lie. What I'm trying to do is take the list of addresses and calculate the mean NDVI value within a 250 m radius of each address.

So far, we have used buffer analysis to create a shapefile containing 250 m radius at each address and used the zonal statistics as table tool. The issue, however, is that some of the radii overlap - which the zonal stats tool doesn't know how to handle.

Additionally, we have tried using ModelBuilder to try to iterate over each polygon and calculate zonal stats individually, but when we do this the file will continuously keep overwriting itself with each input.

Finally, we found the spatial analyst supplemental tools that ESRI created, which includes the zonal statistics as table 2. This tool is supposed to have the same functionality as the original tool, but include a fix for overlapping polygons. We ran this tool and the output was exactly the same as when we ran the original tool - did NOT account for overlapping areas.

Last bit of info, python within our ArcMap does not work. We are unsure why at the moment. So, creating a script to do this is not option at the moment.

Does anyone have any suggestions or tips on how we could go about getting our data?

3
  • Can you provide a screenshot of your modelbuilder setup?
    – lambertj
    Commented May 18, 2018 at 17:59
  • Convert raster to points, intersect them with polygons, output points. Summarise result using polygons ids.
    – FelixIP
    Commented May 18, 2018 at 22:28
  • @lambertj Here's what we tried in Modelbuilder: MODELBUILDER
    – Kara C
    Commented May 22, 2018 at 16:33

1 Answer 1

1

To make the model run correctly in Model Builder, you'll want to name the output of the Zonal Statistics tool something like %Value%_zonal.shp so the output files take on the name of the selected buffer for each address and do not overwrite each other. The %Value% operator in the output name is necessary to make sure the Iterator runs correctly. Right now, you have the output set as a static name so it overwrites each result with the next one in the sequence.

Once you have all your output Zonal Statistics tables, use the Merge tool to combine them into one table.

7
  • Do you know if there's a tool that will allow us to compile all of the separate tables into one table? We have almost 200 addresses to iterate over so it would not to fun copying all of those over to a csv file manually.
    – Kara C
    Commented May 22, 2018 at 20:41
  • You can use the Merge tool to merge tables. You can run it once you run your model, or use it as a final step within Model Builder.
    – lambertj
    Commented May 22, 2018 at 20:59
  • I just tried using the %value% and it's crashing the entire program. Not sure why since we don't get an error message before it closes out. It could be our specific computer, since as stated above we have issues with python. I was able to test the merge tool on some test tables and for some reason it won't let me change the output type to another table - instead it automatically creates a new shapefile. Do you have any idea why that's happening?
    – Kara C
    Commented May 22, 2018 at 21:56
  • Sorry, I'm not sure why adding %Value% to the output name of the tool in modelbuilder would make the program crash. That's the correct way to make sure the iterator does not constantly overwrite its own results.
    – lambertj
    Commented May 23, 2018 at 21:22
  • As for merging the tables, I would also try the Append tool and see if that will do what you want. There is also a Join tool in Model Builder that may work if Append doesn't.
    – lambertj
    Commented May 23, 2018 at 21:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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