Skip to content

soil_classification_aashto.py

subsurfaceio.functions.soil_classification_aashto

Functions:

Name Description
get_coarse_symbol

Calculation function.

get_fine_symbol

Calculation function.

get_group_index

Calculation function.

get_soil_classification_aashto__astm2015d3282

Calculation function.

get_coarse_symbol

get_coarse_symbol(
    fines_content,
    percent_passing_no10,
    percent_passing_no40,
    liquid_limit,
    plasticity_index,
    non_plastic,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_coarse\_symbol}(FC, P_{10}, P_{40}, LL, PI, NP) \\ \hspace{1em} PI \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( NP, 0, PI \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( P_{10} \le 50 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( P_{40} \le 30 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( FC \le 15 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 6 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets \textrm{"A-1-a"} \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( P_{40} \le 50 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( FC \le 25 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 6 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets \textrm{"A-1-b"} \\ \hspace{1em} \mathrm{condition\_3} \gets \mathopen{}\left( P_{40} > 50 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( FC \le 10 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI = 0 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \textrm{"A-3"} \\ \hspace{1em} \mathrm{condition\_4} \gets \mathopen{}\left( LL \le 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets \textrm{"A-2-4"} \\ \hspace{1em} \mathrm{condition\_5} \gets \mathopen{}\left( LL > 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_5} \gets \textrm{"A-2-5"} \\ \hspace{1em} \mathrm{condition\_6} \gets \mathopen{}\left( LL \le 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_6} \gets \textrm{"A-2-6"} \\ \hspace{1em} \mathrm{condition\_7} \gets \mathopen{}\left( LL > 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_7} \gets \textrm{"A-2-7"} \\ \hspace{1em} \mathrm{symbol} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5}, \mathrm{condition\_6}, \mathrm{condition\_7} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5}, \mathrm{choice\_6}, \mathrm{choice\_7} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{symbol} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
fines_content float

Percentage of fines passing No. 200 sieve

required
percent_passing_no10 float

Percentage passing No. 10 sieve

required
percent_passing_no40 float

Percentage passing No. 40 sieve

required
liquid_limit float

Liquid limit of soil

required
plasticity_index float

Plasticity index of soil

required
non_plastic bool

Indicates non-plastic soil (PI=0)

required

Returns:

Name Type Description
aashto_symbol str

AASHTO classification system symbol

get_fine_symbol

get_fine_symbol(plasticity_index, liquid_limit)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_fine\_symbol}(PI, LL) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathopen{}\left( LL \le 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets \textrm{"A-4"} \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( LL > 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets \textrm{"A-5"} \\ \hspace{1em} \mathrm{condition\_3} \gets \mathopen{}\left( LL \le 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \textrm{"A-6"} \\ \hspace{1em} \mathrm{condition\_4} \gets \mathopen{}\left( LL > 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > 10 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI \le LL - 30 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_4} \gets \textrm{"A-7-5"} \\ \hspace{1em} \mathrm{condition\_5} \gets \mathopen{}\left( LL > 40 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > 10 \mathclose{}\right) \mathbin{\&} \mathopen{}\left( PI > LL - 30 \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_5} \gets \textrm{"A-7-6"} \\ \hspace{1em} \mathrm{symbol} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3}, \mathrm{condition\_4}, \mathrm{condition\_5} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3}, \mathrm{choice\_4}, \mathrm{choice\_5} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathrm{symbol} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
plasticity_index float

Plasticity index of soil

required
liquid_limit float

Liquid limit of soil

required

Returns:

Name Type Description
aashto_symbol str

AASHTO classification system symbol

get_group_index

get_group_index(
    aashto_symbol,
    fines_content,
    plasticity_index,
    liquid_limit,
    non_plastic,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_group\_index}(\mathrm{aashto\_symbol}, FC, PI, LL, NP) \\ \hspace{1em} \textrm{"Values are rounded to nearest integer, with 0.5 rounding up to 1"} \\ \hspace{1em} PI \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( NP, 0, PI \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_1} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( \mathrm{aashto\_symbol}, \mathopen{}\left[ \textrm{"A-1-a"}, \textrm{"A-1-b"}, \textrm{"A-3"}, \textrm{"A-2-4"}, \textrm{"A-2-5"} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_1} \gets 0 \\ \hspace{1em} \mathrm{condition\_2} \gets \mathopen{}\left( PI = 0 \mathclose{}\right) \mathbin{\&} \mathrm{np}.\mathrm{isnan} \mathopen{}\left( LL \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_2} \gets 0 \\ \hspace{1em} \mathrm{group\_index\_plasticity\_index\_portion} \gets 0.01 \mathopen{}\left( FC - 15 \mathclose{}\right) \mathopen{}\left( PI - 10 \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_3} \gets \mathrm{np}.\mathrm{isin} \mathopen{}\left( \mathrm{aashto\_symbol}, \mathopen{}\left[ \textrm{"A-2-6"}, \textrm{"A-2-7"} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{choice\_3} \gets \mathrm{group\_index\_plasticity\_index\_portion} \\ \hspace{1em} \mathrm{default} \gets \mathopen{}\left( FC - 35 \mathclose{}\right) \mathopen{}\left( 0.2 + 0.005 \mathopen{}\left( LL - 40 \mathclose{}\right) \mathclose{}\right) + \mathrm{group\_index\_plasticity\_index\_portion} \\ \hspace{1em} \mathrm{group\_index} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2}, \mathrm{condition\_3} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2}, \mathrm{choice\_3} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{group\_index} \gets \mathrm{np}.\mathrm{clip} \mathopen{}\left( \mathrm{group\_index}, 0, \mathrm{None} \mathclose{}\right) \\ \hspace{1em} \mathrm{group\_index} \gets \mathopen{}\left\lceil \mathrm{group\_index} - 0.5 \mathclose{}\right\rceil \\ \hspace{1em} \mathbf{return} \ \mathrm{group\_index} \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
aashto_symbol str

AASHTO classification system symbol

required
fines_content float

Percentage of fines passing No. 200 sieve

required
plasticity_index float

Plasticity index of soil

required
liquid_limit float

Liquid limit of soil

required
non_plastic bool

Indicates non-plastic soil (PI=0)

required

Returns:

Name Type Description
aashto_group_index int

AASHTO classification system group index

get_soil_classification_aashto__astm2015d3282

get_soil_classification_aashto__astm2015d3282(
    language,
    fines_content,
    percent_passing_no10: Any = float("nan"),
    percent_passing_no40: Any = float("nan"),
    liquid_limit: Any = float("nan"),
    plasticity_index: Any = float("nan"),
    non_plastic=False,
)

Calculation function.

\[ \begin{array}{l} \mathbf{function} \ \mathrm{get\_soil\_classification\_aashto\_\_astm2015d3282}(\mathrm{language}, FC, P_{10}, P_{40}, LL, PI, NP) \\ \hspace{1em} \mathrm{symbology} \gets \mathrm{ReferenceDataSets}.\mathrm{SoilClassificationSymbology}.\mathrm{to\_index\_map} \mathopen{}\left( \textrm{"key"}, \mathrm{str} \mathopen{}\left( \mathrm{language} \mathclose{}\right) \mathclose{}\right) \\ \hspace{1em} PI \gets \mathrm{np}.\mathrm{where} \mathopen{}\left( NP, 0, PI \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_1} \gets FC \le 35 \\ \hspace{1em} \mathrm{choice\_1} \gets \mathrm{get\_coarse\_symbol} \mathopen{}\left( FC, P_{10}, P_{40}, LL, PI, NP \mathclose{}\right) \\ \hspace{1em} \mathrm{condition\_2} \gets FC > 35 \\ \hspace{1em} \mathrm{choice\_2} \gets \mathrm{get\_fine\_symbol} \mathopen{}\left( PI, LL \mathclose{}\right) \\ \hspace{1em} \mathrm{symbol} \gets \mathrm{np}.\mathrm{select} \mathopen{}\left( \mathopen{}\left[ \mathrm{condition\_1}, \mathrm{condition\_2} \mathclose{}\right], \mathopen{}\left[ \mathrm{choice\_1}, \mathrm{choice\_2} \mathclose{}\right] \mathclose{}\right) \\ \hspace{1em} \mathrm{description} \gets \mathrm{replace\_from\_mapping} \mathopen{}\left( \mathrm{symbol}, \mathrm{symbology} \mathclose{}\right) \\ \hspace{1em} \mathrm{group\_index} \gets \mathrm{get\_group\_index} \mathopen{}\left( \mathrm{symbol}, FC, PI, LL, NP \mathclose{}\right) \\ \hspace{1em} \mathbf{return} \ \mathopen{}\left( \mathrm{symbol}, \mathrm{group\_index}, \mathrm{description} \mathclose{}\right) \\ \mathbf{end \ function} \end{array} \]

Parameters:

Name Type Description Default
language str

Language

required
fines_content float

Percentage of fines passing No. 200 sieve

required
percent_passing_no10 float

Percentage passing No. 10 sieve

float('nan')
percent_passing_no40 float

Percentage passing No. 40 sieve

float('nan')
liquid_limit float

Liquid limit of soil

float('nan')
plasticity_index float

Plasticity index of soil

float('nan')
non_plastic bool

Indicates non-plastic soil (PI=0)

False

Returns:

Name Type Description
aashto_symbol str

AASHTO classification system symbol

aashto_group_index int

AASHTO classification system group index

aashto_description str

AASHTO classification system description