EFH2IaTable.java [src/java/m/efh2] Revision: default Date:
package m.efh2;
import java.util.Map;
import java.util.TreeMap;
/**
* lookup table: Initial abstraction (Ia) values for various curve numbers.
*/
public class EFH2IaTable {
// NOTE: This is a literal implementation of the Ia lookup table,
// Table2-4, from Engineering Field Handbook, ch 2 (EFH2)
//
private static final Map<Integer, Double> IaMap;
static {
IaMap = new TreeMap<>();
IaMap.put(40, 3.000);
IaMap.put(41, 2.878);
IaMap.put(42, 2.762);
IaMap.put(43, 2.651);
IaMap.put(44, 2.545);
IaMap.put(45, 2.444);
IaMap.put(46, 2.348);
IaMap.put(47, 2.255);
IaMap.put(48, 2.167);
IaMap.put(49, 2.082);
IaMap.put(50, 2.000);
IaMap.put(51, 1.922);
IaMap.put(52, 1.846);
IaMap.put(53, 1.774);
IaMap.put(54, 1.704);
IaMap.put(55, 1.636);
IaMap.put(56, 1.571);
IaMap.put(57, 1.509);
IaMap.put(58, 1.448);
IaMap.put(59, 1.390);
IaMap.put(60, 1.333);
IaMap.put(61, 1.279);
IaMap.put(62, 1.226);
IaMap.put(63, 1.175);
IaMap.put(64, 1.125);
IaMap.put(65, 1.077);
IaMap.put(66, 1.030);
IaMap.put(67, 0.985);
IaMap.put(68, 0.941);
IaMap.put(69, 0.899);
IaMap.put(70, 0.857);
IaMap.put(71, 0.817);
IaMap.put(72, 0.778);
IaMap.put(73, 0.740);
IaMap.put(74, 0.703);
IaMap.put(75, 0.667);
IaMap.put(76, 0.632);
IaMap.put(77, 0.597);
IaMap.put(78, 0.564);
IaMap.put(79, 0.532);
IaMap.put(80, 0.500);
IaMap.put(81, 0.469);
IaMap.put(82, 0.439);
IaMap.put(83, 0.410);
IaMap.put(84, 0.381);
IaMap.put(85, 0.353);
IaMap.put(86, 0.326);
IaMap.put(87, 0.299);
IaMap.put(88, 0.273);
IaMap.put(89, 0.247);
IaMap.put(90, 0.222);
IaMap.put(91, 0.198);
IaMap.put(92, 0.174);
IaMap.put(93, 0.151);
IaMap.put(94, 0.128);
IaMap.put(95, 0.105);
}
/**
* constructor is private - use the static methods
*/
private EFH2IaTable() {
}
/**
* lookup Ia for the given runoff curve number
*
* @param runoffCN curve number, 40 <= CN <= 95
* @return initial abstraction, inches
*/
public static double lookupIa(int runoffCN) {
if (runoffCN < 40 || runoffCN > 95) {
throw new IllegalArgumentException("RunoffCN must be >= 40 and <= 95");
}
return IaMap.get(runoffCN);
}
}