Skip to content

dacracot/BirdNET-BarChart

Repository files navigation

dacracot/BirdNET-BarChart BirdNET-BarChart

Display BirdNET-Analyzer1 data as a dial, bar chart, and table in a browser updating hourly with up to date data.


Components:

This project transforms audio recordings to web displayable graphics of heard bird species.

  • Using primarily bash, SQL, and XSLT to drive the hourly processing.
    • Run the sound recorder to capture bird song.
    • Run the analysis to identify the bird song.
    • Run queries to get celestial data.
    • Load the database with the observed species and celestial data.
    • Extract the database data to XML.
    • Transform XML using XSLT to produce charts and tables.

User Interface:

  • dial
    • dial
  • bar chart
    • bar chart
  • table
    • table

Dependencies:

Software and what breaks if you skip it...
  • Apache[optional]
    • Without a HTTP server, you will have no way to view the generated HTML from this headless configuration.
    • You may optionally choose to use any HTTP server. I use Apache.
  • Bash
    • Assuming you are on linux. MacOS will likely work, but I've done no testing.
  • bc
    • The daily calculations for moon phase will fail without bc, affecting the dial display of the moon.
  • BirdNET-Analyzer1
    • This is the engine that recognizes bird sound and assigns species. The project is pointless without it.
  • git
    • This is necessary if want automatic updating. The release is controlled using the main branch. Without it, you would remain on a snapshot version until you changed it.
  • gifsicle
    • This is necessary for animating the lunar and seasonal dials.
  • imagemagick
    • This is necessary for animating the lunar and seasonal dials.
  • Java
    • The JRE is used execute the Saxon target referenced below.
  • jq
    • This is used to transform JSON to XML. Without it, most of the external integrations will fail and cascade into the display.
  • jQueryUI
    • The web user interface utilizes some tools, particularly tabs, from the jQuery UI libraries. Without it, the user interface will render very poorly.
  • SQLite
    • The primary data store, without which nothing will work.
  • sshpass
    • The backup mechanism uses this to do a remote log in, but leaving the configuration blank will cause this process to be skipped.
  • sSMTP
    • Sends mail to an external address using encryption protocol. Any error will be in the logs, but sometimes notification is better.
  • Saxon
    • The XSLT is driven by the Saxon implementation. Most of the XML processing, including processing the latest UI components uses XSLT.
  • SVG
    • Not exactly an dependency other than your browser needs to understand SVG. Few do not.
  • wkhtmltoimage part of wkhtmltopdf
    • This is necessary for animating the lunar and seasonal dials.
  • XSLT
    • Same as above, this is a language used a lot for aspects of this projects transformation of data from audio recordings to web displayable graphics.
Websites

Footnotes

  1. Kahl, S., Wood, C., Eibl, M., & Klinck, H. (2021). BirdNET: A deep learning solution for avian diversity monitoring. Ecological Informatics, 61, 101236. 2

About

Display BirdNET-Analyzer on a solar dial in a browser.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •