Professional Documents
Culture Documents
Ground surfaces that are impenetrable to water can cause serious environmental problems, including flooding and
contaminated runoff. Because impervious surfaces are such a danger, many governments, like the City of
Louisville, Kentucky, charge landowners with high amounts of impervious surfaces on their properties. To calculate
fees, you'll segment and classify aerial imagery by land use to calculate the area of impervious surfaces per land
parcel.
This lesson was last tested on August 29, 2022, using ArcGIS Pro 3.0. If you're using a different version of ArcGIS Pro,
you may encounter different functionality and results.
Requirements
Lesson Plan
Before you classify the imagery, you will change the band combination to distinguish features clearly.
1. Download the Surface_Imperviousness.zip file that contains your project and its data.
2. Locate the downloaded file on your computer.
Note:
Depending on your web browser, you may have been prompted to choose the file's location before
you began the download. Most browsers download to your computer's Downloads folder by default.
3. Right-click the file and extract it to a location you can easily find, such as your Documents folder.
4. Open the Surface_Imperviousness folder.
The folder contains several subfolders, an ArcGIS Pro project file (.aprx), and an ArcGIS toolbox (.tbx). Before
you explore the other data, you will open the project file.
5. If you have ArcGIS Pro installed on your machine, double-click Surface Imperviousness (without the
underscore) to open the project file. If prompted, sign in using your licensed ArcGIS account.
Note:
If you don't have ArcGIS Pro or an ArcGIS account, you can sign up for an ArcGIS free trial.
The project contains a map of a neighborhood near Louisville, Kentucky. The map includes
Louisville_Neighborhood.tif, a 6-inch resolution image, 4-band aerial photograph of the area, and the
Parcels layer, a feature class of land parcels. The Louisville_Neighborhood.tif imagery comes from the U.S.
National Agriculture Imagery Program (NAIP).
Next, you'll look extract specific spectral bands from the imagery.
Raster functions apply an operation to a raster image on the fly, meaning that the original data is
unchanged and no new dataset is created. The output takes the form of a layer that exists only in the
project in which the raster function was run. You will use the Extract Bands function to create an image
with only three bands to distinguish between impervious and pervious surfaces.
3. In the Raster Functions pane, search for and click the Extract Bands function.
The Extract Bands function appears.
4. In the Parameters tab, for Raster, choose the Louisville_Neighborhood.tif image. Confirm that Method is
set to Band IDs.
The Method parameter determines the type of keyword used to refer to bands when you enter the band
combination. For this data, Band IDs (a single number for each band) are the simplest way to refer to each
band.
5. For Combination, delete the existing text and type 4 1 3 (with spaces). Confirm that Missing Band Action
is set to Best Match.
The Missing Band Action parameter specifies what action occurs if a band listed for extraction is
unavailable in the image. Best Match chooses the best available band to use.
6. Click the General tab, and for Name, type Louisville Neighborhood Extracted Bands.
The yellow Parcels layer covers the imagery and can make some features difficult to see. You will not use
the Parcels layer until later in the project, so you will turn it off for now.
9. In the Contents pane, uncheck the Parcels layer box to turn it off.
The Louisville Neighborhood Extracted Bands layer shows the imagery with the band combination that
you chose (4 1 3). Vegetation appears as red, roads appear as gray, and roofs appear as shades of gray or
blue. By emphasizing the difference between natural and human-made surfaces, you can more easily
classify them later.
Ca tion:
Caution:
Although the Louisville Neighborhood Extracted Bands layer appears in the Contents pane, it has
not been added as data to any of your folders. If you remove the layer from the map, you will delete
the layer permanently.
1. In the Contents pane, make sure that the Louisville Neighborhood Extracted Bands layer is selected.
2. On the ribbon, on the Imagery tab, in the Image Classification group, click the Classification Wizard
button.
Note:
If you want to open the individual tools available in the wizard, you can access them from the same
tab. In the Image Classification group, click Classification Tools and choose the tool you want.
The wizard's first page (indicated by the blue circle at the top of the wizard) contains several basic
parameters that determine the type of classification to perform. These parameters affect which subsequent
steps will appear in the wizard. You will use the supervised classification method. This method is based on
user-defined training samples, which indicate what types of pixels or segments should be classified in what
way. (An unsupervised classification, by contrast, relies on the software to decide classifications based on
algorithms.)
3. Confirm that Classification Method is set to Supervised and that Classification Type is set to Object
based.
The object based classification type uses a process called segmentation to group neighboring pixels based
on the similarity of their spectral characteristics.
Next, you will choose the Classification Schema. The Classification Schema is a file that specifies the
classes that will be used in the classification. A schema is saved in an Esri classification schema (.ecs) file,
which uses JSON syntax. For this workflow, you'll modify the default schema, NLCD2011. This schema is
based on land cover types used by the United States Geological Survey.
4. For Classification Schema, click the drop-down arrow and choose Use default schema.
The next parameter determines the Output Location value, which is the workspace that stores all the
outputs created in the wizard. These outputs include training data, segmented images, custom schemas,
accuracy assessment information, intermediate outputs, and resulting classification results.
Under Optional, you won't enter anything for Segmented Image, Training Samples, or Reference
Dataset because you don't have any of these elements created ahead of time.
6. Click Next.
The first parameter is Spectral detail. It sets the level of importance given to spectral differences between pixels
on a scale of 1 to 20. A higher value means that pixels must be more similar to be grouped together, creating a
higher number of segments. A lower value creates fewer segments. Because you want to distinguish between
pervious and impervious surfaces (which generally have very different spectral signatures), you will use a lower
value.
The next parameter is Spatial detail. It sets the level of importance given to the proximity between pixels
on a scale of 1 to 20. A higher value means that pixels must be closer to each other to be grouped together,
creating a higher number of segments. A lower value creates fewer segments that are more uniform
throughout the image. You will use a low value because not all similar features in your imagery are clustered
together. For example, houses and roads are not always close together and are located throughout the full
image extent.
3. For Minimum segment size in pixels, confirm that the value is 20.
The final parameter, Show Segment Boundaries Only, determines whether the segments are displayed
with black boundary lines. This is useful for distinguishing adjacent segments with similar colors but may
make smaller segments more difficult to see. Some of the features in the image, such as the houses or
driveways, are fairly small, so you will leave this parameter unchecked.
5. Click Next.
A preview of the segmentation is added to the map. It is also added to the Contents pane with the name
Preview_Segmented.
At first sight, the output layer does not appear to have been segmented the way you wanted. Features such
as vegetation seem to have been grouped into many segments that blur together, especially on the left side
of the image. Tiny segments that seem to encompass only a handful of pixels dot the area as well. However,
this image is being generated on the fly, which means the processing will change based on the map extent.
At full extent, the image is generalized to save time. You will zoom in to reduce the generalization, so you
can better see what the segmentation looks like with the parameters you chose.
6. With the mouse wheel, zoom to the neighborhood in the middle of the image.
The preview segmentation runs again. With a smaller map extent, the segmentation more accurately reflects
the parameters you used, with fewer segments and smoother outputs.
Note:
If you are unhappy with how the segmentation turned out, you can return to the previous page of the
wizard and adjust the parameters. The segmentation is only previewed on the fly because it can take a
long time to process the actual segmentation, so it is good practice to test different combinations of
parameters until you find a result you like.
7. In the Contents pane, right-click Preview_Segmented and choose Zoom To Layer to return to the full
extent.
Note:
A message may appear warning you that saving this project file with the current ArcGIS Pro version
will prevent you from opening it again in an earlier version. If you see this message, click Yes to
proceed.
Caution:
Saving the project does not save your location in the wizard. If you close the project before you
complete the entire wizard, you will lose your spot and have to start the wizard over from the
beginning.
You have extracted spectral bands to emphasize the distinction between pervious and impervious features. You
also set up the segmentation parameters to group pixels with similar spectral characteristics into segments and
simplify the image. Next, you will classify the imagery by perviousness or imperviousness.
First, you'll modify the default schema to contain two parent classes: Impervious and Pervious. Then, you will add
subclasses to each class that represent types of land cover. If you attempted to classify the segmented image into
only pervious and impervious surfaces, the classification would be too generalized and likely have many errors. By
classifying the image based on more specific land-use types, you will create a more accurate classification. Later,
you will reclassify these subclasses into their parent classes.
1. In the Image Classification Wizard pane, right-click each of the default classes and click Remove Class.
For each class, click Yes in the Remove Class window.
3. In the Add New Class window, for Name, type Impervious. For Value, type 20, and for Color, choose Gray
30%. Click OK.
Tip:
To see the name of a color, point to the color in the color palette selector and the color name will
appear.
The value 20 is the number that will be attributed to all segments identified as impervious through the
classification process. It is more of a numeric label and is not intended to be used in any calculations.
4. Right-click NLCD2011 again and choose Add New Class. Add a class named Pervious with a value of 40
and a color of Quetzal Green. Click OK.
5. Right-click the Impervious parent class and choose Add New Class. Add a class named Gray Roofs with a
value of 21 and a color of Gray 50%. Click OK.
In this lesson, you won't create other roof types. However, in a project with more diverse buildings
represented in the imagery, you might consider creating a red roof land-use type, since their spectral
characteristics are different from gray roofs.
Next, you'll create a training sample on the map using this class.
6. Click the Gray Roofs class to select it. Then, click the Polygon button.
Tip:
You can enable navigation tools while the Polygon tool is active by holding down the C key.
8. On the northernmost roof in the cul-de-sac, draw a polygon. Double-click to finish the drawing. Make sure
the polygon covers only pixels that comprise the roof.
Note:
The polygon does not need to cover the entire roof. It just needs to be a sample of the roof, but most
importantly, it should only include roof material.
You'll create more training samples to represent the roofs of the houses.
Every training sample that you make is added to the wizard. Although you have only drawn training
samples on roofs, each training sample currently exists as its own class. You'll eventually want all gray roofs
to be classified as the same value, so you will merge the training samples that you created into one class.
10. In the wizard, click the first row to select it. Press Shift and click the last row to select all the training
samples.
11. Above the list of training samples, click the Collapse button.
The training samples collapse into one class. You can continue to add more training samples for gray roofs
and merge them into the Gray Roofs class. The optimum strategy is to gather samples throughout the
entire image.
13. Right-click Pervious and choose Add New Class to create four pervious subclasses based on the following
table:
Note:
These eight classes are specific to the land-use types for this image. Images of different locations may
have different types of land-use or ground features that should be represented in a classification.
Shadows are not actual surfaces and cannot be either pervious or impervious. However, shadows are usually
cast by tall objects such as houses or trees and are more likely to cover grass or bare earth, which are
pervious surfaces.
14. Draw about six training samples for each land-use type throughout the whole image. Zoom and pan
throughout the image as needed.
You can also turn off and on the Preview_Segmented layer to see the Louisville Neighborhood Extracted
Bands layer to make better sense of the landscape.
15. Collapse training samples that represent the same types of land use into one class.
16. When you are satisfied with your training samples, at the top of the Training Samples Manager pane, click
the Save button.
Your customized classification schema is saved in case you want to use it again.
1. In the Image Classification Wizard pane, in the Train page of the wizard, confirm that Classifier is set to
Support Vector Machine.
For the next parameter, you can specify the maximum number of samples to use for defining each class.
You want to use all your training samples, so you will change the maximum number of samples per class to
0. Changing the maximum to 0 is a trick to ensure all training samples are used.
The process may take a long time, as multiple processes are run. First, the image is segmented (previously,
you only segmented the image on the fly, which is not permanent). Then, the classifier is trained and the
classification performed. When the process finishes, a preview of the classification is displayed on the map.
Depending on your training samples, your classification preview should appear to be fairly accurate (the
colors in the dataset correspond to the colors you chose for each training sample class). However, you may
notice that some features were classified incorrectly. For instance, in the example image, the muddy pond
south of the neighborhood was incorrectly classified as a gray roof, when it is actually water. Classification is
not an exact science and rarely will every feature be classified perfectly. If you see only a few inaccuracies,
you can correct them manually later in the wizard. If you see a large number of inaccuracies, you may need
to create more training samples. Also, in this case, roads and driveways are both impervious, so it won't
change the final classification into pervious and impervious land cover.
The next page is the Classify page. You will use this page to run the actual classification and save it in your
geodatabase.
5. For Output Classified Dataset, change the output name to Classified_Louisville.tif. Leave the remaining
parameters unchanged and click Run.
The process runs and the classified raster layer Classified_Louisville is added to the map. It looks similar to
the preview.
The next page is the Merge Classes page. You will use this page to merge subclasses into their parent
classes. Your raster currently has seven classes, each representing a type of land use. While these classes
were essential for an accurate classification, you are only interested in whether each class is pervious or
impervious. You will merge the subclasses into the Pervious and Impervious parent classes to create a raster
with only two classes.
6. Click Next.
7. For each class, in the New Class column, choose either Pervious or Impervious.
When you change the first class, a preview is added to the map. The preview shows what the reclassified
image will look like. When you change all of the classes, the preview should only have two classes,
representing pervious and impervious surfaces.
8. Click Next.
Reclassify errors
The final page of the wizard is the Reclassifier page. This page includes tools for reclassifying small errors in the
raster dataset. You will use this page to fix an incorrect classification in your raster.
1. In the Contents pane, uncheck all layers except the Preview_Reclass and Louisville_Neighborhood.tif
layers. Click the Preview_Reclass layer to select it.
2. On the ribbon, click the Raster Layer tab. In the Compare group, click Swipe.
3. Drag the pointer across the map to visually compare the preview to the original neighborhood imagery.
One inaccuracy that is present in the example image is that some bare earth patches south of the
neighborhood were misclassified as impervious. These patches are not connected to any other impervious
objects, so you can reclassify them with relative ease.
With this tool, you can draw a polygon on the map and reclassify everything within the polygon.
6. In the Remap Classes section, confirm that Current Class is set to Any. For New Class, choose Pervious.
With these settings, any pixels in the polygon will be reclassified to pervious surfaces. Next, you'll reclassify
the bare earth patches.
7. Draw a polygon around the bare earth patches. Make sure you do not include any other impervious
surfaces in the polygon.
Note:
If you make a mistake, you can undo the reclassification by unchecking it in the Edits Log pane.
While you likely noticed other inaccuracies in your classification, for the purposes of this lesson, you will not
make any more edits.
11. On the Quick Access Toolbar, click Save to save the project.
Note:
There are methods to systematically quantify the level of accuracy of a classification. You can learn
about this in the lesson Assess the accuracy of a perviousness classification, where you will randomly
generate accuracy assessment points, ground truth them, create a confusion matrix, and obtain a
classification accuracy percentage.
The lesson includes steps to perform the accuracy assessment for
the impervious and pervious classification you just completed.
You have classified imagery of a neighborhood in Louisville to determine land cover that was pervious and land
cover that was impervious. Next, you'll calculate the area of impervious surfaces per land parcel so the local
government can assign storm water fees.
1. On the ribbon, on the Analysis tab, in the Geoprocessing group, click Tools.
The Geoprocessing pane appears.
2. In the Geoprocessing pane, search for the Tabulate Area tool and open it.
This tool calculates the area of some classes (in this lesson, pervious and impervious) within specified zones
(in this lesson, each parcel).
3. For Input raster or feature zone data, choose the Parcels layer. Confirm that the Zone field parameter
populates with the Parcel ID field.
The zone field must be an attribute that identifies each zone uniquely. The Parcel ID field has a unique
identification number for each feature, so you will leave the parameter unchanged.
4. For Input raster or feature class data, choose the Louisville_Impervious layer.
5. For Class field, choose Class_name.
The class field determines the field by which area will be determined. You want to know the area of each
class in your reclassified raster (pervious and impervious), so the Class_name field is appropriate.
6. For Output table, click the text field, confirm that the output location is the Neighborhood_Data
geodatabase, and change the output name to Impervious_Area.
The final parameter, Processing cell size, determines the cell size for the area calculation. By default, the
cell size is the same as the input raster layer Louisville_Impervious, which is half a foot (in this case). You'll
leave this parameter unchanged.
7. Click Run.
The tool runs and the table is added to the Contents pane, in the Standalone Tables section. You'll take a
look at the table that you created.
8. In the Contents pane, under Standalone Tables, right-click the Impervious_Area table and click Open.
The table has a standard ObjectID field, as well as three other fields. The first is the Parcel_ID field from the
Parcels layer, showing the unique identification number for each parcel. The next two are the class fields
from the Louisville_Impervious raster layer. The Impervious field shows the area (in feet) of impervious
surfaces per parcel, while the Pervious field shows the area of pervious surfaces.
You now have the area of impervious surfaces per parcel, but only in a stand-alone table. Next, you'll join
the stand-alone table to the Parcels layer so that the area information becomes available in the layer. You'll
perform the join based on the Parcel ID field, which is common to the Parcel layer and the stand-alone
table.
10. Right-click the Parcels layer, point to Join and Relates, and then choose Add Join.
Note:
You can ignore the warning appearing next to Input Join Field. The number of features in the Parcels
layer is not very large, so it is not an issue that the Parcel ID field not indexed.
12. Accept the default values for the other parameters and click OK.
13. In the Contents pane, right-click the Parcels layer and choose Attribute Table. In the attribute table,
confirm that the attribute table now includes the following fields:
IMPERVIOUS
PERVIOUS
1. In the Parcel layer attribute table, click the options button and choose Fields View.
2. In the Alias column, change the alias of the IMPERVIOUS field to Impervious Area (Feet). Change the alias
of the PERVIOUS field to Pervious Area (Feet).
3. On the ribbon, on the Fields tab, in the Changes group, click Save.
Next, you'll symbolize the parcels by impervious surface area on the map.
1. In the Contents pane, ensure the Parcels and Louisville_Neighborhood.tif imagery layers are turned on
and all other layers are turned off.
2. Click the Parcels layer to select it.
3. On the ribbon, on the Feature Layer tab, in the Drawing group, choose Symbology.
The Symbology pane for the Parcels layer appears. Currently, the layer is symbolized with a single symbol,
as a yellow outline. You will symbolize the layer so that parcels with high areas of impervious surfaces
appear differently than those with low areas.
The symbology on the layer changes automatically. However, there is little variety between the symbology
of the parcels because of the low number of classes.
Tip:
To see a color scheme name, point to the color scheme.
The parcels with the highest area of impervious surfaces appear to be the ones that correspond to the
location of roads. These parcels are very large and almost entirely impervious. In general, larger parcels tend
to have larger impervious surfaces. But there could also be great variations between smaller parcels, based
on the size of the buildings or the choice by the owners to replace an impervious driveway or terrace with
pervious ones or perhaps install a green roof on their house.
While you could symbolize the layer by the percentage of area that is impervious, most storm water fees
are based on total area, not percentage of area.
In this lesson, you classified an aerial image of a neighborhood in Louisville, Kentucky, to show areas that were
pervious and impervious to water. You then assessed the accuracy of your classification and determined the area
of impervious surfaces per land parcel. With the information that you derived in this lesson, the local government
would be better equipped to determine storm water bills.
You can use this workflow with your own data. As long as you have high-resolution, multispectral imagery of an
area, you can classify its surfaces.
Note:
To go further, consider doing the lesson Assess the accuracy of a perviousness classification. Building on the
results you just obtained, you'll learn how to formally assess the accuracy of your classification. This is an
important step to prove the reliability of your results.
You can find more lessons like this on the Introduction to Imagery & Remote Sensing page.
Acknowledgements
Imagery from United States National Agriculture Imagery Program (NAIP).
Send Us Feedback
Please send us your feedback regarding this lesson. Tell us what you liked as well as what you didn't. If
something in the lesson didn't work, let us know what it was and where in the lesson you encountered it (the
section name and step number). Use this form to send us feedback.
Perform a formal assessment to determine whether a classification of pervious and impervious surfaces
is reliable.
START LESSON
Assess hail damage in cornfields with satellite imagery in ArcGIS Pro
Compute the change in vegetation before and after a hailstorm in Alberta, Canada, with the SAVI index.
START LESSON
Explore how the six categories of spatial analysis can help you answer geographic questions. Navigate these
questions using the spatial analysis workflow and learn how to apply it to your own projects.
LEARN MORE
Elevation data in raster format is used to model the earth's surface, solve problems, and support decision
making. This course teaches how to use ArcGIS Spatial Analyst tools to derive raster data from an elevation
raster for visualization and analysis.
LEARN MORE
Through image classification, you can create thematic classified rasters that can convey information to
decision makers. This course introduces options for creating thematic classified rasters in ArcGIS.
LEARN MORE