 I'm going to have our coffee, so stay put, don't run off for coffee. Okay, thanks Albert. How's the sound? Seems okay. Gotcha. Okay, so as Albert said, CSTMS is one of the sponsors for this meeting, so I thought it would be appropriate to say a few words about some of the resources that CSTMS can offer for this community. So first just a couple words about what is this thing. In the early 2000s, a group of researchers broadly interested in the earth surface processes, hydrologic processes, sediment processes, geomorphology came together in a series of workshops and conversations and white papers to try to craft a vision for what modeling might look like in the future or should look like. So modeling in that, at least those parts of the research community I was familiar with was pretty fragment. Each particular lab or group had its own code. People tended not to share their codes. There was a lot of sort of idiosyncratic engineering, let's say, that made it hard for codes to talk to one another and so on. So from those conversations, there emerged a vision of a community-based effort to develop an approach to modeling that involves open sharing of software, involves moving toward trying to standardize some of the concepts and then involves some mechanisms by which one might couple codes together where that made sense to do. So it was out of that that the community surface dynamics modeling system was born with an initial grant from NSF in 2007. As of this week, we're just starting the third phase of that activity with a new round of funding from NSF. So the CSTMS community has grown over that time. So it's a little over 1,700 members now, which includes, I suspect, some of you. And it's easy to become a member. It's free. It doesn't cost anything. And the membership, broadly speaking, represents a variety of different fields that deal with the Earth's surface in one fashion or another. So the CSTMS community is organized into a set of working groups and focus groups, which are listed in those lower panels. There are some sort of broad domain focused groups representing terrestrial coastal marine domains. There's some cross-cutting groups that deal with things like cyber infrastructure and education. Then there's a cluster of focus groups that deal with various specialty topics. So these include everything from ecosystem dynamics to tectonics and geophysics. But as you can see, the biggest of these focus groups, half of the population is hydrology. Hydrology is a big piece of this community. So as the CSTMS community grew and matured and started to think about what are the challenges ahead, it became clear that there needed to be support for three areas of activity. And those are community organization and coordination, resources for computing and software, and resources for education. So I'll touch on each of these things in turn, focusing on the computing piece. So in terms of community organization today, the key areas of activity that CSTMS helps out with are really two. One is there's a web portal that Albert has created and maintains, and that web portal has all kinds of tools and resources. But one of the key ones is what's called the model repository. So this is essentially a clearinghouse for computational models in things having to do with the Earth's surface. So these are basically codes where the developers have said, I want to make this openly available to the world and it'll be listed on this website. We host some of them on our servers. In other cases, the developers themselves host them on their servers. But in either case, the repository provides metadata about the models, bibliographic information, many of them have a DOI and are citable objects, and so on. So here I've listed a few, for example, that have to do with hydrodynamics. So it includes Anuga, Delft 3D, Geoclaw, Telemac, et cetera, et cetera. So there's a wide variety of hydrological tools. The second area of community coordination has to do with sponsoring meetings and workshops like this one. CSTMS hosts an annual sort of all-hands meeting, usually here in Boulder, usually in May. So the next one will be the third week of May in 2019, if you're interested in that, mark your calendar. So that's a little bit about community support. Education, CSTMS provides resources both for educators and for people who want to learn. There is a collection of educational materials online under education, and they include things like lab exercises that you can do with your students that involve models, movies, various kinds of tutorials and things like that. Here are a couple of examples of exercises that have to do with flow routing and flood inundation and so on. And then there's a series of resources for professionals to learn new tips and tricks, so things like tutorials and one-day boot camps on learning Python, all the way to more sophisticated topics like learning how to use standardized interfaces for models. We've just started a webinar series. The first one was last month, and there's a couple more coming up here, and all of these webinars are recorded. So if there's a topic you're interested in, take a look online and the recording should be there. So the third area has to do with computing resources, and here the two pieces are hardware and software. So CSTMS maintains here in Boulder a small high-performance computing facility, and this is really designed not to be kind of a major production facility, but to be a place where someone who wants to get involved in HPC can come get access to it with a fairly low bar. So any CSTMS member can request access to this system, learn how it works, get accustomed to how you use an HPC, and then once you've proved your bona fides, you can transfer to a larger system. There is a larger NSF-supported facility here that we can help you with, and of course there are plenty of other facilities around the country and around the world. The other side of this is software, and one of the key things that the integration facility here in Boulder does is to provide middleware that's intended to make it easier either to use models, to couple models together, or to even build models from scratch, and I'll show you a few examples of this. So over the years the CSTMS team has developed a model coupling framework, a modeling framework. This is essentially a framework that will take a code written in any of these languages, so there are five supported languages, C, C++, Fortran, Python, and Java, and provide a consistent wrapper and front-end and a consistent interface such that it can interact and be coupled with other codes. So that's the CSTMS modeling framework, and it's the basis for two particular tools that I'll tell you a little bit about. One of these is called the web modeling tool, and this is essentially a web browser-based interface that allows you in a graphical fashion to take models that have been wrapped, as they say, and to plug them together where it makes sense to do so, and to do that in a graphical environment. So here's a screenshot in the lower left that shows, for example, a handful of model components, in this case, representing a model of river discharge and sediment, a model of coastline evolution, a model of river evulsion, and a model of the wave energy field, so as to create an integrated model of how river-feeding water and sediment to a coastal zone might influence and shape that coastal morphology. You can set the inputs through the web browser, and then when you launch a run, it actually runs on the system's high-performance computing cluster in the background, and then you get your results back again. So that's a graphical tool. The equivalent of that for a more programmatic scripting-type interface is what's called the Python modeling tool, or PI-MT. PI-MT is a fairly new product, and it's still in what I guess I would call an advanced beta stage, maybe. We're planning to do a kind of full 1.0 release in early February. And the idea here is that you can do that same kind of thing, but in a programmatic environment using Python as the driving language. So each model component has been given a Python front-end and a standardized interface by which you can set it up, launch it, run it for one time step, interrogate its parameters or variables, change and modify its state variables, and so on. Here's an example showing a... This is sort of a long-term geological example showing a model of landscape evolution and mountain building, which is producing sediment and delivering it to a coastline. That gets handed off to a delta dynamics model that sends that sediment around the shoreline and builds a growing delta. So the advantages of this kind of programmatic environment are, first of all, you've got all the capabilities of a high-level language, Python, at your fingertips. So you could do post-processing, plotting, statistical analysis, and that kind of thing directly without having to fuss with file input and output. Another advantage is that once a model is wrapped, it has a standard interface, which is basically just a standardized set of function calls that drive that model, which means that model A is driven the same way. It has the same steering wheel and gear shift and so on as model B and model C, even if those models do very different things. So it reduces the learning curve a little bit. And then the third thing is that coupling models together, if that's an interesting thing to do, it becomes a matter of writing a short Python script in which you call each model in turn and exchange their data. So that's the Python modeling tool. And again, there'll be sort of a formal release coming out in February for that. The last tool I'll tell you about is called LandLab. And it is, in some sense, a more granular version of the Python modeling tool. It is an explicitly Python language library that's designed to make it easier to build geospatial or spatially extended 2D models. And the idea here is that there's really two things that this library provides. One, it allows you to create a grid, which is often one of the biggest headaches. You can create a structured or unstructured grid as a data object in just one or a few lines of code. And then you can encapsulate functionality in these reusable components. And here a component is usually represents one kind of process. So, for example, there is a LandLab component called Overland Flow that was written by Jordan Adams, who's a postdoc here at CU Boulder. She was at Tulane when she wrote it. And it is essentially an implementation of the ListFlood algorithm. And that's all that component does. But the fact that it's packaged as a component means if you want an implementation of ListFlood and you want to connect it to some particular kinds of rainfall fields or you want to run it over some particular terrain or you want to couple it with some particular kind of infiltration model, you can do so. Here's a couple of examples of LandLab built models. The applications, it's a relatively new product and so people are just starting to play with it. But there's all kinds of applications ranging from tectonic geomorphology of a sheared basin and cellular automata creations. This is an example of probabilistic landslide modeling. Each of these sort of blobs represents the North Cascades National Park in Washington. But probably of most interest here is a model that Jordan Adams built of extreme rain and flood flow in a small Rocky Mountain watershed. The watershed is pictured here. She coupled her overland flow component with an infiltration component to do this. Here she's tracking hydrographs at three different locations in the watershed and examining the water depth and the shear stress produced by the flowing water. So that's a really quick overview of some of CSDMS's tools and resources. If any of you are interested to learn more, the best place to start is with the CSDMS web portal. Given the web address there, again that's the creation by Albert. Here's a series of more specific links that tell you about where to find webinars, where to learn more about LandLab or HighMT. So again, the quick summary is that CSDMS has this model repository that's sort of a one stop shop for model codes where users, developers of those codes are sharing them. The education repository has resources for both teachers and learners and there are computing tools like HighMT and LandLab that are designed to make it easier to create or bind existing models. So that's all I have. I'm happy to take questions if there are any. Thank you so much, Greg. Like Greg said, you can wrap models but you can wrap data as well. So if you want to wrap your input data and connect it to your models, that is possible and the data could be somewhere else online available. Just as long as it's an API like what Georgian told this morning about social media and having that as an API available, data is similar or some data sources are similar like that. So you can easily connect it. If there are any questions maybe one or two and then we're going to break for for five minutes, ten minutes and walk slowly to our breakout groups. Yes, go ahead. With this? Sorry. Other questions? Do you want to take that one? Yes, so a couple of years ago we did our first test with wrapping data and presenting model is like data almost. So you can wrap it similar and we coupled it to a model. We didn't couple it to any NASA data as far as I remember but we used data from a group called quasi. So it's hydrological data. So we wrap their data that then can be coupled to any model that needs for example what are discharges and input. So the coming year or the coming few years focus of CSDMS is to make a better link between data and models. So we're going to investigate that more. So if you're interested in that we love your input and ideas on how you would like to make use of this. One more question and then we're going to break out for coffee. Shall I? Yeah, yeah. My question. Sorry, Craig. So we had our last annual meeting. We had one of the leading figures within the OGC community. Thank you. We had at our meeting and he gave a presentation. We the way we think about how to integrate data in the coming few years is exactly along those lines. We want to make use of standards that are existing and OGC where geographical information gave a very good description of how what the standard is. So we're going to build on that and not develop something ourselves and force that on the data community.