/***********************************
/* Program: cn_map.aml
/*
/* Function: Combine a soils and a vegetation map to create an
/* average curve number map for each field in a
/* given subwatershed. The curve number values
/* are assigned according to a lookup-table based
/* on a table in "Handbook of Hydrology" by D.R.
/* Maidment (1993) for semi-arid rangelands.
/*
/* History: Created 1999 by Jill Heller, the Advanced Resource Technology
/* Group, the University of Arizona, Tucson, AZ 85721.
/* ph: 520-621-3045. jheller@nexus.srnr.arizona.edu
/***********************************
/* Routines called: None.
/*
/* Requirements: Subwatershed, soils, and vegetation coverage.
/* Lookup table of curve number values.
/*
/* Results: Grid of the average curve number (cnavg_%sws%) for
/* each field in the subwatershed.
/*
/* Usage: &run cn_map
/*
/* Arguments: None
/******************************************************************
&if %:PROGRAM% ne ARC &then &do
&if %:PROGRAM% eq GRID &then quit
&end
&do sws &list <subws>
/*=======Soil map===========
clip statsgo_clip %sws% %sws%_soils
additem %sws%_soils.pat %sws%_soils.pat code 2 2 i
additem %sws%_soils.pat %sws%_soils.pat hydgrp 1 1 c
tables
select %sws%_soils.pat
reselect MUID = 'AZ060'
calc code = 3
move 'C-B' to hydgrp
select %sws%_soils.pat
reselect MUID = 'AZ066'
calc code = 4
move 'D' to hydgrp
select %sws%_soils.pat
reselect MUID = 'AZ272'
calc code = 4
move 'D' to hydgrp
select %sws%_soils.pat
reselect MUID = 'AZ277'
calc code = 2
move 'B' to hydgrp
q
idedit %sws%_soils poly
/*======Vegetation map=======
clip azveg_clp %sws% %sws%_veg
additem %sws%_veg.pat %sws%_veg.pat code 2 2 i
tables
select %sws%_veg.pat
reselect VDESC = 'Semidesert Mixed Grass-Mesquite'
calc code = 1
select %sws%_veg.pat
reselect VDESC = 'Encinal Mixed Oak-Mesquite'
calc code = 2
select %sws%_veg.pat
reselect VDESC = 'Semidesert Mixed Grass-Mixed Scrub'
calc code = 3
select %sws%_veg.pat
reselect VDESC = 'Semidesert Mixed Grass-Yucca-Agave'
calc code = 4
select %sws%_veg.pat
reselect VDESC = 'Encinal Mixed Oak'
calc code = 5
q
/*======Curve Number map ============
/* Land cover type Curve Number By HSG
/*-----------------------------------------------------------------------------
/*Code HSG-A HSG-B HSG-C HSG-D
/*-----------------------------------------------------------------------------
/* 1 Semidesert Mixed Grass-Mesquite 55 72 81 86
/* 2 Encinal Mixed Oak-Mesquite 55 72 81 86
/* 3 Semidesert Mixed Grass-Mixed Scrub 55 72 81 86
/* 4 Semidesert Mixed Grass-Yucca-Agave 55 72 81 86
/* 5 Encinal Mixed Oak N/A 48 57 63
/* Values are based on 'Fair' Hydrologic condition; Maidment Table 5.5.1 p. 5.28
/* Maybe should use 'Good' Hydrologic condition which would provide the minimum
/* curve number values.
polygrid %sws%_soils soil_%sws% code
30
y
/* A cell size of 30 was selected in order to have the same resolution as
/* all other grids used in this project.
polygrid %sws%_veg veg_%sws% code
30
y
/* A cell size of 30 was selected for the veg. map as well.
&do sws &list <subws>
grid
/* create a CN map according to the CN lookup table previously created.
cn_%sws% = con (soil_%sws% eq 1 and veg_%sws% eq 1, 55, ~
con (soil_%sws% eq 1 and veg_%sws% eq 2, 55, ~
con (soil_%sws% eq 1 and veg_%sws% eq 3, 55, ~
con (soil_%sws% eq 1 and veg_%sws% eq 4, 55, ~
con (soil_%sws% eq 2 and veg_%sws% eq 1, 72, ~
con (soil_%sws% eq 2 and veg_%sws% eq 2, 72, ~
con (soil_%sws% eq 2 and veg_%sws% eq 3, 72, ~
con (soil_%sws% eq 2 and veg_%sws% eq 4, 72, ~
con (soil_%sws% eq 2 and veg_%sws% eq 5, 48, ~
con (soil_%sws% eq 3 and veg_%sws% eq 1, 81, ~
con (soil_%sws% eq 3 and veg_%sws% eq 2, 81, ~
con (soil_%sws% eq 3 and veg_%sws% eq 3, 81, ~
con (soil_%sws% eq 3 and veg_%sws% eq 4, 81, ~
con (soil_%sws% eq 3 and veg_%sws% eq 5, 57, ~
con (soil_%sws% eq 4 and veg_%sws% eq 1, 86, ~
con (soil_%sws% eq 4 and veg_%sws% eq 2, 86, ~
con (soil_%sws% eq 4 and veg_%sws% eq 3, 86, ~
con (soil_%sws% eq 4 and veg_%sws% eq 4, 86, ~
con (soil_%sws% eq 4 and veg_%sws% eq 5, 63, 0)))))))))))))))))))
/* Now find average CN for each field (upland and lateral)
cnavg_%sws% = zonalmean (%sws%_grd, cn_%sws%)
list cnavg_%sws%
/* cnavg_%sws% is the map containing the average curve number value for
/* each field element in the subwatershed.
&end
&return