Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

enter image description here

Hi all

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.

share|improve this question

migrated from Mar 17 '12 at 23:55

This question came from our site for professional and enthusiast programmers.

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

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.

share|improve this answer

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.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.