Category Archives: geoscience

Machine learning in Geoscience Seminar: syllabus and review

I led the organization of a “Machine Learning in Geosciences” seminar this fall (2018). I did not do it alone, I worked with my advisor Jeff Nittrouer, and Texas AM professor Ryan Ewing. My responsibilities included selection of reading material for the course; Jeff and Ryan handled the invited speakers and student presentations.

The seminar was not for credit, but we did have a healthy 10-12 students and faculty participate throughout the semester. Ultimately I think the seminar was a huge success; I learned an absolute ton about machine learning, and consider myself to be literate on the subject now. In fact, I’ve even begun to incorporate some deep learning into my research and have written a proposal for funding to continue to pursue this endeavor. 

The course design was roughly as follows:

  • four (4) weeks of background reading on machine learning tools, techniques, vocabulary
  • four (4) weeks of primary scientific readings on various geoscience subjects
  • three (3) weeks of invited presenters
  • two (2) weeks of student project presentations

You can view the complete, detailed syllabus we created here:
This page contains a ton of resources.

AGU posters 2018: SedEdu and Density Stratification

I’m presenting two posters at AGU this year!

I’m really excited to be sharing a project I’ve been working on which integrates research and teaching. I am giving a poster Friday morning titled: “SedEdu: developing and testing a suite of computer-based interactive educational activities for introductory sedimentology and stratigraphy courses”. The poster will explain my SedEdu project and particularly emphasize the rivers2stratigraphy moduleHere is the abstract. Below is the poster, click the image to view a pdf.

I’m also looking forward to sharing an update on my ongoing research on the sediment transport in the Yellow River, China. This poster will be on Friday afternoon, and is titled: “Suspended-sediment induced stratification inferred from concentration and velocity profile measurements in the flooding lower Yellow River, China”. Here is the abstract.

If you’re going to be at AGU, let’s chat!

The Rouse-Vannoni-Ippen concentration profile interactive module

I have made another interactive GUI toy model thing for the teaching of the Rouse concentration profile. The activity is really simple right now, but I may add more features in the future. You can see the source code and download the module here.

You can specify the grain size and shear velocity (two of the major controls on the Rouse profile) and see how the profile responds in a simplified model (helpful for teaching) and the full Rouse model.

The simplified model is useful for teaching the mechanics of the concentration profile and can be defined as:

where c is the concentration at height above the bed z, cb is a known reference concentration defined at height b above the bed, and ZR is the Rouse number given as:

where ws is the settling velocity of the grain size in question, α and κ are constants equal to 1 and 0.41, and u* is the shear velocity.

You can see from the form of this simplified model how, for a constant Rouse number, the profile is an exponential decay from the reference concentration. It is also easy to see how changing the Rouse number, through a change in grain size (settling velocity) or shear velocity will change the rate of decay.

The full model has just an additional term to consider, but has the same basic exponential decay form. Here, H is just the total flow depth.


The module uses the Garcia-Parker entrainment relation to calculate near-bed concentration, and used the Ferguson-Church relation for settling velocity.

The Graduate Interdisciplinary Earth Science Symposia: a year in review, and looking to the future

Below is an article I wrote for our department newsletter about the GIESS symposia. I’m publishing it here because it didn’t make the cut for the newsletter in this cycle, and it’s kind of a time-sensitive article because it justifies moving forward with GIESS in the current format.

There is a short description of what GIESS is in the third paragraph.


The Graduate Interdisciplinary Earth Science Symposia:
a year in review, and looking to the future

Andrew J. Moodie

Scientists are typically effective written communicators, since professional success in academia is so closely linked with funded grant proposals and published manuscripts. However, oral communication skills are frequently considered subordinate and not consciously developed and practiced by early-career scientists.

In the summer of 2017, a group of EEPS graduate students addressed this training gap and the shortcomings of a weekly departmental seminar series by launching the Graduate Interdisciplinary Earth Science Symposia, or GIESS.

GIESS (pronounced “geese”) provides a forum for oral communication skill development while simultaneously encouraging department-wide participation in advancing the presenter’s science. The GIESS committee’s plan was to decrease the burden from weekly to monthly, limiting the seminar to two speakers, and intentionally adding prestige to presenting, thereby increasing the quality of the talks. Furthermore, the plan introduced “pop-up talks”, brief presentations allowing no more than two slides for no more than two minutes, as a lower-stakes opportunity to practice oral communication. Finally, lunch would be provided for participants to bolster attendance, and year-end awards would be given to select speakers and participants. Finally, department members were invited to provide feedback through an online survey at the end of the Spring semester to assess the inaugural year of the GIESS. The survey garnered 22 responses, predominantly from graduate students (19 of 22, 86%).

