Lab 3 - Georeferencing, Database Construction & Data Integration
Due Monday, October 10th, 9:30am
Purpose: To measure how forests have changed within an area of Indian Creek Township (Monroe County) over time. To go through the process of acquiring a hardcopy map, registering it, rectifying, digitizing features from it and integrating this with other data using simple polygon overlay techniques.
Scenario: You've been given a dataset showing the historical extent of forests in Indian Creek (IC), a 2006 digital orthophoto and a IC roads dataset.Your task is to determine how these forest areas have changed over time. The study area boundary is Indian Creek Township only.
In order to do this, digitize the forest areas in the 2006 digital orthophoto and compare to the historical data.
Data Files:
Digitizing_Lab.zip - Roads, 1980 Landcover and other vector data files
IC_Landcover.zip - Just the Indian Creek/Van Buren 2006 digital orthophoto
*Data can be found on the Resources page on Oncourse.
General steps:
I. Questions (this
is what you turn in, along with the maps):
1) Save and print the Link Table from the registration/rectification process. One of the sources of error you'll discuss in #7 is the error associated with registration of the 2006 map. Explain this error in detail, what are the sources of error in the 2006 image registration?
2) a) What is the total area of forest cover loss? b) What is the total area of forest cover gain?
3) What is the area of net forest cover change?
4) How many patches of forest have completely disappeared, and how many new patches are there in 2006.
5) Describe the steps you used to construct the datasets for this project (use a flowchart style diagram).
6) Discuss the sources of error in this analysis. Explain why the results of your analysis might not accurately represent the actual forest cover change that occured from 1980 --> 2006. You should consider sources such as spatial error, human error and so on... for each step of the process (including any errors that exist with secondary data you are using).
For the following questions, assume you've also digitized road features and rivers/streams within the area surrounding the state forest property (in addition to forest polygons).
7) List reasons why the roads database that you create does not truly represent the roads features that exist in the real world. List these reasons "a", "b",...
8) List reasons why the forest database you create does not truly represent the forest areas that exist in the real world. List these reasons "a", "b",...
9) List reasons why the rivers/streams database you create does not truly represent the rivers/stream features that exist in the real world. List these reasons "a", "b",...
10) Why is it important to snap road features together when digitizing? That is, provide an example of a GIS application where road feature connectivity is important.
11) Describe research questions where it would be advantageous to represent roads as a line feature vs. roads as an area feature (i.e. polygon).
12) Describe research questions where it would be advantageous to represent city/towns as points vs. polygons.
II. Maps
Make the following maps of the state forest property area (within 2km or so of the state forest boundary). You don't need to represent forest areas outside the SF boundary (clip your data to the SF boundary), but do show roads.
Map 1:
1) Roads within the study area property
2) Polygons representing: a) reforestation, b) deforestation, and c) stable forest. Use a different
symbol for the three polygon types.
Map 2:
1) Map of just the forest area in 2006
Make all maps at a scale of 1:65,000
Grading for this lab will be as follows:
Accuracy of 2006
forest areas (from map) - 10%
Accuracy of forest change map - 10%
Questions 1-5 - 30%
Question 6 - 25%
Questions 7-12 - 25%
Some tools at your disposal for this lab:
1) ArcToolbox : Conversion Tools : To Geodatabase : Feature Class to Feature Class
This tool just converts a shapefile to a feature class in a geodatabase. You can use this to copy the 1980 data to create a starting point for the 2006 dataset.
2) ArcToolbox : Data Management Tools : Generalization : Dissolve
This is what you use to dissolve boundaries between polygons that share a common attribute value. In the case of this lab if you Dissolve using the Landcover attribute you'll get a cleaner aggregate set of polygons (as opposed to the raw version that has polygon boundaries within contiguous areas of Forest due to different "Confidence" attribute codes among adjacent polygons)
3) ArcToolbox : Data Management Tools : Features : Multi-part to Single-part
If you click on a single polygon and you end up with a large set of selected polygons that are not spatially connected, this is because they are what is called a Multi-Part feature. For this lab we want to split up these multi-part features so that you can assign the Forest/Non-Forest codes. You can do this explode step at different stages, just make sure you do it before you change all your attribute codes for the Forest/Non-Forest polygons which you'd do right before you do the Union operation.
4) ArcToolbox : Analysis Tools : Overlay : Union
This tool overlays two polygon datasets where the output dataset has polygons with the attribute code values from both of the input datasets. This is how you will distinguish the areas of stable forest, stable non-forest, reforestation and deforestation.
5) Add Field (from Options menu in Attribute Table). You don't have to use this one. The reason why you might want to use it is that if you both of the input datasets to the Union step have an attribute named "Landcover" it's not easy to tell what attribute is what in the output from the Union step (since each attribute name has to be unique). Unfortunately there is no way to rename attributes. So you can use the Add Field operation to add a new field to the end of the 1980 dataset called "Landcover1980", and then calculate the value of that Landcover1980 attribute to be equal to the "Landcover" attributes. Then do the same thing to create a "Landcover2006" attribute in the 2006 dataset. Then when you do the Union operation you'll have one attribute called "Landcover1980" and one called "Landcover2006" and it'll be crystal clear what is what.
Again, you don't have to use this operation. If you don't you just end up with "Landcover" and "Landcover_" and you just have to remember which dataset you listed first when you added them to the Union dialog (but you can always overlay the Union output with the 1980 and 2006 dataset to decipher if you forget).
6) Merge (within the Editor Toolbar menu, remember to go to View : Toolbars, to add the Editor Toolbar if you don't see it).
This tool you use to merge two overlapping polygons into a single polygon. You use this when you've digitized some forest in the 2006 dataset that is adjacent to existing forest. By overlapping the boundary of the new polygon over the old polygon and then Merging you ensure you don't create any sliver polygons.
7) Field Calculator (you get this by right-clicking on an attribute column header in the Attribute Table).
You use this to change the attribute code for selected features. So for example if you want to change the Landcover code for a series of polygons you would select them first, and then open the attribute table, right click on the attribute column header and select Field Calculator - then type in the number you want.
8) ArcToolbox : Analysis Tools : Extract : Clip - the objective of this lab is to document land cover change within the Indian Creek township boundary. To ensure there are no sliver polygons along the township boundary edge in your final dataset, when you digitize the 2006 polygons that are along the township edge digitize a little outside the township boundary area. Then you can use the Clip tool to clip the forest polygons to the Indian Creek township boundary (which in fact was done to create the 1980 dataset).
9) Island polygons - there will be a few non-forest areas you need to create within existing forest polygons. To create these you'll need to create what is called an "island polygon" completely within the boundary of an existing polygon. There is a document in the Knowledge Base that has instructions for a few ways to create island polygons. You can get to it by searching the Knowledge Base for the phrase "island polygons". Or just by going here.
Answers to a few common questions with this lab:
1) How do I print a map at a specific scale?
Once you symbolize features the way you want in your ArcMap data frame, go to the "View" menu and select "Layout View". In the top set of icons you'll see a scale factor (it'll be "1:XXXXXX" where XXXXXX is some number). Click in that
2) How do I code polygons to get the right change categories from the Union step? Specifically, how do I code non-forest areas in 2006?
You can do this several ways. You can create a polygon for the 2006 non-forest areas if you want as long as you code those polygons with a landcover value different from the forest class (for example, set non-forest = "2"). Or, you can just eliminate the polygonal coverage of a non-forest area in the 2006 dataset for an area that was forest in 1980 and not forest in 2006. Either of these methods will work because basically the union operation does the spatial bookkeeping for you here.
Remember what the output of the union operation is: a polygon will exist in the union output dataset anywhere where there is a polygon in EITHER the 1980 data layer OR the 2006 data layer. Assume again an area that is forest in 1980 and not forest in 2006. The area has a value of "1" for landcover1980. In the 2006 dataset you can change the landcover attribute (e.g. landcover2006) to "2" if you have a polygon there (we'll call this METHOD 1), or you can just eliminate or clip the polygon (METHOD 2). With METHOD 1 the attribute codes for the 'deforestation' areas will be as follows:
landcover1980 = 1
landcover2006 = 2
With METHOD 2 the attribute codes for 'deforestation' areas will be as follows:
landcover1980 = 1
landcover2006 = - that is it'll be blank.
What you might want to do for the union ouput dataset is to create a new attribute called "Change_class". Then you can select all polygons with landcover1980 = '1' and landcover2006 = '1' and set the Change_class code to '10' - stable forest. To select the deforestation areas you'd select all polygons with landcover1980 = '1' and landcover2006 = '2' (METHOD 1) or landcover1980 = '1' and landcover2006 = '' (METHOD 2 - those are two single quotes next to each other). But you don't have to create the "Change_class" attribute, I just suggest it if you're having trouble keeping track of what polygons are what.
In other words - you can either code non-forest areas in 2006 as landcover class = 2, or just make sure there is no polygon there.
3) My dataset doesn't have any area measurements? How do I calculate the area of a polygon?
Depending on what kind of dataset you have from the union output, you may or may not see an attribute for the area of a polygon. For example, if you created a shapefile you might not have the F_Area or Shape_Area attributes that are the attributes ArcGIS uses to store area values by default for shapefiles and geodatabases. But if you don't see an area attribute don't despair, there are several ways to get the areas calculated.
First you could just convert a shapefile to a feature class in a geodatabase and doing that conversion will create a field called "Shape_Area" within which area will be automatically calculated during the conversion.
Second, you could use the Calculate Areas tool (ArcToolbox : Spatial Statistics : Utilities : Calculate Areas) and that will add an attribute to a new version of the shapefile called "F_Area" within which area will be calculated.
4) How do I calculate the total area deforested, reforested?
Once you produce the union output and have your codes set the way you want, use "Select by Attributes" to select polygons of one change category (how you do this will depend on what attribute names you choose). Then you can right-click on the Area attribute in your attribute table and choose "Statistics" to open up a dialog box with the Area Sum (then write down that number as you can't save the info in that table), or you choose Summarize to create a table with the info.
5) I have sliver polygons in my union output dataset. How do I get rid of them?
One way this can happen is if you have a huge (or lot of) polygons selected and you inadvertently nudge it from it's original position. Then when you overlay the 1980 and 2006 datasets the 'stable' forest polygons won't be in the same place and you'll get slivers in the union output.
Thankfully there is a tool that can help you eliminate them (called the Eliminate tool...). Here's a quick set of instructions in case it's of use to people, that assumes that you have a union output dataset in which you're trying to eliminate slivers:
1) Do an identify on one of the slivers (you'll likely need to zoom in pretty far to select or identify just the sliver). Look at the attribute codes. There should be a code called "FID_something" where "something" is the first few letters from the 1980 or 2006 dataset name. If one of those "FID_something" attributes has a "-1" value, then that is a criteria you can use to eliminate polygons, but first you should check a 'good' polygon to make sure those good polygons don't also have -1 values (unlikely).
2) Go to Selection : Select by attributes, and select the problematic/nefarious polygons using the selection query tool. Probably something like
FID_something = -1
This should select the polygons you want to get rid of. Note you might need to select polygons that have a -1 value for FID_something2, where "something2" was the other input to the union tool.
You should now have a bunch of sliver polygons selected
3) Open the Eliminate tool, ArcToolbox : Data Managment Tools : Generalization : Eliminate, using the union ouput dataset as the input and specifying a new output dataset. This new dataset should hopefully not have the sliver polygons.