The species-area relationship characterizes the relationship between the the number of species observed at a site and the area being sampled. This relationship is used widely in ecology and conservation biology for tasks such as estimating the location of biodiversity hotspots to prioritize for conservation.

Unfortunately there is no consensus on the form of the equation that best describes the species-area relationship. This means that any estimate of species richness depends on the choice of model. Most of the models have roughly equivalent statistical support and we are going to be making predictions for regions where there is no data so we can’t determine the best model statistically. Instead we are going to take a consensus approach where we estimate the species richness using all possible models and then use the average prediction as our best estimate.

We are going to deal with 5 models today (*which is already kind of a
lot*), but according to some authors there are as many as 20 reasonable
models for the species-area relationship, so we’ll want to make our code
easily extensible. The five models we will work with are those defined
by Dengler and Oldeland (2010).

- Power: S = b
_{0}* A^{b1} - Power-quadratic: S = 10
^{(b0 + b1 * log(A) + b2 * log(A)2)} - Logarithmic: S = b
_{0}+ b_{1}* log(A) - Michaelis-Menten: S = b
_{0}* A / (b_{1}+ A) - Lomolino: S = b
_{0}/ (1 + b_{1}^{log(b2/A)})

All logarithms are base 10. The parameters for each model are available
below, along with the areas at which we wish to predict species
richness. Each sublist contains the parameters for one model in the
order given above. All models
contain b_{0} and b_{1}, but only the Power-quadratic and Lomolino models contain the
third parameter b_{2}.

```
sar_parameters = [[20.81, 0.1896], [1.35, 0.1524, 0.0081],
[14.36, 21.16], [85.91, 42.57],
[1082.45, 1.59, 390000000]]
areas = [1, 5.2, 10.95, 152.3, 597.6, 820, 989.8, 1232.5, 15061]
```

These can be cut and paste into your code. Alternatively, if you’re looking for
a more realistic challenge you can import the related `csv`

files for
the parameters and the areas
directly from the web. Dealing with extracting the data you need from a standard
`csv`

import will be a little challenging, but you’ll learn a lot (and you can
always solve the main problem first and then go back and solve the import step
later; which might well be what an experienced programmer would do in this
situtation).

Write a script that calculates the richness predicted by each model for each
area, and exports the results to a `csv`

file with the first column containing
the area for the prediction and the second column containing the mean predicted
richness for that area. To make this easily extensible you will want to write a
function that defines each of the different species-area models (5 functions
total) and then use higher order functions to call those functions. Depending on
how you solve the problem you may find
zip and
Python’s use of asterisks
handy.