a) respondents overwhelmingly agreed that the GIESS was an improvement over the old seminar format. b) a paired t-test determines at above the 99% confidence level that the perceived quality of talks was improved by the GIESS format (p = 0.0001), based on respondents’ declared average quality of talks in the old seminar format and in the GIESS format on an integer scale from 1–10. c) respondents agreed that the pop-ups were a good addition to the GIESS. d) unsurprisingly, respondents were very happy with lunch. It should be noted that the survey designer (that’s me) has no training in survey design and the sample size is small, so the results presented herein should not be expected to withstand rigorous methodological or statistical scrutiny.


Overwhelmingly, participants agreed that the GIESS was an improvement over the old Friday Seminar format (Figure 1a, 68%), suggesting that the committee’s primary objective to improve the program was achieved. More importantly, the committee met the goal to improve the quality of the talks. A paired t-test determines at above the 99% confidence level that the perceived quality of talks was improved by the GIESS format (Figure 1b, p = 0.0001), based on respondents’ declared average quality of talks in the old seminar format and in the GIESS format on an integer scale from 1–10. The mean score given to talk quality improved from 4.9 to 7.6 between the old format and the GIESS format, respectively. The committee intends to have the presentation format in the GIESS remain largely the same in the 2018–19 year, possibly tweaking the duration of each talk based on respondent feedback.

Pop-up talks were a new addition, so a close look at participant opinions is warranted. Pop-up talks were scheduled between the two main presentations of the meeting, with typically three to five people participating. The addition of a short presentation style was decidedly favored (Figure 1c), with more than 80% of respondents agreeing that pop-ups were a positive addition. However, three respondents (15%) felt strongly that pop-up talks were a bad idea, though none clarified their position in an open-ended response. Therefore, the committee will keep pop-ups as a permanent feature of the GIESS. The committee also surveyed respondents about allotting time for audience questions of pop-up presenters. Seven respondents stated there should be no questions, seven were neutral on the issue, and seven think it would be a good idea; in the 2018–19 year, the committee will explore allowing questions directed at pop-up presenters.

Unsurprisingly, when more than 80% of survey respondents are hand-to-mouth graduate students, offering a free lunch to participants was favored; 20 out of 21 survey respondents agreed that providing lunch was a positive (Figure 1d). Attendance at the GIESS was vastly improved from the old seminar format, however, the number of students and faculty in attendance faltered late into the year. The committee tentatively attributes the increased attendance to lunch, though hopefully participants also came for the programming. In specific lunch-related feedback, one student asked for a “dessert table” next year, and more than one respondent added that they would like to see “platters of Chick-fil-A spicy chicken sandwiches with tangy Polynesian sauce.” Noted.

Finally, the GIESS committee would like to recognize the award winners who gave outstanding presentations, creative pop-ups, and engaged throughout the symposia. Best Talk awards for the year go to Brandee Carlson and David Blank, whose research presentations are respectively titled “Tie channels on deltas: A case study from the Huanghe (Yellow River) delta, China” and “Discrete element method as a tool for simulating megathrust earthquakes: insights into stress transfer”. Chenliang Wu and Cailey Condit received the Best Pop-up awards for presentations that were both fun and informative. The Best Participant awards were given to two first-year students Michael Lara and Patrick Phelps, because of their active engagement as participants in all aspects of the GIESS.

I would like to directly thank the committee members who helped make this inaugural year of the GIESS an outstanding success: Laura B. Carter, James Eguchi, Sahand Hajimirza, Harsh Vora, and Daniel Woodworth. Let’s make it even better next year.


Predicting equilibrium channel geometry with a neural network

In an attempt to learn more about ML I decided to just jump in and try a project. Predicting channel geometry with a simple neural network.

[source code]

All in all, I’m fairly sure I didn’t learn anything about equilibrium channel geometries, but I had some fun and learned an awful lot about machine learning and neural networks. A lot of the concepts I have been reading about for weeks finally clicked when I actually started to implement the simple network.

I decided to use the data from Li et al., 2015 [paper link here], which contains data for 231 river geometries.

The dataset has variable bankfull discharge, width, depth, channel slope and bed material D50 grain size.

We want to be able to predict the width, depth, and slope from the discharge and grain size alone. This is typically a problem, because we are trying to map two input features into three output features. In this case though, the model works because the output H and B are highly correlated.

The network is a simple ANN, with one hidden layer with 3 nodes. Trained with stochastic gradient descent. Training curve below.

Markov Chain stratigraphic model

