We are happy to announce that package bdvis is on CRAN now. http://cran.r-project.org/web/packages/bdvis/index.html
bdvis: Biodiversity Data Visualizations
Biodiversity data visualizations using R would be helpful to understand completeness of biodiversity inventory, extent of geographical, taxonomic and temporal coverage, gaps and biases in data.
As part of Google Summer of Code 2014, we hope to make progress on the development of this package and the proposed additions are posted here.
If you have never used package bdvis the following code will give you a quick introduction of the capabilities of the package.
First to install the package
install.packages("bdvis") library(bdvis) # We use rinat package to get some data from # iNaturalist project # install.packages("rinat") library(rinat)
Now let us get some data from iNaturlist project ReptileIndia
239 Records 0-100-200-300
We need to convert the data in bdvis format.
- Use fixstr function to change names of two fields.
- Use getcellid function to calculate grid numbers for each records with coordinates.
- Use gettaxo function to fetch higher taxonomy of each record. This function will take some time to run and might need some human interaction to resolve names depending on the data we have.
inat=fixstr(inat,DateCollected="Observed.on",SciName="Scientific.name") inat=getcellid(inat) inat=gettaxo(inat)
Our data is ready for trying out bdvis functions now. First a function to see what data we have.
The output should look something like this:
Total no of records = 239 Date range of the records from 2004-07-31 to 2014-05-04 Bounding box of records 5.9241302618 , 72.933495 - 30.475012 , 95.6058760174 Taxonomic summary... No of Families : 16 No of Genus : 52 No of Species : 117
Now let us generate a heat-map with geography superimposed. Since we know this project is for Indian subcontinent, we list the countries we need to show on the map.
mapgrid(inat,ptype="records", bbox=c(60,100,5,40), region=c("India","Nepal","Bhutan", "Pakistan","Bangladesh", "Sri lanka", "Myanmar"), title="ReptileIndia records")
For temporal visualization we can use tempolar function with plots number of records on a polar plot. The data can be aggregated by day, week or month.
tempolar(inat, color="green", title="iNaturalist daily", plottype="r", timescale="d") tempolar(inat, color="blue", title="iNaturalist weekly", plottype="p", timescale="w") tempolar(inat, color="red", title="iNaturalist monthly", plottype="r", timescale="m")
Another interesting temporal visualization is Chronohorogram. This plots number of records on each day with colors indicating the value and concentric circles for each year.
And finally for taxonomic visualization we can generate a tree-map of the records. Here the color of each box indicates number of genus in the family and the size of the box indicates proportion of records in the data set of each family.
The large empty box at bottom center indicates there are several records which are not identified at family level.
Check the post GSoC Proposal 2014: package bdvis: Biodiversity Data Visualizations for what to expect in near future and comments and suggestions are always welcome.