Whew! I feel like I'm the first person to crack this HEC-HMS XSL Style Sheet nut. In any case I'm the first one to share it on the web.
First of all, before diving into how to get a report using a Style Sheet, you should realize that a sort of basin model report from HEC-HMS is available as a readable text file in the .basin file. But beyond that, for the purposes and in the hope that we users would develop tabular reports, the HEC also provided a report definition language (that they didn't document very well) for reports we can get from the Tools, Reports menu.
The Hydrologic Modeling System (HEC-HMS) is designed to simulate the complete hydrologic processes of dendritic watershed systems. The software includes many traditional hydrologic analysis procedures such as event infiltration, unit hydrographs, and hydrologic routing. HEC-1, developed by the Hydrologic Engineering Center in Davis, California, has long been one of the industry-standard programs for hydrologic analysis. It is a single storm event, lumped parameter model, but includes several different options for modeling rainfall, losses, unit hydrographs, and stream routing.
I was able to create an SCS Basin Summary style sheet by using the 'tags' in the .basin file, making them lower case and removing spaces from them. Here's an example of how I added the Curve Number to my report:
1. The sample Snyder report provided by the HEC includes this snippet
2. My .basin file includes this snippet
3. I turned 'Curve Number' from step 2 into curvenumber below. I continued that way to use the example of the .basin file and correct (with some oddities) the table HTML to create an SCS Basin table as shown below:
And here is the complete file I saved as SCSBasinSummary.xsl
And here is the resulting report :-) :
Basin Model 'Bisbee Tailing 071609'
Subbasin | Area | SCS CN | SCS Lag |
---|---|---|---|
SCTSA Top Basin | 0.2149 | 87 | 17.7 |
SCTSA Top Pond 1 | 0.1548 | 87 | 24.1 |
SCTSA Top Pond 2 | 0.1345 | 87 | 28.8 |
SCTSA Top Pond 3 | 0.0877 | 87 | 24.7 |
SCTSA TOE-1 | 0.0895 | 87 | 9.4 |
W Natural Ground 1 | 0.0831 | 87 | 11.7 |
SCTSA Main 2 WS | 0.01259 | 87 | 11.0 |
SCTSA-W3 | 0.0079 | 87 | 3.2 |
SCTSA-W1 | 0.0073 | 87 | 3.2 |
SCTSA Main 3 WS | 0.0327 | 87 | 8.7 |
HR 1 | 0.0168 | 87 | 1.5 |
SCTSA-S3 | 0.0135 | 87 | 4.3 |
SCTSA-S4 | 0.0125 | 87 | 4.1 |
SCTSA-S2 | 0.0058 | 87 | 2.6 |
SCTSA-S1 | 0.0053 | 87 | 2.3 |
SCTSA-S5 | 0.0166 | 87 | 4.8 |
SCTSA-S6 | 0.0132 | 87 | 3.2 |
SCTSA-S7 | 0.0168 | 87 | 6.1 |
HP-1 | 0.047 | 87 | 6.3 |
SCTSA-S8 | 0.0217 | 87 | 5.3 |
Upstream Natuural | 0.6291 | 87 | 15.3 |
NCTSA Top | 0.2581 | 87 | 18 |
NCTSA-E3 | 0.0289 | 87 | 5.3 |
NCTSA-E5 | 0.0083 | 87 | 3.6 |
NCTSA-E2 | 0.0050 | 87 | 3.8 |
NCTSA-E1 | 0.0033 | 87 | 2.2 |
NCTSA-E4 | 0.0022 | 87 | 2.9 |
SCTSA-E3 | 0.0108 | 87 | 6.5 |
NCTSA Main 4 WS | 0.0055 | 87 | 2.5 |
NCTSA Main 5 WS | 0.0162 | 87 | 2.9 |
SCTSA-E2 | 0.0123 | 87 | 5.7 |
NCTSA Main 6 WS | 0.0097 | 87 | 4.2 |
SCTSA-E1 | 0.0060 | 87 | 4.5 |
NCTSA Main 7 WS | 0.0075 | 87 | 2 |
SCTSA-E0 | 0.0022 | 87 | 2.9 |
NCTSA Main 8 WS | 0.0057 | 87 | 1.9 |
HR-2 | 0.0097 | 87 | 1.5 |
HP-2 | 0.0475 | 87 | 3.9 |
SCTSA-E4 | 0.0070 | 87 | 1.6 |
Here's another one that reports both SCS and Green-Ampt and Clark:
<table border='2' width='100%'>
<tr>
<th></th>
<th>Subbasin</th>
<th>Area</th>
<th>SCS CN</th>
<th>SCS Lag</th>
<th>GA IC</th>
<th>GA SC</th>
<th>GA Suction</th>
<th>GA Conduct.</th>
<th>GA %Imp.</th>
Hec Hms 3.3
<th>Clark TC</th><th>Clark R</th>
</tr>
<xsl:for-each select='/HMS:basin/HMS:subbasin'>
<tr>
<td><xsl:apply-templates select='.'/></td>
Hec Hms 3 5
<td><xsl:apply-templates select='./HMS:area'/></td>
<td><xsl:apply-templates select='./HMS:lossrate/HMS:curvenumber'/></td>
Hec Hms 4.0
<td><xsl:apply-templates select='./HMS:transform/HMS:lag'/></td><td><xsl:apply-templates select='./HMS:lossrate/HMS:initialcontent'/></td>
<td><xsl:apply-templates select='./HMS:lossrate/HMS:saturatedcontent'/></td>
<td><xsl:apply-templates select='./HMS:lossrate/HMS:wettingfrontsuction'/></td>
<td><xsl:apply-templates select='./HMS:lossrate/HMS:hydraulicconductivity'/></td>
<td><xsl:apply-templates select='./HMS:lossrate/HMS:percentimpervious area'/></td>
<td><xsl:apply-templates select='./HMS:transform/HMS:timeofconcentration'/></td>
<td><xsl:apply-templates select='./HMS:transform/HMS:storagecoefficient'/></td>
</tr>
</xsl:for-each>
</table>