enter image description here

I have some home range estimates for fish that I made using the adehabitat pkg in R. However, a lot of them overlap land, so I need to subtract the area where they overlap with land ("BaseMap") from the total area to get the "water" estimate. I tried with one file, and I think if I use the intersect tool, then the calculate area tool in ArcMap, I can get the area of intersection(overlap), and eventually subtract that from the total values I got from R. The problem is, I have a bunch of fish, and want to automate the process, or else I'll be stuck clicking my life away.

I've tried to build a model using the iterate feature classes option in ModelBuilder, but I don't think it's actually iterating. Plus, I get an error for Calculate areas: "000641 : Too few records for analysis. This tool requires at least feature(s) to compute results", which I don't understand because I've run it with only feature and it works fine. I'll attach my model attempt here. My goal was to calculate the total area of my KUD shapefiles, and then the area of intersection with the basemap, which I will eventually subtract.

Any advice would be greatly appreciated.

  • Added tags to the question and a link to adehabitat in CRAN.
    – om_henners
    Mar 18, 2012 at 6:43

2 Answers 2


If I'm reading this right, you just want the total area of water for all fish, regardless of species (i.e. overlaps between species don't matter). If that's the case then you could use the Union tool in ArcGIS to flatten the habitat zones together. If you wanted to you could then follow with a Dissolve to get one big polygon.

Then you could use any one of Intersect, Erase or Union (again) to find out the area of overlap with the basemap, and therefor work out your final water estimate.


You can possibly do all this in R without needing to use ArcGIS. The rgeos package can do polygon overlays and compute intersections (and also do buffers, points-in-polygon tests etc etc).

You can read in your land data from Shapefiles using package "rgdal", and read raster data using package "raster".

Automating the process for 1, 2, 3, or 10,000 of anything is easy enough with a simple R loop.

Your Answer

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