As we move forward each year, urbanization and industrial activity cause sustainability to fall to a new all-time low. Canadian birds are major contributors to our biodiversity but are victims of habitat loss, collisions, the climate crisis, and more, as a result of human actions. In fact, more than 3 billion birds, almost 1 in 3 individuals, have been lost from Canada and the US in under 50 years. We decided to build our package, NatureReads, that would process and visualize the data of the birds in an effort to help preserve the species.

What it does

Using NatureCounts, one of the largest databases on Canadian birds managed by Birds Canada, we developed various functions that visualize and filter information in meaningful graphs, tables, and maps. For example, people are able to find a map of the migration trend of a species, a species list for a specific area, or a graph of the number of sightings per province. We then compiled all of these functions in a package called NatureReads.


  • Gets (or plots the distribution of) the top n most frequent species in an area.
  • Generates a named list of the region data in a specific provided region
  • Searches for a species by a name, returning the first ID in the search results
  • Gets the English name for a species given its ID, falling back to the scientific name
  • Gets (or plots) the most common species in each area of the provided data
  • Finds observations in a region defined by a polygon
  • Plots the population density of a species.
  • Plots the estimated migration path of a species filtered by year.
  • Plots a limited number of the locations of the observations of the given data which can be filtered by a specific species
  • Plots the line graph of the number of sightings per year
  • Plots the bar graph of the number of sightings per province
  • Plots a limited number of sightings of the given data
  • Calculates the relative observation trend for a species
  • Gets (or plots) the area containing the most sightings of a species
  • Gets the province or state containing the most sightings of the species in the given data

How we built it

We used R for all the functionalities of our package and used the naturecounts dataset for our data. For our functions to display the data, we used the Plotly library to visualize information in user-friendly and accessible ways. We also used some other libraries, such as dplyr, to make the data processing easier, and sf to process geographic data.

Challenges we ran into

Most of us had no experience with R before starting, so it was a challenge to learn the language and make good use of it in the limited time we had.

Accomplishments that we're proud of

Creating a functional package with useful functions for data processing and visualization in a limited time frame.

What we learned

  • R
  • How to do data analysis and visualization with R
  • R package design

What's next for NatureReads

We plan on making the API more self-consistent and adding more features to our package such as ML prediction models on bird locations.

Built With

Share this project: