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
Are there any buf_3D featureclasses created? This is the actual result of the tool and not the pnt_buf featureclasses. If these are not created the process is not running completely and some error is occurring in the process.
If I select a single line that passes through some relatively steep slopes (line Line_D 357):
... and I extract the slope values, the mean slope is 25.7%:
This would mean that the buffer should pass at 2905 meters from the center point. It passes at 2920. The reason for this difference is that the slope direction is taken into account. If you traverse a steep slope maintaining the same altitude, you will traverse at a slope of 0%. A slope map returns the maximum slope in any direction..
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 <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>linspace<SPAN class="punctuation token">(</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">1000</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="number token">11</SPAN><SPAN class="punctuation token">)</SPAN> y <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>zeros<SPAN class="punctuation token">(</SPAN><SPAN class="number token">11</SPAN><SPAN class="punctuation token">)</SPAN> zm <SPAN class="operator token">=</SPAN> <SPAN class="number token">20</SPAN> zs <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>array<SPAN class="punctuation token">(</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> zm<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> zm<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> zm<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> zm<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">,</SPAN> zm<SPAN class="punctuation token">,</SPAN> <SPAN class="number token">0</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN> el <SPAN class="operator token">=</SPAN> np<SPAN class="punctuation token">.</SPAN>array<SPAN class="punctuation token">(</SPAN>list<SPAN class="punctuation token">(</SPAN>zip<SPAN class="punctuation token">(</SPAN>x<SPAN class="punctuation token">,</SPAN> y<SPAN class="punctuation token">,</SPAN> zs<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>
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
Ok, I will try to save and reboot the program. Anyway, the obtained raster is not like in the Xander's picture, it is "flat" as I had done it with the buffer wizard
well that one is pretty well raised when the condition is true. Sometimes, a save, shut down and reboot fixes things to ensure that locks are removed. Don't browse with other applications either
Thank you for replying me.... So I used the Xander's code in my python, it gave me the buffer zones (max dist. 3000) yet it showed an error:
"Runtime error Traceback (most recent call last): File "<string>", line 72, in <module> File "c:\program files (x86)\arcgis\desktop10.3\arcpy\arcpy\management.py", line 3246, in AddField raise e ExecuteError: ERROR 000464: Cannot get exclusive schema lock. Either being edited or in use by another application. Failed to execute (AddField)."
Some suggestions?
Check xander_bakker's solution for surface buffers
Los miembros registrados pueden publicar, seguir actualizaciones y más. ¿Nuevo aquí? Regístrate gratis.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.