Programming isskillbecoming
for the modern geoscientist. I
don’t mean to suggest that all geoscientists should become software
developers and start making full-blown desktop software applications.
But programming can and will super-charge your work, making you
more productive and more thorough. We can write code to outline a
problem, design tests, collect or compute data, or to execute large,
repetitive tasks, freeing us to ask questions. Sound programming
practices share the same qualities that we hold in high regard as scien-
tists and technologists: work that is well-documented, reproducible,
testable, and verifiable for correctness and accuracy.
n this article, we’ll design a 3D seismic survey in order to frame some
of the principles of scientific computing and programming. We’ll cite a
small amount of code in Python throughout the text to bring attention
to some key steps in the process.
In this article, we’ve created a design for a 3D seismic land survey starting from a simple config-
uration of source and receiver surface coordinates. We organized and sorted the trace records
from our would-be survey into bins, and we calculated a variety of bin statistics for mapping
imaging quality indicators: offset distribution, azimuth distribution, fold, and minimum offset.
Lastly, we changed the positions of a number of sources and receivers, and recalculated our
survey statistics to highlight areas at risk of being underserved by insufficient sampling.
When experiments are cast into code, we can change the experiment by changing the code or
in this case, changing the input parameters. As a result, the code becomes a powerful medium
through which the geoscientist can ask questions of his or her data, and gain a deeper insight
into the physical system.