-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathin_04_setting_properties.qmd
203 lines (163 loc) · 9.44 KB
/
in_04_setting_properties.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
---
editor: source
editor_options:
chunk_output_type: console
---
```{r}
library(dplyr)
library(tibble)
library(gt)
library(gtExtras)
```
# Soil setting properties {#sec-in-setting}
Many of the parameters described in Soil Setting are inherently categorical. Classifying the numeric measurements as well can be useful for efficient communication. However, in the absence of inherent groupings in these data, class boundaries need to be chosen carefully.
## Slope classification {#sec-slopeclass}
### Land Use Capability slope classes {#sec-slopeclass-luc}
The most commonly-used slope classification in New Zealand is the one associated with the Land Use Capability (LUC) framework. These classes were formulated primarily to support pastoral agriculture, and the class boundaries focus on slope as an activity limiter, rather than an inherent landscape property. This means that the classification can potentially underperform in landscapes where natural slopes are close to the class boundaries. This is acknowledged in the Land Use Capabilty (LUC) Handbook [@lynn2009] by the inclusion of various options for modifying slope class.
The class boundaries are reproduced from Table 26 of the LUC Handbook in @tbl-in-slpluc. Some generalised groupings are also included - these are discussed in Appendix 1 of the LUC Handbook but are not explicitly defined.
```{r}
#| label: tbl-in-slpluc
#| tbl-cap: "LUC Slope Classes"
dat_in_slpluc <-
tribble(~Code, ~Limits,
'A', '0 - 3',
'B', '4 - 7',
'C', '8 - 15',
'D', '16 - 20',
'E', '21 - 25',
'F', '26 - 35',
'G', '> 35')
tbl_in_slpluc <- gt(dat_in_slpluc) |>
tab_options(
column_labels.font.weight = 'bold',
heading.title.font.weight = 'bold',
table.align = 'center',
table.width = '85%',
row_group.font.weight = 'bold',
) |>
tab_style(style = list(cell_text(color = 'red',
weight = 'bold',
align = 'center')),
locations = cells_body(columns = 1)) |>
tab_row_group(label = 'Wheelable', rows = 1:3, id = 'w') |>
tab_row_group(label = 'Hilly', rows = 4:5, id = 'h') |>
tab_row_group(label = 'Steep', rows = 6:7, id = 's') |>
row_group_order(groups = c('w', 'h', 's')) |>
tab_style(style = list(cell_text(weight = 'bold')),
locations = cells_row_groups()) |>
cols_width(Code ~pct(10), Limits ~pct(30)) |>
cols_label(Limits = 'Slope angle (degrees)')
tbl_in_slpluc
```
::: {.content-visible when-format='docx'}
delete me
:::
::: {#tip-slplim .callout-tip appearance="simple" collapse="true" title="LUC slope limits"}
Note that the LUC Handbook does not provide fully closed limits for slope classes. For consistency, slope class A should be considered to be 0 - ≤4, B as \>4 - ≤8, etc.
:::
### Natural Log classifications {#sec-slopeclass-log}
Work by Speight [@speight1971] promotes the use of slope classes with natural-log derived limits on the basis that they come closest to a universal set of 'characteristic slopes'. The limits proposed are shown in @tbl-in-slpaus. These classes are commonly used in Australian soil survey, and focus more on splitting up low-slope areas of the landscape. As such, these may be more useful for interpreting low-relief landscapes than the LUC slope classes.
```{r}
#| label: tbl-in-slpaus
#| tbl-cap: "Natural-log Slope Classes"
dat_in_slpaus <-
tribble(~Code, ~Name, ~Limits_p, ~Limits_d,
'LE', 'Level', '0 - ≤ 1', '0 - ≤ 0.57',
'VG', 'Very Gentle', '> 1 - ≤ 3', '> 0.57 - ≤ 1.72',
'GE', 'Gentle', '> 3 - ≤ 10', '> 1.72 - ≤ 5.71',
'MO', 'Moderate', '> 10 - ≤ 32', '> 5.71 - ≤ 17.7',
'ST', 'Steep', '> 32 - ≤ 56', '> 17.7 - ≤ 29.25',
'VS', 'Very Steep', '> 56 - ≤ 100', '> 29.25 - ≤ 45',
'PR', 'Precipitous', '> 100 - ≤ 300', '> 45 - ≤ 71.6',
'CL', 'Cliffed', '> 300', '> 71.6')
tbl_in_slpaus <- gt(dat_in_slpaus) |>
tab_options(
column_labels.font.weight = 'bold',
heading.title.font.weight = 'bold',
table.align = 'center',
table.width = '85%'
) |>
tab_style(style = list(cell_text(color = 'red',
weight = 'bold',
align = 'center')),
locations = cells_body(columns = 1)) |>
cols_width(Code ~pct(10)) |>
cols_label(Limits_p = 'Slope angle (percent)',
Limits_d = 'Slope angle (degrees)')
tbl_in_slpaus
```
::: {.content-visible when-format='docx'}
delete me
:::
::: {#tip-slpaus .callout-tip appearance="minimal" collapse="true" title="Additional class splits"}
The Australian Soil and Land Survey Field Handbook [@nationalcommitteeonsoilandterrain2023] notes that in certain circumstances it may be useful to split the classes [VG]{.ceg}, [GE]{.ceg} and [MO]{.ceg}, at 1.8% (1.0°), 5.6% (3.2°), and 18% (10.2°) respectively. The document does not, however, elucidate those circumstances.
:::
### UN-FAO Classification
The following classification was offered by the UN-FAO *Guidelines for Soil Description* [@un-fao2006]. The classes are highly discriminatory on low slopes, but lump most steeper slopes into only two categories. As such they may be of most use in irrigation planning.
```{r}
#| label: tbl-in-slpfao
#| tbl-cap: "FAO Slope Classes [@un-fao2006]"
dat_in_slpfao <-
tribble(~Code, ~Name, ~Limits_p, ~Limits_d,
'01', 'Flat', '0 - ≤ 0.2', '0 - ≤ 0.11',
'02', 'Level', '> 0.2 - ≤ 0.5', '> 0.11 - ≤ 0.29',
'03', 'Nearly level', '> 0.5 - ≤ 1.0', '> 0.29 - ≤ 0.57',
'04', 'Very gently sloping', '> 1.0 - ≤ 2.0', '> 0.57 - ≤ 1.15',
'05', 'Gently sloping', '> 2 - ≤ 5', '> 1.15 - ≤ 2.86',
'06', 'Sloping', '> 5 - ≤ 10', '> 2.86 - ≤ 5.71',
'07', 'Strongly sloping', '> 10 - ≤ 15', '> 5.71 - ≤ 8.53',
'08', 'Moderately steep', '> 15 - ≤ 30', '> 8.53 - ≤ 16.7',
'09', 'Steep', '> 30 - ≤ 60', '> 16.7 - ≤ 31.0',
'10', 'Very steep', '> 60', '> 31.0')
tbl_in_slpfao <- gt(dat_in_slpfao) |>
tab_options(
column_labels.font.weight = 'bold',
heading.title.font.weight = 'bold',
table.align = 'center',
table.width = '85%'
) |>
tab_style(style = list(cell_text(color = 'red',
weight = 'bold',
align = 'center')),
locations = cells_body(columns = 1)) |>
cols_width(Code ~pct(10)) |>
cols_label(Limits_p = 'Slope angle (percent)',
Limits_d = 'Slope angle (degrees)')
tbl_in_slpfao
```
### Data-driven classifications {#sec-slopeclass-dat}
Where high-precision DEMs are available and the areal limits of landscapes are identified, data-driven slope classification is possible. This cannot be done universally; since the classification is an expression of local geomorphology, the area of interest must first be carefully delineated before proceeding. Classes defined in this way may be very useful in accurately defining landforms, but hard to convert to practical use.
## Aspect classification {#sec-aspectclass}
The broadest aspect classification available divides the landscape into flat/sunny/shady (\@tbl-aspcl-ssh). In New Zealand, 'sunny' is roughly 'north-facing'.
For more detail, aspect data can be classified by cardinal compass direction, in 4, 8, or 16 divisions as needed (N, NEE, ENE, etc).
[compass rose image goes here, similar to [the WRB's one](https://obrl-soil.github.io/wrbsoil2022/annex-01-field-guide.html#sec-a1-823-as)]{.diags}
## Relief classification {#sec-reliefclass}
The following classification system is used globally, and developed over many years [see e.g., @hammond1954; @löffler1977; @brabyn1998; @speight2009].
Relief classifications are scale-dependant; these are calculated by convention over a 600 m diameter window. The classification can be adjusted to a smaller or larger window size using the formula $range_{new} = range_{old} × (window_{new} / window_{old})$, where all inputs are in meters.
```{r}
#| label: tbl-in-relief
#| tbl-cap: "Relief classification"
dat_in_relief <-
tribble(~Code, ~Name, ~Rng_m, ~avg_m,
'P', 'Extremely low', '≤ 9', '~5',
'R', 'Very Low', '> 9 - ≤ 30', '~15',
'L', 'Low', '> 30 - ≤ 90', '~60',
'M', 'Moderate', '> 90 - ≤ 150', '~120',
'H', 'High', '> 150 - ≤ 300', '~200',
'V', 'Very High', '> 300', '~500')
tbl_in_relief <- gt(dat_in_relief) |>
tab_options(
column_labels.font.weight = 'bold',
heading.title.font.weight = 'bold',
table.align = 'center',
table.width = '85%'
) |>
tab_style(style = list(cell_text(color = 'red',
weight = 'bold',
align = 'center')),
locations = cells_body(columns = 1)) |>
cols_label(Rng_m = 'Range (m)',
avg_m = 'Average (m)') |>
cols_width(Code ~pct(10))
tbl_in_relief
```