slope analysis

791
4
10-10-2018 08:21 AM
KunomBersh
New Contributor II

I have a line feature with elevation value, I need to extract a point along the line where its slope percentage is out of the range (-0.05 to 0.05), what I tried was I created a number of points by featureverticestopoint with all option, I got a big point data, then I tried to compare slope from one point to the other but I could not come up which point are out of the range, to keep their location, I need a python script, that loop each slope from point to point.  

0 Kudos
4 Replies
DanPatterson_Retired
MVP Emeritus

I can think of an exploratory tool

Profile graph—Charts | ArcGIS Desktop 

and one to extract the data itself from a slope map by densifying a polyline at the point density you want,

Densify—Help | ArcGIS Desktop 

and convert it to points, then

Feature To Point—Data Management toolbox | ArcGIS Desktop  with the vertices option

or

Generate Points Along Lines—Data Management toolbox | ArcGIS Desktop 

then

Extract by Points—Help | ArcGIS Desktop 

KunomBersh
New Contributor II

Thanks Dan Patterson, your input is helpful all the time , but I need to go further, please refer drawing  

The intention is to find out which point has slope percentage out of the range (-0.05 to 0.05), if the average slope from p1 to p2 is in the range “pass or ignore”, and compare p1 to p3 if the slope within the range, jump to compare p1 to p4 if the slope is out of the range, record p4 as deflation point, then start compare from p4 to p5, if it is within the range pass, compare p4 to p6 if it is out of the range record p6 and then again start from p6, and compare p6 to p7  so on….the deflation point will be the starting point for comparison with the next point, if we have millions of points how we can automate using python. 

0 Kudos
DanPatterson_Retired
MVP Emeritus

Kunom, that is a different beast.

The 'slope' you will be calculating isn't the slope that you would get from performing a slope analysis on a raster.

What you need to do is get the X, Y, and Z (ie elevations) at your points of interest.

You then convert the sequential X, Y  values to a distance from the origin, which is P1 in your figure.

P2, etc are some distance from P1 etc etc.

The denser the point network along your line, the finer the gradient you can calculate.

Essentially if your points are sequential in a table, then the calculation can be made as a first pass by calculating the differential slope between points.

ie  (Z2-Z1)/d1  where Z is elevation and 'd' is the distance.

so generically,  (Zn - Zn-1)/dn

Those are your first order differences.  Find the break where the values are out of range, if any.

Do you have the X, Y and Z values in tabular form... or a facsimile of your data that you could post?

I could demonstrate the sequential calculations.

And I presume by millions of points... you mean in one file? or many files?  Doesn't really matter except for the number of times that the process needs to be done. (I don't need a million for now, just a reasonable sample)

A simple demo

KunomBersh
New Contributor II

If this help

OBJECTIDXYZ
1-99127754941760799.2415
2-99127754941761799.2293
3-99127764941762799.2181
4-99127774941763799.2112
5-99127784941764799.209
6-99127784941765799.2097
7-99127794941766799.2114
8-99127804941767799.2168
9-99127814941769799.2236
10-99127814941770799.2313
11-99127824941771799.2404
12-99127834941772799.2533
13-99127834941773799.2662
14-99127844941774799.2735
15-99127854941775799.2767
16-99127854941776799.2816
17-99127864941778799.2919
18-99127874941779799.3056
19-99127874941780799.3157
20-99127884941781799.3154
21-99127884941782799.3109
22-99127894941782799.3076
23-99127894941783799.2908
24-99127904941784799.2706
25-99127904941786799.2495
26-99127914941787799.2285
27-99127924941788799.2075
28-99127924941789799.1864
29-99127934941790799.1654
30-99127944941791799.1443
31-99127944941793799.1233
32-99127954941794799.1023
33-99127954941795799.0812
34-99127964941796799.0602
35-99127974941797799.0404
36-99127974941797799.0391
37-99127974941798799.0181
38-99127984941800798.9971
39-99127994941801798.976
40-99127994941802798.955
41-99128004941803798.9342
42-99128004941804798.9146
43-99128014941805798.8954
44-99128024941807798.8756
45-99128024941808798.8538
46-99128034941809798.8242
47-99128044941810798.7867
48-99128044941811798.7425
49-99128054941812798.6963
50-99128054941813798.683
51-99128054941813798.653
52-99128064941815798.6123
53-99128074941816798.5735
54-99128074941817798.5344
55-99128084941818798.4982
56-99128094941819798.4673
57-99128094941820798.4457
58-99128104941822798.4284
59-99128104941823798.4145
60-99128114941824798.4006
61-99128114941825798.39
62-99128124941825798.3826
63-99128124941826798.3574
64-99128134941827798.3253
65-99128144941829798.2879
66-99128144941830798.2465
67-99128154941831798.2021
68-99128154941832798.1575
69-99128164941833798.1141
70-99128174941834798.0771
71-99128174941835798.0486
72-99128184941837798.0263
73-99128194941838798.0092
74-99128194941839797.9945
75-99128204941840797.98
76-99128214941841797.9674
77-99128214941842797.962
78-99128224941843797.9667
79-99128234941845797.9784
80-99128234941846797.99
81-99128244941847797.998
82-99128254941848798.0028
83-99128254941849798.0045
84-99128264941850798.002
85-99128274941851797.9969
86-99128284941852797.9919
87-99128284941854797.9875
88-99128294941855797.9814
89-99128304941856797.9724
90-99128304941857797.9611
91-99128314941858797.9479
92-99128324941859797.9317
93-99128334941860797.9119
94-99128334941861797.8921
95-99128344941862797.8757
96-99128354941863797.8628
97-99128354941865797.851
98-99128364941866797.8403
99-99128374941867797.8343
100-99128384941868797.8315
101-99128384941869797.8311
102-99128394941870797.8284
103-99128404941871797.8216
104-99128414941872797.8121
105-99128424941873797.8044
106-99128424941874797.8014
107-99128434941875797.8087
108-99128444941876797.8206
109-99128454941877797.8306
110-99128454941878797.8365
111-99128464941880797.8416
112-99128474941881797.8509
113-99128484941882797.8697
114-99128494941883797.8926
115-99128494941884797.9158
116-99128504941885797.9366
117-99128514941886797.9515
118-99128524941887797.9579
119-99128524941888797.9564
120-99128534941889797.9519
121-99128544941890797.9506
122-99128554941891797.9586
123-99128564941892797.9795
124-99128564941893798.0113
125-99128574941894798.0506
126-99128584941895798.089
127-99128594941896798.1145
128-99128604941898798.1302
129-99128604941899798.1413
130-99128614941900798.1485
131-99128624941901798.1525
132-99128634941902798.1537
133-99128634941903798.154
134-99128654941905798.154
0 Kudos