ArcGIS doesn't just allow you to place points, polygons or lines representing geographic locations on a map, it will also allow you to analyze those points using tools from within its geoprocessing toolkit. This can help you narrow down which areas are most pertinent to your study and find out important information about those areas.
In this exercise we'll be determining which schools in Brooklyn and the Bronx are within walking distance of a green space using different geo-analysis tools. We'll clip our files to just the borough we want, create a buffer around the schools of an eighth of a mile, then, detect where those buffers intersect with a park or other green space area. The layers have already been added to this map, since how to add point and polygon layers has been covered in previous tutorials on this guide and in this one we'll be starting in on what kinds of analysis can be done once those layers are added.
The question you'll ultimately want to answer is what schools in Brooklyn and the Bronx have a sizable park in walking distance? To do that, you'll first need to narrow down your selections to just Brooklyn and the Bronx using the Pairwise Clip tool, then create a buffer of .125 mi around the green space using the Pairwise Buffer tool, then use the Pairwise Intersect tool to find just the schools that are within that boundary. The layer resulting from that last step will be joined back to your public school layer and you'll be able to symbolize which schools matched the criteria.
The main places you can find Analysis tools in ArcGIS Pro is either at the Analysis tab at the top of your map (use the scrolling menu towards the left-hand side to find the tool you want) or by using the search bar in the Geoprocessing tab in the Catalog pane (on my monitor it abbreviates to just say Ge...)
The Pairwise Clip tool allows you to take a layer with a larger geographic range than you need, and clip it to match the outline of a smaller layer, creating a new feature class with that smaller area. This can be handy if you are studying a smaller area like a group of adjacent counties, but can only get a larger map for the demographic or raster data that you want to use. I encounter this a lot with census data, as the smallest area the Census website will give you census tract level data for is for an entire state. You can clip those larger maps to just the area you need which eliminates confusion and frees up processing power. In this case, you were only able to get maps of where public schools and green spaces were located for the whole of New York City's five boroughs, but you only want to look at the ones in Brooklyn and the Bronx. But to do that, first you'll need to take your Borough_Boundaries layer and narrow it down to just include Brooklyn and the Bronx. Definition Query is the best method for that.
The Clip tool allows you to trim one layer to match the geographic boundaries of another. We'll be using it on the Public_K12_Schools and Green_Spaces layers rather than the Definition Query that we used on the BoroughBoundaries layer for a couple of reasons.
We won't need information on public schools or green spaces that aren't in Brooklyn or the Bronx, so we may as well create a new layer that only has those boroughs to save on processing speed.
Now that we have the layers that contain only the information that we need, we can process that information much easier, which, speaking of that, let's see if we need to narrow down the Green_Spaces layer further and how.
So let's zoom in on Brooklyn, I'm going to get in real close around Prospect Park...that big polygon towards the center and west of Brooklyn. There's a couple of things to notice here. One is that there are long narrow sections designated as being part of the greenspace maps, that seem to follow a road, which I don't think I'd want to include as a "park" that is close to a public school since it would seem less able to be safely used in lessons or for recess. The other is that some of these parks seem very small, but it's hard to tell without the context of where streets are. When I turn off the Borough_Boundaries layer, and then zoom in more, I can better see that some of those small parks are a chunk of a block, and some are triangles that are probably smaller than the footprint for a house.
Just like we used Definition Query on the Borough_Boundaries layer to include only items whose fields match a certain criteria, we can also use it to exclude items depending on what is in certain fields. But let's figure out what parameters we want to set.
You won't always be lucky enough to get a map that only contains the items that you need and nothing else extra, and that's why you should always be assessing whether everything on your map matches the criteria of what you need to include. By using definition queries you can cut down the layer into something that will be more useful, however, you should take careful notes of what you decided to include or exclude and why since you'll want to include that in the explanation of your project.
The Pairwise Buffer tool is used to create a new layer that expands out from the boundaries of a point, line or polygon a specified distance in all directions. That distance can be the same for all objects, or you can decide it based on one of the fields in your attribute table. For instance, if you are determining safe distance between a power plants and proposed parkspaces, you might have the buffer be different sizes based on whether one of the fields says a certain chemical is used or not.
You can either do a Buffer of a single distance from a line, point or polygon, or do a Multiple Ring Buffer. The latter creates rings of several different distances around a point, line or object. So for instance, if there was a proposed highway extension, you might want to create a ring of say, 50 feet to see where residents would get both air and noise pollution problems, and one at 150 feet to see where residents would just get noise pollution problems.
We'll start off creating a Multiple Ring Buffer around the schools because I want to see how many streets children would have to cross at 1/8th of a mile, at 1/4 of a mile and 1/2 a mile to try to determine what I'll be saying is a "walkable" distance. Then I'll use the information I get from that layer to create a Pairwise Buffer around the school of what I decide is a "walkable" distance.
Fortunately, you don't just have to eyeball it, to try and figure out how common each case is, because there is a tool that will find wherever the buffer layer overlaps the park layer called Pairwise Intersect
You can use the Pairwise Intersect geoanalysis tool to look for where two different layers overlap and make a new layer that just contains the areas that overlap.
When you zoom in and out or pan the map, it can take some time to redraw these layers, because any individual circle can have multiple intersections due to there being multiple parks' or schools' buffers which intersect. With the Dissolve tool you can turn these many different intersections into one object, or one multipart object per selected field. This is a tool that can be used to simplify the attribute table as far down as containing one object if you don't care about any of the other attributes (like if you don't want to know which elementary school and which park a given intersection is near). You can also choose to keep some amount of information about the individual intersections by choosing a field to make the dissolve based on. For instance if I wanted one of these shapes to just consist of all the occasions where an elementary school overlapped and another to consist of all the times a high school overlapped I'd make the Dissolve Field FACTYPE. Or if I wanted there to be a separate shape based on each park, I could make the dissolve field park_name. In this case, let's make a different row for each school and use FACNAME
This dissolve layer has now simplified the information we've created using these geoanalysis tools into one simple map that shows which park areas are walkable from a given school. Now let's take that information back to our original school layer so we can answer our research question, of which schools are walkable from a park in our chosen boroughs, and which aren't.
This is something you've probably done previously, but in case you've skipped to this lesson, you can join your final results layer SchoolsWalkableFromPark_DissolveBySchool to your original layer of public schools Public_K12_Schools_BK_BX in order to include its information in how you symbolize those schools.
By using geoanalysis tools, we've seen how two different layers relate to each other on the map, and altered one of our existing layers to display the results of that analysis. Now, time to save this map.
I've attached my finished zip file below if you want to see how I constructed it, it's the project file called SchoolsAndGreenSpaces_End.
With ArcGIS Pro, you can do more than just run the tools individually that come with your toolbox, you can create your own model. A model lets you string together a series of geoanalysis tools into a workflow. When you have finished creating your model you can run it using specified map layers and data, and can even set it up to perform the same tasks on different tables or layers. Additionally, a final view of the model works excellently as a illuminating graphic you can use in your paper or project to explain to the viewer exactly how you processed your data.
With this exercise, you'll be working to create a map similar to the one you created in the last module that showed which schools are within 3/16th of a mile of a park in Brooklyn or The Bronx. This time, you'll run the process on Staten Island and Queens using the procedure we came up with in the last tutorial, but we'll first input all the steps into a model, and then run them all at once. This can be helpful if you already know all the tools you plan to apply to your map, and just want to automate it.
In the last exercise, you went through multiple steps, some first on one layer, and then on another, in order to create a map that used open GIS data to illustrate which public schools in Brooklyn and Bronx were walking distance from a green space. Since you now know which geoprocessing tools can be used to create this map, you'll next be adding those same tools to a model which you can then run and automate your process. This model is going to be stored in your toolbox.
A model consists of data (layers, feature classes, tables, shapefiles) and tools with connections made between them. You can use not only data that you already have on hand, but also the data that occurs when a new layer is created as a result of a task being performed on an existing layer.
Please note, if you need more information about what each of these tools is doing, consult the last tutorial in this module, this module is concentrating on how to add these tools to the model, not how they work.
There are a couple of benefits of creating this model to automate the process rather than doing each step by hand. One is, you can plan out exactly what steps are going to be undertaken in advance. Another is, you are creating a visual representation of the analysis you undertook that would look great in a presentation or paper. And another is, you can add what are called Parameters along each step of the model which can be modified each time the model is run. So if say, I decide that 3/16th of a mile is too far to expect elementary schoolers to walk and that I want to make a new map with a different layer that only contains elementary schools, I can change the parameter for the buffer, change the original input map for that contains the school, and can run the model again, keeping all the other steps the same. More on that in the section after this one.
So a model is a set of commands and data and parameters that also visually shows how that set of tools is run. The same way that we can drag a layer onto a map, we can drag map layers into a model.
Let's start with selecting only the boroughs we want in Borough_Boundaries
Now that you've created a new layer that just has the borough outlines for Queens and Staten Island, it's time to use it to clip the school and green spaces layers, the same way that you did in the first part of this lesson, only now you'll be putting those steps in as part of the model.
The Buffer tool creates a new layer with a buffer circle at a given distance from every point in a layer. Like the other tools used on an individual basis in the last exercise, you can add this tool as part of a model and create a buffer around your layer with the public schools on it for 3/16th of a mile (0.1875 miles).
The Intersect tool will look for the places where two layers intersect, and export a layer containing only those intersections. Like the other tools in the last exercise, it can be added to the model. You'll add this tool calculating the intersection between Green_Spaces_Clip_QSI and the new layer you just created with the buffer around the public schools.
When your model looks like the below, you'll be set to run it. Click on the little icon up top that looks like a disk and says Save.
As we did in the last section of this module, once we have an intersect layer that will show where the buffer around the public schools intersects with green spaces, we'll want to create a dissolve around just the field for the name of the school. That way we just have one shape associated with each school so making the join at the very end will be easier, and there won't be as many shapes in a layer on the map. We'll be configuring it like we did in the last lesson. For more information on how it's being configured, consult the last tutorial
Now that you've updated your model, let's see if that new step works when you run the whole model as a finished piece.
If you choose, you can next join the Walkable_Schools_QSI_Dissolve layer to the Public_K12_Schools layer and map which schools are walking distance, the same way we did last lesson, although unfortunately the model only saves the final layer created, we've lost the clip layers previously created in the model for the public schools, so you'd need to do a definition query to narrow Public_K12_Schools to just the two boroughs we are interested in.
To see how we can create a model that is more re-usable, let's move on to the next module, but first, let's save this one.
I've attached my finished zip file below if you want to see how I constructed it, it's the project file called SchoolsAndGreenSpacesForModel_Complete. I've also attached an svg picture of the model
In the last exercise, we created a model that went through most of the same steps of what we did in the first module. Now let's make the model more flexible, so that the same steps can be undertaken and we can add in different parameters.
We'll be working with a file that's very close to the last one, but I've added another layer that we'll be applying our model to
Basically the point of adding parameters and variables to certain steps of our model is to give it more flexibility. If you run a model that has parameters involved instead of one without them, you will be presented with options where you can select which layer you are applying a given step in the model to, or enter in a different variable or number, or what you want an output feature class's name to be, or what amount you want it to buffer. This can be helpful if you know you want to apply basically the same tool to a lot of different layers, or if you want to make slight modifications to a model and run it multiple times to make different layers, or if you wanted to send someone your file that has this model in it and let them copy this model for use with their project. It makes this tool closer to the other ones that come with ArcGIS Pro that will gather information from you and let you customize what it will do before it runs.
So we'd want to introduce a parameter option whenever there is a value or input feature we might want to be different than the default values we've run in that first model.
For example, if I wanted to keep the model basically the same, but put in a different layer with school locations, say one that only contains elementary schools, I'd change the parameter for the school file that gets used throughout the model. If I want to have the flexibility to run the full model again but with a different buffer distance, I can create a variable on the Pairwise Buffer tool.
You can also customize your model to save some of the data created by some of those intermediate steps.
In this case, I want to be able to run this tool for other boroughs and to have the option for the borough to be wider or smaller. So I'd like to have the option to change the selection tool, and run Pairwise Buffer for a different buffer distance. I'll also want this new model to save the clipped version of the Public_K12_School layer to make it easier to join to the dissolve layer at the end. So let's make those changes.
Let's look at this model as a whole. It is designed to:
So by looking at those steps and thinking where on the steps we might want to tweak the commands the model uses or what data it is using, I decide that if I want to hand off this tool to someone who might want to measure what distances other facilities are from NYC's green spaces, I'll make it so someone can substitute something else in for that public school layer, make it so they can select different boroughs or make it so that the buffer distance can be different. So those are the places on the model I'll add a parameter too.
Let's proceed through this in order. The first thing that occurs in the model that we want to change is what Select query is given to the Borough_Boundaries layer.
Now, if we wanted to we could undertake the last few steps that we did at the end of our original geo-analysis unit when we were doing each of these steps individually, and join this layer and the Public_K12_Schools_Clip_M layer together in order to classify schools on whether or not they are walking distance from a park. The key difference being that instead of arriving at this step after taking each other step individually, we did them all as a unit. If we wanted to we could make the data files for the public school and green spaces layers variables as well. That way we could swap in a subway station layer for the green spaces layer and use the same tool to see which schools were walkable from subway stations. We could run the tool on a public schools map for just high schools, and one for just elementary schools and add different buffer distances for each. We could even make the Borough_Boundaries data layer a variable and pick up this whole process and use park and school files for a whole different city that is divided into sections. The model tool, and the ability to add parameters to it allows you to automate a process that you've created for a map and repeat it on different areas, or with different configurations.
I've attached my finished zip file below if you want to see how I constructed it, it's the project file called SchoolsAndGreenSpaces_ForModel_Parameters. I've also attached an svg picture of the model