What is geoprocessing? Let's find out. Geoprocessing is a way of applying a tool to an existing data set to create new data. This can be done interactively through a menu. It can be done using a model. You can use a command line to do this or you can use a Python script. So, these are all different ways of accomplishing the same thing. What we'll focus on here is a geoprocessing model. So, this consists of an input data set. You then apply some kind of geoprocessing tool to that data set and that produces a new data set. So, together these three components are referred to as one process. And these are really the building blocks of what can become much more sophisticated larger models. So, as an example here if we had a map of stream locations and we apply a vector buffer to those that will produce a new data set that shows us the distances from streams. So, we have our input data set. We have our function or a tool that we're applying to that data set. This provides us with an output data set. Together, that's our process, and each process has one purpose associated with it. You can think of it as sort of little atomistic, little sections or things that you do one at a time. You have one little question, you have one data set, one tool that provides you with one output that's the answer to that little question. So, for example, if the question is where are their areas within five kilometers of stream. If we execute this process as part of our model, then that will answer that question. So, this constitutes a geoprocessing model. You could literally just do this and say look I created a model. Of course, they tend to be more complicated than this. But this is how they begin. So, once you know how to build one process, you can then chain them together. You can have one process that has an output, which in this case would be a digital elevation model that's been created by interpolating elevation points, and the output of that process becomes the input for the next process, which in this case might be to January contours for a contour map. So, we have two different processes that have been chained together that we can then use one after the other. So, that's the amazing thing about modeling is that you have an input becomes an output, that becomes the input for the next part and you can work your way through a number of different small questions that then add up to answer a bigger question. To me this is the most satisfying fun part of doing GIS at all is the problem solving aspect of this or kind of solving a puzzle is thinking about so what is it that I want to know, what's the data that I have to begin with, what is it that I want to have as my output and how do I get between the input and the output, what do I have to put in there in between those parts to fill in that process to be able to answer that question. There's actually some room for creativity. Often, there's more than one way to be able to answer this question. There's different data sets that will work, different tools that will work. This is where you get to kind of think about all of the things that you've learned about GIS and what the different tools that are available and think about what's the best way to be able to assemble this, to be able to answer that question. It's a really good thing to think about what's my conceptual model? What am I trying to do? How do I break this into smaller steps? As you work through that, you can start to identify individual processes. So, we can have multiple processors that run in parallel, what we're doing here is we have one input data set that's then being used for multiple things. So, that elevation grid could be used to generate a slope map using a slope tool. We can use that same elevation grid to calculate the aspects or what direction are those slopes facing. So, those are happening in parallel in terms of the way our model is set up. This distinguishes not parallel computing like you would see in parallel processing with computer chips or things like that. This is strictly more in my mind anyway a way of visualizing or thinking about how you're setting up your model is you have one input and multiple processes taking place from that one input. So, the key to geoprocessing in building a model is really understanding the tools that are available to you. I kind of think of it like you have this big toolbox available and you're thinking to yourself, so what's the best tool for this particular job and what's the order that I'm going to use them in? Maybe it's kind of an old cliche analogy or something, but if you're building a house, you have all these building materials around you, which would be the data sets. You have these tools. You have hammers and levels and saws and things and you have to know like well, how do I use each of those tools and when do I use each of those tools. So, for example, we can break a project into steps if we're thinking about buying a house. We could say what are the requirements that we're interested in, break down our criteria. So, we want to have one that's close to schools, close to libraries and golf courses and has lots of trees and other vegetation. So, from a modeling point of view, we would break that down into our individual input data sets. So, we have a vegetation index as part of our inputs, the golf course locations, libraries, high schools. And we're going to do things like select the vegetated areas that are useful for us, that have dense vegetation. We're going to measure Euclidean distances or buffers in some way that are close to golf courses depending on how we want to measure these distances. Do the same thing with libraries and high schools. All of these will be combined. In this case, I'm going to do a vector overlay to get an intersection of those data sets and that will identify my preferred areas. So, a model is a great way not only of automating this entire process but of visualising and reporting this to other people. So, it shows you how to build this, how to plan it, and how to communicate it to somebody else. So, here's that exact same model but now I'm using ModelBuilder to do that. ModelBuilder is this amazing tool that's available in ArcGIS that essentially is a flowchart drawing program or tool that's available. But the thing about it is that you can actually drag and drop data sets and tools and draw them lines between them to connect them, set the parameters for each one, save that model and then run it. So, it's not just a way of drawing a flow chart, it's a way of planning out your analysis and not only can you plan it out that way and run it, then you can save it and you can share it with other people. So, you can say, "Oh, look at this model I built. Maybe you'd like to apply this model to your own data for your own area?" So, once you have these models available, it's a great way of being able to improve your efficiency to automate things, to be able to document it, and also to be able to share it.