Group 4: Bruce Bayne, April Brice, Andrew Pasquale, and Mark
Wheeler
Using topographic, drainage network, and land use/land cover (LULC) data for our study area in southern California, we analyzed land use and landcover in relation to the drainage network and basins.Part 1: Summarize Land Use/Land Cover
a. within the entire watershed above Fillmore
b. within 250 meters of channels upstream of Fillmore
c. describe and explain differences between these two summariesPart 2: Map all 5th order drainage basins - identify the basins with:
a. the highest discharge
b. the highest mean slope value
c. the highest total erosion potential
d. the greatest percentage of forest land
e. discuss possible implications of these results - in terms of the patterns of erosion you might expect
and/or in terms of refinements to a model for erosion potentialPart 3: Identify the areas downstream from all industrial sites
(both industrial sites and downstream areas within 100 meters of a channel)
Data Source: USGS Land
use/Land cover (LULC) data
Record Descriptions
Geographic Information Retrieval and Analysis System (GIRAS)
The GIRAS format involves a standard character
fixed length record (usually
ASCII-coded, 80 character card images). Each
record may consist of 1 to 16 data-element
fields. Each data-element field may be one
of three different types: 1) 16 bit binary integer;
2) 32 bit binary integer or 3) a string of
text characters. The GIRAS file structure is
comprised of a map header, section header,
arc records subfile, coordinate subfile, polygon
records subfile, file of arcs by polygon (FAP)
subfile, text subfile and an associated data
subfile.
Initially we used Don's "hawked" coverage la_lulc located in the group1 folder. Then we tried to change the projection from Albers to UTM using "project define".
However, this didn't work out because the coverage still appeared to
be in Albers when we looked at it in A/P. So we decided to download the
data from the USGS homepage. Then we unzipped it, ran
Arc: fold -80 land_use > la80,
Arc: girasarc2 la80 lulc utm -119 0 0
Here is a display of our land use land cover data downloaded in UTM:
Land Use / Land Cover over Filled Topography
Data Manipulation
Ran a dissolve to get rid of the neat lines
Arc: dissolve lulc lulc2 lulc-id poly

