Using ArcGIS (10.3.1), is it possible to create a buffer zone according to the surface with a variable radius (i.e. 5-10-15 Km)? Which means that the buffer zone is not "flat", yet it has a shape that followed the surface.
Thanks
Solved! Go to Solution.
Well, I checked and I have not a buf_3D, so I guess I will have to try again the code; moreover, if I switch one all the layers created by the code I obtain that just only a buffer has specific info in its attribute table (as you can see in the pics; 1-general, 2-detail, 3-detail with attribute table). Therefore, I could consider it a mistake too.



I think at this point it would be best to run the code on the sample you provided me and see if you get the same results. If there is no result, it is not a matter of interpreting the result, but something is going wrong in the process. Als please attach the code that you are using so I can compare it with mine and see is there is something wrong with the code. Perhaps we should include some messaging in the code too to see what is going on.
As an example, lets take an artificial terrain whose elevation undulates every 100 meters by X meters.
The 3D length can be calculated for this and any line of x, y and z coordinates.
x = np.linspace(0, 1000., 11)
y = np.zeros(11)
zm = 20
zs = np.array([0, zm, 0, zm, 0, zm, 0, zm, 0, zm, 0])
el = np.array(list(zip(x, y, zs)))For various cases, you will notice that the zs vary between 0 and zm up and down from start to end.
Some results for various zm
zm = 10 (total and segmented)
[(1004.9875621120891, array([ 100.5, 100.5, 100.5, 100.5, 100.5, 100.5, 100.5, 100.5, 100.5, 100.5]))]
zm = 20
[(1019.8039027185569, array([ 101.98, 101.98, 101.98, 101.98, 101.98, 101.98, 101.98, 101.98, 101.98, 101.98]))]
xm = 30
[(1044.0306508910548, array([ 104.4, 104.4, 104.4, 104.4, 104.4, 104.4, 104.4, 104.4, 104.4, 104.4]))]
zm = 40
[(1077.0329614269008, array([ 107.7, 107.7, 107.7, 107.7, 107.7, 107.7, 107.7, 107.7, 107.7, 107.7]))]
zm = 50