Bird Taxonomy Information For Photosharing Websites

Update: The web based version of the R script below, plus fuzzy name matching, can be found at http://www.faintlake.com/birdname/. A big thanks to Kent Fiala for putting it together!

A few months ago I came across this Flickr photo via the eBird Rarity Photos group (which I co-moderate with Jon Isacoff) and was struck by the inclusion of common and binomial (scientific) names plus a few lines of additional taxonomic information (order and family) for the bird in the photo description.  It read…

Common Name: Crimson-collared Grosbeak
Taxonomy: Passeriformes/Cardinalidae
Specific Name: Rhodothraupis celaeno
February 22, 2012 – Hidalgo County – Pharr, Texas

My first thought: “Wow! Great idea!” I love finding ways to inject more science into the birdwatching scene, so I committed to doing this with all my photos on Flickr from that point forward.  My second thought was “I wonder how long it takes to do that for ALL your photos?” which made me reconsider that commitment…

Now, it’s pretty straightforward to generate those few lines of taxonomic information, thanks to a little R script I whipped together. The script pulls taxonomic info from the Clements Checklist of Birds of the World (eBird’s taxonomy), and can do different species with a single call of the birdlookup() function — so far, it works like a charm!

If you happen to have a bit more web programming savvy than I do, I have a few thoughts for you to consider:

  • Had I the time and the web server, I’d love to make an online, menu-driven version with fuzzy name searching capabilities, so I could quickly copy/paste the HTML snippet without having to fire up R.
  • Formatting options would be excellent, e.g., packing more or less info into each line like putting the binomial name after the common name in parenthesis versus having that info on separate lines.
  • Text boxes that automatically present you with options from the database (much as the Species box does on the eBird website’s Range and Point Map tool) would be ideal.

To see a few examples of how I’ve used it (some day I’ll go back and add such info to my other photos) check out my Flickr photostream and browse the recent photos.

R code:

## Script to spit out taxonomic information for a given
## bird species according to the eBird/Clements taxonomy.

## Load the database, downloaded as a CSV from
##   http://www.birds.cornell.edu/clementschecklist/download/
#Tax = read.csv(file.choose())
Tax = read.csv("Birding/Checklists/Clements-Checklists-6.8.csv", sep=",")

## Lookup function
birdlookup = function(common.name="Snow Goose (Lesser)") {
ID=which(Tax$English.name==common.name);
binomial.name  = as.character(Tax[ID,"Scientific.name"])
fam.name       = as.character(Tax[ID,"Family"])
order.name     = as.character(Tax[ID,"Order"])

## Print out HTML
cat(paste("\n\nCommon Name: <b>",common.name,"</b>
Scientific Name: <i>",binomial.name,"</i>
Taxonomy: ", order.name," / ",fam.name,"
Date - Location (County Co.) State\n\n",sep=''))

} # End of birdlookup()

## Example
birdlookup("Red-tailed Hawk (Western)")

Advertisements
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s