1.a. Summarizing land use
within the watershed above Fillmore, CA.
To summarize landuse within the entire watershed above Fillmore, we first had to identify the area that drains into Fillmore. This was done in gridspace, and subsequently vectorized. We then clipped the landuse cover to this watershed, and summarized landuse.
We used the flow direction grid from project 2 and the watershed command
to interactively create the watershed grid. The point for Fillmore
Grid: fm_ws = watershed ( flowdirgrid, selectpoint(flowdirgrid,
*))
Define the points <9 to END>
Running... 100%
Delineating watershed...
Fillmore watershed delineated in
White
Then we coverted the Fillmore watershed grid to polygon coverage to
use for clipping the landuse coverage
Grid: fm_ws_poly = gridpoly(fm_ws)
The landuse cover was clipped to the watershed using the clip command:
Arc: clip lulc2 fm_ws_poly fmlu
Land use polygons for the Fillmore
watershed
The minimum polygon size for the landuse classification is 4 ha, with
minimum width of 200 meters.
Land use classifications are listed here
![]() |
![]() |
|
|
![]() |
![]() |
|
|
![]() |
|
|
1.b. Summarize LULC within 250 meters of channels upstream of Fillmore
We switched to “grid space” to complete this part of the project in order to have greater flexibility in the generation and selection of data than that provided by the zonal operations in A/I. By constructing grids for the Fillmore land use and streams vector coverages we had the ability to easily select for values from overlaying grid cells within the same geographic space using grid math and conditional arguments. Our process is as follows:
1. Construct the grids from coverages:
Grid: fmlugrid = polygrid(fmlu, lulc-id, #, #,
50)
Converting polygons from FMLU to grid FMLUGRID
Grid: sbufgrid = polygrid(fmstream_buf, inside,
#, #, 50)
Converting polygons from FMSTREAM_BUF to
grid SBUFGRID
2. Next we set the values of cells that were “inside polygons” within the stream vector coverage to null. These cells originally had a value of 1.
Grid: sbufgrid2 = con(sbufgrid == 100,100)
3. We used the CON statement again to construct a grid that contained the land use values from that fell within the stream buffer grid. Since the stream buffer grid had only values of 100 or null, the null values were ignored in the Con statement and only land use values that existed in overlapping stream buffer cells equal to 100 were selected.
GRID: fmlu_s_grid = con(sbufgrid2, fmlugrid)
The following diagrams illustrate the process:
![]() |
![]() |
![]() |
|
|
|
|
The following chart summarized the land use area in square meters by land use category.

1.c. Comparison of differences in land
use

The land use within the stream buffers is relatively similar that of
the overall study area. There is no indication that the land use
occuring within the buffer zone is disproportionately residential, industrial,
or otherwise developed. In fact, shrub and brush rangeland and evergreen
forest make up the largest land use classes by percent area withiin the
buffers. Our stream coverage may have included more channels than
really exist in the landscape as we used a relatively low flow accumulation
threshold to determine where channels were located. This may have
demphasized the percent of development within the buffers.
2.a. Map all 5th order drainage basins - identify the basins with the highest discharge
Our method to map the 5th order drainage basins was to select the end points of the 5th order streams and generate basins based on these points. To do this, we selected only those nodes of 5th order streams that intersected 6th order streams. We also considered the ocean shoreline and the border of the study area coverages as proxy 6th order streams. We constructed the watersheds and conducted analysis of land use in gridspace. The process is as follows:
1. The stream cover was appended with the shoreline and border arcs of those resective coverages. We selected for 5th order streams and 6th order streams and placed each in respective coverages using the PUT command in ARC/EDIT.
2. We converted the nodes of the fifth order streams
into points
Arc: nodepoint 5thorder 5points
Arc: build 5points points
3. This allowed us to select
the points that overlapped with the 6th order streams
Arcplot: resel 5points points overlap 6thorder
arcs
27 of 1179 selected
4. These selected points were
made into a new coverage using the create command.
Arcplot: create 5pts select 5points points
5. There were several places
were additional points were needed. These areas were on the edges
of the extent, where
Arcedit: ec 5pts
Arcedit: ef points
Arcedit: add
{Interactively added points at places where the 5thorder streams went off
the extent of the map}
Arcedit: save
Selected tnodes# of 5th order Streams
(green = 5th order, blue = 6th order)
6. Then we converted these points into a grid:
Arc: pointgrid 5pts 5ptsgrid
Converting points from 5pts to grid 5ptsgrid
Cell Size (square cell):
200
Convert the Entire Coverage(Y/N)?:
y
Enter background value (NODATA | ZERO):
nodata
2.b. Discharge
1. Before weighting the source
points with flow accumulation data and creating the watershed, they must
all have the same value. We used the following commands to set the
values of these cells to 1.
GRID: docell
:: if( 5ptsgrid > 0) 5pts-b = 1
:: end
2. We then weighted the points used to create the
watershed using the flow accumulation grid.
GRID: 5ptsdis = 5ptsgrid * flowacc
GRID: 5dis-b = 5dis / 100000
{This command was used to make numbers easier
to visualize}
3. The watersheds were created with the following
command:
GRID: 5dis-b-ws = watershed( flowdirgrid, 5dis-b
)

2.c. Mean slope by watershed
To determine the mean slope for each watershed
we used the zonalmean command:
GRID: meanslope = zonalmean( slopegrid, 5thbasin
)

2.d. Potential erosion by watershed
We used a simple formula to estimate erosion intensity
(slope * discharge)
GRID: erosion = meanslope * 5dis-b-ws

2.e. Percent forest by watershed
1. To get a landuse grid
for the entire region we used the following command:
Usage: (*) POLYGRID(<cover>,{item},{lookup_table},{weight_table},{cellsize})
Grid: lugrid = polygrid( lulc2, lulc-id, #, #,
200)
Converting polygons from LULC2 to grid
LUGRID
Number of Rows = 573
Number of Columns = 930
Land use grid
2. We selected forested areas
from the landuse grid using the con command. Forested landuse classification
are: 41, 42, 43, 61. We set each forested cell equal to one.
GRID: forest = con( lugrid == 41or lugrid ==
42 or lugrid == 43 or lugrid == 61, 1)

3. Then we summed the number forest cells in each
basin:
GRID: sumforest = zonalsum( 5thbasin, forest
)
4. Each basin was multiplied by the area of a cell
to yield the total forest area per basin
GRID: forestarea = sumforest * 40000

5. The zonal area command was used to determine the
total area of each basin:
GRID: basinarea = zonalarea( 5thbasin )
6. The percent forest for each basin was determined
using grid math. The float command was used to create a floating
point output grid.
GRID: percentforest = float( forestarea / basinarea
)

2.f. Discussion of potential erosion
![]() |
![]() |
![]() |
|
|
|
|
![]() |
|
|
Although this discussion of potential erosion is constrained by a lack of data concerning many of the important processes and structures that influence erosion (e.g. soils), some of the more important factors regulating erosion potential include mean slope, mean discharge, and vegetative cover. We used a simple, evenly weighted formula to determine potential erosion (mean slope in degrees x mean annual discharge in cubic meters / percent forest cover). Increasing slope and discharge increase erosion proportionally, while increasing forest cover reduces the potential for erosion by increased soil holding capabilities and increased infiltration. This method may have disproportionally represented areas with very high or very low forest cover. Further analysis could be improved by using a weighted method for forest cover.
The area with the highest potential erosion is in the southwest of the project area where discharge is highest and forest cover is lowest. Mean slope in this area is also relatively high. This area could be targeted for erosion control measures, especially if human land use is responsible for reduced forest cover.
3.a Identify the areas downstream from all industrial sites
Industrial sites are identified with the classifications 13 (Industrial) and 15 (Industrial and Commercial) in the landuse cover. If we select the industrial polygons, and buffer them by 100 meters, we can select stream nodes that overlap with buffered industrial areas. Then using the TRACE command we can create arcs that flow downstream from the selected nodes. We buffered these selected streams, converted them to gridspace and analysed land use.
TRACE <BOTH | UPSTREAM | DOWNSTREAM> <cover>
<out_selection_file> {ITEM flow_direction_item | FILE flow_direction_file}
{* | selection_file} {end_selection_file} {previous_arc_file}
This command finds the arcs and nodes upstream and/or downstream from
a set of specified locations and writes them to out_selection_file.
The selection_file specifies that the origin node(s) of the trace are to
come from a selection file. This selection file must contain node features
for the coverage specified for TRACE. A pathname may be given.
1. The following process was
used to identify industrial areas:
Arcedit: ec lulc2
The edit coverage is now /EXPORT/DATA1/GEO595A/STUDENTS/GROUP4/PROJECT3/LULC2
WARNING the Map extent is not defined
Defaulting the map extent to the BND of /EXPORT/DATA1/GEO595A/STUDENTS/GROUP4/PROJECT3/LULC2
Arcedit: ef polys
5234 element(s) for edit feature POLYS
Arcedit: drawe polys
Arcedit: draw
Arcedit: resel
0 element(s) now selected
Arcedit: asel lulc-id = 13 {This
selects industrial areas)
229 element(s) now selected
Arcedit: drawsel
Arcedit: asel lulc-id = 15 {This
selects industrial and commercial areas}
239 element(s) now selected
Arcedit: put ind
Creating /EXPORT/DATA1/GEO595A/STUDENTS/GROUP4/PROJECT3/IND2
Copying the polygon(s) into /EXPORT/DATA1/GEO595A/STUDENTS/GROUP4/PROJECT3/IND2.
239 polygon(s) copied
901 arc(s) copied
239 label(s) copied
The cover containing industrial polygons (ind) was then built for polygons using the build command
2. The industrial polygons were then buffered by 100
meters
Usage: BUFFER <in_cover> <out_cover> {buffer_item}
{buffer_table}
{buffer_distance} {fuzzy_tolerance} {LINE | POLY | POINT | NODE}
Arc: buffer ind ind_buf # # 100
3. Then we reselected streams
that overlapped with the buffered industrial polygons
Arcplot: resel str arcs overlap ind_buf polys
STR arcs : 1152 of 35580 selected.
4. This selected set was put into a new coverage using
the create command. This was done because selecting only the nodes
that overlapped with the industrial polygons missed many streams that passed
through these areas, but did not contain node points within the polygons.
By creating a new coverage with these arcs we were able to select the nodes
from these arcs to be used in the tracing process.
Arcplot: create indstr select str arcs
Arc: build indstr node
5. Then we reselected the nodes
from all streams that overlapped with the streams that overlapped industrial
areas.
Arcplot: resel str nodes overlap indstr nodes
STR nodes : 1545 of 35986 selected.
6. These nodes were written to a selection file to
be used in the TRACE command:
Arcplot: writeselect strnode.sel str nodes
1 selection set(s) written to strnode.sel
7. The stream coverage needed to be cleaned
before running the TRACE command. This may be due to duplicate nodes
which overlap, but are not connected. This disrupted the tracing
since the streams were not continuous without being cleaned.
Arc: clean str # # # line
Cleaning /EXPORT/DATA1/GEO595A/STUDENTS/GROUP4/PROJECT3/STR
Sorting...
Intersecting...
Assembling arcs...
8. The TRACE command was used
to identify the areas downstream from the previous selected nodes of streams
that passed through industrial areas.
Arcplot: trace downstream str downstr.sel # strnode.sel
str nodes : 2966 of 35986 traced.
str arcs : 2914 of 35580 traced.
9. A new coverage was created from the selected set of downstream
arcs.
Arcplot: create downstr select str arcs

10. These downstream arcs were buffer by 100 meters
Arc: buffer downstr downstrbuf # # 100
11. The buffered streams were converted to gridspace to allow
manipulation using the zonal functions
Arc: polygrid downstrbuf dstrgrid inside
Converting polygons from downstrbuf to grid dstrgrid
Cell Size (square cell): 200
Convert the Entire Coverage? (Y/N): y
Number of Rows = 573
Number of Columns = 901
12. The interior polygons created by buffering
were then removed with a con command
Grid: dstrgrid2 = con( dstrgrid == 100, 100)
13. The gridded, buffered streams were overlapped with the landuse
grid to analyse land use within 100 meters of streams downstream from industrial
areas.
Grid: dstrlu = con( dstrgrid, lugrid )

Residential and Rangeland uses are the most prevalent land uses for this area. Croplands, pasture and other industrial uses are also common. This information could be used to determine what land uses would be most affected by industrial pollutants.