I'm getting going on a project analyzing animal movement GPS data, and am running into a problem with buffers. I'm trying to determine the area where an animal revisits more than once. So I'm looking for the area where two buffers (made from the movement polylines) overlap (intersect). I can get it to work for different days' data, but the problem is they can also overlap within the same polyline (same day's data). In this case the buffer dissolves over the entire polyline, losing this self-overlap.
An analogy for city dwellers: picture a road (a single polyline) that curves around under itself. I want to determine the area where a 10m buffer of the road overlaps itself.
Is there any way to make a buffer from a polyline such that it creates a self-overlapping polygon when it overlaps with a later part of the same line? Or perhaps a way to get this same behaviour directly from the intersect tool?
I'm somewhat new to ArcGIS, but have extensive math and computing background. I'm starting get familiar with python and writing scripts, so I'm not scared of going down that path if needed. I've browsed the forums but seems that most ArcGIS users want to get rid of self-intersections, whereas that's what I'm interested in!
Points won't work because it will miss intersects that happen between two consecutive points, where the line would be connecting them.
Splitting the line sounds like a possible solution, but how can I avoid the inherent overlap at each vertex of the polyline, between the buffers of the current and preceding line segment? here's a diagram explaining what I mean. The period is the vertex, there will be an overlap at every vertex where the buffer from the two line segments meet (the parentheses).
That sounds like a really good solution. Could you perhaps go into more detail on how I could actually do that? I'm still somewhat new to ArcGIS and GIS analysis in general.
I've done a little bit of searching, and found a bunch of tools in ArcGIS to generate thiessen polygons, but that seems to fill the entire space, not a space within a certain proximity of the line segments i'm using. It also seems to be generated by points and not line segments. Recall that I need to handle overlaps along the line connecting the points as well.
Ok, so I did a TON of research and fiddling around, I think what I may be able to do is the following:
1. Split the polyline into individual line segments. 2. Also convert the polyline into a point file. 3. take the first two line segments and create a buffer around them 4. take the first 3 points and create thiessen polygons from them 5. clip the thiessen polygons using the buffer created in 3. 6. add the thiessen polygon containing the first point into a new shapefile 7. repeat, on the 2nd and 3rd line segments and the 2nd-4th points, etc etc....
This will end up with the original buffer split into sections corresponding to each vertex. The iterative method (only looking at 3 points at a time) will mean that it will create polygons that can overlap, as long as they're at least two points distant.
The only issue I see now is when the animal doubles back on itself right away, I won't catch it until the 2nd waypoint of overlap, But hopefully that will be a minimal problem.
Does this sound feasible or have I been thinking about this for too long and missed something? 🙂
Thanks so much for your suggestions, I never would have come up with this on my own. Adam
OH just a quick addition, The first iteration will have to use the polygons containing the first and second points, and subsequent iterations will have to only include the middle point's polygon. Just wanted to clarify that, I got a little mixed up.