I recently returned from the NCED2 Summer Institute for Earth Surface Dynamics at Saint Anthony Falls Laboratory at University of Minnesota, which is a 10-day long, intense workshop for early-career scientists to talk about novel methods and ideas in our field. This was the ninth, and hopefully not last, year of the meeting.

Typically the participants will do some sort of physical experiment (kind-of what the lab is known for being the best in the world for), but this year’s theme was about mathematics in Earth surface processes. We covered a range of subjects, but a lot of discussion came back to random walks, diffusion-like processes/simulations, and probability. Kelly Sanks and I worked on a project together, which combined a lot of these ideas.

Our question was: is deltaic sedimentation, and the resulting stratigraphy random? Specifically, we hypothesized that a pure “random walk” model can not capture the effect of the “stratigraphic filter”. However, a biased random walk model, where Δz depends on the previous time’s Δz, can capture the dynamics of the system sufficiently to look like an actual stratigraphic sequence. The null hypothesis then is that both random walk models are indistinguishable from a stratigraphic succession.

To attack the problem, we decided to use a simple biased random walk model: Markov chains. These models have no physics incorporated, only probability, which made the project simple and easy to complete over beers at night. The Markov chain can be summarized as a sequence of “states” where the next state is chosen at random based on some probability to change to another given state or stay at the same state. Repeating this over and over gives a chain/sequence of states. In our simulation, the “states” were changes in elevation. Said another way, the next timestep’s change in elevation is dependent on the current timestep’s change in elevation. This hypothesis is grounded in the physics of river-deltas, whereby channel location (and thus locus of deposition/erosion elevation change) does not change immediately and at random, but rather is somewhat gradual.

When a system has more than a few states it becomes complicated to keep track of the probabilities, so we naturally use a matrix to define the probabilities. The so called “transition matrix” records the probability that given a current state (rows), the next state will be any given state (columns).

We used the Tulane Delta Basin experiment 12-1 which has a constant Qw/Qs ratio and RSLR rate for our data. This is kind of necessary for our question because we needed to know what the elevation was at some regular interval, and what the resulting stratigraphy after deposition and erosion was. The experimental delta surface was measured to mm accuracy every hour for 900 hours. We calculated Δz values over the entire experiment spatiotemporal domain, to inform our main biased random walk model.

Markov transition matrix of dz values calculated from the experimental elevation profiles. (axes are in mm/hr)

The main data-trained transition matrix shows that states will tend towards slightly aggradational. This makes sense since this system is deterministically net aggradation due to a RSLR forcing. We compare this data-trained model with two synthetic transition matrices: a Gaussian distribution (intentionally similar to the data) and a uniform distribution (i.e., purely random).






We then simulated the elevation change sequences predicted by each of the transition matrices and used the stratigraphic filter concept to determine the resultant stratigraphy. We did this a bunch of times, and totally chose one of the more “convincing” results (i.e., where the slope difference between simulations was larger).

a SINGLE realization of the modeled Markov sequences.

We found that the data-trained model reproduced the stratigraphic sequences from the experiment (based only on comparing slopes…). The other models were not too far off, suggesting that deltaic sedimentation is in fact not too far off from purely random.

Ultimately, we would simulate the models hundreds of times and make ensembles of the results to interpret. We also would use more meaningful statistics of the stratigraphic sequences to compare model and data, such as # of “channel cuts”, unconformity-bed thicknesses, “drowned” sequences, etc.

