Programming pro bono publico
For some time already I have been doing programming pro bono publico (smart way of saying "for free") for nature conservation. Such work usually involves working with a representative of either governmental or non-profit organisation on a project that supports the protection efforts. An example would be a program for automatic identification of birds from audio recordings - https://github.com/tracek/Ornithokrites. One can think of it as sort of dedicated open source, but it is closer to income-free freelancing .
There is a huge community out there - and here - doing open source development. I was wondering what are your ideas on how nature protection organisations could bring some of these people to help in their cause? Like in other disciplines, also this one needs more and more people specialised in software development, data science, big data and other buzz words. Contrary to the industry or most of research, in this one financing is either on constant level or shrinking, which prevents them from hiring professionals like you.
I tried already on smaller forum to get people on board, but to no avail - no one actually answered. Since open source community is huge, it is ridiculous to think that it was out of selfishness or lack of time. Perhaps then I am asking wrong questions or at wrong places? Or just everyone were busy at the moment .
I would much appreciate your thoughts on programming for nature protection - it is going to serve me as an input to my proposal concerning so-called citizen science. How to get people to help? What to do next to presenting a list of available projects? Would authorship of a paper be a sufficient prize for completing the project or maybe something else would be more beneficial?
June 18th, 2014, 08:35 AM
All you're really saying is "help nature conservation." While people may be all for that, there's no meat to this. What do you need help with? How much time will it take? What language is it in? Do you need more than just time? What are your biggest pain points? How much of a pain will it be to get source control access? etc.
HEY! YOU! Read the New User Guide and Forum Rules
"They that can give up essential liberty to obtain a little temporary safety deserve neither liberty nor safety." -Benjamin Franklin
"The greatest tragedy of this changing society is that people who never knew what it was like before will simply assume that this is the way things are supposed to be." -2600 Magazine, Fall 2002
Think we're being rude? Maybe you asked a bad question
or you're a Help Vampire.
Trying to argue intelligently? Please read this.
June 18th, 2014, 11:36 AM
That is why I was asking what sort of information people would be looking for - and you actually provided such questions, thanks! My intention was not to give any meaty parts, just veggies. You are asking about specific language or source control, while my question was "what are your ideas on how nature protection organisations could bring some of these people to help in their cause?" - so something completely different. But to answer this: no one cares for your technology choice as long as it does the job and is not proprietary. Amount of time you want to spend is your business.
An appetizer was example of an application for bird identification that was created as a result of such collaboration. Based on this one, I can give couple of more concrete ideas that are associated with a source code: https://github.com/tracek/Ornithokrites. Getting it should not be a painful experience - only installing the required libraries. The language is Python.
- We have a signal onset detection, but not offset. In turn, a fixed interval is used for what we call a feature - bird call. Create algorithm that will also perform offset detection, so say that there were calls in [1,1.7], [22.214.171.124], [4.0,4.5] etc. seconds intervals.
- To teach the algorithm one must provide labelled data. Currently it is very painful, since I have to mark in a text file which calls were made by specific bird. GUI for that would be most welcomed.
- Noise reduction is done by spectral subtraction: we analyse spectrum of a few seconds that do not contain bird call and based on this clear rest of the sample. However, the process is quite crude: it produces a tin-like sounds due. One idea would be to use method found in Audacity: How Noise Removal Works - Audacity Wiki. Their source code (C++) can be used directly without problems.
- More ideas how to make it better? There is a lot of space for exploration and research. It could use help of all sorts of skills, from web-skills and GUI programming until machine learning and digital signal processing. No need to be an expert, enthusiasm is just enough. I can guide through all this stuff.
This is an already undergoing project used by the Department of Conservation of New Zealand. It runs on Amazon Web Services Elastic Cloud. Shout if you need more details or something is not clear.