Software is a cornerstone of science. Without software, twenty-first century science would be impossible. Without better software, science cannot progress.
But the culture and institutions of science have not yet adjusted to this reality. We need to reform them to address this challenge, by adopting these five principles:
All source code written specifically to process data for a published paper must be available to the reviewers and readers of the paper.
The copyright ownership and license of any released source code must be clearly stated.
Researchers who use or adapt science source code in their research must credit the code’s creators in resulting publications.
Software contributions must be included in systems of scientific assessment, credit, and recognition.
Source code must remain available, linked to related materials, for the useful lifetime of the publication.
Nick Barnes, the author of the Manifesto, explains its creation as follows:
I wrote it for the Climate Code Foundation, initially as a response and contribution to the Royal Society’s policy study on “Science as a Public Enterprise”. It is partly inspired by the Panton Principles, a bold statement of ideals in scientific data sharing. It refines the ideas I laid out in an opinion piece for Nature in 2010.
However, I did not originate these ideas. They are simply extensions of the core principle of science: publication. Publication is what distinguishes science from alchemy, and is what has propelled science – and human society – so far and so fast in the last 300 years. The Manifesto is the natural application of this principle to the relatively new, and increasingly important, area of science software.
My own ideals, influenced by the Free and Open Source Software movement, go beyond those stated in the Manifesto: I believe that Open Source publication of all science software will be one outcome of the current revolution in scientific methods, a revolution in which I hope this Manifesto will play a part.
sfagc implements Automatic Gain Control, a popular technique for normalizing signal amplitudes.
The algorithm is simple: divide the signal by its smoothed absolute value. The smoothing is controlled by rect#= and repeat= parameters, similar to the ones used by sfsmooth.
The following example from rsf/rsf/sfagc illustrates the application of sfagc in comparison with the application of sfpow, which applies a gain based on a power of time. The gains are applied to a shot gather from Alaska from the collection of shot gathers by Yilmaz and Cumro. A similar example appears on page 236 in Jon Claerbout's Imaging the Earth's Interior.