 Be wnaeth o'r daetham sylw splash, that is everybody. It's great to see so many faces. So, we're going to do the mix or things. We're thinking that the most useful thing for you guys is to actually be to spend most of the time playing with Landlab yourselves. Up till that end, we've got a few tutorials you can get at on the web that we would recommend that you work through, but before we get there the first thing we want to do is yw'r un o'r rhan o'r 10, 15 oed yn chweithio gael y gasket? Yn gofynau gwahanol, a'r gwylau'r hun, yw'r hwn yn cael eu gwirio'r hun, mae'r gennaint o'r oedd ddefnyddio, ond yn y cyhoedd. Ond wrth gwrs, rwy'n gwybod i'n meddwl i'n meddwl y team gwahanol. Felly, rwy'n meddwl i'n meddwl i'n meddwl i'n meddwl i'n meddwl i'n meddwl i'r mewn ffasor beithio. A byddwch ar y gŵr ercan, ercan, ystannboghwyd. Yn amlwg. Yn amlwg? Ddau, ddau. Ddau. Ercan. A'r Eric Hutton, ychydig yn ymgyrch o'r cyflawni CSTMS, a'n ddau'r cyfrifio ar y cwylwyr yn y ddechrau. Mae'n ddau'r cyfrifio. Yn y gallwn ychydig, mae'n gweithio'r cyfrifio ac yn ymgyrch. yna'n cael eu luc arloeddol. Da whith ymgyrchu fwy o'r cymdeithas Dwi'n meddwl am y cyfath o gydig, dwi'n meddwl am y roi'r ef y Lland Lab Al rôl ddim yn cael ei hynny. Gwyddo i'r pryd iawn i chi yn gwael. Cefyddirwch, yn y pwysig, Efallai'n rhaid o'r rhaid. Efallai'n rhaid o'r cramhau? So, we want a sense of your, we want to know who our community is essentially because we quite like some feedback from you so we can make things more awesome. So, thank you guys. So, also just a bookkeeping before we start, how many of you in an honest, no-shaming environment have actually not installed LandLab yet on your computers? Okay, that's good. No, that's manageable. In that case, I won't spend any time now telling you that. We'll come and find you guys and deal with that problem on the fly. Secondly, how many of you are, let's say, familiar with Python? Okay, how many are unfamiliar with Python? Okay, that is good to know. So, importantly, LandLab is coded in Python and we will come on to exactly why shortly. However, anyone who's got any passing familiarity with Matlab and scripting in Matlab is probably not going to take very long to pick up Python, but we will spend some time talking about that just at the end of this talk so those of you who do know Python already aren't going to be hanging around waiting for us. Okay, so, LandLab, finally, let's give you some motivation before you actually get stuck in. So, if you type a landscape evolution model into Google, if that's a couple of months ago now, this is the first, how many of this, ten images you see? And hopefully most of you can see some of your old friends if you spent any time doing landscape evolution in here. Here are the various authors that correspond to this. What I want you to take away from this slide is not only landscape evolution models, there are a lot of them out there, but even more generally if you want to talk about surface process models in the even more broad sense, so now I'm talking about things like surface hydrology, ecohydrology, land use dynamics. There are loads and loads and loads of these things out there. And if you think about the amount of cumulative man hours involved in building all of those things in the ground up, it's kind of horrifying. So, the original motivation for developing LandLab was that we wanted to provide the community with a tool that allows you to get from the point of I have nothing to I have a working model of whatever it was I cared about faster. And something else that's really worth emphasising at this point is a number of you are probably familiar with Child, which is one of Greg's older and extremely popular community landscape evolution model. I want to emphasise LandLab is not child, they are different things. In no way are we superseding child here, it's a complementary different approach. Where the approach is we give to you a set of tools. So LandLab is a framework, it's a modelling framework. So we give you tools, we give you a model grid, we give you a way of interacting with the model that is very standardised and therefore very fast to code in. And that you can then either use the various process components that we provide with LandLab that describe things that people who coded LandLab originally were interested in, so fluid incision processes, hill slope diffusion, rainfall drivers, wildfire drivers, ecohedrology, various little actual components that do things we were interested in. But the intent is that you can either take those and play with them as is, or we would encourage you to go away and build your own modules that describe things that you're interested in, and then you can just plug your little module into LandLab and you're there. You don't have to redesign a grid, you don't have to code everything else that isn't actually what you're interested in. So you want to do a fire model, you can just code the bit of LandLab that describes the fire and then just place it on top of our existing fluvial hill slope components. That's the vision, and I'd say we're getting there now. So beyond that, our sort of mission statement here is that we want to be open access, we want to be a community thing quite consciously. We want to not rely on anyone else with that in mind, we don't want to have to make any of you buy anything. So all of LandLab is, we make extensive use of other open source software in the building, but none of you will ever have to buy MatLab or buy Arc to use LandLab. Very importantly, we are deliberately, and when we started building LandLab, we consciously want to be 100% compatible with the CSDMS interfaces. What that means from your perspective is if you're building on LandLab, you don't have to worry about designing your CMT interface. Because you're building on to LandLab, we give that to you. So that's another advantage from your perspective as another labour-saving device. We want to be quick to learn, we want to be quick to code. We want you to be able to develop quickly. And that is the main motivation for why we've chosen Python. So Python is, for those of you who are unfamiliar with it, is a relatively new high-level programming language. It isn't like C where you have to sit down, you have to define everything, you have to allocate memory. It does all of the boring and unpleasant bits of coding for you. So it handles like MatLab. It feels like you just make a variable and that Python goes off and does it for you. You don't have to worry about all of that sort of bookkeeping. And again, as I emphasised, we want to be modular, so things are plug and play. You take processes and you plug them together and they just play with each other. And there's no real unpleasant weaving required to really make those things work together. And we want to be flexible. I hope that made sense to everyone. What's actually going on in terms of, so I alluded to this earlier, what's actually inside LandLab then as a package is basically three things. There's a grid and if you look in the file structure you'll see this very clearly. There's a grid which describes the geometry of the surface over which you're doing your process modelling. We'll see that in a moment. There is data on that grid and there are functions that then let you query things about the grid. So you say, I want to know all of the nodes that are next to other nodes and that we provide you with all these functions in LandLab. So you can produce, say, a diffusion model and you'll see that in the tutorials very quickly because we give you all of the things, the major components that you would need to build that. There are then process components and this is really the science of LandLab. This is where we have through-view processes, hillside processes, your favourite processes, all bundled up. We ship a library of these with LandLab and that will constantly be expanding but, as I said, we advocate that the community adds to these and the more and more and more we get the better and better and better LandLab gets, right, because it's just snowballs. We also provide you with a set of utilities and by utilities I'm talking about essentially input-output functions, interface functions, CMT functions, all the things that aren't really, just the things you have to have in order to code but you don't really want to be worrying about them. So we're letting you interact with DEMs, we're letting you output data, all of those utilities. You can just call them as one-liners from LandLab. So any of you who've ever used Child and indeed any landscape model in general will probably be familiar with the kind of concept of our grid. If you've used Child the way it works will feel very childlike to you in that it's built essentially of nodes which are joined together by links and that all of the processes, most of the values and that you store the values of whatever it is you're talking about, elevation, fluxes, on those nodes and links. We give you explicit control of cell status so you can handle the boundary conditions very easily and we provide you with a set of functions that you interrogate that grid. Give me a list of all the links, give me a list of all the nodes, give me a list of all the core nodes that are inside the grid and not on the edge, those kind of functions. Importantly, we're not limited to raster. I'm showing you a raster here but we are implementing raster functions, sorry, a raster grid, Voronoi grid, so an unstructured grid and subsets of Voronoi. We make it very easy for you to set up hexagonal grids, I'm missing one. It's gone from my mind right now. If you want a standard grid type, we're hoping that we can just provide you with that. We don't yet have quad trees but we are very aware that we want them and this will be coming soon. Essentially, you have your grid, you have your data, the data lives on the nodes and links and the power of the methods we give you essentially is so that you can do things like, hey, LandLab, tell me what the core nodes in my grid are and it says, well as your core nodes and then you say, LandLab, tell me what the elevations are at the core nodes and it goes, there you go. That is very much the way that LandLab interface works. It holds lists of all of the properties and the data on those properties and then you can interrogate them very easily with that interface and you'll see this in the tutorials very clearly. What many of you are probably interested in is this. So, as I said, we provide you with a library of components. Here's a brief whistle swap tour through the components we already have in largely working order. I apologise if any of you go to draw one of these out of the current version of LandLab and find it doesn't work, but hopefully all of these are essentially functional. You get bonus points if you can guess the isoteric illustrations and what they actually correspond to. We have rainfall driver. We have hill slope properties. We have flow routing and channel erosion. We have soil moisture. We have various eco-hydrology modules. We have not yet, but imminently, some shallow ice flow tools. We have an impact grating module. We have a shear stress module to let you calculate shear stresses across the landscape. We have a fire module. We have a shallow flow module. We have flexure and we also have bonus points for this one. We have implementation for simple cellular methods in LandLab. One of the things we're hopeful that will be useful to the community is you can run conventional, essentially continuum models of, say, hill slope processes, but on top of that you can be running like a cellular automata vegetation model and that LandLab's interface will let you do that and you can just have the two layers going at the same time and talking to each other as a member of us. We give you utilities and by utilities we mean all of the stuff that you need to do but probably isn't super exciting science to you. We give you tools to read DEMs so you can output from ARC and input into LandLab and run on a DEM. We can read text files and in fact LandLab has a reasonably well developed input interface for so you can just have essentially lists of the various parameters you need to run your model in a text file and we give you all the tools you need to strip that out of the text file and bring it into LandLab. We have output routines that will spit out things like NATCDF, VTK and we give you a bunch of visualization tools that will let you plot and various other things that you don't want to be worried with as coders, you just want them to happen. We try and provide you with as many of those as we can think of. Now just to finish off I want to give you a very quick visualization of some of those components that we already have that you can dig around in and find. First one, we have shallow flow modules and with that you can do things like simulating flood wave propagation. What you can see here is a simulated channel which had a dam at this end which was removed at time zero and this is the elevation of a flood wave property going along. This is a very simple implementation of this based on the Bates at Owl algorithm that some of you might be familiar with but there is absolutely no reason why further down the line we can't replace this with much more sophisticated underlying shallow flow modules but we give you something to get going with. We can simulate overland flow, we can root flow and we can direct it and we allow various different methods of rooting flow, you can choose them do I want D4, do I want D8, do I want D infinity those are there for you so there is an illustration of taking a DEM which has been ingested into the land lab and just working out what the water depth would be at steady state and again you can then get time series just by picking a pixel and saying tell me what the time series was at this pixel and off it goes. Similarly once you have that it's very simple to go into sheer stress world land lab has sheer stress functions and again you can see three different pixels in this catchment you can pull out time series very simply of whatever it is you're interested in. We have a simple block uplift with one, two open boundaries and two closed boundaries and I think this is an implementation correct me if I'm wrong Greg of a linear diffusion and this is actually correct if you'd compare this to the analytical solution we're good, so we provide you with linear diffusion module, we provide you with non-linear diffusion module and so this is a case with four open boundaries being uplifted non-linearly and you can see the expected linear straight critical hillslopes that arise if you have that model we give you that too we have stream power modules in place so you can model simple drainage networks and how they incise into an uplifting block on a long time scale and of course with those two things in mind any of you who are landscape people might immediately think can you couple those together, the answer is yes so land lab lets you here's an illustration of that here's a simple block of let me get my mind straight here is a simple just stream power equilibrium solution using land lab and in this case it's the same equilibrium stream power solution but it's also coupled to linear diffusion so we can do this now there are some idiosyncrasies about the way the coupling works still but those will be ironed out in a few weeks we're cautiously optimistic I know I will skip over that that's probably not of particular interest to that many of you but I'm quite excited that this exists I'm trying to spin up some of this at the moment we have flexure tools so you can similar isostatic compensation for your structure and what this is showing you is 10, I think it's 10 randomly placed onto the grid randomly allocated weights and this is the deflection field that would result from that and again obviously this is something that you want to couple with other processes here's an illustration of coupling a surface that's been created with that flexure so you can just run these two things together you can say run the craters, run the flexure and everything just works and again as I alluded to earlier that we have cellular automata methods Gregg has demand to talk to about this these are still somewhat experimental but we're hoping that this is something that we can really press on with and what you can see here is a very much non-landscape evolution use of land lab and that's something we should emphasise this is not just a landscape evolution model it's a process modelling environment we are not constrained just pretending that land lab is modelling a surface so what we're modelling here is a 2D slice through essentially a rock with fractures in it and this is a simple cellular automata method of weathering away from those fractures ok so python is land lab is a python based flexible quick to learn open source surface process model we give you a selection of modules but we encourage you to get involved and essentially tell us what you want from land lab and we will make it happen and with that in mind I think it's probably time for you guys to get going so if you all of you who actually already have land lab this is good but what we would recommend you do is you go to landlab.readthedocs.org hopefully this site is familiar to most of you because you probably went through this to do your download and what we would recommend you start by doing is this tutorial to land lab right here and that should get you all started and introduce you to the basic ways that land lab works our intent is just to circulate around the room and talk to you guys and watch what you're doing if you have questions stick your hands up and ask us those questions we think that's probably the most effective way of this working those of you who are quick will probably get through that in not too long but we would then recommend you come down here and start working on these other slightly more expanded tutorials we're recommending you do there are three of these available the first one talks a bit more in detail about the basic functionality of land lab and we'll get you good at seeing what's there how it works how the grid works, how to build with land lab the second one is a bit more abstracted it's talking about how you can a recommended way that you can use the components we provide you with something else we should emphasise is although we have a recommended way that you can use land lab we're coding to a design with the assumption that you'll do land lab this way we're also very aware that you will want to use it in your own way and we're trying to keep everything as flexible as possible so even though we have so those of you who are coding land lab is very object orientated there's quite a lot of automation going on behind the scenes but if you want to use it essentially as a scripting language where you're not running very heavily sort of developed code you just want to script things and get answers land lab will work in that mode as well it's just that we recommend you have a there's a standard way of using it but we're very conscious that you'll want to play with it and break it and do what you want essentially and so the second component here is the recommended and our current thinking on the best way to couple those components that we give you together and the third thing here is from Psy and it's a bit more about how one of our components in particular works and that that is much more eco-hydrology orientated and so he's your man if you fancy going that way so essentially begin but so those of you who are not happy with Python maybe if some of you can those of you can come more to the front and we can have a bit of a chat about the things you probably need to know about Python before diving in but those of you who have used Python before we are cautiously optimistic that you can essentially just go for it now and everything will work so please self-organise at this point oh and those of you who don't have land lab installed stick your hands up and wave frantically at someone and someone will come and help you was that relative? many mothers can all the all the all the the right now there are the the and because you have that right as long as you have a value of every node so is this or is this is this not so that's why you said it's if you're far from around here are you pretty good at it? okay I'll come right back you have no problem good luck okay I'll take care of that I'm going to .. .. .. .. .. .. .. .. .. I've had, yeah, but then I mean, you know, again, I also want to see if she doesn't come, I think, yeah, so it's, yeah, mine probably just like, oh, I know what she's talking about, I'm going to look at that, so. Okay, well, we're done with that. So it automatically, like, if you have the eye, it doesn't matter what I'm saying. That's equal to faithfully, but that's your theory. Plus, you need to be, it's a faithfully thing, a faithfully value. And that would add something to it. So you have an elevation, right? And you want to, and just change it either. So you have an elevation, have a faith. And when you're changing elevation, you're going to be able to look at your elevation and change it. So, and then reset that. So rather than saying, it's all hung on. So if that's not the core, I mean, like you wouldn't do that last. So what it says is, okay, refer. So put your eyes first, zero. So you have zero. Wait, zero. Oh, sorry, that's not what I mean. Plus, it would be because you're basically at, you're doing some sort of math, but you're not trying to get that new value. Anything, right? And so it's just kind of hanging on. Yeah, you have this new value, but there's nothing. There's nowhere for me to put it. So if you change, like, if you were going to look at it again, it's not here a little second. It needs to plus these levels. But if it's always zero, yeah. But if you're changing, you need it. Because it's not here. Yeah. Is my coming? Yeah. I think the future will be different. Yeah. No, no. The shoes look at my phone. That's okay. Did you get there on the tutorial? Okay, awesome. No, that's good. They're not there now. Yeah, yeah, yeah. That was pretty comfortable. Yeah, absolutely. I will definitely put that in the city list. Hey, guys. We are coming towards the end of the session. Something I would like to share with you before we get there, though. You've all just, or most of you, I hope, have made forks of the GitHub Land Lab repository. What you'll find is that that means from the point you make the fork, you can't automatically see our changes. I'm going to email all of you with how you get around that problem so that you can keep your little fork up to date with the changes that we make. I've just figured that out, and I didn't know it before. So I will email the group and share that knowledge with you because otherwise you'll just end up with a fossilized out-of-date version of Land Lab. It's easy to do, but you just need to know where to click on the website to make it happen. So expect that to appear in your inboxes. And thank you all for coming.