@log_start_end<EOL>@doc_sub(metric_params, metric_return, cols_note, splits_note, start_emp_example)<EOL>def ssad(patch, cols, splits):
<EOL>sad_results = sad(patch, cols, splits, clean=False)<EOL>for i, sad_result in enumerate(sad_results):<EOL><INDENT>if i == <NUM_LIT:0>:  <EOL><INDENT>fulldf = sad_result[<NUM_LIT:1>]<EOL>fulldf.columns = ['<STR_LIT>', '<STR_LIT:0>']  <EOL><DEDENT>else:  <EOL><INDENT>fulldf[str(i)] = sad_result[<NUM_LIT:1>]['<STR_LIT:y>']<EOL><DEDENT><DEDENT>result_list = []<EOL>for _, row in fulldf.iterrows():<EOL><INDENT>row_values_array = np.array(row[<NUM_LIT:1>:], dtype=float)<EOL>result_list.append((row[<NUM_LIT:0>], pd.DataFrame({'<STR_LIT:y>': row_values_array})))<EOL><DEDENT>return result_list<EOL>
Calculates an empirical intra-specific spatial abundance distribution

Parameters
----------
{0}

Returns
-------
{1} Result has one column giving the individuals of species in each
subplot.

Notes
-----
{2}

{3}

Examples
--------

{4}

>>> # Get the spatial abundance distribution for all species for each of
>>> # the cells in the ANBO plot
>>> all_spp_ssads = meco.empirical.ssad(pat, cols='spp_col:spp; count_col:count', splits='row:4; column:4')

>>> # Convert to dict for easy searching
>>> all_ssads_dict = dict(all_spp_ssads)

>>> # Look up the spatial abundance distribution for 'grass'
>>> all_ssads_dict['grass']
     y
0    42
1    20
2    60
3    60
4    88
5    86
6    20
7     0
8   110
9    12
10  115
11  180
12  160
13  120
14   26
15   11

>>> # Each value in 'y' gives the abundance of grass in one of the 16 cells

See http://www.macroeco.org/tutorial_macroeco.html for additional
examples and explanation