The main source code for all this lives on github here ( if you are interested in checking anything out or exploring some more. You will need to obtain the data from the SEN website listed above, or ask me to send you a copy of the data formatted into a `.mat` file (it’s too big to put on here…).
If you format the data yourself, produce a 3D matrix with each cell where the x-y-z coordinates are time-across-along.

Authors of the code and project are Kelly Sanks (@kmsanks) and Andrew J. Moodie (@amoodie).

Rivers 2 Stratigraphy

Explore the construction of stratigraphy through the interaction of channel geometry, lateral migration rate, subsidence rate, and avulsion frequency — interactively!

Imagine there is a river in a subsiding basin. As the river laterally migrates, it leaves behind sandy bar deposits, which are encapsulated in a matrix of floodplain muds.

The river deposits are lowered away from the basin surface by subsidence, they become part of the stratigraphic record (Figure below). Depending on the amount of lateral migration, frequency of avulsion, and subsidence rate, the degree of overlap of channel bodies in the stratigraphic deposit will vary. The movie above shows a vertical slice across the basin width, and a channel (the colorful boxes) laterally migrating across a river floodplain.

The movie comes from an educational module I am working on called Rivers2stratigraphy ( The module is open source and relies only on Python dependencies.

This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No.1450681. Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors(s) and do not necessarily reflect the views of the National Science Foundation.

Density stratification in fine-grained rivers

2017 was the year of my first talk at the fall meeting of the American Geophysical Union. It was pretty exciting and I was extremely nervous. In the end, it went okay, and I was able to present my work to a broad range of scientists. I presented my ongoing research based on field survey of the Yellow River, China during flood.

I hypothesized that the river would exhibit a density stratification in the flow. Density stratification occurs in a river because the entrainment of sediment into the flow affects the properties of the flow in bulk. I’ll explain with the help of a few graphics below. The below image is a profile of an open channel flow (thick black line is the channel bed) and the top of the graphic is the water surface.

a. the velocity profile of a steady and uniform open channel flow is well described by the logarithmic “law-of-the-wall” or log-law. This log-law takes the form of which predicts time-averaged velocity (u bar) as a function of the shear velocity (u*) and the log of the height above the bed (z). z0 is a reference height very near the bed, and κ is a constant. The equation, evaluated over the flow depth is shown on the left side of figure a. The implication of higher velocities near the surface means that momentum (ρ=mv) of the flow is higher near the flow surface than the bed. This condition is unstable, so momentum is redistributed from the surface to the bed through mass transfer. When the flowing mass of high momentum fluid reaches the bed, it dissipates, forming turbulent eddies that shed off the channel bed and move up into the water column.


b. the turbulent eddies coming off the channel bed cause sediment to be entrained into the flow and brought up from the bed towards the surface. The vertical distribution of sediment through the water column depends on the size of particles and the entraining velocity and can be estimated by the exponential Rouse equation.which predicts time-averaged concentration (c bar) as a function of the time-averaged near-bed concentration (cb bar) as a function of the height (z) above the bed (b) to the flow depth (H) and the Rouse number (ZR) which balances the settling velocity of particles (ws), to the entraining shear velocity (u*). The Rouse equation and log-law work well only in dilute suspensions, that is, flows in which the concentration of sediment is small enough to have no feedback on the flow.


c. In flows where the sediment concentrations are significant enough near the bed to have a feed back on the system a density stratification develops. In short, the high concentration of sediment prevents momentum redistribution from the surface fully reaching the bed, which has the net effect of reducing sediment suspension and enhancing flow velocities near the surface.


Because sediment transport (qs is width averaged transport) is the product of the velocity and concentration profiles integrated over the flow depth:this density stratification could significantly alter total sediment transport rates in fine-grain rivers from existing predictions. My ongoing research in this field is trying to resolve precisely what conditions lead to the development of a density stratification in the river.

This material is based upon work supported by the National Science Foundation Graduate Research Fellowship under Grant No.1450681. Any opinion, findings, and conclusions or recommendations expressed in this material are those of the authors(s) and do not necessarily reflect the views of the National Science Foundation.

Hurricane Harvey update

The Greater Houston Metro just got pounded by one of the largest storms (in terms of rainfall) on record: Hurricane Harvey. There was widespread flooding across all parts of the metro, but my home and Rice university were largely spared. The skies are clear today, after ~5 days of nearly continuous rainfall. However, the cleanup effort for this disaster will last years and cost billions of dollars. Nonetheless, I am certain that Houston will come back stronger and better than ever. This ordeal has made me even more proud to be a Houstonian.

At my house, we had a small leak in an interior bathroom, but because we received so much rain over the duration of the event, the roof became saturated and the sheetrock partially collapsed. No one was hurt, thankfully, and repairs are already underway.

I am currently working on an NSF RAPID grant, which I compiled the following figure for. This figure shows total rainfall during the Harvey event with the City of Houston (CoH) labeled. The precipitation data were collected from the National Weather Service and then summed to produce the total rainfall numbers for the below plot. I am proposing some work on the Brazos River (BR) so this feature is also labeled.

Outreach module — Flooding risk in low-lying landscapes

I have put together an outreach module that describes some of the risks of flooding in low-lying landscapes. The module runs in Matlab, either within a licensed environment, or with the Matlab Runtime Environment (which is available to anyone).

Accompanying the GUI is a worksheet that steps through all the aspects of the GUI and attempts to demonstrate the principles of flooding in deltas without detailing the math or physics behind the model. My hope is that it will be helpful to High School educators in their course work.

So far, I have only written a worksheet targeted at 9-12th graders, but plan to write two more (one for younger students, and one for more advanced undergraduate/graduate students) worksheets in the near future.

Below is a demonstration of the GUI. The full information for the module (including the source code) is on my GitHub here. The project website is here.



This material is based upon work supported by the National Science Foundation (NSF) Graduate Research Fellowship under Grant No.145068 and NSF EAR-1427177. Any opinion, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.