Geophysics, Inversion, and ProgrammingBill Harlan's Page | |
Interested in geophysics? Try wavelet balancing for residual moveouts. Invert for offset-dependent wavelets and hyperbolic reflections simultaneously. Another application is tying surveys . Automatic moveout picking is more robust with global optimization. Signal/noise separation has many geophysical applications. A convenient approximation of seismic anisotropy allows you to generalize higher-order moveout, prestack time-imaging, and depth calibrations with the same few parameters. How about Bayesian optimal control of an acoustic differential equation? Optimal control regained popularity as the adjoint-state method for waveform inversion. The Rytov/Eikonal approximation of wavepaths properly includes the effect of bandwidth in seismic tomography. Here are derivations and notes on geostatistical Kriging and Morlet wavelet transforms. There's more geophysics on another page. |
Interested in optimization and inversion? Instead of regularization, reparameterizing models most effectively stabilizes inverse problems. The simplest non-linear inversion in reflection seismology might be constrained Dix velocity estimation. Here are Java classes for Gauss-Newton and conjugate-gradient optimization and older C++ classes. Use conventional gradient methods to optimize neural networks. |
Interested in programming? Unused generality makes code hard to modify. Try pair programming. Try to avoid premature performance tuning. How do unit tests help? I worry about code complexity Maybe you can avoid extending classes. Here are suggestions on stabilizing a large java application that suffers from poor exception handling. Why do people still use scary class hierarchies? Does your development framework inflict unnecessary dependencies? There's more programming on another page. |
Interested in program management for programmers? Here are some Agile essentials and pitfalls. Have problems prioritizing features? Does extreme programming work ? Have problems starting a project? Sooner or later my projects move to iterative development. Avoid the unstable_branch. I fear demo-driven development. You may find it necessary to defend refactoring. Here are suggestions on how programmers can improve project management. Software development is a negotiation. Ever been burned by an unrealistic development schedule? Open research is most effective. |
Here's a short bio. |