Geophysics, Inversion, and ProgrammingBill Harlan's Page |
|
| Interested in geophysics? Optimal control has regained popularity as the adjoint-state method for waveform inversion. Invert for offset-dependent wavelets and hyperbolic reflections simultaneously. Automatic moveout picking is more robust with global optimization. Signal/noise separation has many geophysical applications. The Rytov/Eikonal approximation of wavepaths properly includes the effect of bandwidth in seismic tomography. A convenient approximation of seismic anisotropy allows you to generalize higher-order moveout, prestack time-imaging, and depth calibrations with the same few parameters. Here's my attempt to motivate the logistic function, useful for predicting oil production. 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 catching Java exceptions properly and routine Java logging 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 my address and a short bio. |