I have a layer of forest cover comprising ~ 30,000 individual forest patches, and I need to calculate the amount of forest cover within a 5 km buffer of each patch. The buffers all overlap each other, which stopped me from calculating forest cover with a simple intersect of the buffer layer with the forest layer. In a small test area I have been able to calculate amount of forest by doing a Union on the forest cover and buffer layers, using a definition query on the resulting layer to only show features where buffers and patches intersect, then Spatial Joining this layer to the original buffer layer with a 'sum' merge rule to give the total amount of forest per buffer. However, the largest area I have been able to apply this process to successfully is about 1/1000th the total area that I need to do it to, and even this takes about 1hr of processing to complete. Beyond this the initial Union fails - I think that this is because all the overlapping buffers create an enormous number of features when Union runs.
So, I’m wondering if it will be possible to break this process down into smaller chunks with a Python script? I’m a raw beginner with Python (aside from a few online tutorials I’ve just done) but guessing it might be possible to individually intersect each of the 30,000 buffers with the native forest layer, sequentially write the output of each of these intersections into e.g. a text file, then joining this to the buffer layer’s attribute table. Before I invest too much effort into learning scripting, can anyone tell me if this approach is likely to be doable for a Python newbie or am I barking up the wrong tree?
Thanks in advance,
Jay