I am John Kelly, the Administrator of MATLAB Central. As part of the MATLAB Central 15th Anniversary Celebration we thought it would be interesting to have a series of interviews with key contributors to MATLAB Central. Naturally we thought 15 questions seemed appropriate.
Our first interview is with Chad Greene.
Chad has been a top contributor on MATLAB Central since 2012 with his main participation in File Exchange and MATLAB Answers. He is the author of 147 Files on File Exchange, which is a lot. One submission Chad would like you to check out is cmocean perceptually-uniform colormaps
It’s simple, easy to use, and meets a need. The function is aimed at communicating data more effectively, and its implementation is easy to learn and straightforward.
Chad is currently pursuing his Ph.D in Geological Sciences at the University of Texas at Austin. His main focus is in observations of Antarctic ice shelf response to oceanic and subglacial forcing. Basically this means he spends a lot of time researching Antarctica.
Chad was kind enough to let us do a virtual interview.
Chad Greene: When I entered grad school everyone around me seemed to be using MATLAB in their research, and I naturally followed suit.
CG: Both. I was given a project my master’s advisor suggested I do in MATLAB, and that was my first exposure to programming. I found that the more I thought about problems in terms of how I might code them in MATLAB, the better I became as a scientist. Straightforward, repeatable code tends to breed straightforward, repeatable science.
CG: I do receive a fair number of unsolicited emails asking for help. Sometimes folks are thoughtful, personable, and ask interesting questions that challenge my way of thinking–I like that.
CG: I took that at around local midnight at a field site in the middle of West Antarctica. By morning it looked like this
CG: My research group collects data primarily using an old DC-3 airplane which we’ve outfitted with a suite of geophysical instruments. We use lasers to map out the surface of the ice sheet. We use radar to track layers within the ice, and that tells us how Antarctica has changed over many tens of thousands of years. The radar also lets us see what’s happening at the bottom of the ice sheet, which tells us how sensitive an area might be to climate change. And we can learn about past and present geology with data from our magnetometer.
Around Antarctica, half-mile-thick ice shelves the size of US states float over the ocean, and we simply don’t know very much about what’s under there. From our airplane we can measure gravity to such a high degree of precision that we can sense changes in the gravitational pull resulting from deep ocean troughs or high underwater ridges. Knowing where the seafloor is relative to the bottom of the ice gives us an idea of where warming ocean water might flow in and potentially accelerate the ice sheet’s melt rate from below.
While we direct our instruments toward measuring Earth processes, at the same time we’re using Antarctica’s crazy landscape to learn about other icy bodies like Jupiter’s moon, Europa. Ice shelves on Earth are these massive, thick layers of ice that float on the ocean, and it turns out that Europa is covered by a thick layer of ice that floats over its own ocean. The intriguing link here is, we don’t know much about what’s under Antarctica’s ice shelves, but where we’ve looked, even deep under the Ross Ice Shelf, there’s life. So while we’re measuring Earth processes to learn more about the potential impacts of climate change, we’re also developing a radar instrument that will go to Europa. And who knows what we’ll find there.
CG: In the field we primarily use MATLAB for flight planning and preliminary data analysis. The long marathon coding sessions don’t begin until we get back to Austin. Then most of my work involves pairing the laser altimetry data we collect from the airplane, with similar laser data collected by satellites. Getting giant remote sensing datasets working together nicely can present quite a challenge, but there’s a tremendous feeling of satisfaction when you’re analyzing data and you realize you can see processes taking place that no one has ever been able to observe before.
CG: I wrote some flight planning software to help with data collection in Antarctica. It’s absolutely crucial for the safety of my research group’s pilots and engineers to know how much fuel will be consumed on a given flight, how far the plane will be from the nearest safe landing site at any time, and how close the plane might end up flying to rugged mountains in remote regions. My MATLAB flight planning scripts consider topographic features and account for the turning radius of our aircraft when calculating flight lines and estimating fuel consumption.
CG: A few years back I posted some unit conversion functions on File Exchange because after writing them I realized how useful it can be to have simple, intuitive functions to take care of the little stuff. I hoped that by posting my unit conversion functions to File Exchange I might save someone else the trouble of writing similar functions, and that seemed like a net benefit for science.
When I posted my first functions to File Exchange, I didn’t anticipate the benefits of real-time peer review. Pretty soon after posting, I was getting feedback from other File Exchange users who taught me ways to make my codes more efficient.
CG: Documentation. However long it takes to get a piece of code working, spend at least that long writing documentation. It can be a painful process when you’ve finished coding and you just want to be done with it, but you’ll never regret spending the time to write thorough documentation. Documenting is a multipurpose process which serves to teach others, teach your future self, and teach your current self how to use your code. Documenting also helps find errors, identify design weaknesses, and maximize the efficiency of code.
CG: Feedback and understanding. I’ve never taken any courses in programming, so I love getting free lessons from folks who are willing to offer suggestions and share their expertise.
CG: I’d like to see more feedback describing the strengths and weaknesses of a contribution. When I share a function on File Exchange I really like hearing how people are using it, and I like knowing how it can be improved. In the comment section of File Exchange, MATLAB experts have offered me some great advice that has improved my MATLAB skills; but I’ve also benefited from beginners who have identified missing features or unintuitive design in my functions. No matter what your skill level, your feedback is valuable.
CG: My Antarctic Mapping Tools (AMT) project has been a constantly-evolving labor of love for the past few years. I’m proud that I’ve helped strip away some of the technical challenges of working with geospatial data, and as a result I like to think users are able to spend their time on science rather than wrestling with the boring bits of getting different data formats working together. I’m proud that AMT has provided a platform for scientific results to be fully scriptable and therefore fully repeatable, from data importing to data analysis to figure generation.
CG: “Undefined function foo for input type double.” That’s a common error message that pops up frequently in the Answers forum and in File Exchange comments. Sometimes it means the user was trying to call a function that requires a licensed toolbox. Other times it means the function is just in some folder where MATLAB can’t find it.
CG: Many tips and tricks here and there, but the most important concept that’s been ingrained in me is that of the Minimal Working Example. It can sometimes be hard to identify problem lines of code, but it always brings the problem into focus when I go through my code line-by-line, deleting the bits that don’t contribute to the problem. Sometimes that process alone helps me identify the problem before asking for help on the Answers forum. There’s also a broader value in developing an intuition for writing minimal working examples. The ability to isolate relevant processes, to draw direct lines between cause and effect, to communicate clearly and succinctly, and to make results reproducible are all essential to being a scientist.
CG: I stay busy with everything from cooking to woodworking to playing music with friends, but my favorite thing to do? I guess there’s no real joy quite like riding my bike down to the local honky tonk for two steppin’, live music, and whiskey.
Thanks to Chad for taking the time to answer some questions. Be sure to check back for more interesting interviews.
If you have not done so already, please sign up for the 15th Anniversary Celebration for a chance to win some prizes.
To leave a comment, please click here to sign in to your MathWorks Account or create a new one.