From 91da47cd70c1d58fec5236ea9454400094c6ab1e Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Fri, 25 Jun 2021 11:55:59 -0600
Subject: [PATCH 01/39] this is to work out relative doc links on gitlab

---
 docs/pages/USGS-Models.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index b7659a3f5..b8d88c95e 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -27,10 +27,10 @@ Each model region has a dedicated repository with version tags marking different
 
 ## Related Pages
 
-* [Model Editions](model-editions)
-* [Logic Trees & Uncertainty](logic-trees-&-uncertainty)
+* [Model Editions](model-editions.md)
+* [Logic Trees & Uncertainty](logic-trees-&-uncertainty.md)
 
-[**Documentation Index**](docs)
+[**Documentation Index**](docs/README.md)
 
 ---
 ![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
-- 
GitLab


From a94f3e9196751ed79bedee326275bcced01f6b3f Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Fri, 25 Jun 2021 12:13:35 -0600
Subject: [PATCH 02/39] link to docs is local, then navigation works in checked
 out local copy or on gitlab, but does not take users to gitlab from a local
 copy

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index c6523b5ba..849cd483d 100644
--- a/README.md
+++ b/README.md
@@ -8,4 +8,4 @@ command line applications and web service classes and relies on the
 [*nshmp-lib*](https://code.usgs.gov/ghsc/nshmp/nshmp-lib) hazard library, among other
 dependencies.
 
-Please see the [docs](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/docs) for more information.
+Please see the [docs](docs/README.md) for more information.
-- 
GitLab


From 73e7e8589d3a71fe2d146f27ebb06dc8e834aa8f Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Fri, 25 Jun 2021 12:45:19 -0600
Subject: [PATCH 03/39] updating links, cleanup

---
 docs/README.md                                | 10 +++++-----
 docs/pages/Building-&-Running.md              | 19 ++++++++++---------
 .../Magnitude-Frequency-Distributions.md      |  6 ++++--
 3 files changed, 19 insertions(+), 16 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 3ef557e3b..3b01c8111 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,9 +1,9 @@
 # Documentation: nshmp-haz
 
-***nshmp-haz*** is a USGS developed software stack that supports probabilistic seismic hazard
-(PSHA) and related analyses. It is maintained by the National Seismic Hazard Model Project
-([NSHMP](https://earthquake.usgs.gov/hazards/)) within the U.S. Geological Survey's
-([USGS](https://www.usgs.gov)) earthquake hazards program ([EHP](http://earthquake.usgs.gov)).
+***nshmp-haz*** is a U.S. Geological Survey ([USGS](https://www.usgs.gov)) developed software stack
+that supports probabilistic seismic hazard (PSHA) and related analyses. It is maintained by the
+National Seismic Hazard Model Project ([NSHMP](https://earthquake.usgs.gov/hazards/)) within the
+USGS's earthquake hazards program ([EHP](http://earthquake.usgs.gov)).
 
 *nshmp-haz* supports high performance seismic hazard calculations required to generate detailed
 maps over large areas and supports a variety of USGS web services and applications related to
@@ -31,7 +31,7 @@ to use *nshmp-haz* as well as underlying model implementation details.
 
 ## Other Pages & References
 
-* [nshmp-lib](/ghsc/nshmp/nshmp-lib): USGS hazard modeling library
+* [nshmp-lib](https://code.usgs.gov/ghsc/nshmp/nshmp-lib): USGS hazard modeling library
 * [Functional PSHA](pages/Functional-PSHA.md)
 * [Probabilistic Seismic Hazard Analysis, a Primer
   [PDF]](http://www.opensha.org/sites/opensha.org/files/PSHA_Primer_v2_0.pdf)
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 2184c25f1..8983bde40 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -40,15 +40,16 @@ measures. For example:
 java -cp path/to/nshmp-haz.jar gov.usgs.earthquake.nshmp.HazardCalc model sites [config]
 ```
 
-At a minimum, the hazard source [model](hazard-model) and the [site](site-specification)(s) at
+At a minimum, the hazard source [model](Hazard-Model.md) and the [site](Site-Specification.md)(s) at
 which to perform calculations must be specified. The source model should specified a path to a
 directory. A single site may be specified with a string; multiple sites must be specified using
 either a comma-delimited (CSV) or [GeoJSON](http://geojson.org) file. The path to a custom
-[configuration](calculation-configuration) file containing user-specific settings may optionally
+[configuration](Calculation-Configuration.md) file containing user-specific settings may optionally
 be supplied as a third argument. It can be used to override any calculation settings; if absent
-[default](calculation-configuration) values are used.
+[default](Calculation-Configuration.md) values are used.
 
-See the [examples](/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples) directory for more details.
+See the [examples](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
+directory for more details.
 
 ### Computing Disaggregations
 
@@ -62,7 +63,7 @@ java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.DisaggCalc model sites returnPe
 
 Disaggregations build on and output `HazardCalc` results along with other disaggregation specific
 files. Disaggregations also have some independent
-[configuration](calculation-configuration#config-disagg) options.
+[configuration](Calculation-Configuration.md#config-disagg) options.
 
 ## Run with [Docker](https://docs.docker.com/install/)
 
@@ -112,17 +113,17 @@ Where: (TODO links below need checking)
   * hazard = `HazardCalc`
   * rate = `RateCalc`
 
-* `MODEL` is the [USGS model (NSHM)](usgs-models) to run:
-  * CONUS-2018: [Conterminous U.S. 2018](https://github.com/usgs/nshm-conus)
+* `MODEL` is the [USGS model (NSHM)](USGS-Models.md) to run:
+  * CONUS-2018: [Conterminous U.S. 2018](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
   * HAWAII-2021: [Hawaii 2021](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)
 
 * `RETURN_PERIOD`, in years, is only required when running a disaggregation
 
 * Other arguments:
-  * (required) The absolute path to a GeoJSON or CSV [site(s)](site-specification) file
+  * (required) The absolute path to a GeoJSON or CSV [site(s)](Site-Specification.md) file
     * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv`
     * GeoJSON example: `$(pwd)/my-geojson-sites.geojson:/app/sites.geojson`
-  * (optional) The absolute path to a [configuration](calculation-configuration) file
+  * (optional) The absolute path to a [configuration](Calculation-Configuration.md) file
     * Example: `$(pwd)/my-custom-config.json:/app/config.json`
   * (required) The absolute path to an output directory
     * Example: `$(pwd)/my-hazard-output:/app/output`
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index 660adb59f..2abe4485a 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -48,6 +48,8 @@ tree of rates for a source is also present in a model. Example:
 
 ## Tapered Gutenberg–Richter
 
+TODO: Need a new link for tapered GR MFD
+
 A [tapered Gutenberg-Richter](http://scec.ess.ucla.edu/~ykagan/moms_index.html) MFD is similar to
 Gutenberg-Richter, above, but with an exponential taper applied with a corner magnitude of `mCut`.
 The `a`-value member is optional when a logic tree of rates for a source is also present in a
@@ -98,8 +100,6 @@ example:
 }
 ```
 
-**mfd-config.json:**
-
 MFD confguration files:
 
 * mfd-map.json
@@ -255,6 +255,8 @@ Depending on the types of MFDs being modeled, a rate file may contain Gutenberg-
 or magnitude-specific rates. The branches of a rate-tree commonly have the generic ID's:
 `[R1, R2, R3, ...]` to support matching rate-trees across source-tree branches.
 
+TODO: convert example to JSON format (or see `mfd-config.json` section above)
+
 ```xml
         <!-- (optional) A magnitude uncertainty model that will be
              applied to every source:
-- 
GitLab


From fc942f1859d248256b1e47244383817077f5eb89 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Mon, 28 Jun 2021 15:17:56 -0600
Subject: [PATCH 04/39] add documentation index link, USGS page footer. include
 horizontal line above index link to separate from content

---
 docs/pages/About-the-NSHMP.md                   |  8 ++++++++
 docs/pages/Building-&-Running.md                |  8 ++++++++
 docs/pages/Calculation-Configuration.md         |  8 ++++++++
 docs/pages/Developer-Basics.md                  |  8 ++++++++
 docs/pages/Functional-PSHA.md                   |  8 ++++++++
 docs/pages/Ground-Motion-Models.md              |  8 ++++++++
 docs/pages/Hazard-Model.md                      |  8 ++++++++
 docs/pages/Logic-Trees-&-Uncertainty.md         |  8 ++++++++
 docs/pages/Magnitude-Frequency-Distributions.md |  8 ++++++++
 docs/pages/Model-Editions.md                    | 10 ++++++++++
 docs/pages/Model-Files.md                       |  8 ++++++++
 docs/pages/Model-Structure.md                   |  8 ++++++++
 docs/pages/Rupture-Scaling-Relations.md         |  8 ++++++++
 docs/pages/Site-Specification.md                |  8 ++++++++
 docs/pages/Source-Types.md                      |  6 ++++++
 docs/pages/USGS-Models.md                       |  2 ++
 16 files changed, 122 insertions(+)

diff --git a/docs/pages/About-the-NSHMP.md b/docs/pages/About-the-NSHMP.md
index 0e1c508a2..03337a1ed 100644
--- a/docs/pages/About-the-NSHMP.md
+++ b/docs/pages/About-the-NSHMP.md
@@ -21,3 +21,11 @@ An NSHM defines the set of likely earthquake sources and their rates in a partic
 parameters of the earhtquake source and a site of interest, ground motion models (GMMs) are used
 to estimate ground shaking from the set of earthquakes. The NSHMP routinely updates NSHMs for the
 U.S. and its territories to consider the best available science.
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 8983bde40..fb8bcf6c1 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -145,3 +145,11 @@ Where:
 
 * `JAVA_XMS` is the intial memory for the JVM (default: system)
 * `JAVA_XMX` is the maximum memory for the JVM (default: 8g)
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index e79851b26..24b924412 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -93,3 +93,11 @@ T ≤ 4 s    | 0.00133, 0.00200, 0.00300, 0.00449, 0.00674, 0.0101, 0.0152, 0.02
 T ≤ 5 s    | 0.000999, 0.00150, 0.00225, 0.00337, 0.00506, 0.00758, 0.0114, 0.0171, 0.0256, 0.0384, 0.0576, 0.0864, 0.130, 0.194, 0.292, 0.437, 0.656, 0.984, 1.48, 2.21
 T ≤ 7.5 s  | 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379, 0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, 0.0648, 0.0972, 0.146, 0.219, 0.328, 0.492, 0.738, 1.11
 T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379, 0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, 0.0648, 0.0972, 0.146, 0.219, 0.328, 0.492, 0.738
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index 51cf8c2cd..4971195fd 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -58,3 +58,11 @@ install the [Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/
 [Eclipse IDE for Enterprise Java and Web Developers](https://www.eclipse.org/downloads/packages/),
 if you plan on developing web services. Import the project into Eclipse: `File > Import >
 Gradle > Existing Gradle Project`
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Functional-PSHA.md b/docs/pages/Functional-PSHA.md
index 726864a1d..2c1d1464d 100644
--- a/docs/pages/Functional-PSHA.md
+++ b/docs/pages/Functional-PSHA.md
@@ -158,3 +158,11 @@ The functional pipeline can be processed stepwise:
   pp. 973-987.
 * Cornell, C.A., 1968, Engineering seismic risk analysis, *Bulletin of the Seismological Society
   of America*, Vol. 58, No. 5, pp. 1583-1606.
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 82f109b62..16c21ffb1 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -158,3 +158,11 @@ modify model output.
 |:---------:|:-------:|:---------:|:------|
 | [Rezaeian et al., 2014](http://dx.doi.org/10.1193/100512EQS298M) | Damping scaling factor | Average horizontal component | No effect if supplied damping ratio is 5% |
 | USGS PGV | Conditional PGV for crustal earthquakes | Horizontal component | Conditional model for vertical component not yet implemented |
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Hazard-Model.md b/docs/pages/Hazard-Model.md
index 005e738f1..63fb4c623 100644
--- a/docs/pages/Hazard-Model.md
+++ b/docs/pages/Hazard-Model.md
@@ -31,3 +31,11 @@ support modeling of complex logic trees.
   territories. Although hazard close to the borders can be useful for comparison to other models,
   the further one drifts from the U.S. border, the more incomplete the underlying earthquake
   source model will be.
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index 5b51aaec2..7e7de9fe7 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -122,3 +122,11 @@ alternative models.
 
 * Full: a.k.a. 'characteristic'
 * Partial: a.k.a. 'Gutenberg-Richter' or 'floating'
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index 2abe4485a..e4a5acdc9 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -283,3 +283,11 @@ TODO: convert example to JSON format (or see `mfd-config.json` section above)
 
     </Settings>
 ```
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index e4524a35c..5d8aaf187 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -94,6 +94,16 @@ documented on the [web services](web-services) page.
 Changes between editions in model regions are documented in the release notes of the individual
 model repositories.
 
+TODO: Update model links
+
 * [Conterminous US (2014)](/usgs/nshmp-model-cous-2014/wiki)  
 * [Conterminous US (2008)](/usgs/nshmp-model-cous-2008/wiki)  
 * [Alaska (2007)](/usgs/nshmp-model-ak-2007/wiki)  
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index f6433e2a2..c3fc8aee2 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -183,3 +183,11 @@ is composed of an array of rupture-sets.
   ]
 }
 ```
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Structure.md b/docs/pages/Model-Structure.md
index c4fdfc6ca..bc1c4d37c 100644
--- a/docs/pages/Model-Structure.md
+++ b/docs/pages/Model-Structure.md
@@ -193,3 +193,11 @@ subduction-slab
 ```
 
 See also: [Subduction Intraslab Source Type](source-types#subduction-intraslab-sources)
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Rupture-Scaling-Relations.md b/docs/pages/Rupture-Scaling-Relations.md
index 0a79a5e4f..08bc17652 100644
--- a/docs/pages/Rupture-Scaling-Relations.md
+++ b/docs/pages/Rupture-Scaling-Relations.md
@@ -67,3 +67,11 @@ the San Francisco Bay region: 2002– 2031, U.S. Geol. Surv. Open-File Report 20
 
 Youngs RR, Chiou B-SJ, Silva WJ, and Humphrey JR (1997) Strong ground motion attenuation
 relationships for subduction zone earthquakes. Seismological Research Letters 68(?): 58–73.
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index c2a27fa42..91fd299e4 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -108,3 +108,11 @@ parallel to lines of latitude and longitude. Any points in the 'calculation' pol
 outside the 'calculation' polygon are set to zero. For an example, see the
 [NSHMP Western US](/usgs/nshmp-haz/blob/master/etc/nshm/map-wus.geojson) map site file.
 (TODO This needs updating; link to conus-2018 active crust map-region.geojson).
+
+---
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Source-Types.md b/docs/pages/Source-Types.md
index 86278011b..158ed7eb5 100644
--- a/docs/pages/Source-Types.md
+++ b/docs/pages/Source-Types.md
@@ -344,3 +344,9 @@ using an `interface-config.json` file.
 Subduction intraslab sources are currently specified the same way as
 [grid sources](#grid-sources) in curstal tectonic settings. Source model properties are defined
 using an `slab-config.json` file.
+
+[**Documentation Index**](docs/README.md)
+
+---
+![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index b8d88c95e..294125bef 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -25,6 +25,8 @@ Each model region has a dedicated repository with version tags marking different
 * Puerto Rico & U.S. Virgin Islands - _update not yet published_  
 * Samoa & Pacific Islands - _update not yet published_  
 
+---
+
 ## Related Pages
 
 * [Model Editions](model-editions.md)
-- 
GitLab


From 4fad9d3df5e24b2945d8970186a24d6cf12295d7 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Mon, 28 Jun 2021 15:41:39 -0600
Subject: [PATCH 05/39] fix relative link to USGS logo

---
 docs/pages/About-the-NSHMP.md                   | 2 +-
 docs/pages/Building-&-Running.md                | 2 +-
 docs/pages/Calculation-Configuration.md         | 2 +-
 docs/pages/Functional-PSHA.md                   | 2 +-
 docs/pages/Ground-Motion-Models.md              | 2 +-
 docs/pages/Hazard-Model.md                      | 2 +-
 docs/pages/Logic-Trees-&-Uncertainty.md         | 2 +-
 docs/pages/Magnitude-Frequency-Distributions.md | 2 +-
 docs/pages/Model-Editions.md                    | 2 +-
 docs/pages/Model-Files.md                       | 2 +-
 docs/pages/Model-Structure.md                   | 2 +-
 docs/pages/Rupture-Scaling-Relations.md         | 2 +-
 docs/pages/Source-Types.md                      | 4 +++-
 docs/pages/USGS-Models.md                       | 2 +-
 14 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/docs/pages/About-the-NSHMP.md b/docs/pages/About-the-NSHMP.md
index 03337a1ed..76f1ce136 100644
--- a/docs/pages/About-the-NSHMP.md
+++ b/docs/pages/About-the-NSHMP.md
@@ -27,5 +27,5 @@ U.S. and its territories to consider the best available science.
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index fb8bcf6c1..beda1c7e4 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -151,5 +151,5 @@ Where:
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 24b924412..f76ae6386 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -99,5 +99,5 @@ T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379,
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Functional-PSHA.md b/docs/pages/Functional-PSHA.md
index 2c1d1464d..40348be7a 100644
--- a/docs/pages/Functional-PSHA.md
+++ b/docs/pages/Functional-PSHA.md
@@ -164,5 +164,5 @@ The functional pipeline can be processed stepwise:
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 16c21ffb1..4527f365d 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -164,5 +164,5 @@ modify model output.
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Hazard-Model.md b/docs/pages/Hazard-Model.md
index 63fb4c623..fa537064e 100644
--- a/docs/pages/Hazard-Model.md
+++ b/docs/pages/Hazard-Model.md
@@ -37,5 +37,5 @@ support modeling of complex logic trees.
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index 7e7de9fe7..b5db0a58a 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -128,5 +128,5 @@ alternative models.
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index e4a5acdc9..9fd7e7c06 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -289,5 +289,5 @@ TODO: convert example to JSON format (or see `mfd-config.json` section above)
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index 5d8aaf187..bdecc204a 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -105,5 +105,5 @@ TODO: Update model links
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index c3fc8aee2..c1c485fad 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -189,5 +189,5 @@ is composed of an array of rupture-sets.
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Structure.md b/docs/pages/Model-Structure.md
index bc1c4d37c..df34c9fc4 100644
--- a/docs/pages/Model-Structure.md
+++ b/docs/pages/Model-Structure.md
@@ -199,5 +199,5 @@ See also: [Subduction Intraslab Source Type](source-types#subduction-intraslab-s
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Rupture-Scaling-Relations.md b/docs/pages/Rupture-Scaling-Relations.md
index 08bc17652..3e29c61b7 100644
--- a/docs/pages/Rupture-Scaling-Relations.md
+++ b/docs/pages/Rupture-Scaling-Relations.md
@@ -73,5 +73,5 @@ relationships for subduction zone earthquakes. Seismological Research Letters 68
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Source-Types.md b/docs/pages/Source-Types.md
index 158ed7eb5..baaf1f4f1 100644
--- a/docs/pages/Source-Types.md
+++ b/docs/pages/Source-Types.md
@@ -345,8 +345,10 @@ Subduction intraslab sources are currently specified the same way as
 [grid sources](#grid-sources) in curstal tectonic settings. Source model properties are defined
 using an `slab-config.json` file.
 
+---
+
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index 294125bef..7d28b81b6 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -35,5 +35,5 @@ Each model region has a dedicated repository with version tags marking different
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
-- 
GitLab


From d139970e3d6d0ba53b73a25bed1a7f24445f7168 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Mon, 28 Jun 2021 15:45:55 -0600
Subject: [PATCH 06/39] missed one

---
 docs/pages/Developer-Basics.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index 4971195fd..7617ec072 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -64,5 +64,5 @@ Gradle > Existing Gradle Project`
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
-- 
GitLab


From de7ad638d516323dc2596f5ef7d1292a2da944d4 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Mon, 28 Jun 2021 16:22:50 -0600
Subject: [PATCH 07/39] fix links

---
 docs/README.md                   | 6 +++++-
 docs/pages/Site-Specification.md | 2 +-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 3b01c8111..9d211a6e0 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -17,7 +17,7 @@ to use *nshmp-haz* as well as underlying model implementation details.
   * [Developer Basics](pages/Developer-Basics.md)
   * [Calculation Configuration](pages/Calculation-Configuration.md)
   * [Site Specification](pages/Site-Specification.md)
-  * [Examples](/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples)
+  * [Examples](/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
 * [Hazard Model](pages/Hazard-Model.md)
   * [Model Structure](pages/Model-Structure.md)
   * [Model Files](pages/Model-Files.md)
@@ -40,3 +40,7 @@ to use *nshmp-haz* as well as underlying model implementation details.
   [PDF]](http://web.stanford.edu/~bakerjw/Publications/Baker_(2015)_Intro_to_PSHA.pdf)
   by Jack Baker  
 * [License](../LICENSE.md)
+
+---
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index 91fd299e4..3b3dfb497 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -114,5 +114,5 @@ outside the 'calculation' polygon are set to zero. For an example, see the
 [**Documentation Index**](docs/README.md)
 
 ---
-![USGS logo](images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
-- 
GitLab


From 55ba51db603e873042c2e3b78bfe1c97e8165de4 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Tue, 29 Jun 2021 08:46:04 -0600
Subject: [PATCH 08/39] fix links, cleanup

---
 docs/README.md                 | 45 +++++++++++++++++-----------------
 docs/pages/Developer-Basics.md | 10 ++++----
 docs/pages/Functional-PSHA.md  |  6 ++---
 3 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 9d211a6e0..02bfc5e74 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,46 +1,47 @@
 # Documentation: nshmp-haz
 
-***nshmp-haz*** is a U.S. Geological Survey ([USGS](https://www.usgs.gov)) developed software stack
+***nshmp-haz-v2*** is a U.S. Geological Survey ([USGS](https://www.usgs.gov)) developed software stack
 that supports probabilistic seismic hazard (PSHA) and related analyses. It is maintained by the
 National Seismic Hazard Model Project ([NSHMP](https://earthquake.usgs.gov/hazards/)) within the
 USGS's earthquake hazards program ([EHP](http://earthquake.usgs.gov)).
 
-*nshmp-haz* supports high performance seismic hazard calculations required to generate detailed
+*nshmp-haz-v2* supports high performance seismic hazard calculations required to generate detailed
 maps over large areas and supports a variety of USGS web services and applications related to
 seismic hazards research and the dissemination of hazard data. This documentation explains how
-to use *nshmp-haz* as well as underlying model implementation details.
+to use *nshmp-haz-v2* as well as underlying model implementation details.
 
 ## Table of Contents
 
-* [About the NSHMP](pages/About-the-NSHMP.md)
-* [Building & Running](pages/Building-&-Running.md)
-  * [Developer Basics](pages/Developer-Basics.md)
-  * [Calculation Configuration](pages/Calculation-Configuration.md)
-  * [Site Specification](pages/Site-Specification.md)
-  * [Examples](/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
-* [Hazard Model](pages/Hazard-Model.md)
-  * [Model Structure](pages/Model-Structure.md)
-  * [Model Files](pages/Model-Files.md)
-  * [Source Types](pages/Source-Types.md)
-  * [Magnitude Frequency Distributions (MFDs)](pages/Magnitude-Frequency-Distributions.md)
-  * [Rupture Scaling Relations](pages/Rupture-Scaling-Relations.md)
-  * [Ground Motion Models (GMMs)](pages/Ground-Motion-Models.md)
-* [USGS Models](pages/USGS-Models.md)
-  * [Model Editions](pages/Model-Editions.md)
-  * [Logic Trees & Uncertainty](pages/Logic-Trees-&-Uncertainty.md)
+* [About the NSHMP](./pages/About-the-NSHMP.md)
+* [Building & Running](./pages/Building-&-Running.md)
+  * [Developer Basics](./pages/Developer-Basics.md)
+  * [Calculation Configuration](./pages/Calculation-Configuration.md)
+  * [Site Specification](./pages/Site-Specification.md)
+  * Examples [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
+    or [in a local copy](../etc/examples/README.md)
+* [Hazard Model](./pages/Hazard-Model.md)
+  * [Model Structure](./pages/Model-Structure.md)
+  * [Model Files](./pages/Model-Files.md)
+  * [Source Types](./pages/Source-Types.md)
+  * [Magnitude Frequency Distributions (MFDs)](./pages/Magnitude-Frequency-Distributions.md)
+  * [Rupture Scaling Relations](./pages/Rupture-Scaling-Relations.md)
+  * [Ground Motion Models (GMMs)](./pages/Ground-Motion-Models.md)
+* [USGS Models](./pages/USGS-Models.md)
+  * [Model Editions](./pages/Model-Editions.md)
+  * [Logic Trees & Uncertainty](./pages/Logic-Trees-&-Uncertainty.md)
 
 ## Other Pages & References
 
 * [nshmp-lib](https://code.usgs.gov/ghsc/nshmp/nshmp-lib): USGS hazard modeling library
-* [Functional PSHA](pages/Functional-PSHA.md)
+* [Functional PSHA](./pages/Functional-PSHA.md)
 * [Probabilistic Seismic Hazard Analysis, a Primer
   [PDF]](http://www.opensha.org/sites/opensha.org/files/PSHA_Primer_v2_0.pdf)
   by Edward Field  
 * [An Introduction to Probabilistic Seismic Hazard Analysis
   [PDF]](http://web.stanford.edu/~bakerjw/Publications/Baker_(2015)_Intro_to_PSHA.pdf)
   by Jack Baker  
-* [License](../LICENSE.md)
+* [*nshmp-haz-v2* License](../LICENSE.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index 7617ec072..791ab835b 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -7,11 +7,11 @@ The following provides basic guidance on how to set up command-line use of nshmp
 * Java 11 JDK: [Oracle](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) or
   [Amazon Corretto](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html)
 * [Git](https://git-scm.com/downloads)  
-  * Git is a distributed version control system. The USGS uses a [GitLab](https://docs.gitlab.com)
-    [instance](https://code.usgs.gov/) to host projects and facilitate sharing and collaborative
-    development of code. Git is included in the macOS
-    [developer tools](https://developer.apple.com/xcode/).  
-  * Windows users may want to consider [Git for Windows](https://git-for-windows.github.io) or
+  * Git is a [distributed version control system](https://en.wikipedia.org/wiki/Distributed_version_control).
+    The USGS uses a [GitLab](https://docs.gitlab.com) [instance](https://code.usgs.gov/) to host
+    projects and facilitate sharing and collaborative development of code.
+  * On **macOS**, Git is included in the [developer tools](https://developer.apple.com/xcode/).
+  * On **Windows**, users may want to consider [Git for Windows](https://git-for-windows.github.io) or
     [GitHub Desktop](https://desktop.github.com), both of which include a linux-like terminal
     (Git BASH) in which subsequent commands listed here will work.  
 
diff --git a/docs/pages/Functional-PSHA.md b/docs/pages/Functional-PSHA.md
index 40348be7a..8ba8ac361 100644
--- a/docs/pages/Functional-PSHA.md
+++ b/docs/pages/Functional-PSHA.md
@@ -111,7 +111,7 @@ foreach IMT {
   may write [sqr = @(x) x.^2;].
 * In Matlab, one may pass function ‘handles’ (references) to other functions as arguments. This
   is also possible in Javascript, where such handles serve as callbacks. Given the rise in
-  popularity of the functional style, Java 8 recently added constructs in the form of the function
+  popularity of the functional style, Java 8 added constructs in the form of the function
   and streaming APIs, and libraries exists for other languages.
 
 ## How do PSHA and related calculations leverage such an approach?
@@ -161,8 +161,8 @@ The functional pipeline can be processed stepwise:
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
-- 
GitLab


From eaecd0bc1e8b7f5244746b9d6233d66858595ff2 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Tue, 29 Jun 2021 08:46:47 -0600
Subject: [PATCH 09/39] examples link to READMEs. todo: expand example
 navigation

---
 etc/examples/1-hazard-curve/README.md    | 2 +-
 etc/examples/2-custom-config/README.md   | 2 +-
 etc/examples/3-sites-file/README.md      | 2 +-
 etc/examples/4-hazard-map/README.md      | 2 +-
 etc/examples/5-complex-model/README.md   | 2 +-
 etc/examples/6-enhanced-output/README.md | 2 +-
 etc/examples/7-deaggregation/README.md   | 2 +-
 etc/examples/README.md                   | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/etc/examples/1-hazard-curve/README.md b/etc/examples/1-hazard-curve/README.md
index 0d19048cc..0c53d3df5 100644
--- a/etc/examples/1-hazard-curve/README.md
+++ b/etc/examples/1-hazard-curve/README.md
@@ -44,4 +44,4 @@ __Results directory structure:__
 In the next example, we'll override the model supplied configuration with a custom file.
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 2 – A custom configuration](../2-custom-config)
+#### Next: [Example 2 – A custom configuration](../2-custom-config/README.md)
diff --git a/etc/examples/2-custom-config/README.md b/etc/examples/2-custom-config/README.md
index e5d05461c..2025aa249 100644
--- a/etc/examples/2-custom-config/README.md
+++ b/etc/examples/2-custom-config/README.md
@@ -37,4 +37,4 @@ __Results directory structure:__
 ```
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 3 – Using a custom sites file](../3-sites-file)
+#### Next: [Example 3 – Using a custom sites file](../3-sites-file/README.md)
diff --git a/etc/examples/3-sites-file/README.md b/etc/examples/3-sites-file/README.md
index 3f5e64e1d..3c8b89d26 100644
--- a/etc/examples/3-sites-file/README.md
+++ b/etc/examples/3-sites-file/README.md
@@ -38,4 +38,4 @@ __Results directory structure:__
 ```
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 4 – A simple hazard map](../4-hazard-map)
+#### Next: [Example 4 – A simple hazard map](../4-hazard-map/README.md)
diff --git a/etc/examples/4-hazard-map/README.md b/etc/examples/4-hazard-map/README.md
index 76fa10714..e2a1893c2 100644
--- a/etc/examples/4-hazard-map/README.md
+++ b/etc/examples/4-hazard-map/README.md
@@ -27,4 +27,4 @@ __Results directory structure:__
 ```
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 5 – A more complex model](../5-complex-model)
+#### Next: [Example 5 – A more complex model](../5-complex-model/README.md)
diff --git a/etc/examples/5-complex-model/README.md b/etc/examples/5-complex-model/README.md
index dfbaf4444..2fcb2903d 100644
--- a/etc/examples/5-complex-model/README.md
+++ b/etc/examples/5-complex-model/README.md
@@ -66,4 +66,4 @@ __Results directory structure:__
 ```
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 6 – Enhanced output](../6-enhanced-output)
+#### Next: [Example 6 – Enhanced output](../6-enhanced-output/README.md)
diff --git a/etc/examples/6-enhanced-output/README.md b/etc/examples/6-enhanced-output/README.md
index f4d81c44c..546c9dd68 100644
--- a/etc/examples/6-enhanced-output/README.md
+++ b/etc/examples/6-enhanced-output/README.md
@@ -52,4 +52,4 @@ __Results directory structure:__
 ```
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 7 – Deaggregation](../7-deaggregation)
+#### Next: [Example 7 – Deaggregation](../7-deaggregation/README.md)
diff --git a/etc/examples/7-deaggregation/README.md b/etc/examples/7-deaggregation/README.md
index cf1dec384..aa1f2d378 100644
--- a/etc/examples/7-deaggregation/README.md
+++ b/etc/examples/7-deaggregation/README.md
@@ -88,4 +88,4 @@ subduction GMMs (e.g. `AB_03_CASCADIA_SLAB`) for sites closer to the Cascadia su
 empty results will not be saved.
 
 <!-- markdownlint-disable MD001 -->
-#### Next: [Example 8 – Earthquake probabilities and rates](../8-probabilities)
+#### Next: [Example 8 – Earthquake probabilities and rates](../8-probabilities/README.md)
diff --git a/etc/examples/README.md b/etc/examples/README.md
index beb390bdb..db74aa10c 100644
--- a/etc/examples/README.md
+++ b/etc/examples/README.md
@@ -11,4 +11,4 @@ alias hazard='java -cp /path/to/nshmp-haz/build/libs/nshmp-haz.jar gov.usgs.eart
 Because each example builds on prior concepts, it is best step through all the examples, however quickly.
 
 <!-- markdownlint-disable MD001 -->
-#### Start: [Example 1 – A simple hazard calculation](1-hazard-curve)
+#### Start: [Example 1 – A simple hazard calculation](1-hazard-curve/README.md)
-- 
GitLab


From a1add27285fd35cc1cd1746052c56b9903f8bc43 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Tue, 29 Jun 2021 09:41:27 -0600
Subject: [PATCH 10/39] add link to documentation index for examples

---
 etc/examples/1-hazard-curve/README.md    | 4 ++++
 etc/examples/2-custom-config/README.md   | 4 ++++
 etc/examples/3-sites-file/README.md      | 4 ++++
 etc/examples/4-hazard-map/README.md      | 4 ++++
 etc/examples/5-complex-model/README.md   | 4 ++++
 etc/examples/6-enhanced-output/README.md | 4 ++++
 etc/examples/7-deaggregation/README.md   | 4 ++++
 etc/examples/8-probabilities/README.md   | 4 ++++
 etc/examples/README.md                   | 4 ++++
 9 files changed, 36 insertions(+)

diff --git a/etc/examples/1-hazard-curve/README.md b/etc/examples/1-hazard-curve/README.md
index 0c53d3df5..ed8da9766 100644
--- a/etc/examples/1-hazard-curve/README.md
+++ b/etc/examples/1-hazard-curve/README.md
@@ -45,3 +45,7 @@ In the next example, we'll override the model supplied configuration with a cust
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 2 – A custom configuration](../2-custom-config/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/2-custom-config/README.md b/etc/examples/2-custom-config/README.md
index 2025aa249..33c8c381a 100644
--- a/etc/examples/2-custom-config/README.md
+++ b/etc/examples/2-custom-config/README.md
@@ -38,3 +38,7 @@ __Results directory structure:__
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 3 – Using a custom sites file](../3-sites-file/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/3-sites-file/README.md b/etc/examples/3-sites-file/README.md
index 3c8b89d26..f70f356a4 100644
--- a/etc/examples/3-sites-file/README.md
+++ b/etc/examples/3-sites-file/README.md
@@ -39,3 +39,7 @@ __Results directory structure:__
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 4 – A simple hazard map](../4-hazard-map/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/4-hazard-map/README.md b/etc/examples/4-hazard-map/README.md
index e2a1893c2..0c26c4102 100644
--- a/etc/examples/4-hazard-map/README.md
+++ b/etc/examples/4-hazard-map/README.md
@@ -28,3 +28,7 @@ __Results directory structure:__
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 5 – A more complex model](../5-complex-model/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/5-complex-model/README.md b/etc/examples/5-complex-model/README.md
index 2fcb2903d..79f7b17b1 100644
--- a/etc/examples/5-complex-model/README.md
+++ b/etc/examples/5-complex-model/README.md
@@ -67,3 +67,7 @@ __Results directory structure:__
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 6 – Enhanced output](../6-enhanced-output/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/6-enhanced-output/README.md b/etc/examples/6-enhanced-output/README.md
index 546c9dd68..61fffb7a1 100644
--- a/etc/examples/6-enhanced-output/README.md
+++ b/etc/examples/6-enhanced-output/README.md
@@ -53,3 +53,7 @@ __Results directory structure:__
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 7 – Deaggregation](../7-deaggregation/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/7-deaggregation/README.md b/etc/examples/7-deaggregation/README.md
index aa1f2d378..4750f2aff 100644
--- a/etc/examples/7-deaggregation/README.md
+++ b/etc/examples/7-deaggregation/README.md
@@ -89,3 +89,7 @@ empty results will not be saved.
 
 <!-- markdownlint-disable MD001 -->
 #### Next: [Example 8 – Earthquake probabilities and rates](../8-probabilities/README.md)
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/8-probabilities/README.md b/etc/examples/8-probabilities/README.md
index 4574d2c43..38f3b7a6d 100644
--- a/etc/examples/8-probabilities/README.md
+++ b/etc/examples/8-probabilities/README.md
@@ -47,3 +47,7 @@ __Results directory structure:__
       ├─ RateCalc.log
       └─ probs.csv
 ```
+
+---
+
+* [**Documentation Index**](../../../docs/README.md)
diff --git a/etc/examples/README.md b/etc/examples/README.md
index db74aa10c..b557f3baa 100644
--- a/etc/examples/README.md
+++ b/etc/examples/README.md
@@ -12,3 +12,7 @@ Because each example builds on prior concepts, it is best step through all the e
 
 <!-- markdownlint-disable MD001 -->
 #### Start: [Example 1 – A simple hazard calculation](1-hazard-curve/README.md)
+
+---
+
+* [**Documentation Index**](../../docs/README.md)
-- 
GitLab


From 17caf58c7671933489349de41fea39a0560f7f36 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Tue, 29 Jun 2021 11:06:13 -0600
Subject: [PATCH 11/39] updating links, building & running related docs, fixing
 URLs

---
 docs/README.md                                |  4 +-
 docs/pages/About-the-NSHMP.md                 |  4 +-
 docs/pages/Building-&-Running.md              | 51 +++++++------
 docs/pages/Calculation-Configuration.md       | 73 +++++++++++--------
 docs/pages/Developer-Basics.md                | 12 ++-
 docs/pages/Ground-Motion-Models.md            |  4 +-
 docs/pages/Hazard-Model.md                    |  4 +-
 docs/pages/Logic-Trees-&-Uncertainty.md       |  6 +-
 .../Magnitude-Frequency-Distributions.md      |  4 +-
 docs/pages/Model-Editions.md                  |  4 +-
 docs/pages/Model-Files.md                     |  4 +-
 docs/pages/Model-Structure.md                 |  4 +-
 docs/pages/Rupture-Scaling-Relations.md       |  4 +-
 docs/pages/Site-Specification.md              | 37 ++++++----
 docs/pages/Source-Types.md                    | 10 +--
 docs/pages/USGS-Models.md                     |  6 +-
 etc/nshm/README.md                            |  3 +
 17 files changed, 137 insertions(+), 97 deletions(-)
 create mode 100644 etc/nshm/README.md

diff --git a/docs/README.md b/docs/README.md
index 02bfc5e74..3eba4574a 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -17,8 +17,8 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
   * [Developer Basics](./pages/Developer-Basics.md)
   * [Calculation Configuration](./pages/Calculation-Configuration.md)
   * [Site Specification](./pages/Site-Specification.md)
-  * Examples [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
-    or [in a local copy](../etc/examples/README.md)
+  * [Examples](../../etc/examples/README.md) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 * [Hazard Model](./pages/Hazard-Model.md)
   * [Model Structure](./pages/Model-Structure.md)
   * [Model Files](./pages/Model-Files.md)
diff --git a/docs/pages/About-the-NSHMP.md b/docs/pages/About-the-NSHMP.md
index 76f1ce136..2ee3a89ea 100644
--- a/docs/pages/About-the-NSHMP.md
+++ b/docs/pages/About-the-NSHMP.md
@@ -24,8 +24,8 @@ U.S. and its territories to consider the best available science.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index beda1c7e4..3a1bd0cc0 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -2,7 +2,12 @@
 
 ## Related Pages
 
-TODO
+* Building & Running
+  * [Developer Basics](./Developer-Basics.md)
+  * [Calculation Configuration](./Calculation-Configuration.md)
+  * [Site Specification](./Site-Specification.md)
+  * [Examples](../../etc/examples/README.md) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
 ## Build & Run Options
 
@@ -11,12 +16,12 @@ TODO
 
 ## Build and Run Locally
 
-Building and running *nshmp-haz* requires prior installation of Git and Java. Please see the
-[developer basics](developer-basics) page for system configuration guidance.  
+Building and running *nshmp-haz-v2* requires prior installation of Git and Java. Please see the
+[developer basics](./Developer-Basics.md) page for system configuration guidance.  
 
 ### Building
 
-Navigate to a location on your system where you want *nshmp-haz* code to reside, clone the
+Navigate to a location on your system where you want *nshmp-haz-v2* code to reside, clone the
 repository, and compile:
 
 ```bash
@@ -40,16 +45,16 @@ measures. For example:
 java -cp path/to/nshmp-haz.jar gov.usgs.earthquake.nshmp.HazardCalc model sites [config]
 ```
 
-At a minimum, the hazard source [model](Hazard-Model.md) and the [site](Site-Specification.md)(s) at
-which to perform calculations must be specified. The source model should specified a path to a
+At a minimum, the hazard source [model](./Hazard-Model.md) and the [site](./Site-Specification.md)(s)
+at which to perform calculations must be specified. The source model should specified a path to a
 directory. A single site may be specified with a string; multiple sites must be specified using
 either a comma-delimited (CSV) or [GeoJSON](http://geojson.org) file. The path to a custom
-[configuration](Calculation-Configuration.md) file containing user-specific settings may optionally
+[configuration](./Calculation-Configuration.md) file containing user-specific settings may optionally
 be supplied as a third argument. It can be used to override any calculation settings; if absent
-[default](Calculation-Configuration.md) values are used.
+[default](./Calculation-Configuration.md) values are used.
 
-See the [examples](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples)
-directory for more details.
+See the [examples](../../etc/examples/README.md) directory for more details (or
+[on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
 ### Computing Disaggregations
 
@@ -63,11 +68,11 @@ java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.DisaggCalc model sites returnPe
 
 Disaggregations build on and output `HazardCalc` results along with other disaggregation specific
 files. Disaggregations also have some independent
-[configuration](Calculation-Configuration.md#config-disagg) options.
+[configuration](./Calculation-Configuration.md#config-disagg) options.
 
 ## Run with [Docker](https://docs.docker.com/install/)
 
-To ensure you are have the latest *nshmp-haz* update, always first pull the image from Docker:
+To ensure you are have the latest *nshmp-haz-v2* update, always first pull the image from Docker:
 
 ```bash
 docker pull usgs/nshmp-haz
@@ -75,13 +80,15 @@ docker pull usgs/nshmp-haz
 
 ### Docker Memory on Mac
 
-By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *nshmp-haz*, the
+By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *nshmp-haz-v2*, the
 memory available to Docker must be [increased](https://docs.docker.com/docker-for-mac/#advanced)
 to a minimum of 4 GB.
 
 ### Running
 
-The *nshmp-haz* application may be run as a Docker container which mitigates the need to install
+TODO: is there a Docker image for nshmp-haz-v2?
+
+The *nshmp-haz-v2* application may be run as a Docker container which mitigates the need to install
 Git, Java, or other dependencies besides Docker. A public image is available on
 Docker hub at [https://hub.docker.com/r/usgs/nshmp-haz](https://hub.docker.com/r/usgs/nshmp-haz)
 which can be run with:
@@ -113,24 +120,26 @@ Where: (TODO links below need checking)
   * hazard = `HazardCalc`
   * rate = `RateCalc`
 
-* `MODEL` is the [USGS model (NSHM)](USGS-Models.md) to run:
+* `MODEL` is the [USGS model (NSHM)](./USGS-Models.md) to run:
   * CONUS-2018: [Conterminous U.S. 2018](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
   * HAWAII-2021: [Hawaii 2021](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)
 
 * `RETURN_PERIOD`, in years, is only required when running a disaggregation
 
+TODO: what should these examples point to? links to example files? or where to look for the samples?
+
 * Other arguments:
-  * (required) The absolute path to a GeoJSON or CSV [site(s)](Site-Specification.md) file
-    * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv`
+  * (required) The absolute path to a GeoJSON or CSV [site(s)](./Site-Specification.md) file
+    * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv` [`sites.csv`](../../etc/examples/3-sites-file/sites.csv)
     * GeoJSON example: `$(pwd)/my-geojson-sites.geojson:/app/sites.geojson`
-  * (optional) The absolute path to a [configuration](Calculation-Configuration.md) file
+  * (optional) The absolute path to a [configuration](./Calculation-Configuration.md) file
     * Example: `$(pwd)/my-custom-config.json:/app/config.json`
   * (required) The absolute path to an output directory
     * Example: `$(pwd)/my-hazard-output:/app/output`
 
 ### Run Customization
 
-When running *nshmp-haz* with Docker the initial (Xms) and maximum (Xmx) JVM memory sizes can
+When running *nshmp-haz-v2* with Docker the initial (Xms) and maximum (Xmx) JVM memory sizes can
 be set with the environment flag (-e, -env):
 
 ```bash
@@ -148,8 +157,8 @@ Where:
 
 ---
 
-[**Documentation Index**](docs/README.md)
+* [**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index f76ae6386..78210b1dd 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -1,50 +1,55 @@
 # Calculation Configuration
 
-A `calc-config.json` file _may_ reside at the root of every [hazard model](hazard-model). This
+A `calc-config.json` file _may_ reside at the root of every [hazard model](./Hazard-Model.md). This
 file, if present, will override any built-in default calculation configuration parameters, as
-listed below. See the [examples](/usgs/nshmp-haz/tree/master/etc/examples) directory, or any
-[USGS model](usgs-models), for concrete examples (TODO decide if last sentence needed and check
-links).
+listed below. See the [examples](../../etc/examples/README.md) directory, or any
+[USGS model](./Usgs-Models.md), for concrete examples.
 
 ## Calculation Configuration Parameters
 
 Calculation configuration parameters are optional (i.e. defaults are used for missing values) and
-may be overridden. See [building and running](building-&-running) and the
-[examples](/usgs/nshmp-haz/tree/master/etc/examples) for details.
-
-(TODO needs updated javadoc links)
+may be overridden. See [building and running](./Building-&-Running.md) and the
+[examples](../../etc/examples/README.md) for details.
 
 Parameter | Type | Default | Notes |
 --------- | ---- | ------- | ----- |
 __`hazard`__
-&nbsp;&nbsp;&nbsp;`.exceedanceModel`       |`String`   | `TRUNCATION_3SIGMA_UPPER` | [`ExceedanceModel`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/ExceedanceModel.html)
-&nbsp;&nbsp;&nbsp;`.truncationLevel`       |`Double`   | `3.0`                     | [1](notes)
-&nbsp;&nbsp;&nbsp;`.imts`                  |`String[]` | `[ PGV, PGA, SA0P01, SA0P02, SA0P03, SA0P05, SA0P075, SA0P1, SA0P15, SA0P2, SA0P25, SA0P3, SA0P4, SA0P5, SA0P75, SA1P0, SA1P5, SA2P0, SA3P0, SA4P0, SA5P0, SA7P5, SA10P0 ]` | [`Imt`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/gmm/Imt.html)
+&nbsp;&nbsp;&nbsp;`.exceedanceModel`       |`String`   | `TRUNCATION_3SIGMA_UPPER` | [`ExceedanceModel`][url-exceedance]
+&nbsp;&nbsp;&nbsp;`.truncationLevel`       |`Double`   | `3.0`                     | [1](#notes)
+&nbsp;&nbsp;&nbsp;`.imts`                  |`String[]` | `[ PGV, PGA, SA0P01, SA0P02, SA0P03, SA0P05, SA0P075, SA0P1, SA0P15, SA0P2, SA0P25, SA0P3, SA0P4, SA0P5, SA0P75, SA1P0, SA1P5, SA2P0, SA3P0, SA4P0, SA5P0, SA7P5, SA10P0 ]` | [`Imt`][url-imt]
 &nbsp;&nbsp;&nbsp;`.customImls`            |`Map<String, Double[]>`  | `{}` (empty object)     | [2](#notes)
 &nbsp;&nbsp;&nbsp;`.gmmUncertainty`        |`Boolean`  | `false`                   | [3](#notes)
-&nbsp;&nbsp;&nbsp;`.valueFormat`           |`String`   | `ANNUAL_RATE`             | [`ValueFormat`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/ValueFormat.html)
+&nbsp;&nbsp;&nbsp;`.valueFormat`           |`String`   | `ANNUAL_RATE`             | [`ValueFormat`][url-valueformat]
 __`deagg`__
 &nbsp;&nbsp;&nbsp;`.bins`                  |`Object`   |                           | [4](#notes)
 &nbsp;&nbsp;&nbsp;`.contributorLimit`      |`Double`   | `0.1`                     | [5](#notes)
 __`rate`__
 &nbsp;&nbsp;&nbsp;`.bins`                  |`Object`   |                           | [6](#notes)
 &nbsp;&nbsp;&nbsp;`.distance`              |`Double`   | `20` km
-&nbsp;&nbsp;&nbsp;`.distributionFormat`    |`String`   | `INCREMENTAL`             | [`DistributionFormat`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/DistributionFormat.html)
+&nbsp;&nbsp;&nbsp;`.distributionFormat`    |`String`   | `INCREMENTAL`             | [`DistributionFormat`][url-distribution]
 &nbsp;&nbsp;&nbsp;`.timespan`              |`Double`   | `30` years
-&nbsp;&nbsp;&nbsp;`.valueFormat`           |`String`   | `ANNUAL_RATE`             | [`ValueFormat`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/ValueFormat.html)
+&nbsp;&nbsp;&nbsp;`.valueFormat`           |`String`   | `ANNUAL_RATE`             | [`ValueFormat`][url-valueformat]
 __`site`__
-&nbsp;&nbsp;&nbsp;`.vs30`                  |`Double`   | `760.0`                   | [`Site`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/Site.html)
+&nbsp;&nbsp;&nbsp;`.vs30`                  |`Double`   | `760.0`                   | [`Site`][url-site]
 &nbsp;&nbsp;&nbsp;`.vsInferred`            |`Boolean`  | `true`
 &nbsp;&nbsp;&nbsp;`.z1p0`                  |`Double`   | `null`                    | [7](#notes)
 &nbsp;&nbsp;&nbsp;`.z2p5`                  |`Double`   | `null`                    | [7](#notes)
 __`output`__                               |
 &nbsp;&nbsp;&nbsp;`.directory`             |`String`   | `hazout`
-&nbsp;&nbsp;&nbsp;`.dataTypes`             |`String[]` | `[ TOTAL ]`               | [`DataType`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/DataType.html)
+&nbsp;&nbsp;&nbsp;`.dataTypes`             |`String[]` | `[ TOTAL ]`               | [`DataType`][url-datatype]
 __`performance`__
 &nbsp;&nbsp;&nbsp;`.optimizeGrids`         |`Boolean`  | `true`                    | [8](#notes)
 &nbsp;&nbsp;&nbsp;`.smoothGrids`           |`Boolean`  | `true`                    | [9](#notes)
 &nbsp;&nbsp;&nbsp;`.systemPartition`       |`Integer`  | `1000`                    | [10](#notes)
-&nbsp;&nbsp;&nbsp;`.threadCount`           |`String`   | `ALL`                     | [`ThreadCount`](http://usgs.github.io/nshmp-haz/javadoc/index.html?gov/usgs/earthquake/nshmp/calc/ThreadCount.html)
+&nbsp;&nbsp;&nbsp;`.threadCount`           |`String`   | `ALL`                     | [`ThreadCount`][url-sheets]
+
+[url-exceedance]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ExceedanceModel.html
+[url-imt]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Imt.html
+[url-valueformat]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ValueFormat.html
+[url-distribution]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DistributionFormat.html
+[url-site]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/Site.html
+[url-datatype]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DataType.html
+[url-sheets]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ThreadCount.html
 
 ## Notes
 
@@ -54,7 +59,7 @@ __`performance`__
    been defined, this value en/disables this feature.
 3. `hazard.customImls`: Hazard is computed at default intensity measure levels (IMLs) for every
    supported intenisty measure type (IMT), but a user can specify different IMLs as needed (see
-   this [example](/usgs/nshmp-haz/blob/master/etc/examples/2-custom-config/config.json) and the
+   this [example](../../etc/examples/2-custom-config/README.md) and the
    table of default IMLs, below).
 4. `disagg.bins`: This field maps to a data container that specifies the following default ranges
    and intervals for distance, magnitude, and epsilon binning: `"bins": { "rMin": 0.0, "rMax":
@@ -82,22 +87,28 @@ not listed use the values of the next highest spectral period.
 
 IMT        | IMLs
 -----------|-----
-PGV        | 0.237, 0.355, 0.532, 0.798, 1.19, 1.80, 2.69, 4.04, 6.06, 9.09, 13.6, 20.5, 30.7, 46.0, 69.0, 103.0, 155.0, 233.0, 349.0, 525.0
-PGA        | 0.00233, 0.00350, 0.00524, 0.00786, 0.0118, 0.0177, 0.0265, 0.0398, 0.0597, 0.0896, 0.134, 0.202, 0.302, 0.454, 0.680, 1.02, 1.53, 2.30, 3.44, 5.17
-T ≤ 0.01 s | 0.00233, 0.00350, 0.00524, 0.00786, 0.0118, 0.0177, 0.0265, 0.0398, 0.0597, 0.0896, 0.134, 0.202, 0.302, 0.454, 0.680, 1.02, 1.53, 2.30, 3.44, 5.17
-T ≤ 0.02 s | 0.00283, 0.00424, 0.00637, 0.00955, 0.0143, 0.0215, 0.0322, 0.0483, 0.0725, 0.109, 0.163, 0.245, 0.367, 0.551, 0.826, 1.24, 1.86, 2.79, 4.18, 6.27
-T ≤ 0.05 s | 0.00333, 0.00499, 0.00749, 0.0112, 0.0169, 0.0253, 0.0379, 0.0569, 0.0853, 0.128, 0.192, 0.288, 0.432, 0.648, 0.972, 1.46, 2.19, 3.28, 4.92, 7.38
-T ≤ 2 s    | 0.00250, 0.00375, 0.00562, 0.00843, 0.0126, 0.0190, 0.0284, 0.0427, 0.0640, 0.0960, 0.144, 0.216, 0.324, 0.486, 0.729, 1.09, 1.64, 2.46, 3.69, 5.54
-T ≤ 3 s    | 0.00200, 0.00300, 0.00449, 0.00674, 0.0101, 0.0152, 0.0228, 0.0341, 0.0512, 0.0768, 0.115, 0.173, 0.259, 0.389, 0.583, 0.875, 1.31, 1.97, 2.95, 4.43
-T ≤ 4 s    | 0.00133, 0.00200, 0.00300, 0.00449, 0.00674, 0.0101, 0.0152, 0.0228, 0.0341, 0.0512, 0.0768, 0.115, 0.173, 0.259, 0.389, 0.583, 0.875, 1.31, 1.97, 2.95
-T ≤ 5 s    | 0.000999, 0.00150, 0.00225, 0.00337, 0.00506, 0.00758, 0.0114, 0.0171, 0.0256, 0.0384, 0.0576, 0.0864, 0.130, 0.194, 0.292, 0.437, 0.656, 0.984, 1.48, 2.21
-T ≤ 7.5 s  | 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379, 0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, 0.0648, 0.0972, 0.146, 0.219, 0.328, 0.492, 0.738, 1.11
-T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379, 0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, 0.0648, 0.0972, 0.146, 0.219, 0.328, 0.492, 0.738
+PGV        | 0.237, 0.355, 0.532, 0.798, 1.19, 1.80, 2.69, 4.04, <br>6.06, 9.09, 13.6, 20.5, 30.7, 46.0, 69.0, 103.0, 155.0, <br>233.0, 349.0, 525.0
+PGA        | 0.00233, 0.00350, 0.00524, 0.00786, 0.0118, 0.0177, <br>0.0265, 0.0398, 0.0597, 0.0896, 0.134, 0.202, 0.302, 0.454, <br>0.680, 1.02, 1.53, 2.30, 3.44, 5.17
+T ≤ 0.01 s | 0.00233, 0.00350, 0.00524, 0.00786, 0.0118, 0.0177, <br>0.0265, 0.0398, 0.0597, 0.0896, 0.134, 0.202, 0.302, 0.454, <br>0.680, 1.02, 1.53, 2.30, 3.44, 5.17
+T ≤ 0.02 s | 0.00283, 0.00424, 0.00637, 0.00955, 0.0143, 0.0215, <br>0.0322, 0.0483, 0.0725, 0.109, 0.163, 0.245, 0.367, 0.551, 0.826, <br>1.24, 1.86, 2.79, 4.18, 6.27
+T ≤ 0.05 s | 0.00333, 0.00499, 0.00749, 0.0112, 0.0169, 0.0253, <br>0.0379, 0.0569, 0.0853, 0.128, 0.192, 0.288, 0.432, 0.648, 0.972, <br>1.46, 2.19, 3.28, 4.92, 7.38
+T ≤ 2 s    | 0.00250, 0.00375, 0.00562, 0.00843, 0.0126, 0.0190, <br>0.0284, 0.0427, 0.0640, 0.0960, 0.144, 0.216, 0.324, 0.486, <br>0.729, 1.09, 1.64, 2.46, 3.69, 5.54
+T ≤ 3 s    | 0.00200, 0.00300, 0.00449, 0.00674, 0.0101, 0.0152, <br>0.0228, 0.0341, 0.0512, 0.0768, 0.115, 0.173, 0.259, 0.389, <br>0.583, 0.875, 1.31, 1.97, 2.95, 4.43
+T ≤ 4 s    | 0.00133, 0.00200, 0.00300, 0.00449, 0.00674, 0.0101, <br>0.0152, 0.0228, 0.0341, 0.0512, 0.0768, 0.115, 0.173, 0.259, <br>0.389, 0.583, 0.875, 1.31, 1.97, 2.95
+T ≤ 5 s    | 0.000999, 0.00150, 0.00225, 0.00337, 0.00506, 0.00758, <br>0.0114, 0.0171, 0.0256, 0.0384, 0.0576, 0.0864, 0.130, 0.194, <br>0.292, 0.437, 0.656, 0.984, 1.48, 2.21
+T ≤ 7.5 s  | 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, 0.00379, <br>0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, 0.0648, <br>0.0972, 0.146, 0.219, 0.328, 0.492, 0.738, 1.11
+T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, <br>0.00379, 0.00569, 0.00853, 0.0128, 0.0192, 0.0288, 0.0432, <br>0.0648, 0.0972, 0.146, 0.219, 0.328, 0.492, 0.738
 
 ---
 
-[**Documentation Index**](docs/README.md)
+* [**Documentation Index**](../README.md)
+* [Building & Running](./Building-&-Running.md)
+  * [Developer Basics](./Developer-Basics.md)
+  * [Calculation Configuration](./Calculation-Configuration.md)
+  * [Site Specification](./Site-Specification.md)
+  * [Examples](../../etc/examples/README.md) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index 791ab835b..d2e8a181b 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -53,7 +53,7 @@ git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git
 ## Eclipse Integration (Optional)
 
 Eclipse provides automatic compilation, syntax highlighting, and integration with Git, among
-other useful features. To build or modify *nshmp-haz* using [Eclipse](http://www.eclipse.org/),
+other useful features. To build or modify *nshmp-haz-v2* using [Eclipse](http://www.eclipse.org/),
 install the [Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/packages/) or
 [Eclipse IDE for Enterprise Java and Web Developers](https://www.eclipse.org/downloads/packages/),
 if you plan on developing web services. Import the project into Eclipse: `File > Import >
@@ -61,8 +61,14 @@ Gradle > Existing Gradle Project`
 
 ---
 
-[**Documentation Index**](docs/README.md)
+* [**Documentation Index**](../README.md)
+* [Building & Running](./Building-&-Running.md)
+  * [Developer Basics](./Developer-Basics.md)
+  * [Calculation Configuration](./Calculation-Configuration.md)
+  * [Site Specification](./Site-Specification.md)
+  * [Examples](../../etc/examples/README.md) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 4527f365d..fc7f55a0f 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -161,8 +161,8 @@ modify model output.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Hazard-Model.md b/docs/pages/Hazard-Model.md
index fa537064e..92171f527 100644
--- a/docs/pages/Hazard-Model.md
+++ b/docs/pages/Hazard-Model.md
@@ -34,8 +34,8 @@ support modeling of complex logic trees.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index b5db0a58a..57c05cda5 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -1,7 +1,7 @@
 # USGS Models: Logic Trees & Uncertainty
 
 The following page details the logic trees of epistemic uncertainty considered in NSHMs supported
-by *nshmp-haz*. Logic trees are represented in a NSHM using files ending in `-tree.json`.
+by *nshmp-haz-v2*. Logic trees are represented in a NSHM using files ending in `-tree.json`.
 
 [[_TOC_]]
 
@@ -125,8 +125,8 @@ alternative models.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index 9fd7e7c06..0d041cc9c 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -286,8 +286,8 @@ TODO: convert example to JSON format (or see `mfd-config.json` section above)
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index bdecc204a..c47e2f313 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -102,8 +102,8 @@ TODO: Update model links
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index c1c485fad..ca478d5ee 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -186,8 +186,8 @@ is composed of an array of rupture-sets.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Model-Structure.md b/docs/pages/Model-Structure.md
index df34c9fc4..e7230c6b1 100644
--- a/docs/pages/Model-Structure.md
+++ b/docs/pages/Model-Structure.md
@@ -196,8 +196,8 @@ See also: [Subduction Intraslab Source Type](source-types#subduction-intraslab-s
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Rupture-Scaling-Relations.md b/docs/pages/Rupture-Scaling-Relations.md
index 3e29c61b7..e78cd91a9 100644
--- a/docs/pages/Rupture-Scaling-Relations.md
+++ b/docs/pages/Rupture-Scaling-Relations.md
@@ -70,8 +70,8 @@ relationships for subduction zone earthquakes. Seismological Research Letters 68
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index 3b3dfb497..40808da9f 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -2,18 +2,22 @@
 
 (TODO update etc and/or javadoc links)
 
+~~TODO: add README for `etc/nshm` directory so it can be linked here~~
+
+TODO: where is `etc/peer`? is it needed?
+
 The sites at which to perform hazard and related calculations may be defined in a variety of
 ways. Examples of the file formats described below are available in the resource directory:
-[`etc/nshm`](/usgs/nshmp-haz/tree/master/etc/nshm).
+[`etc/nshm`](../../etc/nshm/README.md).
 
-__Note on Coordinates:__ *nshmp-haz* supports longitude and latitude values in the closed
+__Note on Coordinates:__ *nshmp-haz-v2* supports longitude and latitude values in the closed
 ranges `[-360° ‥ 360°]` and `[-90° ‥ 90°]`. Note, however, that mixing site and/or source
 coordinates across the antimeridian (the -180° to 180° transition) will yield unexpected results.
 For Pacific models and calculations, always use positive or negative longitudes exclusively.
 
 ## Site String
 
-For the case of running a single site of interest, most *nshmp-haz* programs accept a
+For the case of running a single site of interest, most *nshmp-haz-v2* programs accept a
 comma-delimited string of the form: `name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]`, where `vs30`, `vsInf`,
 `z1p0`, and `z2p5` are optional. Note that if `vs30` is supplied, so too must `vsInf`. Likewise if
 `z1p0` is supplied, so too must `z2p5`. If the string contains any spaces, escape them or wrap the
@@ -21,7 +25,7 @@ entire string in double quotes.
 
 For any site parameter values that are not supplied on the command line or in the file formats
 below, the following defaults are used (see the `site` member of the
-[configuration](calculation-configuration) file):
+[configuration](./Calculation-Configuration.md) file):
 
 ```text
     name: Unnamed
@@ -47,7 +51,7 @@ it's 'default' basin depth scale factor.
 ## GeoJSON Format (\*.geojson)
 
 Although more verbose than the comma-delimited format, [GeoJSON](http://geojson.org) is a more
-versatile format for encoding geographic data. *nshmp-haz* uses GeoJSON for both lists of sites
+versatile format for encoding geographic data. *nshmp-haz-v2* uses GeoJSON for both lists of sites
 and to define map regions. If you encounter problems when formatting JSON files, use
 [JSONLint](http://jsonlint.com) or [GeoJSONLint](http://geojsonlint.com) for validation.
 
@@ -79,19 +83,19 @@ A site list is expected as a `FeatureCollection` of `Point` features. For exampl
 
 As with the CSV format, the minimum required data is a `geometry` `coordinates` array. All
 `properties` are optional. When using GeoJSON, the `title` property maps to the name of the site.
-Additional properties, if present, are ignored by *nshmp-haz* but permitted as they may be
+Additional properties, if present, are ignored by *nshmp-haz-v2* but permitted as they may be
 relevant for other applications. For example, [styling
 properties](https://help.github.com/articles/mapping-geojson-files-on-github/#styling-features)
 may be used to improve rendering in mapping applications. For a fully fledged example, see the
-[NSHM test sites](/usgs/nshmp-haz/blob/master/etc/nshm/sites-nshmp.geojson) file.
+[NSHM test sites](../../etc/nshm/sites-nshmp.geojson) file.
 
 ### Map Regions
 
-GeoJSON is also used to define *nshmp-haz* map regions. For example, see the file that defines a
+GeoJSON is also used to define *nshmp-haz-v2* map regions. For example, see the file that defines a
 region commonly used when creating hazard and other maps for the
-[Los Angeles basin](/usgs/nshmp-haz/blob/master/etc/nshm/map-la-basin.geojson).
+[Los Angeles basin](../../etc/nshm/map-la-basin.geojson).
 
-A map region is expected as a `Polygon` `FeatureCollection`. Currently, *nshmp-haz* only supports
+A map region is expected as a `Polygon` `FeatureCollection`. Currently, *nshmp-haz-v2* only supports
 a `FeatureCollection` with 1 or 2 polygons. When a single polygon is defined, it must consist of a
 single, simple closed loop. Additional arrays that define holes in the polygon (per the GeoJSON
 spec) are not processed and results are undefined for self-intersecting coordinate arrays. This
@@ -106,13 +110,20 @@ have a feature `id` of `Extents`, and *must* be rectangular (in a mercator proje
 parallel to lines of latitude and longitude. Any points in the 'calculation' polygon outside the
 'extents' polygon are ignored; hazard values at any points within the 'extents' polygon but
 outside the 'calculation' polygon are set to zero. For an example, see the
-[NSHMP Western US](/usgs/nshmp-haz/blob/master/etc/nshm/map-wus.geojson) map site file.
+[NSHMP Western US](../../etc/nshm/map-wus.geojson) map site file.
+
 (TODO This needs updating; link to conus-2018 active crust map-region.geojson).
 
 ---
 
-[**Documentation Index**](docs/README.md)
+* [**Documentation Index**](../README.md)
+* [Building & Running](./Building-&-Running.md)
+  * [Developer Basics](./Developer-Basics.md)
+  * [Calculation Configuration](./Calculation-Configuration.md)
+  * [Site Specification](./Site-Specification.md)
+  * [Examples](../../etc/examples/README.md) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Source-Types.md b/docs/pages/Source-Types.md
index baaf1f4f1..b6a0382a3 100644
--- a/docs/pages/Source-Types.md
+++ b/docs/pages/Source-Types.md
@@ -12,15 +12,15 @@ geometry itself is unknown or very poorly defined.
 
 [[_TOC_]]
 
-Source models for use with *nshmp-haz* are defined using [JSON](https://www.json.org) and
-[GeoJSON](https://geojson.org). *nshmp-haz* makes determinations about how to represent a source
+Source models for use with *nshmp-haz-v2* are defined using [JSON](https://www.json.org) and
+[GeoJSON](https://geojson.org). *nshmp-haz-v2* makes determinations about how to represent a source
 based on a GeoJSON geometry type in conjunction with supporting JSON configuration files. Example
 source configuration files, `*-config.json`, are provided with each source type description.
 Configuration files must be fully specified with `null` JSON member values used to specify 'do
 nothing' where appropriate. Any configuration member value in ALL_CAPS indicates the value is one
 of a fixed number of options commonly referred to as an enum.
 
-__Note on Coordinates:__ *nshmp-haz* supports longitude and latitude values in the closed ranges
+__Note on Coordinates:__ *nshmp-haz-v2* supports longitude and latitude values in the closed ranges
 `[-360°‥360°]` and `[-90°‥90°]`. Note, however, that mixing site and/or source coordinates across
 the antimeridian (the -180° to 180° transition) will yield unexpected results. For Pacific models
 and calculations, always use positive or negative longitudes exclusively.
@@ -347,8 +347,8 @@ using an `slab-config.json` file.
 
 ---
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index 7d28b81b6..6a686b063 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -6,7 +6,7 @@ years. This window is narrowing, however, and updates are also being undertaken
 models for states and territories outside the conterminous U.S. These pages describe the models
 that are available and some of the history and versions of each. The models are intended for use
 with the  USGS probabilistic earthquake hazard codebase:
-[*nshmp-haz*](https://github.com/usgs/nshmp-haz).
+[*nshmp-haz-v2*](https://github.com/usgs/nshmp-haz).
 
 As specified in this documentation, NSHM files are organized by tectonic setting and then further
 by source type. For larger models, such as that of the conterminous U.S., sources are commonly
@@ -32,8 +32,8 @@ Each model region has a dedicated repository with version tags marking different
 * [Model Editions](model-editions.md)
 * [Logic Trees & Uncertainty](logic-trees-&-uncertainty.md)
 
-[**Documentation Index**](docs/README.md)
+[**Documentation Index**](../README.md)
 
 ---
-![USGS logo](docs/pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
 National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/etc/nshm/README.md b/etc/nshm/README.md
new file mode 100644
index 000000000..96c4ee61a
--- /dev/null
+++ b/etc/nshm/README.md
@@ -0,0 +1,3 @@
+# NSHM site and map files
+
+This directory contains the sites, map, and boundary files used in NSHM calculations.
-- 
GitLab


From 3c9877a186ef88446dc09569190c1f42a5d14d9d Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Tue, 29 Jun 2021 18:37:36 -0600
Subject: [PATCH 12/39] updating content, fixing links

---
 docs/pages/Building-&-Running.md   | 21 +++++-----
 docs/pages/Ground-Motion-Models.md | 67 ++++++++++++++++++------------
 docs/pages/Site-Specification.md   |  6 +--
 3 files changed, 52 insertions(+), 42 deletions(-)

diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 3a1bd0cc0..1e09b5ac5 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -84,9 +84,12 @@ By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *ns
 memory available to Docker must be [increased](https://docs.docker.com/docker-for-mac/#advanced)
 to a minimum of 4 GB.
 
-### Running
+### Run in Docker
 
-TODO: is there a Docker image for nshmp-haz-v2?
+TODO: Docker scripts currently only get models from github (XML models), so nshmp-haz-v2 run fails
+to parse the models (CONUS_2018 or HAWAII_2021), need to at least update `nshmp-haz-v2/scripts/docker-functions.inc.sh`.
+
+TODO: Model identifiers need to be synced between here and the docker scripts (e.g. `HI-2020` vs `HAWAII_2021`).
 
 The *nshmp-haz-v2* application may be run as a Docker container which mitigates the need to install
 Git, Java, or other dependencies besides Docker. A public image is available on
@@ -106,14 +109,14 @@ docker run \
 # Example
 docker run \
     -e PROGRAM=hazard \
-    -e MODEL=CONUS-2018 \
+    -e MODEL=CONUS_2018 \
     -v $(pwd)/sites.geojson:/app/sites.geojson \
     -v $(pwd)/config.json:/app/config.json \
     -v $(pwd)/hazout:/app/output \
     usgs/nshmp-haz
 ```
 
-Where: (TODO links below need checking)
+Where:
 
 * `PROGRAM` is the nshmp-haz program to run:
   * disagg = `DisaggCalc`
@@ -121,16 +124,14 @@ Where: (TODO links below need checking)
   * rate = `RateCalc`
 
 * `MODEL` is the [USGS model (NSHM)](./USGS-Models.md) to run:
-  * CONUS-2018: [Conterminous U.S. 2018](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
-  * HAWAII-2021: [Hawaii 2021](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)
+  * `CONUS_2018`: [Conterminous U.S. 2018](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
+  * `HAWAII_2021`: [Hawaii 2021](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)
 
 * `RETURN_PERIOD`, in years, is only required when running a disaggregation
 
-TODO: what should these examples point to? links to example files? or where to look for the samples?
-
-* Other arguments:
+* Other arguments (local files mapped to files within the Docker container with `:/app/...`):
   * (required) The absolute path to a GeoJSON or CSV [site(s)](./Site-Specification.md) file
-    * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv` [`sites.csv`](../../etc/examples/3-sites-file/sites.csv)
+    * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv`
     * GeoJSON example: `$(pwd)/my-geojson-sites.geojson:/app/sites.geojson`
   * (optional) The absolute path to a [configuration](./Calculation-Configuration.md) file
     * Example: `$(pwd)/my-custom-config.json:/app/config.json`
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index fc7f55a0f..284ac2f6e 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -7,18 +7,24 @@ GMMs, as published, support both interface and intraslab events.
 
 [[_TOC_]]
 
-* How to add links to javadocs? ...not possible in wiki (separate repo)? except with external
-  http gitlab urls?
-* include NSHM that used each model?
-* save horizontal space in table by moving notes to table footnotes. this has to be done manually
-  (see NGA-East model IDs), since markdown footnotes always appear at the bottom of the page
-
-**gmm-config.json** Required adjacent to any `gmm-tree.json`. This file specifies the applicability
-distance of the associated GMM's and any additional epistemic uncertainty model and properties to
-apply to median ground motions derived from the GMM's. This uncertainty is distinct from the
-built-in aleatory variability (standard deviation or sigma) of the GMM's themselves. Use `null`
-values to indicate that no additional uncertainty model should be applied. Supported uncertainty
-models are detailed in the [ground motion models](ground-motion-models) section. For example:
+TODO: add links to GMM javadocs?
+
+TODO: list NSHMs that used each model?
+
+TODO: save horizontal space in table by moving notes to table footnotes (must be done manually because
+markdown footnotes are always at the bottom of the page)
+
+## GMM Configuration
+
+A **gmm-config.json** file governs how GMMs are applied in a NSHM and is required adjacent to any
+`gmm-tree.json` file. It specifies a maximum distance at which associated GMMs are applicable. It
+may also specify a model of additional epistemic uncertainty and the logic tree used to apply it to
+median ground motions derived from the GMMs. If no such model is required, the `epistemic-model` and
+`epistemic-tree` members must be `null`. This uncertainty is disctinct from the built-in aleatory
+variability (standard deviation or sigma) of the GMMs themselves. See [GMM Uncertainty Models](#gmm-uncertainty-models)
+for details on additional epistemic uncertainty in GMMs.
+
+A sample `gmm-config.json` file that specifies no additional epistemic uncertainty model:
 
 ```json
 {
@@ -28,13 +34,7 @@ models are detailed in the [ground motion models](ground-motion-models) section.
 }
 ```
 
-## GMM Configuration
-
-A `gmm-config.json` file governs how GMMs are applied in a NSHM. It specifies a maximum distance
-at which a GMM is applicable. It may also specify a model of additional epistemic uncertainty and
-the logic tree used to apply it. If no such model is required, the `epistemic-model` and
-`epistemic-tree` members must be `null`. See [Uncertainties in NSHMs](uncertainties-in-nshms) for
-details on additional epistemic uncertainty in GMMs.
+The following sample `gmm-config.json` file applies the NGA-West 2 epistemic uncertainty model:
 
 ```json
 {
@@ -50,13 +50,26 @@ details on additional epistemic uncertainty in GMMs.
 
 ## GMM Uncertainty Models
 
-TODO
+TODO: GMM uncertainty models (tables of values not necessary?)
+
+*nshmp-haz-v2* supports two models of additional epistemic uncertainty, derived from the PEER
+NGA-West 1 and NGA-West 2 projects.
+
+NGA-West 1  | Rrup < 10 | 10 <= Rrup < 30 | 30 <= Rrup
+:---:|:---|:---|:---
+**5 <= M < 6** | 0.375 | 0.21  | 0.245
+**6 <= M < 7** | 0.23  | 0.225 | 0.23
+**7 <= M**     | 0.40  | 0.36  | 0.31
 
 ## GMM Post Processors
 
-TODO
+TODO: GMM post processors (currently tabulated in "Auxiliary GMMs" section below)
+
+## GMMs By Tectonic Setting
+
+GMMs available in *nshmp-haz-v2* are tabulated by tectonic setting below.
 
-## Active Crust GMMs
+### Active Crust GMMs
 
 | Reference | ID | Component | Notes |
 |:---------:|:--:|:---------:|:------|
@@ -79,7 +92,7 @@ TODO
 | [Sadigh et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.180) | SADIGH_97 | Geometric mean of two horizontal components | Also used for interface sources in 2007 Alaska NSHM |
 | [Zhao et al., 2016](http://dx.doi.org/10.1785/0120150063) | ZHAO_16_SHALLOW_CRUST<br>ZHAO_16_UPPER_MANTLE | Geometric mean of two randomly oriented horizontal components |  |
 
-## Stable Crust GMMs
+### Stable Crust GMMs
 
 | Reference | ID | Component | Notes |
 |:---------:|:--:|:---------:|:------|
@@ -108,7 +121,7 @@ TODO
    NGA_EAST_SEED_PEER_EX, NGA_EAST_SEED_PEER_GP, NGA_EAST_SEED_PZCT15_M1SS,
    NGA_EAST_SEED_PZCT15_M2ES, NGA_EAST_SEED_SP15, NGA_EAST_SEED_SP16, NGA_EAST_SEED_YA15
 
-## Subduction GMMs  
+### Subduction GMMs  
 
 | Reference | ID | Component | Notes |
 |:---------:|:--:|:---------:|:------|
@@ -121,7 +134,7 @@ TODO
 | [Zhao et al., 2006](http://dx.doi.org/10.1785/0120050122) | ZHAO_06_INTERFACE<br>ZHAO_06_INTERFACE_BASIN<br>ZHAO_06_SLAB<br>ZHAO_06_SLAB_BASIN | Geometric mean of two horizontal components |  |
 | [Zhao et al., 2016](http://dx.doi.org/10.1785/0120150034)<br>[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150056) | ZHAO_16_INTERFACE<br>ZHAO_16_SLAB<br>*ZHAO_16_UPPER_MANTLE* | Geometric mean of two randomly oriented horizontal components | Subduction Slab and Interface |
 
-## Regional and Specialized GMMs
+### Regional and Specialized GMMs
 
 | Reference | ID | Component | Notes |
 |:---------:|:--:|:---------:|:------|
@@ -149,9 +162,9 @@ TODO
 | [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent horizontal |  |
 -->
 
-## Auxilliary Models
+### Auxiliary Models
 
-Auxilliary models are not used directly, they can be used by concrete implementations of GMMs to
+Auxiliary models are not used directly, they can be used by concrete implementations of GMMs to
 modify model output.
 
 | Reference | Purpose | Component | Notes |
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index 40808da9f..f7ad71b9c 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -2,10 +2,6 @@
 
 (TODO update etc and/or javadoc links)
 
-~~TODO: add README for `etc/nshm` directory so it can be linked here~~
-
-TODO: where is `etc/peer`? is it needed?
-
 The sites at which to perform hazard and related calculations may be defined in a variety of
 ways. Examples of the file formats described below are available in the resource directory:
 [`etc/nshm`](../../etc/nshm/README.md).
@@ -112,7 +108,7 @@ parallel to lines of latitude and longitude. Any points in the 'calculation' pol
 outside the 'calculation' polygon are set to zero. For an example, see the
 [NSHMP Western US](../../etc/nshm/map-wus.geojson) map site file.
 
-(TODO This needs updating; link to conus-2018 active crust map-region.geojson).
+TODO This needs updating; link to conus-2018 active crust map-region.geojson.
 
 ---
 
-- 
GitLab


From 2b7f0fab38a7860068c123dcc5754d147f597706 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 30 Jun 2021 16:08:13 -0600
Subject: [PATCH 13/39] standardize navigation links. update and clean GMM
 docs, add java doc links, simplify tables

---
 docs/pages/Building-&-Running.md        |   8 +-
 docs/pages/Calculation-Configuration.md |  12 +-
 docs/pages/Developer-Basics.md          |  12 +-
 docs/pages/Ground-Motion-Models.md      | 220 ++++++++++++------------
 docs/pages/Site-Specification.md        |  13 +-
 5 files changed, 134 insertions(+), 131 deletions(-)

diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 1e09b5ac5..6735ae1d7 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -2,10 +2,10 @@
 
 ## Related Pages
 
-* Building & Running
-  * [Developer Basics](./Developer-Basics.md)
-  * [Calculation Configuration](./Calculation-Configuration.md)
-  * [Site Specification](./Site-Specification.md)
+* [Building & Running](./Building-&-Running.md#building-&-running)
+  * [Developer Basics](./Developer-Basics.md#developer-basics)
+  * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
+  * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
     [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
 
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 78210b1dd..3966cfa69 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -101,13 +101,15 @@ T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, <br>0.00
 
 ---
 
-* [**Documentation Index**](../README.md)
-* [Building & Running](./Building-&-Running.md)
-  * [Developer Basics](./Developer-Basics.md)
-  * [Calculation Configuration](./Calculation-Configuration.md)
-  * [Site Specification](./Site-Specification.md)
+## Related Pages
+
+* [Building & Running](./Building-&-Running.md#building-&-running)
+  * [Developer Basics](./Developer-Basics.md#developer-basics)
+  * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
+  * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
     [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index d2e8a181b..fe7229242 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -61,13 +61,15 @@ Gradle > Existing Gradle Project`
 
 ---
 
-* [**Documentation Index**](../README.md)
-* [Building & Running](./Building-&-Running.md)
-  * [Developer Basics](./Developer-Basics.md)
-  * [Calculation Configuration](./Calculation-Configuration.md)
-  * [Site Specification](./Site-Specification.md)
+## Related Pages
+
+* [Building & Running](./Building-&-Running.md#building-&-running)
+  * [Developer Basics](./Developer-Basics.md#developer-basics)
+  * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
+  * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
     [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 284ac2f6e..49ecc4fa9 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -7,13 +7,6 @@ GMMs, as published, support both interface and intraslab events.
 
 [[_TOC_]]
 
-TODO: add links to GMM javadocs?
-
-TODO: list NSHMs that used each model?
-
-TODO: save horizontal space in table by moving notes to table footnotes (must be done manually because
-markdown footnotes are always at the bottom of the page)
-
 ## GMM Configuration
 
 A **gmm-config.json** file governs how GMMs are applied in a NSHM and is required adjacent to any
@@ -50,127 +43,132 @@ The following sample `gmm-config.json` file applies the NGA-West 2 epistemic unc
 
 ## GMM Uncertainty Models
 
-TODO: GMM uncertainty models (tables of values not necessary?)
-
-*nshmp-haz-v2* supports two models of additional epistemic uncertainty, derived from the PEER
-NGA-West 1 and NGA-West 2 projects.
-
-NGA-West 1  | Rrup < 10 | 10 <= Rrup < 30 | 30 <= Rrup
-:---:|:---|:---|:---
-**5 <= M < 6** | 0.375 | 0.21  | 0.245
-**6 <= M < 7** | 0.23  | 0.225 | 0.23
-**7 <= M**     | 0.40  | 0.36  | 0.31
+*nshmp-haz-v2* supports additional epistemic uncertainty models derived from the PEER NGA-West 1
+and PEER NGA-West 2 projects. These models both have factors for distance (`Rrup`) bins
+Rrup < 10 km, 10 km <= Rrup, < 30 km, and 30 km <= Rrup, and for magnitude bins M < 6.0, 6.0 <=
+M < 7.0, and 7.0 <= M. These models can be applied within the `gmm-config.json` file as shown in
+the [GMM Uncertainty](#gmm-uncertainty) section above.
 
 ## GMM Post Processors
 
-TODO: GMM post processors (currently tabulated in "Auxiliary GMMs" section below)
+GMM post processing models are not used directly, they can be used by concrete implementations of
+GMMs to modify model output.
+
+| Reference | Purpose | Component | Notes |
+|:---------:|:-------:|:---------:|:------|
+| [Rezaeian et al., 2014](http://dx.doi.org/10.1193/100512EQS298M) | Damping scaling factor | Average horizontal component | No effect if supplied damping ratio is 5% |
+| USGS PGV | Conditional PGV for crustal earthquakes | Horizontal component | Conditional model for vertical component not yet implemented |
 
 ## GMMs By Tectonic Setting
 
-GMMs available in *nshmp-haz-v2* are tabulated by tectonic setting below.
+GMMs available in *nshmp-haz-v2* are tabulated by tectonic setting below. See the javadocs for the
+[GMM Package](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/package-summary.html)
+for implementation details of each GMM and comprehensive lists of GMM IDs.
 
 ### Active Crust GMMs
 
-| Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
-| **NGA-West 2** | | |
-| [Abrahamson et al., 2014](http://dx.doi.org/10.1193/070913EQS198M) | ASK_14<br>ASK_14_BASIN | RotD50 |  |
-| [Boore et al., 2014](http://dx.doi.org/10.1193/070113EQS184M) | BSSA_14<br>BSSA_14_BASIN | RotD50 |  |
-| [Campbell & Bozorgnia, 2014](http://dx.doi.org/10.1193/062913EQS175M)| CB_14<br>CB_14_BASIN | RotD50 |  |
-| [Chiou & Youngs, 2014](http://dx.doi.org/10.1193/072813EQS219M) | CY_14<br>CY_14_BASIN | RotD50 |  |
-| [Idriss, 2014](http://dx.doi.org/10.1193/070613EQS195M) | IDRISS_14 | RotD50 |  |
-| **NGA-West 1** | | | |
-| [Boore & Anderson, 2008](http://dx.doi.org/10.1193/1.2830434) | BA_08 | GMRotI50 |  |
-| [Campbell & Bozorgnia, 2008](http://dx.doi.org/10.1193/1.2857546) | CB_08 | GMRotI50 |  |
-| [Chiou & Youngs, 2008](http://dx.doi.org/10.1193/1.2894832) | CY_08 | GMRotI50 |  |
-| **Other** | | | |
-| [Abrahamson & Silva, 1997](http://dx.doi.org/10.1785/gssrl.68.1.94) | AS_97 | Average horizontal | |
-| [Boore et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.128)<br>[Boore, 2005](http://dx.doi.org/10.1785/gssrl.76.3.368) | BJF_97 | Random horizontal | Soft rock sites only (Vs30 760 m/s) |
-| [Campbell, 1997](http://dx.doi.org/10.1785/gssrl.68.1.154)<br>[errata, 2000](http://dx.doi.org/10.1785/gssrl.71.3.352)<br>[errata, 2001](http://dx.doi.org/10.1785/gssrl.72.4.474) | CAMPBELL_97 | Geometric mean of two horizontal components | Soft rock sites only (Vs30 760 m/s) |
-| [Campbell & Bozorgnia, 2003](http://dx.doi.org/10.1785/0120020029)<br>[errata, 2003](http://dx.doi.org/10.1785/0120030099)<br>[errata, 2003](http://dx.doi.org/10.1785/0120030143) | CB_03 | Average horizontal | Soft rock sites only (Vs30 760 m/s) |
-| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model also supports geometric mean | New Zealand, does not correspond directly with US site class model |
-| [Sadigh et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.180) | SADIGH_97 | Geometric mean of two horizontal components | Also used for interface sources in 2007 Alaska NSHM |
-| [Zhao et al., 2016](http://dx.doi.org/10.1785/0120150063) | ZHAO_16_SHALLOW_CRUST<br>ZHAO_16_UPPER_MANTLE | Geometric mean of two randomly oriented horizontal components |  |
+Reference | ID | Component | Notes
+:---------:|:--:|:---------:|:------
+**NGA-West 2**
+[Abrahamson et al., 2014](http://dx.doi.org/10.1193/070913EQS198M) | ASK_14<br>ASK_14_BASIN | RotD50 |
+[Boore et al., 2014](http://dx.doi.org/10.1193/070113EQS184M) | BSSA_14<br>BSSA_14_BASIN | RotD50 |
+[Campbell & Bozorgnia, 2014](http://dx.doi.org/10.1193/062913EQS175M)| CB_14<br>CB_14_BASIN | RotD50 |
+[Chiou & Youngs, 2014](http://dx.doi.org/10.1193/072813EQS219M) | CY_14<br>CY_14_BASIN | RotD50 |
+[Idriss, 2014](http://dx.doi.org/10.1193/070613EQS195M) | IDRISS_14 | RotD50 |
+**NGA-West 1**
+[Boore & Anderson, 2008](http://dx.doi.org/10.1193/1.2830434) | BA_08 | GMRotI50 |
+[Campbell & Bozorgnia, 2008](http://dx.doi.org/10.1193/1.2857546) | CB_08 | GMRotI50 |
+[Chiou & Youngs, 2008](http://dx.doi.org/10.1193/1.2894832) | CY_08 | GMRotI50 |
+**Other**
+[Abrahamson & Silva, 1997](http://dx.doi.org/10.1785/gssrl.68.1.94) | AS_97 | Average horizontal |
+[Boore et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.128)<br>[Boore, 2005](http://dx.doi.org/10.1785/gssrl.76.3.368) | BJF_97 | Random horizontal | [1](#active-crust-gmm-notes)
+[Campbell, 1997](http://dx.doi.org/10.1785/gssrl.68.1.154)<br>[errata, 2000](http://dx.doi.org/10.1785/gssrl.71.3.352)<br>[errata, 2001](http://dx.doi.org/10.1785/gssrl.72.4.474) | CAMPBELL_97 | Geometric mean of two horizontal components | [1](#active-crust-gmm-notes)
+[Campbell & Bozorgnia, 2003](http://dx.doi.org/10.1785/0120020029)<br>[errata, 2003a](http://dx.doi.org/10.1785/0120030099)<br>[errata, 2003b](http://dx.doi.org/10.1785/0120030143) | CB_03 | Average horizontal | [1](#active-crust-gmm-notes)
+[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model supports geometric mean | [2](#active-crust-gmm-notes)
+[Sadigh et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.180) | SADIGH_97 | Geometric mean of two horizontal components | [3](#active-crust-gmm-notes)
+[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150063) | ZHAO_16_SHALLOW_CRUST<br>ZHAO_16_UPPER_MANTLE | Geometric mean of two randomly oriented horizontal components |
+
+#### Active Crust GMM Notes
+
+1. Soft rock sites only (Vs30 760 m/s)
+2. New Zealand model, does not correspond directly with US site class model
+3. Also used for interface sources in 2007 Alaska NSHM
 
 ### Stable Crust GMMs
 
-| Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
-| [Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | Mean values clamped |
-| [Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | AB_06_140BAR<br>AB_06_200BAR<br>AB_06_140BAR_AB<br>AB_06_200BAR_AB<br>AB_06_140BAR_J<br>AB_06_200BAR_J | horizontal | Mean values clamped |
-| [Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | Mean values clamped |
-| [Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean of two horizontal components | Mean values clamped |
-| [Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | Mean values clamped |
-| [Graizer & Kalkan, 2015](http://dx.doi.org/10.3133/ofr20151009)<br>[Graizer & Kalkan, 2016](http://dx.doi.org/10.1785/0120150194) | GK_15 | Geometric mean of two randomly oriented horizontal components |  |
-| NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS [:one:](#one-nga-east-median-model-ids)<br>NGA_EAST_USGS_SEEDS[:two:](#two-nga-east-seed-model-ids) | RotD50 (average horizontal) | Mean values are not clamped |
-| [Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | Mean values clamped |
-| [Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | NGA-East Seed |
-| [Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | average horizontal component | Mean values clamped |
-| [Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | Mean values clamped |
-| [Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | Mean values clamped |
-| [Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | Mean values clamped |
-
-1. NGA-East Median Model IDs: NGA_EAST_USGS_1, NGA_EAST_USGS_2, NGA_EAST_USGS_3, NGA_EAST_USGS_4,
-   NGA_EAST_USGS_5, NGA_EAST_USGS_6, NGA_EAST_USGS_7, NGA_EAST_USGS_8, NGA_EAST_USGS_9,
-   NGA_EAST_USGS_10, NGA_EAST_USGS_11, NGA_EAST_USGS_12, NGA_EAST_USGS_13, NGA_EAST_USGS_14,
-   NGA_EAST_USGS_15, NGA_EAST_USGS_16, NGA_EAST_USGS_17
-2. NGA-East Seed Model IDs: NGA_EAST_SEED_1CCSP, NGA_EAST_SEED_1CVSP, NGA_EAST_SEED_2CCSP,
-   NGA_EAST_SEED_2CVSP, NGA_EAST_SEED_B_A04, NGA_EAST_SEED_B_AB14, NGA_EAST_SEED_B_AB95,
-   NGA_EAST_SEED_B_BCA10D, NGA_EAST_SEED_B_BS11, NGA_EAST_SEED_B_SGD02, NGA_EAST_SEED_FRANKEL,
-   NGA_EAST_SEED_GRAIZER, NGA_EAST_SEED_GRAIZER16, NGA_EAST_SEED_GRAIZER17, NGA_EAST_SEED_HA15,
-   NGA_EAST_SEED_PEER_EX, NGA_EAST_SEED_PEER_GP, NGA_EAST_SEED_PZCT15_M1SS,
-   NGA_EAST_SEED_PZCT15_M2ES, NGA_EAST_SEED_SP15, NGA_EAST_SEED_SP16, NGA_EAST_SEED_YA15
-
-### Subduction GMMs  
-
-| Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
-| [Atkinson & Boore, 2003](http://dx.doi.org/10.1785/0120020156) | AB_03_GLOBAL_INTERFACE<br>AB_03_GLOBAL_SLAB<br>AB_03_GLOBAL_SLAB_LOW_SAT<br>AB_03_CASCADIA_INTERFACE<br>AB_03_CASCADIA_SLAB<br>AB_03_CASCADIA_SLAB_LOW_SAT | horizontal |  |
-| [Atkinson & Macias, 2009](http://dx.doi.org/10.1785/0120080147) | AM_09_INTERFACE<br>AM_09_INTERFACE_BASIN | Geometric mean of two horizontal components | Interface only |
-| BC Hydro<br>[Abrahamson et al., 2016](http://dx.doi.org/10.1193/051712EQS188MR) | BCHYDRO_12_INTERFACE<br>BCHYDRO_12_INTERFACE_BACKARC<br>BCHYDRO_12_INTERFACE_BASIN<br>BCHYDRO_12_INTERFACE_BASIN_BACKARC<br>BCHYDRO_12_SLAB<br>BCHYDRO_12_SLAB_BACKARC<br>BCHYDRO_12_SLAB_BASIN<br>BCHYDRO_12_SLAB_BASIN_BACKARC | Geometric mean of two horizontal components |  |
-| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model also supports geometric mean | New Zealand, does not correspond directly with US site class model |
-| NGA-Subduction<br>[Abrahamson et al., 2018](https://peer.berkeley.edu/sites/default/files/2018_02_abrahamson_9.10.18.pdf) | NGA_SUB_USGS_INTERFACE<br>NGA_SUB_USGS_INTERFACE_NO_EPI<br>NGA_SUB_USGS_SLAB<br>NGA_SUB_USGS_SLAB_NO_EPI | Geometric mean of two horizontal components | **Likely to be superseded by final EQS paper**<br>Calibrated for Cascadia use only |
-| [Youngs et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.58) | YOUNGS_97_INTERFACE<br>YOUNGS_97_SLAB | Geometric mean of two horizontal components |  |
-| [Zhao et al., 2006](http://dx.doi.org/10.1785/0120050122) | ZHAO_06_INTERFACE<br>ZHAO_06_INTERFACE_BASIN<br>ZHAO_06_SLAB<br>ZHAO_06_SLAB_BASIN | Geometric mean of two horizontal components |  |
-| [Zhao et al., 2016](http://dx.doi.org/10.1785/0120150034)<br>[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150056) | ZHAO_16_INTERFACE<br>ZHAO_16_SLAB<br>*ZHAO_16_UPPER_MANTLE* | Geometric mean of two randomly oriented horizontal components | Subduction Slab and Interface |
+Reference | ID | Component | Notes
+:---------:|:--:|:---------:|:------
+**NGA-East**
+NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS<sup>[1](#stable-crust-gmm-notes)</sup><br>NGA_EAST_USGS_SEEDS<sup>[2](#stable-crust-gmm-notes)</sup> | RotD50 (average horizontal) | [3](#stable-crust-gmm-notes)
+[Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | [4](#stable-crust-gmm-notes)
+**Other**
+[Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | [5](#stable-crust-gmm-notes)
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | *AB_06_\*<br>140BAR\|200BAR<br>none\|_AB\|_J* | horizontal | [5](#stable-crust-gmm-notes)
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | [5](#stable-crust-gmm-notes)
+[Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean of two horizontal components | [5](#stable-crust-gmm-notes)
+[Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | [5](#stable-crust-gmm-notes)
+[Graizer & Kalkan, 2015](http://dx.doi.org/10.3133/ofr20151009)<br>[Graizer & Kalkan, 2016](http://dx.doi.org/10.1785/0120150194) | GK_15 | Geometric mean of two randomly oriented horizontal components |
+[Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | [5](#stable-crust-gmm-notes)
+[Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | average horizontal component | [5](#stable-crust-gmm-notes)
+[Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | [5](#stable-crust-gmm-notes)
+[Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | [5](#stable-crust-gmm-notes)
+[Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | [5](#stable-crust-gmm-notes)
+
+#### Stable Crust GMM Notes
+
+1. Individual NGA-East Median Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
+2. Individual NGA-East Seed Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
+3. Mean values are not clamped
+4. Shahjouei and Pezeshk (2016) is a NGA-East seed model
+5. Mean values clamped
+
+### Subduction GMMs
+
+*Note: See the [GMM javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
+for a comprehensive list of GMM IDs.*
+
+Reference | ID | Component | Notes
+:---------:|:--:|:---------:|:------
+**NGA-Subduction**
+[Abrahamson & Gülerce, 2020](https://peer.berkeley.edu/sites/default/files/2020_25.pdf) | *AG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* | Geometric mean of two horizontal components
+[Kuehn et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_04_kuehn_final.pdf) | *KBCG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* |
+[Parker et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_03_parker_final.pdf) | *PSHAB_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* |
+**Other**
+[Atkinson & Boore, 2003](http://dx.doi.org/10.1785/0120020156) | *AB_03\*<br>GLOBAL\|CASCADIA<br>INTERFACE\|SLAB<br>none\|_LOW_SAT*| horizontal |
+[Atkinson & Macias, 2009](http://dx.doi.org/10.1785/0120080147) | AM_09_INTERFACE<br>AM_09_INTERFACE_BASIN | Geometric mean of two horizontal components | [1](#subduction-gmm-notes)
+BC Hydro<br>[Abrahamson et al., 2016](http://dx.doi.org/10.1193/051712EQS188MR) | *BCHYDRO_12_\*<br>INTERFACE\|SLAB<br>none\|_BASIN<br>none\|_BACKARC* | Geometric mean of two horizontal components |
+BC Hydro NGA<br>[Abrahamson et al., 2018](https://peer.berkeley.edu/sites/default/files/2018_02_abrahamson_9.10.18.pdf)<sup>[2](#subduction-gmm-notes)</sup> | *BCHYDRO_18_NGA_\*<br>INTERFACE\|SLAB<br>none\|_NO_EPI* | Geometric mean of two horizontal components | [3](#subduction-gmm-notes)
+[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model also supports geometric mean | [4](#subduction-gmm-notes)
+[Youngs et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.58) | YOUNGS_97_INTERFACE<br>YOUNGS_97_SLAB | Geometric mean of two horizontal components |
+[Zhao et al., 2006](http://dx.doi.org/10.1785/0120050122) | *ZHAO_06_\*<br>INTERFACE\|SLAB<br>none\|_BASIN* | Geometric mean of two horizontal components |
+[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150034)<br>[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150056) | ZHAO_16_INTERFACE<br>ZHAO_16_SLAB<br>*ZHAO_16_UPPER_MANTLE* | Geometric mean of two randomly oriented horizontal components | [5](#subduction-gmm-notes)
+
+#### Subduction GMM Notes
+
+1. Interface only
+2. Likely to be superseded by the final EQ Spectra paper
+3. Calibrated for Cascadia use only
+4. New Zealand model, does not correspond directly with US site class model
+5. Subduction Slab and Interface
 
 ### Regional and Specialized GMMs
 
 | Reference | ID | Component | Notes |
 |:---------:|:--:|:---------:|:------|
-| **Hawaii** | | | |
-| [Atkinson, 2010](http://dx.doi.org/10.1785/0120090098) | ATKINSON_10 | geometric mean of two horizontal components |  |
-| [Munson & Thurber, 1997](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/68/1/41/142160/Model-of-Strong-Ground-Motions-from-Earthquakes-in) | MT_97 | Larger of two horizontal | PGA and 0.2 seconds, additional term applied for M > 7 |
-| [Wong et al., 2015](http://doi.org/10.1193/012012EQS015M) | WONG_15 | average horizontal |  |
-| **New Zealand** | | | |
-| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC<br>MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB | Max-horizontal implemented, model also supports geometric mean | New Zealand, does not correspond directly with US site class model. |
-| **Induced Seismicity** | | | |
-| [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent horizontal |  |
-<!--
-## Hawaii GMMs
-
-| Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
-| [Atkinson, 2010](http://dx.doi.org/10.1785/0120090098) | ATKINSON_10 | geometric mean of two horizontal components | Hawaii |
-| [Munson & Thurber, 1997](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/68/1/41/142160/Model-of-Strong-Ground-Motions-from-Earthquakes-in) | MT_97 | Larger of two horizontal | PGA and 0.2 seconds, additional term applied for M > 7 |
-| [Wong et al., 2015](http://doi.org/10.1193/012012EQS015M) | WONG_15 | average horizontal |  |
-
-## Induced Seismicity GMMs
-
-| Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
-| [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent horizontal |  |
--->
-
-### Auxiliary Models
-
-Auxiliary models are not used directly, they can be used by concrete implementations of GMMs to
-modify model output.
-
-| Reference | Purpose | Component | Notes |
-|:---------:|:-------:|:---------:|:------|
-| [Rezaeian et al., 2014](http://dx.doi.org/10.1193/100512EQS298M) | Damping scaling factor | Average horizontal component | No effect if supplied damping ratio is 5% |
-| USGS PGV | Conditional PGV for crustal earthquakes | Horizontal component | Conditional model for vertical component not yet implemented |
+| **Hawaii**
+| [Atkinson, 2010](http://dx.doi.org/10.1785/0120090098) | ATKINSON_10 | geometric mean of two horizontal components |
+| [Munson & Thurber, 1997](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/68/1/41/142160/Model-of-Strong-Ground-Motions-from-Earthquakes-in) | MT_97 | Larger of two horizontal | [1](#regional-and-specialized-gmm-notes)
+| [Wong et al., 2015](http://doi.org/10.1193/012012EQS015M) | WONG_15 | average horizontal |
+| **New Zealand**
+| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC<br>MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB | Max-horizontal implemented, model also supports geometric mean | [1](#regional-and-specialized-gmm-notes)
+| **Induced Seismicity**
+| [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent horizontal |
+
+#### Regional and Specialized GMM Notes
+
+1. Munson & Thurber (1997) supports PGA and 0.2 seconds, with an additional term applied for M > 7.
+2. McVerry et al. (2000) is a New Zealand model and does not correspond directly with the U.S. site
+   class model.
 
 ---
 
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index f7ad71b9c..b6699d151 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -1,6 +1,5 @@
 # Site Specification
 
-(TODO update etc and/or javadoc links)
 
 The sites at which to perform hazard and related calculations may be defined in a variety of
 ways. Examples of the file formats described below are available in the resource directory:
@@ -112,13 +111,15 @@ TODO This needs updating; link to conus-2018 active crust map-region.geojson.
 
 ---
 
-* [**Documentation Index**](../README.md)
-* [Building & Running](./Building-&-Running.md)
-  * [Developer Basics](./Developer-Basics.md)
-  * [Calculation Configuration](./Calculation-Configuration.md)
-  * [Site Specification](./Site-Specification.md)
+## Related Pages
+
+* [Building & Running](./Building-&-Running.md#building-&-running)
+  * [Developer Basics](./Developer-Basics.md#developer-basics)
+  * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
+  * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
     [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
-- 
GitLab


From c87063e484324ccfa930f9917386b1e9b71c352e Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 30 Jun 2021 16:52:42 -0600
Subject: [PATCH 14/39] add navigation, fix links, add web services pages
 (referenced in Model-Editions.md)

---
 docs/README.md                          |  1 +
 docs/pages/Calculation-Configuration.md |  4 +-
 docs/pages/Logic-Trees-&-Uncertainty.md | 53 ++++++++--------
 docs/pages/Model-Editions.md            | 80 ++++++++++++++-----------
 docs/pages/NSHMP-Web-Services.md        | 12 ++++
 docs/pages/Site-Specification.md        |  3 +-
 docs/pages/USGS-Models.md               | 14 ++---
 7 files changed, 98 insertions(+), 69 deletions(-)
 create mode 100644 docs/pages/NSHMP-Web-Services.md

diff --git a/docs/README.md b/docs/README.md
index 3eba4574a..95e2a6cfb 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -29,6 +29,7 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
 * [USGS Models](./pages/USGS-Models.md)
   * [Model Editions](./pages/Model-Editions.md)
   * [Logic Trees & Uncertainty](./pages/Logic-Trees-&-Uncertainty.md)
+* [NSHMP Web Services](./pages/NSHMP-Web-Services.md#nshmp-web-services)
 
 ## Other Pages & References
 
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 3966cfa69..c3d9150dc 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -51,7 +51,7 @@ __`performance`__
 [url-datatype]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DataType.html
 [url-sheets]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ThreadCount.html
 
-## Notes
+### Notes
 
 1. `hazard.truncationLevel`: This value is only used if the `hazard.exceedanceModel` requires a
    limit (e.g. `TRUNCATION_UPPER_ONLY`)
@@ -59,7 +59,7 @@ __`performance`__
    been defined, this value en/disables this feature.
 3. `hazard.customImls`: Hazard is computed at default intensity measure levels (IMLs) for every
    supported intenisty measure type (IMT), but a user can specify different IMLs as needed (see
-   this [example](../../etc/examples/2-custom-config/README.md) and the
+   [example 2](../../etc/examples/2-custom-config/README.md) and the
    table of default IMLs, below).
 4. `disagg.bins`: This field maps to a data container that specifies the following default ranges
    and intervals for distance, magnitude, and epsilon binning: `"bins": { "rMin": 0.0, "rMax":
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index 57c05cda5..093ac1981 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -15,8 +15,8 @@ alternative models.
 
 | Description | 2008  | 2014 | 2018 |
 |:----------- |:----- |:---- |:---- |
-| CEUS   | __0.1__ : AB_06 (140 bar)<br />__0.1__ : AB_06 (200 bar)<br />__0.1__ : CAMPBELL_03<br />__0.1__ : FRANKEL_96<br />__0.1__ : SILVA_02<br />__0.2__ : SOMERVILLE_01<br />__0.2__ : TORO_97<br />__0.1__ : TP_05 | __0.22__ : AB_06'<br />__0.08__ : ATKINSON_08'<br />__0.11__ : CAMPBELL_03<br />__0.06__ : FRANKEL_96<br />__0.15__ : PEZESHK_11<br />__0.06__ : SILVA_02<br />__0.10__ : SOMERVILLE_01<br />__0.11__ : TORO_97<br />__0.11__ : TP_05 | __0.667__ : NGA_EAST_USGS (17)<br />__0.333__ : NGA_EAST_SEEDS (14)<br />(common aleatory variability) |
-| Sigma Epistemic | _(none)_ | _(no change)_ | __0.2__ : USGS Panel<br />__0.8__ : EPRI |
+| CEUS   | __0.1__ : AB_06 (140 bar)<br>__0.1__ : AB_06 (200 bar)<br>__0.1__ : CAMPBELL_03<br>__0.1__ : FRANKEL_96<br>__0.1__ : SILVA_02<br>__0.2__ : SOMERVILLE_01<br>__0.2__ : TORO_97<br>__0.1__ : TP_05 | __0.22__ : AB_06'<br>__0.08__ : ATKINSON_08'<br>__0.11__ : CAMPBELL_03<br>__0.06__ : FRANKEL_96<br>__0.15__ : PEZESHK_11<br>__0.06__ : SILVA_02<br>__0.10__ : SOMERVILLE_01<br>__0.11__ : TORO_97<br>__0.11__ : TP_05 | __0.667__ : NGA_EAST_USGS (17)<br>__0.333__ : NGA_EAST_SEEDS (14)<br>(common aleatory variability) |
+| Sigma Epistemic | _(none)_ | _(no change)_ | __0.2__ : USGS Panel<br>__0.8__ : EPRI |
 | Site Aleatory | _(none)_ | _(no change)_ | __0.185, 0.63, 0.185__ : Site ± σ |
 
 ---
@@ -25,8 +25,8 @@ alternative models.
 
 | Description | 2008  | 2014 | 2018 |
 |:----------- |:----- |:---- |:---- |
-| WUS | __0.3333__ : BA_08<br />__0.3333__ : CB_08<br />__0.3334__ : CY_08 | __0.22__ : ASK_14<br />__0.22__ : BSSA_14<br />__0.22__ : CB_14<br />__0.22__ : CY_14<br />__0.22__ : IDRISS_14 | __0.25__ : ASK_14<br />__0.25__ : BSSA_14<br />__0.25__ : CB_14<br />__0.25__ : CY_14 |
-| Mean Epistemic | NGA-West1 (M,R)<br />__0.185__ : epi+<br />__0.630__ : off<br />__0.185__ : epi- | NGA-West2 (M,R)<br />__0.185__ : epi+<br />__0.630__ : off<br />__0.185__ : epi- | _(no change)_  |
+| WUS | __0.3333__ : BA_08<br>__0.3333__ : CB_08<br>__0.3334__ : CY_08 | __0.22__ : ASK_14<br>__0.22__ : BSSA_14<br>__0.22__ : CB_14<br>__0.22__ : CY_14<br>__0.22__ : IDRISS_14 | __0.25__ : ASK_14<br>__0.25__ : BSSA_14<br>__0.25__ : CB_14<br>__0.25__ : CY_14 |
+| Mean Epistemic | NGA-West1 (M,R)<br>__0.185__ : epi+<br>__0.630__ : off<br>__0.185__ : epi- | NGA-West2 (M,R)<br>__0.185__ : epi+<br>__0.630__ : off<br>__0.185__ : epi- | _(no change)_  |
 
 ---
 
@@ -34,8 +34,8 @@ alternative models.
 
 | Description | 2008  | 2014 | 2018 |
 |:----------- |:----- |:---- |:---- |
-| Cascadia<br />(interface) | __0.25__ : AB_03 (global)<br />__0.25__ : YOUNGS_97<br />__0.50__ : ZHAO_06 | __0.1__ : AB_03 (global)<br />__0.3__ : AM_09<br />__0.3__ : BCHYDRO_12<br />__0.3__ : ZHAO_06 | __0.3333__ : AM_09<br />__0.3334__ : BCHYDRO_12<br />__0.3333__ : ZHAO_06 |
-| Cascadia<br />(slab) | __0.25__ : AB_03 (global)<br />__0.25__ : AB_03 (cascadia)<br />__0.50__ : YOUNGS_97 | __0.1665__ : AB_03 (global, mod)<br />__0.1665__ : AB_03 (cascadia, mod)<br />__0.3330__ : BCHYDRO_12<br />__0.3340__ : ZHAO_06 | __0.5__ : BCHYDRO_12<br />__0.5__ : ZHAO_06 |
+| Cascadia<br>(interface) | __0.25__ : AB_03 (global)<br>__0.25__ : YOUNGS_97<br>__0.50__ : ZHAO_06 | __0.1__ : AB_03 (global)<br>__0.3__ : AM_09<br>__0.3__ : BCHYDRO_12<br>__0.3__ : ZHAO_06 | __0.3333__ : AM_09<br>__0.3334__ : BCHYDRO_12<br>__0.3333__ : ZHAO_06 |
+| Cascadia<br>(slab) | __0.25__ : AB_03 (global)<br>__0.25__ : AB_03 (cascadia)<br>__0.50__ : YOUNGS_97 | __0.1665__ : AB_03 (global, mod)<br>__0.1665__ : AB_03 (cascadia, mod)<br>__0.3330__ : BCHYDRO_12<br>__0.3340__ : ZHAO_06 | __0.5__ : BCHYDRO_12<br>__0.5__ : ZHAO_06 |
 
 ---
 
@@ -43,8 +43,8 @@ alternative models.
 
 | Model | Description | 2008 | 2014 | 2018 |
 |:----- |:----------- |:---- |:---- |:---- |
-| Deformation |  | __1.0__ : GEO | __0.1__ : BIRD<br />__0.8__ : GEO<br />__0.1__ : ZENG | _(no change)_  |
-| Rupture |  | __0.5__ : Full<br /> __0.5__ : Partial | _(no change)_ | _(no change)_ |
+| Deformation |  | __1.0__ : GEO | __0.1__ : BIRD<br>__0.8__ : GEO<br>__0.1__ : ZENG | _(no change)_  |
+| Rupture |  | __0.5__ : Full<br> __0.5__ : Partial | _(no change)_ | _(no change)_ |
 | Magnitude Scaling |  | __1.0__ : Somerville-01 (area) | _(no change)_  | _(no change)_  |
 | Maximum M¹ | Partial: epistemic | __0.2, 0.6, 0.2__ : M ± 0.2 | _(no change)_  | _(no change)_  |
 |           | Full : epistemic   | __0.2, 0.6, 0.2__ : M ± 0.2 | _(no change)_  | _(no change)_  |
@@ -58,7 +58,7 @@ alternative models.
 
 | Model | Description | 2008 | 2014 | 2018 |
 |:----- |:----------- |:---- |:---- |:---- |
-| Deformation |  | __1.0__ : GEO | __0.1__ : BIRD<br />__0.8__ : GEO<br />__0.1__ : ZENG | _(no change)_  |
+| Deformation |  | __1.0__ : GEO | __0.1__ : BIRD<br>__0.8__ : GEO<br>__0.1__ : ZENG | _(no change)_  |
 | Rupture | Partial | __0.333__ : IMW, __0.5__ : PNW | _(no change)_ | _(no change)_ |
 |         | Full    | __0.667__ : IMW, __0.5__ : PNW | _(no change)_ | _(no change)_ |
 | Magnitude Scaling |  | __1.0__ : WC_94 (length) | _(no change)_  | _(no change)_  |
@@ -74,9 +74,9 @@ alternative models.
 
 | Model | Description | 2008 | 2014 | 2018 |
 |:----- |:----------- |:---- |:---- |:---- |
-| Maximum M | WUS (exceptions) | __1.0__ : 7.0 | __0.9__ : 7.5 (truncated)<br />__0.1__ : 8.0 (tapered) | _(no change)_  |
-|           | CEUS (craton) | __0.1__ : 6.6<br />__0.2__ : 6.8<br />__0.5__ : 7.0<br />__0.2__ : 7.2 | __0.2__ : 6.5<br />__0.5__ : 7.0<br />__0.2__ : 7.5<br />__0.1__ : 8.0 | _(no change)_  |
-| Smoothing |  | __1.0__ : Fixed |__0.4__ : Adaptive<br />__0.6__ : Fixed | _(no change)_  |
+| Maximum M | WUS (exceptions) | __1.0__ : 7.0 | __0.9__ : 7.5 (truncated)<br>__0.1__ : 8.0 (tapered) | _(no change)_  |
+|           | CEUS (craton) | __0.1__ : 6.6<br>__0.2__ : 6.8<br>__0.5__ : 7.0<br>__0.2__ : 7.2 | __0.2__ : 6.5<br>__0.5__ : 7.0<br>__0.2__ : 7.5<br>__0.1__ : 8.0 | _(no change)_  |
+| Smoothing |  | __1.0__ : Fixed |__0.4__ : Adaptive<br>__0.6__ : Fixed | _(no change)_  |
 | Magnitude Scaling | CEUS & WUS | __1.0__ : WC_94 (length) | _(no change)_  | _(no change)_  |
 | Focal Mechanisms | Spatially Varying | __1.0__ : assigned | _(no change)_  | _(no change)_  |
 | Depth (zTor) | WUS, M < 6.5 | __1.0__ : 5.0 km | _(no change)_  | _(no change)_  |
@@ -89,11 +89,11 @@ alternative models.
 
 | Model | 2014 | 2018 |
 |:----- |:---- |:---- |
-| Fault | __0.5__ : FM3.1<br /> __0.5__ : FM3.2 | _(no change)_ |
-| Deformation | __0.1__ : ABM<br />__0.3__ : BIRD<br />__0.3__ : GEO<br />__0.3__ : ZENG | _(no change)_  |
-| Scaling Relationship<br />(mag-area & slip-length)| __0.2__ : ELLS_B<br />__0.2__ : ELLS_B (sqrt-L)<br />__0.2__ : HB_08<br />__0.2__ : SHAW_09<br />__0.2__ : SHAW_09 (csd) | _(no change)_  |
-| Slip Distribution | __0.5__ : Tapered<br />__0.5__ : Boxcar | _(no change)_ |
-| M ≥ 5 rate (yr⁻¹) | __0.1__ : 6.5<br />__0.6__ : 7.9<br />__0.3__ : 9.6 | _(no change)_  |
+| Fault | __0.5__ : FM3.1<br> __0.5__ : FM3.2 | _(no change)_ |
+| Deformation | __0.1__ : ABM<br>__0.3__ : BIRD<br>__0.3__ : GEO<br>__0.3__ : ZENG | _(no change)_  |
+| Scaling Relationship<br>(mag-area & slip-length)| __0.2__ : ELLS_B<br>__0.2__ : ELLS_B (sqrt-L)<br>__0.2__ : HB_08<br>__0.2__ : SHAW_09<br>__0.2__ : SHAW_09 (csd) | _(no change)_  |
+| Slip Distribution | __0.5__ : Tapered<br>__0.5__ : Boxcar | _(no change)_ |
+| M ≥ 5 rate (yr⁻¹) | __0.1__ : 6.5<br>__0.6__ : 7.9<br>__0.3__ : 9.6 | _(no change)_  |
 | Inversion Constraint | __1.0__ : UCERF2 (CH) | _(no change)_  |
 | Fault Mo Rate | __1.0__ : off |  _(no change)_  |
 
@@ -103,8 +103,8 @@ alternative models.
 
 | Model | 2014 | 2018 |
 |:----- |:---- |:---- |
-| Grid: Maximum M | __0.1__ : 7.3<br />__0.8__ : 7.6<br />__0.1__ : 7.9 | _(no change)_  |
-| Grid: Smoothing | __0.5__ : Adaptive<br />__0.5__ : Fixed | _(no change)_  |
+| Grid: Maximum M | __0.1__ : 7.3<br>__0.8__ : 7.6<br>__0.1__ : 7.9 | _(no change)_  |
+| Grid: Smoothing | __0.5__ : Adaptive<br>__0.5__ : Fixed | _(no change)_  |
 | Grid: Focal Mechanisms | __1.0__ : assigned | _(no change)_  |
 | Magnitude Scaling | __1.0__ : WC_94 (length) | _(no change)_  |
 
@@ -114,18 +114,23 @@ alternative models.
 
 | Model | 2008 | 2014 | 2018 |
 |:----- |:---- |:---- |:---- |
-| Rupture | __0.67__ : Full<br />__0.33__ : Partial | __1.0__ : Full<br />__0.5__ : Partial (segmented)<br />__0.5__ : Partial (unsegmented) | _(no change)_ |
-| Magnitude Scaling | __1.0__ : Youngs et al. (length) | __0.334__ : Strasser et al. (2010)<br />__0.333__ : Murotani et al. (2008)<br />__0.333__ : Papazachos et al. (2004)  | _(no change)_  |
+| Rupture | __0.67__ : Full<br>__0.33__ : Partial | __1.0__ : Full<br>__0.5__ : Partial (segmented)<br>__0.5__ : Partial (unsegmented) | _(no change)_ |
+| Magnitude Scaling | __1.0__ : Youngs et al. (length) | __0.334__ : Strasser et al. (2010)<br>__0.333__ : Murotani et al. (2008)<br>__0.333__ : Papazachos et al. (2004)  | _(no change)_  |
 | Magnitude Uncertainty | __0.2, 0.6, 0.2__ : M±0.2 | _(none)_  | _(no change)_  |
-| Depth | __0.5__ : Base<br />__0.2__ : Bottom<br />__0.2__ : Middle<br />__0.1__ : Top | __0.3__ : Bottom<br />__0.5__ : Middle<br />__0.2__ : Top | _(no change)_ |
-| Slab: Maximum M | __1.0__ : 7.2 | __0.9__ : 7.5<br />__0.1__ : 8.0 | _(no change)_ |
+| Depth | __0.5__ : Base<br>__0.2__ : Bottom<br>__0.2__ : Middle<br>__0.1__ : Top | __0.3__ : Bottom<br>__0.5__ : Middle<br>__0.2__ : Top | _(no change)_ |
+| Slab: Maximum M | __1.0__ : 7.2 | __0.9__ : 7.5<br>__0.1__ : 8.0 | _(no change)_ |
 
 * Full: a.k.a. 'characteristic'
 * Partial: a.k.a. 'Gutenberg-Richter' or 'floating'
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [USGS Models](./USGS-Models.md#usgs-models)
+  * [Model Editions](./Model-Editions.md#model-editions)
+  * [Logic Trees & Uncertainty](./Logic-Trees-&-Uncertainty.md#logic-trees-&-uncertainty)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index c47e2f313..44dba3c5b 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -7,10 +7,10 @@ data, or modeling procedures that warrant a model update. Every model the USGS p
 associated with a USGS Open-File report or refereed journal article and supporting datasets.
 However, layered on top of any given model release are bug-fixes and model improvements.
 
-With the update to a new codebase, [nshmp-haz](https://github.com/usgs/nshmp-haz), the NSHMP has
-adopted [semantic versioning](http://semver.org) to keep track of different hazard models. For
-any given model region, the first number (or major version) corresponds to a particular release
-or update year. For example, we consider the initial
+With the update to a new codebase, [nshmp-haz-v2](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2),
+the NSHMP has adopted [semantic versioning](http://semver.org) to keep track of different hazard
+models. For any given model region, the first number (or major version) corresponds to a particular
+release or update year. For example, we consider the initial
 [1996 conterminous U.S. NSHM](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#1996)
 to be v1.0.0. The second number (or minor version) reflects updates to a particular release that
 likely causes small changes to hazard values. The third number reflects non-hazard altering
@@ -19,33 +19,38 @@ hazard.
 
 The USGS NSHMP is committed to supporting current and prior model releases in any given region
 via web services. The table below provides a summary of all NSHM releases and their corresponding
-version numbers.
+version numbers. Links to documentation and data for each of the models below are listed on the USGS
+[Seismic Hazard Maps and Site-Specific Data](https://www.usgs.gov/natural-hazards/earthquake-hazards/seismic-hazard-maps-and-site-specific-data)
+page.
+
+TODO: confirm model versions, tags, links (github vs gitlab...), and availability
 
 Region | Year | Version | Static | Dynamic | Notes |
 -------|:----:|:-------:|:------:|:-------:|-------|
-Conterminous U.S. | [2014](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2014) | [v4.2.0](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.2.0)<sup>†</sup> | |:small_blue_diamond:| |
-Conterminous U.S. | [2014](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2014) | [v4.1.4](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.1.4)<sup>†</sup> | |:small_blue_diamond:| |
-Conterminous U.S. | [2014](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2014) | [v4.0.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2014r1) |:small_blue_diamond:| | ASCE7-16 |
-Conterminous U.S. | [2008](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2008) | v3.3.3 | |:small_blue_diamond:| |
-Conterminous U.S. | [2008](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2008) | [v3.2.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2008r3) |:small_blue_diamond:| | |
-Conterminous U.S. | [2008](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2008) | v3.1.0 |:small_blue_diamond:| | ASCE7-10 |
-Conterminous U.S. | [2008](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2008) | v3.0.0 | | | |
-Conterminous U.S. | [2002](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2002) | v2.0.0 | | | |
-Conterminous U.S. | [1996](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#1996) | v1.0.0 | | | |
-Alaska            | [2007](https://earthquake.usgs.gov/hazards/hazmaps/ak/index.php#2007) | v2.1.0 | |:small_blue_diamond:| |
-Alaska            | [2007](https://earthquake.usgs.gov/hazards/hazmaps/ak/index.php#2007) | v2.0.0 |:small_blue_diamond:| | ASCE7-10 |
-Alaska            | [1999](https://earthquake.usgs.gov/hazards/hazmaps/ak/index.php#1999) | v1.0.0 | | | |
-American Samoa    | [2012](https://earthquake.usgs.gov/hazards/hazmaps/islands.php#samoapacific) | v1.0.0 | | | |
-Guam              | [2012](https://pubs.usgs.gov/of/2012/1015/) | v1.0.0 | | | |
-Hawaii            | [2018](https://earthquake.usgs.gov/hazards/hazmaps/islands.php#hi) | v2.0.0 | | TBD | |
-Hawaii            | [1998](https://earthquake.usgs.gov/hazards/hazmaps/islands.php#hi) | v1.1.0 | | TBD | |
-Hawaii            | [1998](https://earthquake.usgs.gov/hazards/hazmaps/islands.php#hi) | v1.0.0 |:small_blue_diamond:| | ASCE7-10 |
-Puerto Rico & <br/> U.S. Virgin Islands | [2003](https://earthquake.usgs.gov/hazards/hazmaps/islands.php#prvi) | v1.0.0 | | | |
+Conterminous U.S. | 2018 | [v5.0.0](https://code.usgs.gov/ghsc/nshmp/nshm-conus-2018)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2014 | [v4.2.0](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.2.0)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2014 | [v4.1.4](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.1.4)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2014 | [v4.0.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2014r1) |:small_blue_diamond:| | ASCE7-16 |
+Conterminous U.S. | 2008 | v3.3.3 | |:small_blue_diamond:| |
+Conterminous U.S. | 2008 | [v3.2.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2008r3) |:small_blue_diamond:| | |
+Conterminous U.S. | 2008 | v3.1.0 |:small_blue_diamond:| | ASCE7-10 |
+Conterminous U.S. | 2008 | v3.0.0 | | | |
+Conterminous U.S. | 2002 | v2.0.0 | | | |
+Conterminous U.S. | 1996 | v1.0.0 | | | |
+Alaska            | 2007 | v2.1.0 | |:small_blue_diamond:| |
+Alaska            | 2007 | v2.0.0 |:small_blue_diamond:| | ASCE7-10 |
+Alaska            | 1999 | v1.0.0 | | | |
+American Samoa    | 2012 | v1.0.0 | | | |
+Guam              | 2012 | v1.0.0 | | | |
+Hawaii            | 2018 | v2.0.0 | | TBD | |
+Hawaii            | 1998 | v1.1.0 | | TBD | |
+Hawaii            | 1998 | v1.0.0 |:small_blue_diamond:| | ASCE7-10 |
+Puerto Rico & <br/> U.S. Virgin Islands | 2003 | v1.0.0 | | | |
 
 <sup>†</sup> __Note on the 2014 Conterminous U.S. NSHM:__ Initial publication of the
-[2014 model](https://earthquake.usgs.gov/hazards/hazmaps/conterminous/index.php#2014) included
-data to support updates to the U.S. Building Code, specifically hazard curves for peak ground
-acceleration (PGA), and 0.2 and 1.0 second spectral accelerations, all at a BC boundary site
+[2014 model](https://www.usgs.gov/natural-hazards/earthquake-hazards/science/2014-united-states-lower-48-seismic-hazard-long-term)
+included data to support updates to the U.S. Building Code, specifically hazard curves for peak
+ground acceleration (PGA), and 0.2 and 1.0 second spectral accelerations, all at a BC boundary site
 class with Vs30 = 760 m/s. Some time later, the model was deployed to the Unified Hazard Tool
 (UHT) and included support in the Wester U.S. for calculations at sites other than Vs30 = 760 m/s,
 consistent with dynamic calculations using the 2008 model. Subsequently, we updated the 2014
@@ -85,24 +90,31 @@ bound to use those values adopted by the U.S. building code, one of the editions
 is probably most appropriate. However, if one is bound to use the most up to date source model,
 one of the dynamic editions is likely better.
 
-Dynamic editions are supported through web-services provided by the `nshmp-haz-ws` library
-(this repository). Static editions are supported via a separate set of services. Both are
-documented on the [web services](web-services) page.
+TODO: do we want to reference `nshmp-haz-ws` and is this the correct reference here?
+
+Dynamic editions are supported through web-services provided by the `nshmp-haz-ws` library.
+Static editions are supported via a separate set of services. Both are documented on the
+[web services](./NSHMP-Web-Services.md#nshmp-web-services) page.
 
 ## Region specific changes
 
 Changes between editions in model regions are documented in the release notes of the individual
 model repositories.
 
-TODO: Update model links
+TODO: model links currently point to github repos
 
-* [Conterminous US (2014)](/usgs/nshmp-model-cous-2014/wiki)  
-* [Conterminous US (2008)](/usgs/nshmp-model-cous-2008/wiki)  
-* [Alaska (2007)](/usgs/nshmp-model-ak-2007/wiki)  
+* [Conterminous US (2014)](https://github.com/usgs/nshm-cous-2014)  
+* [Conterminous US (2008)](https://github.com/usgs/nshm-cous-2008)  
+* [Alaska (2007)](https://github.com/usgs/nshm-ak-2007)  
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [USGS Models](./USGS-Models.md#usgs-models)
+  * [Model Editions](./Model-Editions.md#model-editions)
+  * [Logic Trees & Uncertainty](./Logic-Trees-&-Uncertainty.md#logic-trees-&-uncertainty)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/NSHMP-Web-Services.md b/docs/pages/NSHMP-Web-Services.md
new file mode 100644
index 000000000..ccd7d2faf
--- /dev/null
+++ b/docs/pages/NSHMP-Web-Services.md
@@ -0,0 +1,12 @@
+# NSHMP Web Services
+
+TODO: this page is referenced in [`Model-Editions.md`](./Model-Editions.md#static-vs-dynamic). Need
+a description of the available web services and static data.
+
+---
+
+[**Documentation Index**](../README.md)
+
+---
+![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
+National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index b6699d151..fca0e1068 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -1,6 +1,5 @@
 # Site Specification
 
-
 The sites at which to perform hazard and related calculations may be defined in a variety of
 ways. Examples of the file formats described below are available in the resource directory:
 [`etc/nshm`](../../etc/nshm/README.md).
@@ -20,7 +19,7 @@ entire string in double quotes.
 
 For any site parameter values that are not supplied on the command line or in the file formats
 below, the following defaults are used (see the `site` member of the
-[configuration](./Calculation-Configuration.md) file):
+[configuration parameter](./Calculation-Configuration.md#calculation-configuration-parameters) table):
 
 ```text
     name: Unnamed
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index 6a686b063..3ad949174 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -6,7 +6,7 @@ years. This window is narrowing, however, and updates are also being undertaken
 models for states and territories outside the conterminous U.S. These pages describe the models
 that are available and some of the history and versions of each. The models are intended for use
 with the  USGS probabilistic earthquake hazard codebase:
-[*nshmp-haz-v2*](https://github.com/usgs/nshmp-haz).
+[*nshmp-haz-v2*](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2).
 
 As specified in this documentation, NSHM files are organized by tectonic setting and then further
 by source type. For larger models, such as that of the conterminous U.S., sources are commonly
@@ -18,8 +18,8 @@ page for links to all published models.
 
 Each model region has a dedicated repository with version tags marking different model editions:
 
-* [Conterminous U.S.](/ghsc/nshmp/nshm-conus)
-* [Hawaii](/ghsc/nshmp/nshm-hawaii)  
+* [Conterminous U.S.](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
+* [Hawaii](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)  
 * Alaska - _update not yet published_
 * Guam & Marianas - _update not yet published_  
 * Puerto Rico & U.S. Virgin Islands - _update not yet published_  
@@ -29,10 +29,10 @@ Each model region has a dedicated repository with version tags marking different
 
 ## Related Pages
 
-* [Model Editions](model-editions.md)
-* [Logic Trees & Uncertainty](logic-trees-&-uncertainty.md)
-
-[**Documentation Index**](../README.md)
+* [USGS Models](./USGS-Models.md#usgs-models)
+  * [Model Editions](./Model-Editions.md#model-editions)
+  * [Logic Trees & Uncertainty](./Logic-Trees-&-Uncertainty.md#logic-trees-&-uncertainty)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
-- 
GitLab


From 4fc7312c96de9c5a5dc2de72f9963cbadbf134c9 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 30 Jun 2021 17:02:20 -0600
Subject: [PATCH 15/39] add navigation, clean up links

---
 docs/pages/Ground-Motion-Models.md            | 11 ++++++++-
 docs/pages/Hazard-Model.md                    | 20 ++++++++--------
 .../Magnitude-Frequency-Distributions.md      | 13 +++++++++--
 docs/pages/Model-Files.md                     | 19 +++++++++++----
 docs/pages/Model-Structure.md                 | 23 +++++++++++++------
 docs/pages/Rupture-Scaling-Relations.md       | 11 ++++++++-
 docs/pages/Source-Types.md                    | 11 ++++++++-
 7 files changed, 81 insertions(+), 27 deletions(-)

diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 49ecc4fa9..2c1cb73c7 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -172,7 +172,16 @@ BC Hydro NGA<br>[Abrahamson et al., 2018](https://peer.berkeley.edu/sites/defaul
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Hazard-Model.md b/docs/pages/Hazard-Model.md
index 92171f527..e5e7109f9 100644
--- a/docs/pages/Hazard-Model.md
+++ b/docs/pages/Hazard-Model.md
@@ -11,15 +11,6 @@ Epistemic uncertainty in source and ground motion models is represented with log
 file formats and structure adopted here leverage the heirarchical organization of file systems to
 support modeling of complex logic trees.
 
-## Related Pages
-
-* [Model Structure](model-structure)  
-* [Model Files](model-files)  
-* [Source Types](source-types)  
-* [Magnitude-Frequency Distributions (MFDs)](magnitude-frequency-distributions-mfds)  
-* [Rupture-Scaling Relations](magnitude-scaling-relations)  
-* [Ground Motion Models (GMMs)](ground-motion-models-gmms)  
-
 ## Model Applicability
 
 * NOTE FOR HAZARD CURVE DATA: While the gridded hazard curve data includes ground motions at long
@@ -34,7 +25,16 @@ support modeling of complex logic trees.
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index 0d041cc9c..8342a809e 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -246,7 +246,7 @@ ID's: `[M1, M2, M3, ...]` to support mfd-tree matching across source-tree branch
 
 How MFDs are actually built depends on the settings in a `mfd-config.json` file and rates. For more
 details on MFDs and their configuration see the
-[magnitude frequency distributions](magnitude-frequency-distributions) section.
+[magnitude frequency distributions](./Magnitude-Frequency-Distributions.md) section.
 
 An `mfd-config.json` is currently only required for finite fault sources. It can be located
 anywhere in the file heirarchy and may be overridden in nested directories.
@@ -286,7 +286,16 @@ TODO: convert example to JSON format (or see `mfd-config.json` section above)
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index ca478d5ee..d78797edd 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -30,7 +30,7 @@ motions from the model.
 
 **calc-config.json:** Optional calculation configuration file specifies the default
 calculation settings used for a NSHM. This file overrides any built in default values. See
-the [calculation configuration](calculation-configuration) page for more details.
+the [calculation configuration](./Calculation-Configuration.md) page for more details.
 
 ## Logic Trees
 
@@ -112,8 +112,8 @@ For example:
 ]
 ```
 
-See the [ground motion models](ground-motion-models) page for details on GMMs supported in
-_nshmp-haz_ and the related `gmm-config.json` files that governs GMM behavior.
+See the [ground motion models](./Ground-Motion-Models.md) page for details on GMMs supported in
+_nshmp-haz-v2_ and the related `gmm-config.json` files that governs GMM behavior.
 
 ### MFD Logic Trees
 
@@ -136,7 +136,7 @@ using the same MFDs on multiple branches of a source tree.
 
 How MFDs are intialized (or realized) depends on the presence and contents of `mfd-config.json` and
 `rate-tree.json` files. See the
-[magnitude frequency distributions](magnitude-frequency-distributions) page for details on these
+[magnitude frequency distributions](./Magnitude-Frequency-Distributions.md) page for details on these
 files and the types of MFDs supported in _nshmp-haz_.
 
 ## Rupture Sets
@@ -186,7 +186,16 @@ is composed of an array of rupture-sets.
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Model-Structure.md b/docs/pages/Model-Structure.md
index e7230c6b1..95d0a2ec0 100644
--- a/docs/pages/Model-Structure.md
+++ b/docs/pages/Model-Structure.md
@@ -16,7 +16,7 @@ settings supporting the nested source types: `fault-sources`, `grid-sources`, an
 The `volcanic` tectonic setting also supports `decollement-sources`.
 
 The root of a model must include `model-info.json` and _may_ include a `calc-config.json` that
-specifies any custom default [calculation configuration](calculation-configuration) settings
+specifies any custom default [calculation configuration](./Calculation-Configuration.md) settings
 for the model. Top level tectonic setting directories must include `gmm-tree.json` and
 `gmm-config.json` files. Source directories are loaded recursively, permitting configuration files
 deeper in the heirarchy to override those defined higher in the heirarchy, as needed and as
@@ -95,7 +95,7 @@ fault-sources/
           └─ branch-4/
 ```
 
-See also: [Finite Fault Source Type](source-types#finite-fault-sources)
+See also: [Finite Fault Source Type](./Source-Types#fault-sources)
 
 ## Crustal Grid Sources
 
@@ -127,7 +127,7 @@ grid-sources/
       └─ ...
 ```
 
-See also: [Grid Source Type](source-types#grid-sources)
+See also: [Grid Source Type](./Source-Types.md#grid-sources)
 
 ## Crustal Zone (Area) Sources
 
@@ -156,7 +156,7 @@ zone-sources/
           └─ [rate-tree.json]     (optional) tree of rates        (future)
 ```
 
-See also: [Zone Source Type](source-types#zone-sources)
+See also: [Zone Source Type](./Source-Types.md#zone-sources)
 
 ## Subduction Interface Sources
 
@@ -174,7 +174,7 @@ subduction-interface
   └─ ...
 ```
 
-See also: [Subduction Interface Source Type](source-types#subduction-interface-sources)
+See also: [Subduction Interface Source Type](./Source-Types.md#subduction-interface-sources)
 
 ## Subduction Intraslab Sources
 
@@ -192,11 +192,20 @@ subduction-slab
   └─ ...
 ```
 
-See also: [Subduction Intraslab Source Type](source-types#subduction-intraslab-sources)
+See also: [Subduction Intraslab Source Type](./Source-Types.md#subduction-intraslab-sources)
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Rupture-Scaling-Relations.md b/docs/pages/Rupture-Scaling-Relations.md
index e78cd91a9..6f86336e9 100644
--- a/docs/pages/Rupture-Scaling-Relations.md
+++ b/docs/pages/Rupture-Scaling-Relations.md
@@ -70,7 +70,16 @@ relationships for subduction zone earthquakes. Seismological Research Letters 68
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/Source-Types.md b/docs/pages/Source-Types.md
index b6a0382a3..d56b87194 100644
--- a/docs/pages/Source-Types.md
+++ b/docs/pages/Source-Types.md
@@ -347,7 +347,16 @@ using an `slab-config.json` file.
 
 ---
 
-[**Documentation Index**](../README.md)
+## Related Pages
+
+* [Hazard Model](./Hazard-Model.md#hazard-model)
+  * [Model Structure](./Model-Structure.md#model-structure)
+  * [Model Files](./Model-Files.md#model-files)
+  * [Source Types](./Source-Types.md#source-types)
+  * [Magnitude Frequency Distributions (MFDs)](./Magnitude-Frequency-Distributions.md#magnitude-frequency-distributions)
+  * [Rupture Scaling Relations](./Rupture-Scaling-Relations.md#rupture-scaling-relations)
+  * [Ground Motion Models (GMMs)](./Ground-Motion-Models.md#ground-motion-models)
+* [**Documentation Index**](../README.md)
 
 ---
 ![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
-- 
GitLab


From f0e63dbee9974192ce4f3caebbde8dcc57df1494 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Sun, 25 Jul 2021 16:42:40 -0600
Subject: [PATCH 16/39] update readme and wep app/serivces pages

---
 docs/README.md                   | 8 ++++++--
 docs/pages/NSHMP-Web-Services.md | 9 +++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index 95e2a6cfb..b1343c3bf 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -31,9 +31,14 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
   * [Logic Trees & Uncertainty](./pages/Logic-Trees-&-Uncertainty.md)
 * [NSHMP Web Services](./pages/NSHMP-Web-Services.md#nshmp-web-services)
 
-## Other Pages & References
+## Related Information
 
 * [nshmp-lib](https://code.usgs.gov/ghsc/nshmp/nshmp-lib): USGS hazard modeling library
+  * [nshmp-lib JavaDocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/)
+* [*nshmp-haz-v2* License](../LICENSE.md)
+
+## References
+
 * [Functional PSHA](./pages/Functional-PSHA.md)
 * [Probabilistic Seismic Hazard Analysis, a Primer
   [PDF]](http://www.opensha.org/sites/opensha.org/files/PSHA_Primer_v2_0.pdf)
@@ -41,7 +46,6 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
 * [An Introduction to Probabilistic Seismic Hazard Analysis
   [PDF]](http://web.stanford.edu/~bakerjw/Publications/Baker_(2015)_Intro_to_PSHA.pdf)
   by Jack Baker  
-* [*nshmp-haz-v2* License](../LICENSE.md)
 
 ---
 ![USGS logo](./pages/images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
diff --git a/docs/pages/NSHMP-Web-Services.md b/docs/pages/NSHMP-Web-Services.md
index ccd7d2faf..fc5b6afa4 100644
--- a/docs/pages/NSHMP-Web-Services.md
+++ b/docs/pages/NSHMP-Web-Services.md
@@ -1,7 +1,12 @@
 # NSHMP Web Services
 
-TODO: this page is referenced in [`Model-Editions.md`](./Model-Editions.md#static-vs-dynamic). Need
-a description of the available web services and static data.
+A number of USGS web applications and web services are available to access static data, perform
+dynamic calculations, interact with ground motion models, and access other NSHMP data.
+
+* Hazard tools web application: [NSHM Hazard Tool](https://earthquake.usgs.gov/nshmp/)
+* Static hazard curve data:
+  * [CONUS 2018 NSHM](https://earthquake.usgs.gov/ws/nshmp/conus-2018/static/)
+* Non-NSHM web services: [https://earthquake.usgs.gov/ws/nshmp/data/](https://earthquake.usgs.gov/ws/nshmp/data/)
 
 ---
 
-- 
GitLab


From 0780c5aa6efbecb2342351f423571ff3ad128df1 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Mon, 26 Jul 2021 11:06:31 -0600
Subject: [PATCH 17/39] update haz-v2 to haz

---
 docs/README.md                          | 10 +++++-----
 docs/pages/Building-&-Running.md        | 20 ++++++++++----------
 docs/pages/Calculation-Configuration.md |  2 +-
 docs/pages/Developer-Basics.md          |  4 ++--
 docs/pages/Ground-Motion-Models.md      |  4 ++--
 docs/pages/Logic-Trees-&-Uncertainty.md |  2 +-
 docs/pages/Model-Editions.md            |  2 +-
 docs/pages/Model-Files.md               |  2 +-
 docs/pages/Site-Specification.md        | 14 +++++++-------
 docs/pages/Source-Types.md              |  6 +++---
 docs/pages/USGS-Models.md               |  2 +-
 11 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/docs/README.md b/docs/README.md
index b1343c3bf..a528bb23d 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,14 +1,14 @@
 # Documentation: nshmp-haz
 
-***nshmp-haz-v2*** is a U.S. Geological Survey ([USGS](https://www.usgs.gov)) developed software stack
+***nshmp-haz*** is a U.S. Geological Survey ([USGS](https://www.usgs.gov)) developed software stack
 that supports probabilistic seismic hazard (PSHA) and related analyses. It is maintained by the
 National Seismic Hazard Model Project ([NSHMP](https://earthquake.usgs.gov/hazards/)) within the
 USGS's earthquake hazards program ([EHP](http://earthquake.usgs.gov)).
 
-*nshmp-haz-v2* supports high performance seismic hazard calculations required to generate detailed
+*nshmp-haz* supports high performance seismic hazard calculations required to generate detailed
 maps over large areas and supports a variety of USGS web services and applications related to
 seismic hazards research and the dissemination of hazard data. This documentation explains how
-to use *nshmp-haz-v2* as well as underlying model implementation details.
+to use *nshmp-haz* as well as underlying model implementation details.
 
 ## Table of Contents
 
@@ -18,7 +18,7 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
   * [Calculation Configuration](./pages/Calculation-Configuration.md)
   * [Site Specification](./pages/Site-Specification.md)
   * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 * [Hazard Model](./pages/Hazard-Model.md)
   * [Model Structure](./pages/Model-Structure.md)
   * [Model Files](./pages/Model-Files.md)
@@ -35,7 +35,7 @@ to use *nshmp-haz-v2* as well as underlying model implementation details.
 
 * [nshmp-lib](https://code.usgs.gov/ghsc/nshmp/nshmp-lib): USGS hazard modeling library
   * [nshmp-lib JavaDocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/)
-* [*nshmp-haz-v2* License](../LICENSE.md)
+* [*nshmp-haz* License](../LICENSE.md)
 
 ## References
 
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 6735ae1d7..4a4d7d1ef 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -7,7 +7,7 @@
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 
 ## Build & Run Options
 
@@ -16,12 +16,12 @@
 
 ## Build and Run Locally
 
-Building and running *nshmp-haz-v2* requires prior installation of Git and Java. Please see the
+Building and running *nshmp-haz* requires prior installation of Git and Java. Please see the
 [developer basics](./Developer-Basics.md) page for system configuration guidance.  
 
 ### Building
 
-Navigate to a location on your system where you want *nshmp-haz-v2* code to reside, clone the
+Navigate to a location on your system where you want *nshmp-haz* code to reside, clone the
 repository, and compile:
 
 ```bash
@@ -54,7 +54,7 @@ be supplied as a third argument. It can be used to override any calculation sett
 [default](./Calculation-Configuration.md) values are used.
 
 See the [examples](../../etc/examples/README.md) directory for more details (or
-[on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+[on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 
 ### Computing Disaggregations
 
@@ -72,7 +72,7 @@ files. Disaggregations also have some independent
 
 ## Run with [Docker](https://docs.docker.com/install/)
 
-To ensure you are have the latest *nshmp-haz-v2* update, always first pull the image from Docker:
+To ensure you are have the latest *nshmp-haz* update, always first pull the image from Docker:
 
 ```bash
 docker pull usgs/nshmp-haz
@@ -80,18 +80,18 @@ docker pull usgs/nshmp-haz
 
 ### Docker Memory on Mac
 
-By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *nshmp-haz-v2*, the
+By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *nshmp-haz*, the
 memory available to Docker must be [increased](https://docs.docker.com/docker-for-mac/#advanced)
 to a minimum of 4 GB.
 
 ### Run in Docker
 
-TODO: Docker scripts currently only get models from github (XML models), so nshmp-haz-v2 run fails
-to parse the models (CONUS_2018 or HAWAII_2021), need to at least update `nshmp-haz-v2/scripts/docker-functions.inc.sh`.
+TODO: Docker scripts currently only get models from github (XML models), so nshmp-haz run fails
+to parse the models (CONUS_2018 or HAWAII_2021), need to at least update `nshmp-haz/scripts/docker-functions.inc.sh`.
 
 TODO: Model identifiers need to be synced between here and the docker scripts (e.g. `HI-2020` vs `HAWAII_2021`).
 
-The *nshmp-haz-v2* application may be run as a Docker container which mitigates the need to install
+The *nshmp-haz* application may be run as a Docker container which mitigates the need to install
 Git, Java, or other dependencies besides Docker. A public image is available on
 Docker hub at [https://hub.docker.com/r/usgs/nshmp-haz](https://hub.docker.com/r/usgs/nshmp-haz)
 which can be run with:
@@ -140,7 +140,7 @@ Where:
 
 ### Run Customization
 
-When running *nshmp-haz-v2* with Docker the initial (Xms) and maximum (Xmx) JVM memory sizes can
+When running *nshmp-haz* with Docker the initial (Xms) and maximum (Xmx) JVM memory sizes can
 be set with the environment flag (-e, -env):
 
 ```bash
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index c3d9150dc..9175a1c6a 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -108,7 +108,7 @@ T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, <br>0.00
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index fe7229242..d83e75564 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -53,7 +53,7 @@ git clone https://code.usgs.gov/ghsc/nshmp/nshmp-haz.git
 ## Eclipse Integration (Optional)
 
 Eclipse provides automatic compilation, syntax highlighting, and integration with Git, among
-other useful features. To build or modify *nshmp-haz-v2* using [Eclipse](http://www.eclipse.org/),
+other useful features. To build or modify *nshmp-haz* using [Eclipse](http://www.eclipse.org/),
 install the [Eclipse IDE for Java Developers](https://www.eclipse.org/downloads/packages/) or
 [Eclipse IDE for Enterprise Java and Web Developers](https://www.eclipse.org/downloads/packages/),
 if you plan on developing web services. Import the project into Eclipse: `File > Import >
@@ -68,7 +68,7 @@ Gradle > Existing Gradle Project`
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index 2c1cb73c7..f3b323def 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -43,7 +43,7 @@ The following sample `gmm-config.json` file applies the NGA-West 2 epistemic unc
 
 ## GMM Uncertainty Models
 
-*nshmp-haz-v2* supports additional epistemic uncertainty models derived from the PEER NGA-West 1
+*nshmp-haz* supports additional epistemic uncertainty models derived from the PEER NGA-West 1
 and PEER NGA-West 2 projects. These models both have factors for distance (`Rrup`) bins
 Rrup < 10 km, 10 km <= Rrup, < 30 km, and 30 km <= Rrup, and for magnitude bins M < 6.0, 6.0 <=
 M < 7.0, and 7.0 <= M. These models can be applied within the `gmm-config.json` file as shown in
@@ -61,7 +61,7 @@ GMMs to modify model output.
 
 ## GMMs By Tectonic Setting
 
-GMMs available in *nshmp-haz-v2* are tabulated by tectonic setting below. See the javadocs for the
+GMMs available in *nshmp-haz* are tabulated by tectonic setting below. See the javadocs for the
 [GMM Package](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/package-summary.html)
 for implementation details of each GMM and comprehensive lists of GMM IDs.
 
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index 093ac1981..a0bdaa6a7 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -1,7 +1,7 @@
 # USGS Models: Logic Trees & Uncertainty
 
 The following page details the logic trees of epistemic uncertainty considered in NSHMs supported
-by *nshmp-haz-v2*. Logic trees are represented in a NSHM using files ending in `-tree.json`.
+by *nshmp-haz*. Logic trees are represented in a NSHM using files ending in `-tree.json`.
 
 [[_TOC_]]
 
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index 44dba3c5b..0558f9ee9 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -7,7 +7,7 @@ data, or modeling procedures that warrant a model update. Every model the USGS p
 associated with a USGS Open-File report or refereed journal article and supporting datasets.
 However, layered on top of any given model release are bug-fixes and model improvements.
 
-With the update to a new codebase, [nshmp-haz-v2](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2),
+With the update to a new codebase, [nshmp-haz](https://code.usgs.gov/ghsc/nshmp/nshmp-haz),
 the NSHMP has adopted [semantic versioning](http://semver.org) to keep track of different hazard
 models. For any given model region, the first number (or major version) corresponds to a particular
 release or update year. For example, we consider the initial
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index d78797edd..3ce594a23 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -113,7 +113,7 @@ For example:
 ```
 
 See the [ground motion models](./Ground-Motion-Models.md) page for details on GMMs supported in
-_nshmp-haz-v2_ and the related `gmm-config.json` files that governs GMM behavior.
+_nshmp-haz_ and the related `gmm-config.json` files that governs GMM behavior.
 
 ### MFD Logic Trees
 
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index fca0e1068..e057616e8 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -4,14 +4,14 @@ The sites at which to perform hazard and related calculations may be defined in
 ways. Examples of the file formats described below are available in the resource directory:
 [`etc/nshm`](../../etc/nshm/README.md).
 
-__Note on Coordinates:__ *nshmp-haz-v2* supports longitude and latitude values in the closed
+__Note on Coordinates:__ *nshmp-haz* supports longitude and latitude values in the closed
 ranges `[-360° ‥ 360°]` and `[-90° ‥ 90°]`. Note, however, that mixing site and/or source
 coordinates across the antimeridian (the -180° to 180° transition) will yield unexpected results.
 For Pacific models and calculations, always use positive or negative longitudes exclusively.
 
 ## Site String
 
-For the case of running a single site of interest, most *nshmp-haz-v2* programs accept a
+For the case of running a single site of interest, most *nshmp-haz* programs accept a
 comma-delimited string of the form: `name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]`, where `vs30`, `vsInf`,
 `z1p0`, and `z2p5` are optional. Note that if `vs30` is supplied, so too must `vsInf`. Likewise if
 `z1p0` is supplied, so too must `z2p5`. If the string contains any spaces, escape them or wrap the
@@ -45,7 +45,7 @@ it's 'default' basin depth scale factor.
 ## GeoJSON Format (\*.geojson)
 
 Although more verbose than the comma-delimited format, [GeoJSON](http://geojson.org) is a more
-versatile format for encoding geographic data. *nshmp-haz-v2* uses GeoJSON for both lists of sites
+versatile format for encoding geographic data. *nshmp-haz* uses GeoJSON for both lists of sites
 and to define map regions. If you encounter problems when formatting JSON files, use
 [JSONLint](http://jsonlint.com) or [GeoJSONLint](http://geojsonlint.com) for validation.
 
@@ -77,7 +77,7 @@ A site list is expected as a `FeatureCollection` of `Point` features. For exampl
 
 As with the CSV format, the minimum required data is a `geometry` `coordinates` array. All
 `properties` are optional. When using GeoJSON, the `title` property maps to the name of the site.
-Additional properties, if present, are ignored by *nshmp-haz-v2* but permitted as they may be
+Additional properties, if present, are ignored by *nshmp-haz* but permitted as they may be
 relevant for other applications. For example, [styling
 properties](https://help.github.com/articles/mapping-geojson-files-on-github/#styling-features)
 may be used to improve rendering in mapping applications. For a fully fledged example, see the
@@ -85,11 +85,11 @@ may be used to improve rendering in mapping applications. For a fully fledged ex
 
 ### Map Regions
 
-GeoJSON is also used to define *nshmp-haz-v2* map regions. For example, see the file that defines a
+GeoJSON is also used to define *nshmp-haz* map regions. For example, see the file that defines a
 region commonly used when creating hazard and other maps for the
 [Los Angeles basin](../../etc/nshm/map-la-basin.geojson).
 
-A map region is expected as a `Polygon` `FeatureCollection`. Currently, *nshmp-haz-v2* only supports
+A map region is expected as a `Polygon` `FeatureCollection`. Currently, *nshmp-haz* only supports
 a `FeatureCollection` with 1 or 2 polygons. When a single polygon is defined, it must consist of a
 single, simple closed loop. Additional arrays that define holes in the polygon (per the GeoJSON
 spec) are not processed and results are undefined for self-intersecting coordinate arrays. This
@@ -117,7 +117,7 @@ TODO This needs updating; link to conus-2018 active crust map-region.geojson.
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
   * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2/-/tree/master/etc/examples))
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/Source-Types.md b/docs/pages/Source-Types.md
index d56b87194..595e0a912 100644
--- a/docs/pages/Source-Types.md
+++ b/docs/pages/Source-Types.md
@@ -12,15 +12,15 @@ geometry itself is unknown or very poorly defined.
 
 [[_TOC_]]
 
-Source models for use with *nshmp-haz-v2* are defined using [JSON](https://www.json.org) and
-[GeoJSON](https://geojson.org). *nshmp-haz-v2* makes determinations about how to represent a source
+Source models for use with *nshmp-haz* are defined using [JSON](https://www.json.org) and
+[GeoJSON](https://geojson.org). *nshmp-haz* makes determinations about how to represent a source
 based on a GeoJSON geometry type in conjunction with supporting JSON configuration files. Example
 source configuration files, `*-config.json`, are provided with each source type description.
 Configuration files must be fully specified with `null` JSON member values used to specify 'do
 nothing' where appropriate. Any configuration member value in ALL_CAPS indicates the value is one
 of a fixed number of options commonly referred to as an enum.
 
-__Note on Coordinates:__ *nshmp-haz-v2* supports longitude and latitude values in the closed ranges
+__Note on Coordinates:__ *nshmp-haz* supports longitude and latitude values in the closed ranges
 `[-360°‥360°]` and `[-90°‥90°]`. Note, however, that mixing site and/or source coordinates across
 the antimeridian (the -180° to 180° transition) will yield unexpected results. For Pacific models
 and calculations, always use positive or negative longitudes exclusively.
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index 3ad949174..8a0226afd 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -6,7 +6,7 @@ years. This window is narrowing, however, and updates are also being undertaken
 models for states and territories outside the conterminous U.S. These pages describe the models
 that are available and some of the history and versions of each. The models are intended for use
 with the  USGS probabilistic earthquake hazard codebase:
-[*nshmp-haz-v2*](https://code.usgs.gov/ghsc/nshmp/nshmp-haz-v2).
+[*nshmp-haz*](https://code.usgs.gov/ghsc/nshmp/nshmp-haz).
 
 As specified in this documentation, NSHM files are organized by tectonic setting and then further
 by source type. For larger models, such as that of the conterminous U.S., sources are commonly
-- 
GitLab


From e2720fce24b7f50556dd6ec135ea5827c051570b Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Thu, 29 Jul 2021 13:46:13 -0600
Subject: [PATCH 18/39] doc review edits

---
 docs/README.md                                |  12 +-
 docs/pages/Building-&-Running.md              |  15 +-
 docs/pages/Calculation-Configuration.md       |   8 +-
 docs/pages/Developer-Basics.md                |   4 +-
 docs/pages/Functional-PSHA.md                 |  10 +-
 docs/pages/Ground-Motion-Models.md            | 139 ++++++-------
 docs/pages/Hazard-Model.md                    |   2 +-
 docs/pages/Logic-Trees-&-Uncertainty.md       |  18 +-
 .../Magnitude-Frequency-Distributions.md      | 189 ++----------------
 docs/pages/Model-Editions.md                  |  44 ++--
 docs/pages/Model-Files.md                     |  17 +-
 docs/pages/Model-Structure.md                 |   4 +-
 docs/pages/NSHMP-Web-Services.md              |  17 --
 docs/pages/Site-Specification.md              |   8 +-
 docs/pages/USGS-Models.md                     |   4 +-
 15 files changed, 137 insertions(+), 354 deletions(-)
 delete mode 100644 docs/pages/NSHMP-Web-Services.md

diff --git a/docs/README.md b/docs/README.md
index a528bb23d..180c0d63e 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -7,8 +7,9 @@ USGS's earthquake hazards program ([EHP](http://earthquake.usgs.gov)).
 
 *nshmp-haz* supports high performance seismic hazard calculations required to generate detailed
 maps over large areas and supports a variety of USGS web services and applications related to
-seismic hazards research and the dissemination of hazard data. This documentation explains how
-to use *nshmp-haz* as well as underlying model implementation details.
+seismic hazards research and the dissemination of hazard data (see the
+[NSHM Hazard Tool](https://earthquake.usgs.gov/nshmp/)). This documentation explains how to
+use *nshmp-haz* as well as underlying model implementation details.
 
 ## Table of Contents
 
@@ -17,8 +18,8 @@ to use *nshmp-haz* as well as underlying model implementation details.
   * [Developer Basics](./pages/Developer-Basics.md)
   * [Calculation Configuration](./pages/Calculation-Configuration.md)
   * [Site Specification](./pages/Site-Specification.md)
-  * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+  * [Examples](../../etc/examples) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 * [Hazard Model](./pages/Hazard-Model.md)
   * [Model Structure](./pages/Model-Structure.md)
   * [Model Files](./pages/Model-Files.md)
@@ -29,7 +30,6 @@ to use *nshmp-haz* as well as underlying model implementation details.
 * [USGS Models](./pages/USGS-Models.md)
   * [Model Editions](./pages/Model-Editions.md)
   * [Logic Trees & Uncertainty](./pages/Logic-Trees-&-Uncertainty.md)
-* [NSHMP Web Services](./pages/NSHMP-Web-Services.md#nshmp-web-services)
 
 ## Related Information
 
@@ -41,7 +41,7 @@ to use *nshmp-haz* as well as underlying model implementation details.
 
 * [Functional PSHA](./pages/Functional-PSHA.md)
 * [Probabilistic Seismic Hazard Analysis, a Primer
-  [PDF]](http://www.opensha.org/sites/opensha.org/files/PSHA_Primer_v2_0.pdf)
+  [PDF]](https://opensha.org/resources/PSHA_Primer_v2_0.pdf)
   by Edward Field  
 * [An Introduction to Probabilistic Seismic Hazard Analysis
   [PDF]](http://web.stanford.edu/~bakerjw/Publications/Baker_(2015)_Intro_to_PSHA.pdf)
diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 4a4d7d1ef..8b36c7087 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -6,8 +6,8 @@
   * [Developer Basics](./Developer-Basics.md#developer-basics)
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
-  * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+  * [Examples](../../etc/examples) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 
 ## Build & Run Options
 
@@ -53,8 +53,8 @@ either a comma-delimited (CSV) or [GeoJSON](http://geojson.org) file. The path t
 be supplied as a third argument. It can be used to override any calculation settings; if absent
 [default](./Calculation-Configuration.md) values are used.
 
-See the [examples](../../etc/examples/README.md) directory for more details (or
-[on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+See the [examples](../../etc/examples) directory for more details (or
+[on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 
 ### Computing Disaggregations
 
@@ -86,11 +86,6 @@ to a minimum of 4 GB.
 
 ### Run in Docker
 
-TODO: Docker scripts currently only get models from github (XML models), so nshmp-haz run fails
-to parse the models (CONUS_2018 or HAWAII_2021), need to at least update `nshmp-haz/scripts/docker-functions.inc.sh`.
-
-TODO: Model identifiers need to be synced between here and the docker scripts (e.g. `HI-2020` vs `HAWAII_2021`).
-
 The *nshmp-haz* application may be run as a Docker container which mitigates the need to install
 Git, Java, or other dependencies besides Docker. A public image is available on
 Docker hub at [https://hub.docker.com/r/usgs/nshmp-haz](https://hub.docker.com/r/usgs/nshmp-haz)
@@ -99,7 +94,7 @@ which can be run with:
 ```bash
 docker run \
     -e PROGRAM=<disagg | hazard | rate> \
-    -e MODEL=<CONUS-2018 | HAWAII-2021> \
+    -e MODEL=<CONUS_2018 | HAWAII_2021> \
     -e RETURN_PERIOD=<RETURN_PERIOD> \
     -v /absolute/path/to/sites/file:/app/sites.<geojson | csv> \
     -v /absolute/path/to/config/file:/app/config.json \
diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 9175a1c6a..36778cf8e 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -9,7 +9,7 @@ listed below. See the [examples](../../etc/examples/README.md) directory, or any
 
 Calculation configuration parameters are optional (i.e. defaults are used for missing values) and
 may be overridden. See [building and running](./Building-&-Running.md) and the
-[examples](../../etc/examples/README.md) for details.
+[examples](../../etc/examples) for details.
 
 Parameter | Type | Default | Notes |
 --------- | ---- | ------- | ----- |
@@ -20,7 +20,7 @@ __`hazard`__
 &nbsp;&nbsp;&nbsp;`.customImls`            |`Map<String, Double[]>`  | `{}` (empty object)     | [2](#notes)
 &nbsp;&nbsp;&nbsp;`.gmmUncertainty`        |`Boolean`  | `false`                   | [3](#notes)
 &nbsp;&nbsp;&nbsp;`.valueFormat`           |`String`   | `ANNUAL_RATE`             | [`ValueFormat`][url-valueformat]
-__`deagg`__
+__`disagg`__
 &nbsp;&nbsp;&nbsp;`.bins`                  |`Object`   |                           | [4](#notes)
 &nbsp;&nbsp;&nbsp;`.contributorLimit`      |`Double`   | `0.1`                     | [5](#notes)
 __`rate`__
@@ -107,8 +107,8 @@ T ≤ 10 s   | 0.000333, 0.000499, 0.000749, 0.00112, 0.00169, 0.00253, <br>0.00
   * [Developer Basics](./Developer-Basics.md#developer-basics)
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
-  * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+  * [Examples](../../etc/examples) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/Developer-Basics.md b/docs/pages/Developer-Basics.md
index d83e75564..17da9de70 100644
--- a/docs/pages/Developer-Basics.md
+++ b/docs/pages/Developer-Basics.md
@@ -67,8 +67,8 @@ Gradle > Existing Gradle Project`
   * [Developer Basics](./Developer-Basics.md#developer-basics)
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
-  * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+  * [Examples](../../etc/examples) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/Functional-PSHA.md b/docs/pages/Functional-PSHA.md
index 8ba8ac361..375098c02 100644
--- a/docs/pages/Functional-PSHA.md
+++ b/docs/pages/Functional-PSHA.md
@@ -10,14 +10,14 @@ upended the notion of discrete faults as independent sources, and the USGS natio
 model uses temporally clustered sources. Moreover, as the logic trees typically employed in PSHAs
 to capture epistemic uncertainty grow larger, so too does the demand for a more complete
 understanding of uncertainty. At the USGS, there are additional requirements to support source
-model mining, deaggregation, and map-making, often through the use of dynamic web-applications.
+model mining, disaggregation, and map-making, often through the use of dynamic web-applications.
 Implementations of the PSHA methodology commonly iterate over all sources that influence the
 hazard at a site and sequentially build a single hazard curve. Such a linear PSHA computational
 pipeline, however, proves difficult to maintain and modify to support the additional complexity of
 new models, hazard products, and analyses. The functional programming paradigm offers some relief.
 The functional approach breaks calculations down into their component parts or steps, storing
 intermediate results as immutable objects, making it easier to: chain actions together; preserve
-intermediate data or results that may still be relevant (e.g. as in a deaggregation); and leverage
+intermediate data or results that may still be relevant (e.g. as in a disaggregation); and leverage
 the concurrency supported by many modern programming languages.
 
 ## Traditional PSHA formulation (after Baker, 2013)
@@ -62,8 +62,8 @@ a single site, using a single GMM, and a nominal number of sources, modern PSHAs
 
 * Response Spectra, Conditional Mean Spectra – multiple intensity measure types (IMTs; e.g. PGA,
   PGD, PGV, multiple SAs)
-* Deaggregation
-* Banded deaggregation (multiple deaggregations at varying IMLs)
+* Disaggregation
+* Banded disaggregation (multiple disaggregations at varying IMLs)
 * Maps – many thousands of sites
 * Uncertainty analyses
 
@@ -87,7 +87,7 @@ foreach IMT {
 }
 ```
 
-* Support for secondary analyses, such as deaggregation is supplied by a separate code or codes
+* Support for secondary analyses, such as disaggregation is supplied by a separate code or codes
   and can require repeating many of the steps performed to generate an initial hazard curve.
 
 ## What about scaleability, maintenance, and performance?
diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index f3b323def..aed426f8e 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -12,10 +12,11 @@ GMMs, as published, support both interface and intraslab events.
 A **gmm-config.json** file governs how GMMs are applied in a NSHM and is required adjacent to any
 `gmm-tree.json` file. It specifies a maximum distance at which associated GMMs are applicable. It
 may also specify a model of additional epistemic uncertainty and the logic tree used to apply it to
-median ground motions derived from the GMMs. If no such model is required, the `epistemic-model` and
-`epistemic-tree` members must be `null`. This uncertainty is disctinct from the built-in aleatory
-variability (standard deviation or sigma) of the GMMs themselves. See [GMM Uncertainty Models](#gmm-uncertainty-models)
-for details on additional epistemic uncertainty in GMMs.
+median ground motions derived from the GMMs. If no such model is required, the `epistemic-model`
+and `epistemic-tree` members must be `null`. This uncertainty is disctinct from the built-in
+aleatory variability (standard deviation or sigma) of the GMMs themselves. See
+[GMM Uncertainty Models](#gmm-uncertainty-models) for details on additional epistemic uncertainty
+in GMMs.
 
 A sample `gmm-config.json` file that specifies no additional epistemic uncertainty model:
 
@@ -49,16 +50,6 @@ Rrup < 10 km, 10 km <= Rrup, < 30 km, and 30 km <= Rrup, and for magnitude bins
 M < 7.0, and 7.0 <= M. These models can be applied within the `gmm-config.json` file as shown in
 the [GMM Uncertainty](#gmm-uncertainty) section above.
 
-## GMM Post Processors
-
-GMM post processing models are not used directly, they can be used by concrete implementations of
-GMMs to modify model output.
-
-| Reference | Purpose | Component | Notes |
-|:---------:|:-------:|:---------:|:------|
-| [Rezaeian et al., 2014](http://dx.doi.org/10.1193/100512EQS298M) | Damping scaling factor | Average horizontal component | No effect if supplied damping ratio is 5% |
-| USGS PGV | Conditional PGV for crustal earthquakes | Horizontal component | Conditional model for vertical component not yet implemented |
-
 ## GMMs By Tectonic Setting
 
 GMMs available in *nshmp-haz* are tabulated by tectonic setting below. See the javadocs for the
@@ -68,7 +59,7 @@ for implementation details of each GMM and comprehensive lists of GMM IDs.
 ### Active Crust GMMs
 
 Reference | ID | Component | Notes
-:---------:|:--:|:---------:|:------
+:---------|:--:|:---------:|:------:
 **NGA-West 2**
 [Abrahamson et al., 2014](http://dx.doi.org/10.1193/070913EQS198M) | ASK_14<br>ASK_14_BASIN | RotD50 |
 [Boore et al., 2014](http://dx.doi.org/10.1193/070113EQS184M) | BSSA_14<br>BSSA_14_BASIN | RotD50 |
@@ -81,46 +72,42 @@ Reference | ID | Component | Notes
 [Chiou & Youngs, 2008](http://dx.doi.org/10.1193/1.2894832) | CY_08 | GMRotI50 |
 **Other**
 [Abrahamson & Silva, 1997](http://dx.doi.org/10.1785/gssrl.68.1.94) | AS_97 | Average horizontal |
-[Boore et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.128)<br>[Boore, 2005](http://dx.doi.org/10.1785/gssrl.76.3.368) | BJF_97 | Random horizontal | [1](#active-crust-gmm-notes)
-[Campbell, 1997](http://dx.doi.org/10.1785/gssrl.68.1.154)<br>[errata, 2000](http://dx.doi.org/10.1785/gssrl.71.3.352)<br>[errata, 2001](http://dx.doi.org/10.1785/gssrl.72.4.474) | CAMPBELL_97 | Geometric mean of two horizontal components | [1](#active-crust-gmm-notes)
-[Campbell & Bozorgnia, 2003](http://dx.doi.org/10.1785/0120020029)<br>[errata, 2003a](http://dx.doi.org/10.1785/0120030099)<br>[errata, 2003b](http://dx.doi.org/10.1785/0120030143) | CB_03 | Average horizontal | [1](#active-crust-gmm-notes)
-[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model supports geometric mean | [2](#active-crust-gmm-notes)
-[Sadigh et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.180) | SADIGH_97 | Geometric mean of two horizontal components | [3](#active-crust-gmm-notes)
-[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150063) | ZHAO_16_SHALLOW_CRUST<br>ZHAO_16_UPPER_MANTLE | Geometric mean of two randomly oriented horizontal components |
+[Boore et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.128)<br>[Boore, 2005](http://dx.doi.org/10.1785/gssrl.76.3.368) | BJF_97 | Random horizontal | 1
+[Campbell, 1997](http://dx.doi.org/10.1785/gssrl.68.1.154)<br>[errata, 2000](http://dx.doi.org/10.1785/gssrl.71.3.352)<br>[errata, 2001](http://dx.doi.org/10.1785/gssrl.72.4.474) | CAMPBELL_97 | Geometric mean | 1
+[Campbell & Bozorgnia, 2003](http://dx.doi.org/10.1785/0120020029)<br>[errata, 2003a](http://dx.doi.org/10.1785/0120030099)<br>[errata, 2003b](http://dx.doi.org/10.1785/0120030143) | CB_03 | Average horizontal | 1
+[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented,<br>model supports geometric mean | 2
+[Sadigh et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.180) | SADIGH_97 | Geometric mean | 3
+[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150063) | ZHAO_16_SHALLOW_CRUST<br>ZHAO_16_UPPER_MANTLE | Geometric mean<br>(random orientation) |
 
-#### Active Crust GMM Notes
-
-1. Soft rock sites only (Vs30 760 m/s)
-2. New Zealand model, does not correspond directly with US site class model
-3. Also used for interface sources in 2007 Alaska NSHM
+¹ Soft rock sites only (Vs30 760 m/s)  
+² New Zealand model, does not correspond directly with US site class model  
+³ Also used for interface sources in 2007 Alaska NSHM  
 
 ### Stable Crust GMMs
 
 Reference | ID | Component | Notes
-:---------:|:--:|:---------:|:------
+:---------|:---|:----------|:------:
 **NGA-East**
-NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS<sup>[1](#stable-crust-gmm-notes)</sup><br>NGA_EAST_USGS_SEEDS<sup>[2](#stable-crust-gmm-notes)</sup> | RotD50 (average horizontal) | [3](#stable-crust-gmm-notes)
-[Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | [4](#stable-crust-gmm-notes)
+NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS¹<br>NGA_EAST_USGS_SEEDS² | RotD50 | 3
+[Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | 4
 **Other**
-[Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | [5](#stable-crust-gmm-notes)
-[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | *AB_06_\*<br>140BAR\|200BAR<br>none\|_AB\|_J* | horizontal | [5](#stable-crust-gmm-notes)
-[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | [5](#stable-crust-gmm-notes)
-[Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean of two horizontal components | [5](#stable-crust-gmm-notes)
-[Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | [5](#stable-crust-gmm-notes)
-[Graizer & Kalkan, 2015](http://dx.doi.org/10.3133/ofr20151009)<br>[Graizer & Kalkan, 2016](http://dx.doi.org/10.1785/0120150194) | GK_15 | Geometric mean of two randomly oriented horizontal components |
-[Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | [5](#stable-crust-gmm-notes)
-[Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | average horizontal component | [5](#stable-crust-gmm-notes)
-[Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | [5](#stable-crust-gmm-notes)
-[Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | [5](#stable-crust-gmm-notes)
-[Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | [5](#stable-crust-gmm-notes)
-
-#### Stable Crust GMM Notes
-
-1. Individual NGA-East Median Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
-2. Individual NGA-East Seed Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
-3. Mean values are not clamped
-4. Shahjouei and Pezeshk (2016) is a NGA-East seed model
-5. Mean values clamped
+[Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | 5
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | *AB_06_\*<br>140BAR\|200BAR<br>none\|_AB\|_J* | horizontal | 5
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | 5
+[Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean | 5
+[Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | 5
+[Graizer & Kalkan, 2015](http://dx.doi.org/10.3133/ofr20151009)<br>[Graizer & Kalkan, 2016](http://dx.doi.org/10.1785/0120150194) | GK_15 | Geometric mean<br>(random orientation) |
+[Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | 5
+[Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | Average horizontal | 5
+[Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | 5
+[Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | 5
+[Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | 5
+
+¹ Individual NGA-East Median Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)  
+² Individual NGA-East Seed Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)  
+³ Mean values are not clamped  
+⁴ Shahjouei and Pezeshk (2016) is a NGA-East seed model  
+⁵ Mean values clamped  
 
 ### Subduction GMMs
 
@@ -128,47 +115,43 @@ NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/
 for a comprehensive list of GMM IDs.*
 
 Reference | ID | Component | Notes
-:---------:|:--:|:---------:|:------
+:---------|:---|:----------|:------:
 **NGA-Subduction**
-[Abrahamson & Gülerce, 2020](https://peer.berkeley.edu/sites/default/files/2020_25.pdf) | *AG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* | Geometric mean of two horizontal components
-[Kuehn et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_04_kuehn_final.pdf) | *KBCG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* |
-[Parker et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_03_parker_final.pdf) | *PSHAB_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* |
+[Abrahamson & Gülerce, 2020](https://peer.berkeley.edu/sites/default/files/2020_25.pdf) | *AG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* | RotD50
+[Kuehn et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_04_kuehn_final.pdf) | *KBCG_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* | RotD50
+[Parker et al., 2020](https://peer.berkeley.edu/sites/default/files/2020_03_parker_final.pdf) | *PSHAB_20_\*<br>GLOBAL\|CASCADIA\|ALASKA<br>INTERFACE\|SLAB<br>no basin\|_BASIN* | RotD50
 **Other**
 [Atkinson & Boore, 2003](http://dx.doi.org/10.1785/0120020156) | *AB_03\*<br>GLOBAL\|CASCADIA<br>INTERFACE\|SLAB<br>none\|_LOW_SAT*| horizontal |
-[Atkinson & Macias, 2009](http://dx.doi.org/10.1785/0120080147) | AM_09_INTERFACE<br>AM_09_INTERFACE_BASIN | Geometric mean of two horizontal components | [1](#subduction-gmm-notes)
-BC Hydro<br>[Abrahamson et al., 2016](http://dx.doi.org/10.1193/051712EQS188MR) | *BCHYDRO_12_\*<br>INTERFACE\|SLAB<br>none\|_BASIN<br>none\|_BACKARC* | Geometric mean of two horizontal components |
-BC Hydro NGA<br>[Abrahamson et al., 2018](https://peer.berkeley.edu/sites/default/files/2018_02_abrahamson_9.10.18.pdf)<sup>[2](#subduction-gmm-notes)</sup> | *BCHYDRO_18_NGA_\*<br>INTERFACE\|SLAB<br>none\|_NO_EPI* | Geometric mean of two horizontal components | [3](#subduction-gmm-notes)
-[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB<br>MCVERRY_00_VOLCANIC | Max-horizontal implemented, model also supports geometric mean | [4](#subduction-gmm-notes)
-[Youngs et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.58) | YOUNGS_97_INTERFACE<br>YOUNGS_97_SLAB | Geometric mean of two horizontal components |
-[Zhao et al., 2006](http://dx.doi.org/10.1785/0120050122) | *ZHAO_06_\*<br>INTERFACE\|SLAB<br>none\|_BASIN* | Geometric mean of two horizontal components |
-[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150034)<br>[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150056) | ZHAO_16_INTERFACE<br>ZHAO_16_SLAB<br>*ZHAO_16_UPPER_MANTLE* | Geometric mean of two randomly oriented horizontal components | [5](#subduction-gmm-notes)
-
-#### Subduction GMM Notes
-
-1. Interface only
-2. Likely to be superseded by the final EQ Spectra paper
-3. Calibrated for Cascadia use only
-4. New Zealand model, does not correspond directly with US site class model
-5. Subduction Slab and Interface
+[Atkinson & Macias, 2009](http://dx.doi.org/10.1785/0120080147) | AM_09_INTERFACE<br>AM_09_INTERFACE_BASIN | Geometric mean | 1
+BC Hydro<br>[Abrahamson et al., 2016](http://dx.doi.org/10.1193/051712EQS188MR) | *BCHYDRO_12_\*<br>INTERFACE\|SLAB<br>none\|_BASIN<br>none\|_BACKARC* | Geometric mean |
+BC Hydro NGA<br>[Abrahamson et al., 2018](https://peer.berkeley.edu/sites/default/files/2018_02_abrahamson_9.10.18.pdf)² | *BCHYDRO_18_NGA_\*<br>INTERFACE\|SLAB<br>none\|_NO_EPI* | Geometric mean | 3
+[McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB<br>MCVERRY_00_VOLCANIC | Max-horizontal,<br>also supports geometric mean | 4
+[Youngs et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.58) | YOUNGS_97_INTERFACE<br>YOUNGS_97_SLAB | Geometric mean |
+[Zhao et al., 2006](http://dx.doi.org/10.1785/0120050122) | *ZHAO_06_\*<br>INTERFACE\|SLAB<br>none\|_BASIN* | Geometric mean |
+[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150034)<br>[Zhao et al., 2016](http://dx.doi.org/10.1785/0120150056) | ZHAO_16_INTERFACE<br>ZHAO_16_SLAB<br>*ZHAO_16_UPPER_MANTLE* | Geometric mean<br>(random orientation) | 5
+
+¹ Interface only  
+² Likely to be superseded by the final EQ Spectra paper  
+³ Calibrated for Cascadia use only  
+⁴ New Zealand model, does not correspond directly with US site class model  
+⁵ Subduction Slab and Interface  
 
 ### Regional and Specialized GMMs
 
 | Reference | ID | Component | Notes |
-|:---------:|:--:|:---------:|:------|
+|:----------|:---|:----------|:-----:|
 | **Hawaii**
-| [Atkinson, 2010](http://dx.doi.org/10.1785/0120090098) | ATKINSON_10 | geometric mean of two horizontal components |
-| [Munson & Thurber, 1997](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/68/1/41/142160/Model-of-Strong-Ground-Motions-from-Earthquakes-in) | MT_97 | Larger of two horizontal | [1](#regional-and-specialized-gmm-notes)
-| [Wong et al., 2015](http://doi.org/10.1193/012012EQS015M) | WONG_15 | average horizontal |
+| [Atkinson, 2010](http://dx.doi.org/10.1785/0120090098) | ATKINSON_10 | geometric mean |
+| [Munson & Thurber, 1997](https://pubs.geoscienceworld.org/ssa/srl/article-abstract/68/1/41/142160/Model-of-Strong-Ground-Motions-from-Earthquakes-in) | MT_97 | Max-horizontal | 1
+| [Wong et al., 2015](http://doi.org/10.1193/012012EQS015M) | WONG_15 | Average horizontal |
 | **New Zealand**
-| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC<br>MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB | Max-horizontal implemented, model also supports geometric mean | [1](#regional-and-specialized-gmm-notes)
+| [McVerry et al., 2000](http://doi.org/10.5459/BNZSEE.39.1.1-58) | MCVERRY_00_CRUSTAL<br>MCVERRY_00_VOLCANIC<br>MCVERRY_00_INTERFACE<br>MCVERRY_00_SLAB | Max-horizontal <br>(also geometric mean) | 2
 | **Induced Seismicity**
-| [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent horizontal |
-
-#### Regional and Specialized GMM Notes
+| [Atkinson, 2015](http://dx.doi.org/10.1785/0120140142) | ATKINSON_15 | orientation-independent<br>horizontal |
 
-1. Munson & Thurber (1997) supports PGA and 0.2 seconds, with an additional term applied for M > 7.
-2. McVerry et al. (2000) is a New Zealand model and does not correspond directly with the U.S. site
-   class model.
+¹ Munson & Thurber (1997) supports PGA and 0.2 seconds, with an additional term applied for M > 7.  
+² McVerry et al. (2000) is a New Zealand model and does not correspond directly with the U.S. site
+   class model.  
 
 ---
 
diff --git a/docs/pages/Hazard-Model.md b/docs/pages/Hazard-Model.md
index e5e7109f9..f9af206c4 100644
--- a/docs/pages/Hazard-Model.md
+++ b/docs/pages/Hazard-Model.md
@@ -18,7 +18,7 @@ support modeling of complex logic trees.
   years), and cautions users using values below 10<sup>-4</sup> (10,000 years). These models were
   developed for building codes concerned with return periods of 10<sup>-4</sup> and above.
 
-* Important considerations when using NSHMs: NSHMs are only applicable to U.S. and it's
+* Important considerations when using NSHMs: NSHMs are only applicable to U.S. and its
   territories. Although hazard close to the borders can be useful for comparison to other models,
   the further one drifts from the U.S. border, the more incomplete the underlying earthquake
   source model will be.
diff --git a/docs/pages/Logic-Trees-&-Uncertainty.md b/docs/pages/Logic-Trees-&-Uncertainty.md
index a0bdaa6a7..87a4e0c86 100644
--- a/docs/pages/Logic-Trees-&-Uncertainty.md
+++ b/docs/pages/Logic-Trees-&-Uncertainty.md
@@ -19,8 +19,6 @@ alternative models.
 | Sigma Epistemic | _(none)_ | _(no change)_ | __0.2__ : USGS Panel<br>__0.8__ : EPRI |
 | Site Aleatory | _(none)_ | _(no change)_ | __0.185, 0.63, 0.185__ : Site ± σ |
 
----
-
 ## Active Crustal Ground Motion Models
 
 | Description | 2008  | 2014 | 2018 |
@@ -28,8 +26,6 @@ alternative models.
 | WUS | __0.3333__ : BA_08<br>__0.3333__ : CB_08<br>__0.3334__ : CY_08 | __0.22__ : ASK_14<br>__0.22__ : BSSA_14<br>__0.22__ : CB_14<br>__0.22__ : CY_14<br>__0.22__ : IDRISS_14 | __0.25__ : ASK_14<br>__0.25__ : BSSA_14<br>__0.25__ : CB_14<br>__0.25__ : CY_14 |
 | Mean Epistemic | NGA-West1 (M,R)<br>__0.185__ : epi+<br>__0.630__ : off<br>__0.185__ : epi- | NGA-West2 (M,R)<br>__0.185__ : epi+<br>__0.630__ : off<br>__0.185__ : epi- | _(no change)_  |
 
----
-
 ## Subduction Ground Motion Models
 
 | Description | 2008  | 2014 | 2018 |
@@ -37,8 +33,6 @@ alternative models.
 | Cascadia<br>(interface) | __0.25__ : AB_03 (global)<br>__0.25__ : YOUNGS_97<br>__0.50__ : ZHAO_06 | __0.1__ : AB_03 (global)<br>__0.3__ : AM_09<br>__0.3__ : BCHYDRO_12<br>__0.3__ : ZHAO_06 | __0.3333__ : AM_09<br>__0.3334__ : BCHYDRO_12<br>__0.3333__ : ZHAO_06 |
 | Cascadia<br>(slab) | __0.25__ : AB_03 (global)<br>__0.25__ : AB_03 (cascadia)<br>__0.50__ : YOUNGS_97 | __0.1665__ : AB_03 (global, mod)<br>__0.1665__ : AB_03 (cascadia, mod)<br>__0.3330__ : BCHYDRO_12<br>__0.3340__ : ZHAO_06 | __0.5__ : BCHYDRO_12<br>__0.5__ : ZHAO_06 |
 
----
-
 ## Fault Source Model (CEUS)
 
 | Model | Description | 2008 | 2014 | 2018 |
@@ -50,9 +44,7 @@ alternative models.
 |           | Full : epistemic   | __0.2, 0.6, 0.2__ : M ± 0.2 | _(no change)_  | _(no change)_  |
 |           | Full : aleatory    |  M ± 0.24 (±2σ normal PDF)  | _(no change)_  | _(no change)_  |
 
-¹ There are a very limited number of fault sources in CEUS
-
----
+¹ There are a very limited number of fault sources in CEUS  
 
 ## Fault Source Model (WUS)
 
@@ -68,8 +60,6 @@ alternative models.
 | Dip | Reverse & Strike-Slip | __1.0__ : assigned | _(no change)_ | _(no change)_ |
 |     | Normal | __0.2, 0.6, 0.2__ : 50 ± 10° | __0.2, 0.6, 0.2__ : 50±15° | _(no change)_ |
 
----
-
 ## Grid Source Model
 
 | Model | Description | 2008 | 2014 | 2018 |
@@ -83,8 +73,6 @@ alternative models.
 |              | WUS, M ≥ 6.5 | __1.0__ : 1.0 km | _(no change)_  | _(no change)_  |
 |              | CEUS, All M  | __1.0__ : 5.0 km | _(no change)_  | _(no change)_  |
 
----
-
 ## Fault Source Model (CA, UCERF3)
 
 | Model | 2014 | 2018 |
@@ -97,8 +85,6 @@ alternative models.
 | Inversion Constraint | __1.0__ : UCERF2 (CH) | _(no change)_  |
 | Fault Mo Rate | __1.0__ : off |  _(no change)_  |
 
----
-
 ## Grid Source Model (CA, UCERF3)
 
 | Model | 2014 | 2018 |
@@ -108,8 +94,6 @@ alternative models.
 | Grid: Focal Mechanisms | __1.0__ : assigned | _(no change)_  |
 | Magnitude Scaling | __1.0__ : WC_94 (length) | _(no change)_  |
 
----
-
 ## Subduction seismic source model
 
 | Model | 2008 | 2014 | 2018 |
diff --git a/docs/pages/Magnitude-Frequency-Distributions.md b/docs/pages/Magnitude-Frequency-Distributions.md
index 8342a809e..0f69189d5 100644
--- a/docs/pages/Magnitude-Frequency-Distributions.md
+++ b/docs/pages/Magnitude-Frequency-Distributions.md
@@ -7,13 +7,6 @@ members listed in the JSON examples below are required.
 
 [[_TOC_]]
 
-MFD types:
-
-* [Single](#single-magnitude-mfd)
-* [Gutenberg-Richter](#gutenberg-richter-mfd)
-* [Tapered Gutenberg-Richter](#tapered-gutenberg-richter-mfd)
-* [Incremental](#incremental-mfd)
-
 ## Single
 
 A single MFD represents an earthquake of a specific magnitude size and rate. The `rate` member
@@ -48,12 +41,10 @@ tree of rates for a source is also present in a model. Example:
 
 ## Tapered Gutenberg–Richter
 
-TODO: Need a new link for tapered GR MFD
-
-A [tapered Gutenberg-Richter](http://scec.ess.ucla.edu/~ykagan/moms_index.html) MFD is similar to
-Gutenberg-Richter, above, but with an exponential taper applied with a corner magnitude of `mCut`.
-The `a`-value member is optional when a logic tree of rates for a source is also present in a
-model. Example:
+A [tapered Gutenberg-Richter](https://academic.oup.com/gji/article/148/3/520/822773) MFD is
+similar to Gutenberg-Richter, above, but with an exponential taper applied with a corner magnitude
+of `mCut`. The `a`-value member is optional when a logic tree of rates for a source is also
+present in a model. Example:
 
 ```json
   {
@@ -81,11 +72,12 @@ A general purpose MFD that represents defined by explicit arrays of magnitudes a
 
 ## MFD Construction
 
-Construction of MFDs from their declaration in a tree _may_ also depend on the following files:
+Construction of MFDs from their declaration in a tree also depends on the following files:
 
-**mfd-map.json:** If an `mfd-tree` value is a string, then that value must map to an actual logic
-tree in a `mfd-map.json` file that is typically located high in the source model heirarchy. For
-example:
+**mfd-map.json:** A mfd-map defines multiple mfd-trees common to multiple branches of a
+source-tree. If an `mfd-tree` value is a string, then that value must map to a logic tree
+defined in a `mfd-map.json` file that is typically located high in the source model heirarchy.
+For example:
 
 ```json
 {
@@ -100,37 +92,16 @@ example:
 }
 ```
 
-MFD confguration files:
-
-* mfd-map.json
-* mfd-config.json
-* rate-tree.json
-* Rate files (*.csv)
-
-For instance, the final MFDs used in a hazard may be modified by an epistemic or aleatory
-uncertainty model specified in `mfd-config.json`. Single and Gutenberg-Richter MFDs that do not
-have their `rate` or `a`-value members defined rely on the presence of a `rate-tree.json` file.
-A rate-tree defines a logic tree of rates or pointers to CSV rate files with spatially varying
-rate data.
-
-### `mfd-map.json`
-
-A mfd-map defines multiple mfd-trees common to multiple branches of a source-tree.
-
-### `mfd-config.json`
-
-Additional uncertainty in MFDs is often considered when building hazard models and is defined
-in a `mfd-config.json` file. Application of uncertainty models is MFD type-dependent.  The
-`epistemic-tree` member, if non-null, is used to create 3-branches for single and Gutenberg-Richter
-MFDs. For a single MFD, a moment-balanced three-point distribution of magnitudes (± 0.2 magnitude
-units) is created. For a Gutenberg-Richter MFD, three maximum magnidue branches are created, also
-moment-balanced. The `aleatory-properties` member is only applicable to single MFDs and may be
-applied on top of an epistemic-tree. In the example below, `aleatory-properties` defines an
-eleven-point, moment-balanced normal distribution with a width of ±2σ of magnitudes about a
-central magnitude. If no additional uncertainty model is desired,  `epistemic-tree` and
-`aleatory-properties` should be set to null.
-
-TODO is aleatory uncertainty in MFD ALWAYS moment-balanced???
+**mfd-config.json:** Additional uncertainty in MFDs is often considered when building hazard
+models and is defined in a `mfd-config.json` file. Application of uncertainty models is MFD
+type-dependent. The `epistemic-tree` member, if non-null, is used to create 3-branches for single
+and Gutenberg-Richter MFDs. For a single MFD, a moment-balanced three-point distribution of
+magnitudes (± 0.2 magnitude units) is created. For a Gutenberg-Richter MFD, three maximum magnitude
+branches are created, also moment-balanced. The `aleatory-properties` member is only applicable
+to single MFDs and may be applied in additiona to an epistemic-tree. In the example below,
+`aleatory-properties` defines an eleven-point, moment-balanced normal distribution with a width
+of ±2σ of magnitudes about a central magnitude. If no additional uncertainty model is desired,
+`epistemic-tree` and `aleatory-properties` should be set to null.
 
 ```json
 {
@@ -149,9 +120,9 @@ TODO is aleatory uncertainty in MFD ALWAYS moment-balanced???
 }
 ```
 
-### `rate-tree.json`
-
-A rate-tree defines each branch `value` in years (recurrence or return period):
+**rate-tree.json:** Single and Gutenberg-Richter MFDs that do not have their `rate` or `a`-value
+members defined rely on the presence of a `rate-tree.json` file. A rate-tree defines each branch
+`value` in years (recurrence or return period):
 
 ```json
 [
@@ -168,122 +139,6 @@ A rate-tree defines each branch `value` in years (recurrence or return period):
 ]
 ```
 
-or with pointers to rate files, in the case of grid sources:
-
-```json
-[
-  {
-    "id": "fixed",
-    "weight": 0.6,
-    "value" : "fixed.csv"
-  },
-  {
-    "id": "adaptive",
-    "weight": 0.4,
-    "value" : "adaptive.csv"
-  }
-]
-```
-
-**mfd-config.json:** Controls properties of the MFD and possible additional epistemic or aleatory
-uncertainty. For example:
-
-```json
-{
-  "epistemic-tree": [
-    { "id": "+uâ‚‘", "weight": 0.2, "value": -0.2 },
-    { "id": "~uâ‚‘", "weight": 0.6, "value": 0.0 },
-    { "id": "-uâ‚‘", "weight": 0.2, "value": 0.2 }
-  ],
-  "aleatory-properties": {
-    "size": 11,
-    "nσ": 2,
-    "σ": 0.12
-  },
-  "minimum-magnitude": 6.5,
-  "nshm-bin-model": false
-}
-```
-
-**rate-tree.json:** Defines each branch `value` in annual rate (1 / return period in years).
-For example:
-
-```json
-[
-  {
-    "id": "R1",
-    "weight": 0.2,
-    "value" : 0.002
-  },
-  {
-    "id": "R2",
-    "weight": 0.8,
-    "value" : 0.05
-  }
-]
-```
-
-From Model Files:
-
-### Magnitude Frequency Distributions (MFDs)
-
-`mfd-tree`, `mfd-map.json`, `mfd-config.json`, and `rate-tree.json`
-
-A `mfd-tree` property is common to all source types and defines a logic tree of magnitude
-frequency distributions (MFDs). The `mfd-tree` element may be an array of mfd branches defined
-inline or a string reference to a top-level member of an `mfd-map.json` that contains one or
-more mfd-trees shared across a source-tree. The branches of a mfd-tree commonly have the generic
-ID's: `[M1, M2, M3, ...]` to support mfd-tree matching across source-tree branches.
-
-```json
-"mfd-tree": [
-  { "id": "M1", "weight": 0.3, "value": { "type": "SINGLE", "m": 6.8, "rate": 0.001 }},
-  { "id": "M2", "weight": 0.3, "value": { "type": "SINGLE", "m": 7.0, "rate": 0.001 }},
-  { "id": "M3", "weight": 0.3, "value": { "type": "SINGLE", "m": 7.2, "rate": 0.001 }},
-  { "id": "M4", "weight": 0.1, "value": { "type": "SINGLE", "m": 7.4, "rate": 0.001 }}
-]
-```
-
-How MFDs are actually built depends on the settings in a `mfd-config.json` file and rates. For more
-details on MFDs and their configuration see the
-[magnitude frequency distributions](./Magnitude-Frequency-Distributions.md) section.
-
-An `mfd-config.json` is currently only required for finite fault sources. It can be located
-anywhere in the file heirarchy and may be overridden in nested directories.
-
-Depending on the types of MFDs being modeled, a rate file may contain Gutenberg-Richter a-values
-or magnitude-specific rates. The branches of a rate-tree commonly have the generic ID's:
-`[R1, R2, R3, ...]` to support matching rate-trees across source-tree branches.
-
-TODO: convert example to JSON format (or see `mfd-config.json` section above)
-
-```xml
-        <!-- (optional) A magnitude uncertainty model that will be
-             applied to every source:
-               - <Epistemic/> varies mMax and scales variant rates by
-                 the supplied weights; it is only ever applied to SINGLE
-                 and GR MFDs.
-               - 'cutoff' is magnitude below which uncertainty will be
-                 disabled.
-               - <Aleatory/> applies a (possibly moment-balanced) ±2σ
-                 Gaussian distribution to mMax; it is only ever applied
-                 to SINGLE MFDs (possibly in conjunction with epistemic).
-               - 'count' is the number of magnitude bins spanned by
-                 the distribution.
-               - <Aleatory/> or '<Epistemic/>', or the entire block
-                 may be omitted. -->
-        <MagUncertainty>
-            <Epistemic cutoff="6.5" 
-                deltas="[-0.2, 0.0, 0.2]" weights="[0.2, 0.6, 0.2]" />
-            <Aleatory cutoff="6.5" 
-                moBalance="true" sigma="0.12" count="11" />
-        </MagUncertainty>
-
-        <SourceProperties ruptureScaling="NSHM_FAULT_WC94_LENGTH" />
-
-    </Settings>
-```
-
 ---
 
 ## Related Pages
diff --git a/docs/pages/Model-Editions.md b/docs/pages/Model-Editions.md
index 0558f9ee9..02d123367 100644
--- a/docs/pages/Model-Editions.md
+++ b/docs/pages/Model-Editions.md
@@ -21,15 +21,14 @@ The USGS NSHMP is committed to supporting current and prior model releases in an
 via web services. The table below provides a summary of all NSHM releases and their corresponding
 version numbers. Links to documentation and data for each of the models below are listed on the USGS
 [Seismic Hazard Maps and Site-Specific Data](https://www.usgs.gov/natural-hazards/earthquake-hazards/seismic-hazard-maps-and-site-specific-data)
-page.
-
-TODO: confirm model versions, tags, links (github vs gitlab...), and availability
+page. Changes between editions in model regions are documented in the release notes of the
+individual model repositories.
 
 Region | Year | Version | Static | Dynamic | Notes |
 -------|:----:|:-------:|:------:|:-------:|-------|
-Conterminous U.S. | 2018 | [v5.0.0](https://code.usgs.gov/ghsc/nshmp/nshm-conus-2018)<sup>†</sup> | |:small_blue_diamond:| |
-Conterminous U.S. | 2014 | [v4.2.0](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.2.0)<sup>†</sup> | |:small_blue_diamond:| |
-Conterminous U.S. | 2014 | [v4.1.4](https://github.com/usgs/nshmp-model-cous-2014/releases/tag/v4.1.4)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2018 | [v5.0.0](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-conus)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2014 | [v4.2.0](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-conus)<sup>†</sup> | |:small_blue_diamond:| |
+Conterminous U.S. | 2014 | [v4.1.4](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-conus)<sup>†</sup> | |:small_blue_diamond:| |
 Conterminous U.S. | 2014 | [v4.0.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2014r1) |:small_blue_diamond:| | ASCE7-16 |
 Conterminous U.S. | 2008 | v3.3.3 | |:small_blue_diamond:| |
 Conterminous U.S. | 2008 | [v3.2.0](https://github.com/usgs/nshmp-haz-fortran/releases/tag/nshm2008r3) |:small_blue_diamond:| | |
@@ -47,7 +46,7 @@ Hawaii            | 1998 | v1.1.0 | | TBD | |
 Hawaii            | 1998 | v1.0.0 |:small_blue_diamond:| | ASCE7-10 |
 Puerto Rico & <br/> U.S. Virgin Islands | 2003 | v1.0.0 | | | |
 
-<sup>†</sup> __Note on the 2014 Conterminous U.S. NSHM:__ Initial publication of the
+<sup>†</sup> __Note on the 2014 conterminous U.S. NSHM:__ Initial publication of the
 [2014 model](https://www.usgs.gov/natural-hazards/earthquake-hazards/science/2014-united-states-lower-48-seismic-hazard-long-term)
 included data to support updates to the U.S. Building Code, specifically hazard curves for peak
 ground acceleration (PGA), and 0.2 and 1.0 second spectral accelerations, all at a BC boundary site
@@ -67,8 +66,8 @@ Moving forward, we will continue to include the original dynamic version of the
 Historically, the USGS NSHMP has produced static datasets of hazard curves that accompany the
 'official' release or update to a model. In the context of providing interactive web services,
 such static datasets can be quickly retreived and provide most users with the data they seek.
-More complex analyses, such as deaggregations, require that a complete hazard calculation be
-performed on demand. Historically, USGS deaggregation services were provided for particular model
+More complex analyses, such as disaggregations, require that a complete hazard calculation be
+performed on demand. Historically, USGS disaggregation services were provided for particular model
 years and regions, each located at a unique web address and supported by a unique codebase.
 However, it has proven too difficult to maintain numerous isolated services, and we therefore
 developed a single codebase that supports all current and prior models.
@@ -76,10 +75,12 @@ developed a single codebase that supports all current and prior models.
 Moreover, as time goes by, there may be more customization options we want to expose to users.
 However, with each additional level of customization, it quickly becomes too difficult to produce
 and version corresponding static datasets. We therefore identify model versions that support
-deaggregations and other calculations as 'dynamic'. At present, only the most current versions
-of a particular model region and year are supported via 'dynamic' calculations.
+disaggregations and other calculations as 'dynamic'. At present, only the most current versions
+of a particular model region and year are supported via 'dynamic' calculations. Dynamic editions
+are supported through web-services provided by `nshmp-haz`. Static editions are supported via a
+separate set of services.
 
-In practice, this leads to results produced by 'dynamic' caluculations being somewhat different
+In practice, this leads to results produced by 'dynamic' caluculations being different
 than those stored in static datasets of prior model minor versions, although usually not by much.
 The release notes for each model version detail the changes that give rise to changes in hazard
 between between versions. There are also differences that arise from different modeling
@@ -87,26 +88,9 @@ assumptions between past and current codebases that are detailed below.
 
 It is important for users to know which edition they should be using. For instance if one is
 bound to use those values adopted by the U.S. building code, one of the editions marked `ASCE7-*`
-is probably most appropriate. However, if one is bound to use the most up to date source model,
+is probably most appropriate. However, if one is bound to use the most up-to-date source model,
 one of the dynamic editions is likely better.
 
-TODO: do we want to reference `nshmp-haz-ws` and is this the correct reference here?
-
-Dynamic editions are supported through web-services provided by the `nshmp-haz-ws` library.
-Static editions are supported via a separate set of services. Both are documented on the
-[web services](./NSHMP-Web-Services.md#nshmp-web-services) page.
-
-## Region specific changes
-
-Changes between editions in model regions are documented in the release notes of the individual
-model repositories.
-
-TODO: model links currently point to github repos
-
-* [Conterminous US (2014)](https://github.com/usgs/nshm-cous-2014)  
-* [Conterminous US (2008)](https://github.com/usgs/nshm-cous-2008)  
-* [Alaska (2007)](https://github.com/usgs/nshm-ak-2007)  
-
 ---
 
 ## Related Pages
diff --git a/docs/pages/Model-Files.md b/docs/pages/Model-Files.md
index 3ce594a23..8101b2068 100644
--- a/docs/pages/Model-Files.md
+++ b/docs/pages/Model-Files.md
@@ -79,7 +79,7 @@ or its children will be processed; any standalone sources will be ignored. For e
 ```
 
 **source-group.json:** A specialized form of logic tree that describes model branches that are
-additivd and therefore does not include weights. Examples from the NSHM for the Conterminous U.S.
+additivd and therefore does not include weights. Examples from the NSHM for the conterminous U.S.
 NSHM include the Cascadia segmented partial-rupture models and the New Madrid 1500-yr cluster
 branches. The branch objects in a source group _may_ include an optional `scale` member that can
 be used to impose a probability of occurrence or other scaling requred by a NSHM. If absent, the
@@ -117,7 +117,8 @@ _nshmp-haz_ and the related `gmm-config.json` files that governs GMM behavior.
 
 ### MFD Logic Trees
 
-MFD logic trees are typically defined as JSON members nested in other files. For example:
+MFD logic trees are common to all source types and are defined as JSON members nested in other
+files. For example:
 
 ```json
 "mfd-tree": [
@@ -130,14 +131,16 @@ MFD logic trees are typically defined as JSON members nested in other files. For
 
 An `mfd-tree` may be included as a `properties` member of a GeoJSON feature or as a member of a
 `rupture-set.json` file. In both cases the tree may alternatively be identified with a string, in
-which case the `mfd-tree` will be pulled from the collection of trees defined in a `mfd-map.json`
-file. A `mfd-map.json` file is typicaly located high in the source tree heirarchy and faciltates
-using the same MFDs on multiple branches of a source tree.
+which case the `mfd-tree` will be pulled from the collection of shared trees defined in a
+`mfd-map.json` file. A `mfd-map.json` file is typicaly located high in the source tree heirarchy
+and faciltates using the same MFDs on multiple branches of a source tree. The branches of a
+mfd-tree commonly have the generic ID's: `[M1, M2, M3, ...]` to support mfd-tree matching across
+source-tree branches.
 
 How MFDs are intialized (or realized) depends on the presence and contents of `mfd-config.json` and
 `rate-tree.json` files. See the
-[magnitude frequency distributions](./Magnitude-Frequency-Distributions.md) page for details on these
-files and the types of MFDs supported in _nshmp-haz_.
+[magnitude frequency distributions](./Magnitude-Frequency-Distributions.md) page for details on
+these files and the types of MFDs supported in _nshmp-haz_.
 
 ## Rupture Sets
 
diff --git a/docs/pages/Model-Structure.md b/docs/pages/Model-Structure.md
index 95d0a2ec0..dc7a55de5 100644
--- a/docs/pages/Model-Structure.md
+++ b/docs/pages/Model-Structure.md
@@ -95,12 +95,10 @@ fault-sources/
           └─ branch-4/
 ```
 
-See also: [Finite Fault Source Type](./Source-Types#fault-sources)
+See also: [Finite Fault Source Type](./Source-Types.md#fault-sources)
 
 ## Crustal Grid Sources
 
-TODO this isn't quite right, needs conus-2018 refactor for verification
-
 Grid sources are based on smoothed seismicity or other spatially varying rate model and may be
 defined as either single source features, each within its own directory, or as more complex logic
 trees of source model variants. Grid sources are modeled as point sources of varying complexity.
diff --git a/docs/pages/NSHMP-Web-Services.md b/docs/pages/NSHMP-Web-Services.md
deleted file mode 100644
index fc5b6afa4..000000000
--- a/docs/pages/NSHMP-Web-Services.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# NSHMP Web Services
-
-A number of USGS web applications and web services are available to access static data, perform
-dynamic calculations, interact with ground motion models, and access other NSHMP data.
-
-* Hazard tools web application: [NSHM Hazard Tool](https://earthquake.usgs.gov/nshmp/)
-* Static hazard curve data:
-  * [CONUS 2018 NSHM](https://earthquake.usgs.gov/ws/nshmp/conus-2018/static/)
-* Non-NSHM web services: [https://earthquake.usgs.gov/ws/nshmp/data/](https://earthquake.usgs.gov/ws/nshmp/data/)
-
----
-
-[**Documentation Index**](../README.md)
-
----
-![USGS logo](./images/usgs-icon.png) &nbsp;[U.S. Geological Survey](https://www.usgs.gov)
-National Seismic Hazard Mapping Project ([NSHMP](https://earthquake.usgs.gov/hazards/))
diff --git a/docs/pages/Site-Specification.md b/docs/pages/Site-Specification.md
index e057616e8..48fddc3be 100644
--- a/docs/pages/Site-Specification.md
+++ b/docs/pages/Site-Specification.md
@@ -79,7 +79,7 @@ As with the CSV format, the minimum required data is a `geometry` `coordinates`
 `properties` are optional. When using GeoJSON, the `title` property maps to the name of the site.
 Additional properties, if present, are ignored by *nshmp-haz* but permitted as they may be
 relevant for other applications. For example, [styling
-properties](https://help.github.com/articles/mapping-geojson-files-on-github/#styling-features)
+properties](https://github.com/mapbox/simplestyle-spec/tree/master/1.1.0)
 may be used to improve rendering in mapping applications. For a fully fledged example, see the
 [NSHM test sites](../../etc/nshm/sites-nshmp.geojson) file.
 
@@ -106,8 +106,6 @@ parallel to lines of latitude and longitude. Any points in the 'calculation' pol
 outside the 'calculation' polygon are set to zero. For an example, see the
 [NSHMP Western US](../../etc/nshm/map-wus.geojson) map site file.
 
-TODO This needs updating; link to conus-2018 active crust map-region.geojson.
-
 ---
 
 ## Related Pages
@@ -116,8 +114,8 @@ TODO This needs updating; link to conus-2018 active crust map-region.geojson.
   * [Developer Basics](./Developer-Basics.md#developer-basics)
   * [Calculation Configuration](./Calculation-Configuration.md#calculation-configuration)
   * [Site Specification](./Site-Specification.md#site-specification)
-  * [Examples](../../etc/examples/README.md) (or
-    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples))
+  * [Examples](../../etc/examples) (or
+    [on GitLab](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples))
 * [**Documentation Index**](../README.md)
 
 ---
diff --git a/docs/pages/USGS-Models.md b/docs/pages/USGS-Models.md
index 8a0226afd..087c0af13 100644
--- a/docs/pages/USGS-Models.md
+++ b/docs/pages/USGS-Models.md
@@ -18,8 +18,8 @@ page for links to all published models.
 
 Each model region has a dedicated repository with version tags marking different model editions:
 
-* [Conterminous U.S.](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
-* [Hawaii](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)  
+* [Conterminous U.S.](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-conus)
+* [Hawaii](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii)  
 * Alaska - _update not yet published_
 * Guam & Marianas - _update not yet published_  
 * Puerto Rico & U.S. Virgin Islands - _update not yet published_  
-- 
GitLab


From 990e4f83a678e3e16a8ef22927c368972c1efb33 Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Thu, 29 Jul 2021 13:54:39 -0600
Subject: [PATCH 19/39] line length reformatting

---
 docs/pages/Ground-Motion-Models.md | 36 +++++++++++++++---------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/docs/pages/Ground-Motion-Models.md b/docs/pages/Ground-Motion-Models.md
index aed426f8e..0ffa1e71f 100644
--- a/docs/pages/Ground-Motion-Models.md
+++ b/docs/pages/Ground-Motion-Models.md
@@ -88,26 +88,26 @@ Reference | ID | Component | Notes
 Reference | ID | Component | Notes
 :---------|:---|:----------|:------:
 **NGA-East**
-NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS¹<br>NGA_EAST_USGS_SEEDS² | RotD50 | 3
-[Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | 4
+NGA-East<br>[Goulet et al., 2017](https://peer.berkeley.edu/sites/default/files/christine-a-goulet-yousef-bozorgnia-2017_03_0.pdf) | NGA_EAST_USGS¹<br>NGA_EAST_USGS_SEEDS¹ | RotD50 | 2
+[Shahjouei and Pezeshk, 2016](http://dx.doi.org/10.1785/0120140367) | NGA_EAST_SEED_SP16 | RotD50 | 3
 **Other**
-[Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | 5
-[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | *AB_06_\*<br>140BAR\|200BAR<br>none\|_AB\|_J* | horizontal | 5
-[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | 5
-[Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean | 5
-[Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | 5
+[Atkinson, 2008](http://dx.doi.org/10.1785/0120070199)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | ATKINSON_08_PRIME | horizontal | 4
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245) | *AB_06_\*<br>140BAR\|200BAR<br>none\|_AB\|_J* | horizontal | 4
+[Atkinson & Boore, 2006](http://dx.doi.org/10.1785/0120050245)<br>[Atkinson & Boore, 2011](http://dx.doi.org/10.1785/0120100270) | AB_06_PRIME | horizontal | 4
+[Campbell, 2003](http://dx.doi.org/10.1785/0120020002) | CAMPBELL_03<br>CAMPBELL_03_AB<br>CAMPBELL_03_J | Geometric mean | 4
+[Frankel et al., 1996](https://pubs.usgs.gov/of/1996/532/) | FRANKEL_96<br>FRANKEL_96_AB<br>FRANKEL_96_J | not specified | 4
 [Graizer & Kalkan, 2015](http://dx.doi.org/10.3133/ofr20151009)<br>[Graizer & Kalkan, 2016](http://dx.doi.org/10.1785/0120150194) | GK_15 | Geometric mean<br>(random orientation) |
-[Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | 5
-[Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | Average horizontal | 5
-[Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | 5
-[Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | 5
-[Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | 5
-
-¹ Individual NGA-East Median Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)  
-² Individual NGA-East Seed Model IDs are listed in the [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)  
-³ Mean values are not clamped  
-⁴ Shahjouei and Pezeshk (2016) is a NGA-East seed model  
-⁵ Mean values clamped  
+[Pezeshk et al., 2011](http://dx.doi.org/10.1785/0120100144) | PEZESHK_11 | GMRotI50 | 4
+[Silva et al., 2002](http://www.pacificengineering.org/CEUS/Development%20of%20Regional%20Hard_ABC.pdf) | SILVA_02<br>SILVA_02_AB<br>SILVA_02_J | Average horizontal | 4
+[Somerville et al., 2001](https://earthquake.usgs.gov/static/lfs/nshm/conterminous/2008/99HQGR0098.pdf) | SOMERVILLE_01 | not specified | 4
+[Tavakoli & Pezeshk, 2005](http://dx.doi.org/10.1785/0120050030) | TP_05<br>TP_05_AB<br>TP_05_J | not specified | 4
+[Toro et al., 1997](http://dx.doi.org/10.1785/gssrl.68.1.41)<br>[Toro, 2002](http://www.ce.memphis.edu/7137/PDFs/attenuations/Toro_2001_(modification_1997).pdf) | TORO_97_MB<br>TORO_97_MW | not specified | 4
+
+¹ See [Gmm javadocs](https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/gmm/Gmm.html)
+for individual NGA-East component model IDs  
+² Mean values are not clamped  
+³ Shahjouei and Pezeshk (2016) is a NGA-East seed model  
+⁴ Mean values clamped  
 
 ### Subduction GMMs
 
-- 
GitLab


From 0c6faf212cc0eeae8c856fbc9d4a2187958d525f Mon Sep 17 00:00:00 2001
From: Peter Powers <pmpowers@usgs.gov>
Date: Thu, 29 Jul 2021 13:59:47 -0600
Subject: [PATCH 20/39] edit

---
 CONTRIBUTING.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 58cb309d7..13b639a18 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -3,7 +3,7 @@
 Contributions are welcome from the community. Questions can be asked on the
 [issues page][1]. Before creating a new issue, please take a moment to search
 and make sure a similar issue does not already exist. If one does exist, you
-can comment (most simply even with just a `:+1:`) to show your support for that
+can comment (most simply even with just a :+1:) to show your support for that
 issue.
 
 If you have direct contributions you would like considered for incorporation
-- 
GitLab


From a9c4393e4b4383b8d30c02ea45ef46e51ccf3515 Mon Sep 17 00:00:00 2001
From: Jason Altekruse <jaltekruse@usgs.gov>
Date: Wed, 4 Aug 2021 10:48:11 -0600
Subject: [PATCH 21/39] update master to main, github to gitlab

---
 Dockerfile                                    |  2 +-
 code.json                                     |  6 +++---
 gradle/ext.gradle                             |  4 ++--
 scripts/docker-config.inc.sh                  |  2 +-
 .../gov/usgs/earthquake/nshmp/DeaggCalc.java  | 20 +++++++++++--------
 .../gov/usgs/earthquake/nshmp/DeaggIml.java   | 14 ++++++++-----
 .../gov/usgs/earthquake/nshmp/Hazard2018.java |  6 ++++--
 .../gov/usgs/earthquake/nshmp/HazardCalc.java | 12 ++++++-----
 .../gov/usgs/earthquake/nshmp/RateCalc.java   | 14 ++++++++-----
 src/main/resources/swagger/index.html         |  4 ++--
 10 files changed, 50 insertions(+), 34 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 3a5e5a678..e0a43e378 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -66,7 +66,7 @@ ENV IML ""
 ENV JAVA_XMX "8g"
 ENV MODEL ""
 ENV MOUNT_MODEL false
-ENV NSHM_VERSION master
+ENV NSHM_VERSION main
 ENV PROGRAM hazard
 ENV PROJECT ${project}
 ENV RETURN_PERIOD ""
diff --git a/code.json b/code.json
index ba79cd172..f524431f1 100644
--- a/code.json
+++ b/code.json
@@ -12,15 +12,15 @@
       "licenses": [
         {
           "name": "Public Domain, CC0-1.0",
-          "URL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/master/LICENSE.md"
+          "URL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/LICENSE.md"
         }
       ]
     },
 
     "repositoryURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/",
-    "homepageURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/docs",
+    "homepageURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs",
     "downloadURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/releases/tag/v#.#.#",
-    "disclaimerURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/master/DISCLAIMER.md",
+    "disclaimerURL": "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/DISCLAIMER.md",
     "vcs": "git",
 
     "laborHours": 1200,
diff --git a/gradle/ext.gradle b/gradle/ext.gradle
index ddd9896f6..7ca613ac7 100644
--- a/gradle/ext.gradle
+++ b/gradle/ext.gradle
@@ -84,7 +84,7 @@ ext {
    */
   gitCommand = 'git --git-dir=../nshmp-haz/.git describe --tags'
   gitTag = gitCommand.execute().text.replace('\n', '') ?: 'unknown'
-  gitLink = '<a href="https://github.com/usgs/nshmp-haz">' + gitTag +'</a>'
+  gitLink = '<a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz">' + gitTag +'</a>'
   propsPath = '/resources/main/app.properties'
   docTitle = projectName + ': ' + gitLink
   docFooter = '<div style="float: left; font-size: 16px; text-align: right; ' +
@@ -92,7 +92,7 @@ ext {
       '<b><a href="https://www.usgs.gov" target="_top">U.S. Geological Survey</a></b> ' +
       '– National Seismic Hazard Model Project ' +
       '(<a href="https://earthquake.usgs.gov/hazards/" target="_top">NSHMP</a>) ' +
-      '– <a href="https://github.com/usgs/nshmp-haz/blob/master/LICENSE.md" ' +
+      '– <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/LICENSE.m" ' +
       'target="_top">License</a> | <b>' + gitLink + '</b></div>'
   docOut = findProperty('javadoc_loc')
   thinJar = false
diff --git a/scripts/docker-config.inc.sh b/scripts/docker-config.inc.sh
index e8cba0878..3db50451a 100644
--- a/scripts/docker-config.inc.sh
+++ b/scripts/docker-config.inc.sh
@@ -18,7 +18,7 @@ readonly CONFIG_FILE="${CONFIG_FILE:-config.json}";
 readonly CONTEXT_PATH="${CONTEXT_PATH:-/}";
 readonly JAVA_XMX="${JAVA_XMX:-8g}";
 readonly MODEL=$(echo "${MODEL:-CONUS_2008}"  | awk \{'print toupper($0)'\});
-readonly NSHM_VERSION="${NSHM_VERSION:-master}";
+readonly NSHM_VERSION="${NSHM_VERSION:-main}";
 readonly PROJECT="${PROJECT:-nshmp-haz}";
 readonly PROGRAM=$(echo "${PROGRAM:-hazard}" | awk \{'print tolower($0)'\});
 readonly WUS="Western US";
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
index 05ad82044..2ea4f3d51 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java
@@ -44,13 +44,15 @@ public class DeaggCalc {
    * on required parameters.
    *
    * <p>Please refer to the nshmp-haz <a
-   * href="https://github.com/usgs/nshmp-haz/wiki" target="_top">wiki</a> for
-   * comprehensive descriptions of source models, configuration files, site
-   * files, and hazard calculations.
+   * href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs"
+   * target="_top">docs</a> for comprehensive descriptions of source models,
+   * configuration files, site files, and hazard calculations.
    *
-   * @see <a href="https://github.com/usgs/nshmp-haz/wiki/Building-&-Running"
-   *      target="_top"> nshmp-haz wiki</a>
-   * @see <a href="https://github.com/usgs/nshmp-haz/tree/master/etc/examples"
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"
+   *      target="_top"> nshmp-haz Building & Running</a>
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"
    *      target="_top"> example calculations</a>
    */
   public static void main(String[] args) {
@@ -162,8 +164,10 @@ public class DeaggCalc {
   private static final String PROGRAM = DeaggCalc.class.getSimpleName();
   private static final String USAGE_COMMAND =
       "java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.DeaggCalc model sites returnPeriod [config]";
-  private static final String USAGE_URL1 = "https://github.com/usgs/nshmp-haz/wiki";
-  private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc";
+  private static final String USAGE_URL1 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs";
+  private static final String USAGE_URL2 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples";
   private static final String SITE_STRING = "name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]";
 
   private static final String USAGE = new StringBuilder()
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java b/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
index 3cc37d5d0..e24795f33 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java
@@ -49,9 +49,11 @@ public class DeaggIml {
    * comprehensive descriptions of source models, configuration files, site
    * files, and hazard calculations.
    *
-   * @see <a href="https://github.com/usgs/nshmp-haz/wiki/Building-&-Running"
-   *      target="_top"> nshmp-haz wiki</a>
-   * @see <a href="https://github.com/usgs/nshmp-haz/tree/master/etc/examples"
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"
+   *      target="_top"> nshmp-haz Building & Running</a>
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"
    *      target="_top"> example calculations</a>
    */
   public static void main(String[] args) {
@@ -163,8 +165,10 @@ public class DeaggIml {
   private static final String PROGRAM = DeaggIml.class.getSimpleName();
   private static final String USAGE_COMMAND =
       "java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.DeaggIml model sites iml [config]";
-  private static final String USAGE_URL1 = "https://github.com/usgs/nshmp-haz/wiki";
-  private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc";
+  private static final String USAGE_URL1 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs";
+  private static final String USAGE_URL2 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples";
   private static final String SITE_STRING = "name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]";
 
   private static final String USAGE = new StringBuilder()
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java b/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
index 60df02d9b..144a258ad 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/Hazard2018.java
@@ -331,8 +331,10 @@ public class Hazard2018 {
   private static final String PROGRAM = Hazard2018.class.getSimpleName();
   private static final String USAGE_COMMAND =
       "java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.Hazard2018 model sites [config]";
-  private static final String USAGE_URL1 = "https://github.com/usgs/nshmp-haz/wiki";
-  private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc";
+  private static final String USAGE_URL1 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs";
+  private static final String USAGE_URL2 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples";
   private static final String SITE_STRING = "name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]";
 
   private static String version() {
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index dec96fb77..7aa64522d 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -59,10 +59,10 @@ public class HazardCalc {
    * configuration files, site files, and hazard calculations.
    *
    * @see <a
-   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/wikis/Building-&-Running"
-   *      target="_top"> nshmp-haz wiki</a>
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"
+   *      target="_top"> nshmp-haz Building & Running</a>
    * @see <a
-   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/master/etc/examples"
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"
    *      target="_top"> example calculations</a>
    */
   public static void main(String[] args) {
@@ -229,8 +229,10 @@ public class HazardCalc {
   private static final String PROGRAM = HazardCalc.class.getSimpleName();
   private static final String USAGE_COMMAND =
       "java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.HazardCalc model sites [config]";
-  private static final String USAGE_URL1 = "https://github.com/usgs/nshmp-haz/wiki";
-  private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc";
+  private static final String USAGE_URL1 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs";
+  private static final String USAGE_URL2 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples";
   private static final String SITE_STRING = "name,lon,lat[,vs30,vsInf[,z1p0,z2p5]]";
 
   private static String version() {
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
index c3afa5fc0..b0ccce124 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java
@@ -58,9 +58,11 @@ public class RateCalc {
    * comprehensive descriptions of source models, configuration files, site
    * files, and earthquake rate calculations.
    *
-   * @see <a href="https://github.com/usgs/nshmp-haz/wiki/Building-&-Running"
-   *      target="_top"> nshmp-haz wiki</a>
-   * @see <a href="https://github.com/usgs/nshmp-haz/tree/master/etc/examples"
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/docs/pages/Building-&-Running.md"
+   *      target="_top"> nshmp-haz Building & Running</a>
+   * @see <a
+   *      href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples"
    *      target="_top"> example calculations</a>
    */
   public static void main(String[] args) {
@@ -212,8 +214,10 @@ public class RateCalc {
   private static final String PROGRAM = RateCalc.class.getSimpleName();
   private static final String USAGE_COMMAND =
       "java -cp nshmp-haz.jar gov.usgs.earthquake.nshmp.RateCalc model sites [config]";
-  private static final String USAGE_URL1 = "https://github.com/usgs/nshmp-haz/wiki";
-  private static final String USAGE_URL2 = "https://github.com/usgs/nshmp-haz/tree/master/etc";
+  private static final String USAGE_URL1 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/docs";
+  private static final String USAGE_URL2 =
+      "https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main/etc/examples";
   private static final String SITE_STRING = "name,lon,lat";
 
   private static final String USAGE = new StringBuilder()
diff --git a/src/main/resources/swagger/index.html b/src/main/resources/swagger/index.html
index 8a4003d3a..9abcef98e 100644
--- a/src/main/resources/swagger/index.html
+++ b/src/main/resources/swagger/index.html
@@ -39,11 +39,11 @@
     <div id="swagger-ui"></div>
 
     <footer class="nshmp-template-footer">
-      <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/master/LICENSE.md">
+      <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/LICENSE.md">
         License
       </a>
 
-      <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/master/DISCLAIMER.md">
+      <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/DISCLAIMER.md">
         Disclaimer
       </a>
 
-- 
GitLab


From 385470b01e181458d3d553c6d4e33bf42ed626ca Mon Sep 17 00:00:00 2001
From: "Clayton, Brandon Scott" <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:38:11 +0000
Subject: [PATCH 22/39] Apply 1 suggestion(s) to 1 file(s)

---
 gradle/ext.gradle | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle/ext.gradle b/gradle/ext.gradle
index 7ca613ac7..3cc94336d 100644
--- a/gradle/ext.gradle
+++ b/gradle/ext.gradle
@@ -92,7 +92,7 @@ ext {
       '<b><a href="https://www.usgs.gov" target="_top">U.S. Geological Survey</a></b> ' +
       '– National Seismic Hazard Model Project ' +
       '(<a href="https://earthquake.usgs.gov/hazards/" target="_top">NSHMP</a>) ' +
-      '– <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/LICENSE.m" ' +
+      '– <a href="https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/blob/main/LICENSE.md" ' +
       'target="_top">License</a> | <b>' + gitLink + '</b></div>'
   docOut = findProperty('javadoc_loc')
   thinJar = false
-- 
GitLab


From 7b533230a7350a634d338c5d2bcd439300b35d52 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:24:17 -0600
Subject: [PATCH 23/39] update lib version

---
 gradle.properties | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gradle.properties b/gradle.properties
index 05bbb8d30..b64478dc1 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -8,7 +8,7 @@ junitVersion = 5.5.2
 micronautVersion = 2.4.1
 mnPluginVersion = 1.4.2
 nodeVersion = 3.0.1
-nshmpLibVersion = 0.5.1
+nshmpLibVersion = 0.6.0
 nshmpWsUtilsVersion = 0.1.2
 shadowVersion = 5.2.0
 spotbugsVersion = 4.2.4
-- 
GitLab


From 365d7f8cece9aa674bdf956e8312df429e2744a9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:24:39 -0600
Subject: [PATCH 24/39] remove lambda function

---
 .../nshmp/aws/HazardResultSliceLambda.java    | 310 -----------------
 .../aws/HazardResultsMetadataLambda.java      | 315 ------------------
 .../nshmp/aws/HazardResultsSlicerLambda.java  | 214 ------------
 .../gov/usgs/earthquake/nshmp/aws/Util.java   |  41 ---
 4 files changed, 880 deletions(-)
 delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
 delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsMetadataLambda.java
 delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
 delete mode 100644 src/main/java/gov/usgs/earthquake/nshmp/aws/Util.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
deleted file mode 100644
index 1311536a1..000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultSliceLambda.java
+++ /dev/null
@@ -1,310 +0,0 @@
-package gov.usgs.earthquake.nshmp.aws;
-
-import static com.google.common.base.Preconditions.checkState;
-import static gov.usgs.earthquake.nshmp.aws.Util.CURVES_FILE;
-import static gov.usgs.earthquake.nshmp.aws.Util.MAP_FILE;
-import static gov.usgs.earthquake.nshmp.www.services.ServletUtil.GSON;
-
-import java.io.BufferedReader;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-import com.amazonaws.services.s3.model.ObjectMetadata;
-import com.amazonaws.services.s3.model.PutObjectRequest;
-import com.amazonaws.services.s3.model.S3Object;
-import com.amazonaws.services.s3.model.S3ObjectInputStream;
-import com.google.common.base.Charsets;
-import com.google.common.base.Throwables;
-import com.google.common.collect.Iterables;
-import com.google.common.collect.Lists;
-
-import gov.usgs.earthquake.nshmp.aws.Util.LambdaHelper;
-import gov.usgs.earthquake.nshmp.calc.Site;
-import gov.usgs.earthquake.nshmp.data.Interpolator;
-import gov.usgs.earthquake.nshmp.internal.Parsing;
-import gov.usgs.earthquake.nshmp.internal.Parsing.Delimiter;
-import gov.usgs.earthquake.nshmp.www.meta.Metadata;
-import gov.usgs.earthquake.nshmp.www.meta.Status;
-import gov.usgs.earthquake.nshmp.www.services.ServletUtil;
-
-/**
- * AWS Lambda function to read in a curves file from AWS S3 and create slices at
- * return periods interest. <br>
- *
- * The results are written to S3 as map.csv bucket.
- */
-public class HazardResultSliceLambda implements RequestStreamHandler {
-
-  private static final AmazonS3 S3 = AmazonS3ClientBuilder.defaultClient();
-
-  private static final String RATE_FMT = "%.8e";
-  private static final Function<Double, String> FORMATTER = Parsing.formatDoubleFunction(RATE_FMT);
-
-  private static final int NUMBER_OF_HEADERS = 3;
-  private static final String CONTENT_TYPE = "text/csv";
-
-  private static final Interpolator INTERPOLATOR = Interpolator.builder()
-      .logx()
-      .logy()
-      .decreasingX()
-      .build();
-
-  @Override
-  public void handleRequest(
-      InputStream input,
-      OutputStream output,
-      Context context) throws IOException {
-    LambdaHelper lambdaHelper = new LambdaHelper(input, output, context);
-    String requestBucket = "";
-
-    try {
-      RequestData request = GSON.fromJson(lambdaHelper.requestJson, RequestData.class);
-      lambdaHelper.logger.log("Request Data: " + GSON.toJson(request) + "\n");
-      requestBucket = request.bucket + "/" + request.key;
-      checkRequest(request);
-      Response response = processRequest(request);
-      String json = GSON.toJson(response, Response.class);
-      lambdaHelper.logger.log("Result: " + json + "\n");
-      output.write(json.getBytes());
-      output.close();
-    } catch (Exception e) {
-      lambdaHelper.logger.log("\nError: " + Throwables.getStackTraceAsString(e) + "\n\n");
-      String message = Metadata.errorMessage(requestBucket, e, false);
-      output.write(message.getBytes());
-    }
-  }
-
-  private static Response processRequest(RequestData request) throws IOException {
-    List<InterpolatedData> data = readCurveFile(request);
-    String outputBucket = request.bucket + "/" + request.key;
-    StringBuilder csv = new StringBuilder();
-    createHeaderString(csv, request);
-    createDataString(csv, data);
-    writeResults(request, outputBucket, csv.toString().getBytes(Charsets.UTF_8));
-    return new Response(request, outputBucket);
-  }
-
-  private static List<InterpolatedData> readCurveFile(RequestData request) throws IOException {
-    S3Object object = S3.getObject(request.bucket, request.key + "/" + CURVES_FILE);
-    S3ObjectInputStream input = object.getObjectContent();
-    BufferedReader reader = new BufferedReader(new InputStreamReader(input));
-    List<String> lines = reader.lines().collect(Collectors.toList());
-    reader.close();
-
-    Optional<List<String>> header = lines.stream()
-        .filter(line -> !line.startsWith("#"))
-        .findFirst()
-        .map(line -> Parsing.splitToList(line, Delimiter.COMMA));
-
-    checkState(header.isPresent(), "Curve file is empty");
-
-    List<String> keys = header.get().subList(0, NUMBER_OF_HEADERS);
-    List<Double> imls = header.get().subList(NUMBER_OF_HEADERS, header.get().size())
-        .stream()
-        .map(iml -> Double.parseDouble(iml))
-        .collect(Collectors.toList());
-
-    List<InterpolatedData> data = new ArrayList<>();
-    lines.stream()
-        .filter(line -> !line.startsWith("#"))
-        .skip(1)
-        .forEach(line -> {
-          data.add(curveToInterpolatedData(request, line, keys, imls));
-        });
-
-    return data;
-  }
-
-  private static InterpolatedData curveToInterpolatedData(
-      RequestData request,
-      String line,
-      List<String> keys,
-      List<Double> imls) {
-    List<String> values = Parsing.splitToList(line, Delimiter.COMMA);
-    List<Double> gms = values.subList(NUMBER_OF_HEADERS, values.size())
-        .stream()
-        .map(gm -> Double.parseDouble(gm))
-        .collect(Collectors.toList());
-    values = values.subList(0, NUMBER_OF_HEADERS);
-
-    Site site = buildSite(keys, values);
-    List<Double> interpolatedValues = request.slices.stream()
-        .map(returnPeriod -> INTERPOLATOR.findX(imls, gms, returnPeriod))
-        .collect(Collectors.toList());
-
-    return new InterpolatedData(site, interpolatedValues);
-  }
-
-  private static Site buildSite(List<String> keys, List<String> values) {
-    Double lat = null;
-    Double lon = null;
-    String name = null;
-
-    for (int index = 0; index < keys.size(); index++) {
-      String key = keys.get(index);
-      String value = values.get(index);
-
-      switch (key) {
-        case Keys.LAT:
-          lat = Double.parseDouble(value);
-          break;
-        case Keys.LON:
-          lon = Double.parseDouble(value);
-          break;
-        case Keys.NAME:
-          name = value;
-          break;
-        default:
-          throw new IllegalStateException("Unsupported site key: " + key);
-      }
-    }
-
-    return Site.builder()
-        .location(lon, lat)
-        .name(name)
-        .build();
-  }
-
-  private static void checkRequest(RequestData request) {
-    if (request.bucket == null) {
-      throw new RuntimeException("Request does not contain a S3 bucket");
-    }
-
-    if (request.key == null) {
-      throw new RuntimeException("Request does not contain a S3 key");
-    }
-
-    if (request.slices == null) {
-      throw new RuntimeException("Request does not contain returnPeriods");
-    }
-  }
-
-  private static void createDataString(StringBuilder builder, List<InterpolatedData> data) {
-    data.forEach(datum -> {
-      List<String> locData = Lists.newArrayList(
-          datum.site.name,
-          String.format("%.5f", datum.site.location.longitude),
-          String.format("%.5f", datum.site.location.latitude));
-      builder.append(toLine(locData, datum.values) + "\n");
-    });
-  }
-
-  private static String toLine(
-      Iterable<String> strings,
-      Iterable<Double> values) {
-    return Parsing.join(
-        Iterables.concat(strings, Iterables.transform(values, FORMATTER::apply)),
-        Delimiter.COMMA);
-  }
-
-  private static void createHeaderString(StringBuilder builder, RequestData request) {
-    List<String> header = Lists.newArrayList(Keys.NAME, Keys.LON, Keys.LAT);
-    builder.append(toLine(header, request.slices) + "\n");
-  }
-
-  private static void writeResults(
-      RequestData request,
-      String outputBucket,
-      byte[] result) throws IOException {
-    ObjectMetadata metadata = new ObjectMetadata();
-
-    InputStream input = new ByteArrayInputStream(result);
-    metadata.setContentType(CONTENT_TYPE);
-    metadata.setContentLength(result.length);
-    PutObjectRequest putRequest = new PutObjectRequest(
-        request.bucket,
-        request.key + "/" + MAP_FILE,
-        input,
-        metadata);
-    S3.putObject(putRequest);
-    input.close();
-  }
-
-  static class RequestData {
-    String bucket;
-    String key;
-    List<Double> slices;
-
-    private RequestData(Builder builder) {
-      bucket = builder.bucket;
-      key = builder.key;
-      slices = builder.slices;
-    }
-
-    static Builder builder() {
-      return new Builder();
-    }
-
-    static class Builder {
-      private String bucket;
-      private String key;
-      private List<Double> slices;
-
-      Builder bucket(String bucket) {
-        this.bucket = bucket;
-        return this;
-      }
-
-      Builder key(String key) {
-        this.key = key;
-        return this;
-      }
-
-      Builder slices(List<Double> slices) {
-        this.slices = slices;
-        return this;
-      }
-
-      RequestData build() {
-        return new RequestData(this);
-      }
-
-    }
-
-  }
-
-  private static class Response {
-    final String status;
-    final String date;
-    final RequestData request;
-    final String csv;
-
-    Response(RequestData request, String outputBucket) {
-      status = Status.SUCCESS.toString();
-      date = ZonedDateTime.now().format(ServletUtil.DATE_FMT);
-      this.request = request;
-      this.csv = outputBucket + "/" + MAP_FILE;
-    }
-
-  }
-
-  private static class InterpolatedData {
-    Site site;
-    List<Double> values;
-
-    InterpolatedData(Site site, List<Double> values) {
-      this.site = site;
-      this.values = values;
-    }
-  }
-
-  private static class Keys {
-    static final String LAT = "lat";
-    static final String LON = "lon";
-    static final String NAME = "name";
-  }
-
-}
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsMetadataLambda.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsMetadataLambda.java
deleted file mode 100644
index 88c16e1e6..000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsMetadataLambda.java
+++ /dev/null
@@ -1,315 +0,0 @@
-package gov.usgs.earthquake.nshmp.aws;
-
-import static gov.usgs.earthquake.nshmp.aws.Util.CURVES_FILE;
-import static gov.usgs.earthquake.nshmp.aws.Util.MAP_FILE;
-import static gov.usgs.earthquake.nshmp.www.services.ServletUtil.GSON;
-
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-import java.util.stream.Collectors;
-
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-import com.amazonaws.services.s3.model.ListObjectsV2Request;
-import com.amazonaws.services.s3.model.ListObjectsV2Result;
-import com.amazonaws.services.s3.model.ObjectMetadata;
-import com.amazonaws.services.s3.model.PutObjectRequest;
-import com.google.common.base.Enums;
-import com.google.common.base.Throwables;
-
-import gov.usgs.earthquake.nshmp.aws.Util.LambdaHelper;
-import gov.usgs.earthquake.nshmp.calc.DataType;
-import gov.usgs.earthquake.nshmp.gmm.Gmm;
-import gov.usgs.earthquake.nshmp.gmm.Imt;
-import gov.usgs.earthquake.nshmp.internal.Parsing;
-import gov.usgs.earthquake.nshmp.internal.Parsing.Delimiter;
-import gov.usgs.earthquake.nshmp.model.SourceType;
-import gov.usgs.earthquake.nshmp.www.meta.Metadata;
-import gov.usgs.earthquake.nshmp.www.meta.Status;
-import gov.usgs.earthquake.nshmp.www.services.ServletUtil;
-
-/**
- * AWS Lambda function to list all hazard results in the nshmp-hazout S3 bucket
- * that contain a map.csv file.
- */
-public class HazardResultsMetadataLambda implements RequestStreamHandler {
-
-  private static final AmazonS3 S3 = AmazonS3ClientBuilder.defaultClient();
-
-  private static final int IMT_DIR_BACK_FROM_TOTAL = 2;
-  private static final int IMT_DIR_BACK_FROM_SOURCE = 4;
-  private static final String S3_BUCKET = "nshmp-hazout";
-  private static final String RESULT_BUCKET = "nshmp-haz-lambda";
-  private static final String RESULT_KEY = "nshmp-haz-aws-results-metadata.json";
-
-  @Override
-  public void handleRequest(
-      InputStream input,
-      OutputStream output,
-      Context context) throws IOException {
-    LambdaHelper lambdaHelper = new LambdaHelper(input, output, context);
-
-    try {
-      Response response = processRequest();
-      String json = GSON.toJson(response, Response.class);
-      uploadResults(json);
-      output.write(json.getBytes());
-      output.close();
-    } catch (Exception e) {
-      lambdaHelper.logger.log("\nError: " + Throwables.getStackTraceAsString(e) + "\n\n");
-      String message = Metadata.errorMessage("", e, false);
-      output.write(message.getBytes());
-    }
-  }
-
-  private static Response processRequest() {
-    Map<String, CurvesMapResult> curvesMapResults = new HashMap<>();
-    Set<String> users = getUsers();
-
-    for (String file : new String[] { CURVES_FILE, MAP_FILE }) {
-      List<HazardResults> hazardResults = listObjects(users, file);
-      CurvesMapResult result = new CurvesMapResult(users, hazardResults);
-      curvesMapResults.put(file, result);
-    }
-
-    Result result = new Result(curvesMapResults.get(CURVES_FILE), curvesMapResults.get(MAP_FILE));
-    return new Response(result);
-  }
-
-  private static List<HazardResults> listObjects(Set<String> users, String file) {
-    ListObjectsV2Request request = new ListObjectsV2Request()
-        .withBucketName(S3_BUCKET)
-        .withDelimiter(file);
-    ListObjectsV2Result s3Result;
-    List<S3Listing> s3Listings = new ArrayList<>();
-
-    do {
-      s3Result = S3.listObjectsV2(request);
-      s3Result.getCommonPrefixes()
-          .stream()
-          .map(key -> keyToHazardListing(key))
-          .forEach(listing -> s3Listings.add(listing));
-
-      request.setContinuationToken(s3Result.getNextContinuationToken());
-    } while (s3Result.isTruncated());
-
-    return transformS3Listing(users, s3Listings);
-  }
-
-  private static List<HazardResults> transformS3Listing(
-      Set<String> users,
-      List<S3Listing> s3Listings) {
-    List<HazardResults> hazardResults = new ArrayList<>();
-
-    users.forEach(user -> {
-      TreeSet<String> resultDirectories = s3Listings.stream()
-          .filter(listing -> listing.user.equals(user))
-          .map(listing -> listing.resultPrefix)
-          .collect(Collectors.toCollection(TreeSet::new));
-
-      resultDirectories.forEach(resultPrefix -> {
-        List<S3Listing> s3Filteredlistings = s3Listings.parallelStream()
-            .filter(listing -> listing.user.equals(user))
-            .filter(listing -> listing.resultPrefix.equals(resultPrefix))
-            .collect(Collectors.toList());
-
-        List<HazardListing> listings = s3Filteredlistings.parallelStream()
-            .map(listing -> s3ListingToHazardListing(listing))
-            .collect(Collectors.toList());
-
-        S3Listing s3Listing = s3Filteredlistings.get(0);
-        String path = s3Listing.path.split(resultPrefix)[0];
-        String s3Path = s3Listing.user + "/" + path + resultPrefix;
-
-        hazardResults.add(new HazardResults(
-            user,
-            s3Listing.bucket,
-            resultPrefix,
-            s3Path,
-            listings));
-      });
-    });
-
-    return hazardResults;
-  }
-
-  private static HazardListing s3ListingToHazardListing(S3Listing s3Listing) {
-    return new HazardListing(s3Listing.dataType, s3Listing.path, s3Listing.file);
-  }
-
-  private static S3Listing keyToHazardListing(String key) {
-    List<String> keys = Parsing.splitToList(key, Delimiter.SLASH);
-    HazardDataType<?> dataType = getDataType(keys);
-    String user = keys.get(0);
-    String file = keys.get(keys.size() - 1);
-    String path = keys.subList(1, keys.size() - 1)
-        .stream()
-        .collect(Collectors.joining("/"));
-
-    return new S3Listing(user, S3_BUCKET, path, file, dataType);
-  }
-
-  private static Set<String> getUsers() {
-    ListObjectsV2Request request = new ListObjectsV2Request()
-        .withBucketName(S3_BUCKET)
-        .withDelimiter("/");
-
-    ListObjectsV2Result listing = S3.listObjectsV2(request);
-
-    return listing.getCommonPrefixes().stream()
-        .map(prefix -> prefix.replace("/", ""))
-        .collect(Collectors.toCollection(TreeSet::new));
-  }
-
-  private static HazardDataType<?> getDataType(List<String> keys) {
-    String sourceType = keys.get(keys.size() - IMT_DIR_BACK_FROM_TOTAL);
-    HazardDataType<?> dataType = null;
-    String resultDirectory = null;
-    Imt imt = null;
-
-    if (Enums.getIfPresent(SourceType.class, sourceType).isPresent()) {
-      imt = Imt.valueOf(keys.get(keys.size() - IMT_DIR_BACK_FROM_SOURCE));
-      resultDirectory = keys.get(keys.size() - IMT_DIR_BACK_FROM_SOURCE - 1);
-      SourceType type = SourceType.valueOf(sourceType);
-      dataType = new HazardDataType<SourceType>(imt, DataType.SOURCE, type, resultDirectory);
-    } else if (Enums.getIfPresent(Gmm.class, sourceType).isPresent()) {
-      imt = Imt.valueOf(keys.get(keys.size() - IMT_DIR_BACK_FROM_SOURCE));
-      resultDirectory = keys.get(keys.size() - IMT_DIR_BACK_FROM_SOURCE - 1);
-      Gmm type = Gmm.valueOf(sourceType);
-      dataType = new HazardDataType<Gmm>(imt, DataType.GMM, type, resultDirectory);
-    } else if (Enums.getIfPresent(Imt.class, sourceType).isPresent()) {
-      Imt type = Imt.valueOf(sourceType);
-      resultDirectory = keys.get(keys.size() - IMT_DIR_BACK_FROM_TOTAL - 1);
-      imt = type;
-      dataType = new HazardDataType<Imt>(imt, DataType.TOTAL, type, resultDirectory);
-    } else {
-      throw new RuntimeException("Source type [" + sourceType + "] not supported");
-    }
-
-    return dataType;
-  }
-
-  private static void uploadResults(String results) {
-    byte[] bytes = results.getBytes();
-    ByteArrayInputStream input = new ByteArrayInputStream(bytes);
-    ObjectMetadata metadata = new ObjectMetadata();
-    metadata.setContentLength(bytes.length);
-    metadata.setContentType("application/json");
-
-    PutObjectRequest request = new PutObjectRequest(
-        RESULT_BUCKET,
-        RESULT_KEY,
-        input,
-        metadata);
-
-    S3.putObject(request);
-  }
-
-  static class HazardDataType<E extends Enum<E>> {
-    final Imt imt;
-    final DataType type;
-    final transient String resultPrefix;
-    final E sourceType;
-
-    HazardDataType(Imt imt, DataType type, E sourceType, String resultPrefix) {
-      this.imt = imt;
-      this.type = type;
-      this.resultPrefix = resultPrefix;
-      this.sourceType = sourceType;
-    }
-  }
-
-  private static class HazardResults {
-    final String user;
-    final String bucket;
-    final String resultPrefix;
-    final String path;
-    final List<HazardListing> listings;
-
-    HazardResults(
-        String user,
-        String bucket,
-        String resultPrefix,
-        String path,
-        List<HazardListing> listings) {
-      this.user = user;
-      this.bucket = bucket;
-      this.resultPrefix = resultPrefix;
-      this.path = path;
-      this.listings = listings;
-    }
-  }
-
-  private static class HazardListing {
-    final HazardDataType<?> dataType;
-    final String file;
-    final String path;
-
-    HazardListing(HazardDataType<?> dataType, String path, String file) {
-      this.dataType = dataType;
-      this.file = file;
-      this.path = path;
-    }
-  }
-
-  private static class S3Listing {
-    final String user;
-    final String bucket;
-    final String path;
-    final String file;
-    final String resultPrefix;
-    final HazardDataType<?> dataType;
-
-    S3Listing(String user, String bucket, String path, String file, HazardDataType<?> dataType) {
-      this.user = user;
-      this.bucket = bucket;
-      this.path = path;
-      this.file = file;
-      this.resultPrefix = dataType.resultPrefix;
-      this.dataType = dataType;
-    }
-  }
-
-  private static class CurvesMapResult {
-    final Set<String> users;
-    final List<HazardResults> hazardResults;
-
-    CurvesMapResult(Set<String> users, List<HazardResults> hazardResults) {
-      this.users = users;
-      this.hazardResults = hazardResults;
-    }
-  }
-
-  private static class Result {
-    final CurvesMapResult curves;
-    final CurvesMapResult map;
-
-    Result(CurvesMapResult curves, CurvesMapResult map) {
-      this.curves = curves;
-      this.map = map;
-    }
-  }
-
-  private static class Response {
-    final String status;
-    final String date;
-    final Result result;
-
-    Response(Result result) {
-      status = Status.SUCCESS.toString();
-      date = ZonedDateTime.now().format(ServletUtil.DATE_FMT);
-      this.result = result;
-    }
-  }
-}
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
deleted file mode 100644
index a535f4cd8..000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/HazardResultsSlicerLambda.java
+++ /dev/null
@@ -1,214 +0,0 @@
-package gov.usgs.earthquake.nshmp.aws;
-
-import static gov.usgs.earthquake.nshmp.aws.Util.CURVES_FILE;
-import static gov.usgs.earthquake.nshmp.www.services.ServletUtil.GSON;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.time.ZonedDateTime;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.CompletableFuture;
-import java.util.stream.Collectors;
-
-import com.amazonaws.services.ec2.AmazonEC2;
-import com.amazonaws.services.ec2.AmazonEC2ClientBuilder;
-import com.amazonaws.services.lambda.AWSLambda;
-import com.amazonaws.services.lambda.AWSLambdaClientBuilder;
-import com.amazonaws.services.lambda.model.InvokeRequest;
-import com.amazonaws.services.lambda.model.InvokeResult;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-import com.amazonaws.services.s3.AmazonS3;
-import com.amazonaws.services.s3.AmazonS3ClientBuilder;
-import com.amazonaws.services.s3.model.ObjectListing;
-import com.google.common.base.Throwables;
-
-import gov.usgs.earthquake.nshmp.aws.Util.LambdaHelper;
-import gov.usgs.earthquake.nshmp.internal.Parsing;
-import gov.usgs.earthquake.nshmp.internal.Parsing.Delimiter;
-import gov.usgs.earthquake.nshmp.www.meta.Metadata;
-import gov.usgs.earthquake.nshmp.www.meta.Status;
-import gov.usgs.earthquake.nshmp.www.services.ServletUtil;
-
-/**
- * AWS Lambda function to read in hazard results from S3 and to create slices of
- * return periods of interest.
- *
- * @see HazardResultSliceLambda
- */
-public class HazardResultsSlicerLambda implements RequestStreamHandler {
-
-  private static final AmazonS3 S3 = AmazonS3ClientBuilder.defaultClient();
-  private static final AmazonEC2 EC2 = AmazonEC2ClientBuilder.defaultClient();
-  private static final AWSLambda LAMBDA_CLIENT = AWSLambdaClientBuilder.defaultClient();
-
-  private static final String CURVE_SLICE_LAMBDA = System.getenv("CURVE_SLICE_LAMBDA_NAME");
-  private static final String INSTANCE_STATUS = "terminated";
-
-  private static final int MAX_INSTANCE_CHECK = 100;
-  private static final int INSTANCE_CHECK_TIMEOUT = 10 * 1000;
-
-  @Override
-  public void handleRequest(
-      InputStream input,
-      OutputStream output,
-      Context context) throws IOException {
-    LambdaHelper lambdaHelper = new LambdaHelper(input, output, context);
-    String requestBucket = "";
-
-    try {
-      RequestData request = GSON.fromJson(lambdaHelper.requestJson, RequestData.class);
-      requestBucket = String.format("%s/%s", request.bucket, request.key);
-      lambdaHelper.logger.log("Request Data: " + GSON.toJson(request) + "\n\n");
-      checkRequest(request);
-      checkBucket(request);
-      Response response = processRequest(lambdaHelper, request);
-      output.write(GSON.toJson(response, Response.class).getBytes());
-    } catch (Exception e) {
-      lambdaHelper.logger.log("\nError: " + Throwables.getStackTraceAsString(e) + "\n\n");
-      String message = Metadata.errorMessage(requestBucket, e, false);
-      output.write(message.getBytes());
-    }
-  }
-
-  private static Response processRequest(
-      LambdaHelper lambdaHelper,
-      RequestData request) throws IOException, InterruptedException {
-    ObjectListing objectListing = S3.listObjects(request.bucket, request.key);
-    List<CompletableFuture<Void>> futures = new ArrayList<>();
-
-    objectListing.getObjectSummaries()
-        .parallelStream()
-        .filter(summary -> summary.getKey().endsWith(CURVES_FILE))
-        .forEach(summary -> {
-          String name = summary.getKey();
-          lambdaHelper.logger.log("Reading: " + name + "\n");
-          try {
-            futures.add(processCurveFile(request, lambdaHelper, name));
-          } catch (IOException e) {
-            throw new RuntimeException(e);
-          }
-        });
-
-    futures.forEach(CompletableFuture::join);
-    lambdaHelper.logger.log("Zipping results");
-    return new Response(request);
-  }
-
-  private static CompletableFuture<Void> processCurveFile(
-      RequestData request,
-      LambdaHelper lambdaHelper,
-      String curvesPath) throws IOException {
-    return readCurveFile(request, curvesPath)
-        .thenAcceptAsync(result -> {
-          checkLambdaResponse(result);
-        });
-  }
-
-  private static CompletableFuture<InvokeResult> readCurveFile(
-      RequestData request,
-      String curvesPath) throws IOException {
-    List<String> names = Arrays.stream(curvesPath.split("/"))
-        .collect(Collectors.toList());
-    names.remove(names.size() - 1);
-    String key = Parsing.join(names, Delimiter.SLASH);
-
-    HazardResultSliceLambda.RequestData lambdaRequest = HazardResultSliceLambda.RequestData
-        .builder()
-        .bucket(request.bucket)
-        .key(key)
-        .slices(request.slices)
-        .build();
-
-    InvokeRequest invokeRequest = new InvokeRequest()
-        .withFunctionName(CURVE_SLICE_LAMBDA)
-        .withPayload(GSON.toJson(lambdaRequest));
-
-    return CompletableFuture.supplyAsync(() -> {
-      return LAMBDA_CLIENT.invoke(invokeRequest);
-    });
-  }
-
-  private static void checkRequest(RequestData request) {
-    if (request.bucket == null) {
-      throw new RuntimeException("Request does not contain a S3 bucket");
-    }
-
-    if (request.key == null) {
-      throw new RuntimeException("Request does not contain a S3 key");
-    }
-
-    if (request.slices == null) {
-      throw new RuntimeException("Request does not contain slices");
-    }
-  }
-
-  private static void checkBucket(RequestData request) {
-    if (!S3.doesBucketExistV2(request.bucket)) {
-      throw new RuntimeException(String.format("S3 bucket [%s] does not exist", request.bucket));
-    }
-  }
-
-  private static void checkLambdaResponse(InvokeResult result) {
-    try {
-      LambdaResponse response = GSON.fromJson(
-          new String(result.getPayload().array()),
-          LambdaResponse.class);
-
-      if (Status.ERROR.toString().equals(response.status)) {
-        throw new RuntimeException(response.message);
-      }
-    } catch (Exception e) {
-      throw new RuntimeException(e);
-    }
-  }
-
-  private static class LambdaResponse {
-    String status;
-    String message;
-  }
-
-  private static class ZipResultsResponse extends LambdaResponse {
-    ZipResult result;
-    ZipRequest request;
-
-    private static class ZipRequest {
-      String bucket;
-      String key;
-    }
-
-    private static class ZipResult {
-      String path;
-      String instanceId;
-
-      ZipResult(String path, String instanceId) {
-        this.path = path;
-        this.instanceId = instanceId;
-      }
-    }
-  }
-
-  private static class RequestData {
-    String bucket;
-    String key;
-    List<Double> slices;
-  }
-
-  private static class Response {
-    final String status;
-    final String date;
-    final RequestData request;
-    final String outputBucket;
-
-    Response(RequestData request) {
-      status = Status.SUCCESS.toString();
-      date = ZonedDateTime.now().format(ServletUtil.DATE_FMT);
-      this.request = request;
-      this.outputBucket = String.format("%s/%s", request.bucket, request.key);
-    }
-  }
-
-}
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/aws/Util.java b/src/main/java/gov/usgs/earthquake/nshmp/aws/Util.java
deleted file mode 100644
index 13db3f37c..000000000
--- a/src/main/java/gov/usgs/earthquake/nshmp/aws/Util.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package gov.usgs.earthquake.nshmp.aws;
-
-import java.io.BufferedReader;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.LambdaLogger;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParser;
-
-public class Util {
-
-  static final String CURVES_FILE = "curves.csv";
-  static final String MAP_FILE = "map.csv";
-
-  /**
-   * Parse the Lambda function {@code InputStream} into an {@code JsonObject}.
-   */
-  static class LambdaHelper {
-    JsonObject requestJson;
-    Context context;
-    LambdaLogger logger;
-    OutputStream output;
-
-    LambdaHelper(InputStream input, OutputStream output, Context context)
-        throws UnsupportedEncodingException {
-      logger = context.getLogger();
-      this.context = context;
-      this.output = output;
-
-      BufferedReader reader = new BufferedReader(new InputStreamReader(input));
-      JsonParser parser = new JsonParser();
-
-      requestJson = parser.parse(reader).getAsJsonObject();
-    }
-  }
-
-}
-- 
GitLab


From ffb4bc64bbbb54fcd12a147afcf76e2ba1ced404 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:24:57 -0600
Subject: [PATCH 25/39] create slices

---
 src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index dec96fb77..5fc4aef4f 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -23,6 +23,7 @@ import com.google.common.base.Throwables;
 import com.google.common.util.concurrent.MoreExecutors;
 
 import gov.usgs.earthquake.nshmp.calc.CalcConfig;
+import gov.usgs.earthquake.nshmp.calc.DataType;
 import gov.usgs.earthquake.nshmp.calc.Hazard;
 import gov.usgs.earthquake.nshmp.calc.HazardCalcs;
 import gov.usgs.earthquake.nshmp.calc.HazardExport;
@@ -113,6 +114,10 @@ public class HazardCalc {
       Path out = calc(model, config, sites, log);
       log.info(PROGRAM + ": finished");
 
+      if (config.output.dataTypes.contains(DataType.MAP)) {
+        HazardMaps.createDataSets(out, config.output.returnPeriods);
+      }
+
       /* Transfer log and write config, windows requires fh.close() */
       fh.close();
       Files.move(tmpLog, out.resolve(PROGRAM + ".log"));
-- 
GitLab


From a0600eba9249c6e6918614188f19a9708fdad983 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:25:22 -0600
Subject: [PATCH 26/39] Crete hazard map data sets

---
 .../gov/usgs/earthquake/nshmp/HazardMaps.java | 168 ++++++++++++++++++
 1 file changed, 168 insertions(+)
 create mode 100644 src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
new file mode 100644
index 000000000..9c543e04d
--- /dev/null
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
@@ -0,0 +1,168 @@
+package gov.usgs.earthquake.nshmp;
+
+import java.io.IOException;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import gov.usgs.earthquake.nshmp.data.Interpolator;
+
+/**
+ * Utility class to create hazard map datasets from a hazard curve results.
+ * Methods in class assume *.csv curve files have no comments and have a header
+ * row that starts with {@code "name,lon,lat,..."} or {@code "lon,lat,..."}.
+ *
+ * @author U.S. Geological Survey
+ */
+public class HazardMaps {
+
+  private static final String COMMA = ",";
+  private static final String CURVES_FILE = "curves.csv";
+  private static final String MAP_FILE = "map.csv";
+  private static final Interpolator INTERPOLATOR = Interpolator.builder()
+      .logx()
+      .logy()
+      .decreasingX()
+      .build();
+
+  private HazardMaps() {}
+
+  /**
+   * Command line application to create a file of return period slices through a
+   * hazard curve dataset. Result of slicing job is saved to a {@code map.csv}
+   * file in the same directory as the source.
+   *
+   * @param args a path to a hazard curve result file or directory. If the
+   *        supplied path is a directory, application will recurse through file
+   *        tree slicing each {@code curves.csv} file encountered.
+   */
+  public static void main(String[] args) {
+    if (args.length < 2) {
+      System.out.println("Usage: Supply a path to a file of hazard curve results and");
+      System.out.println("       a space separated list of return periods (in yr)");
+    }
+
+    Path curvesPath = Path.of(args[0]);
+    List<Integer> returnPeriods = Arrays.stream(args)
+        .skip(1)
+        .mapToInt(Integer::valueOf)
+        .boxed()
+        .collect(Collectors.toList());
+
+    try {
+      createDataSets(curvesPath, returnPeriods);
+    } catch (Exception e) {
+      System.out.println("Processing Error");
+      System.out.println("Arguments: " + Arrays.toString(args));
+      e.printStackTrace();
+    }
+  }
+
+  static void createDataSets(Path curvesPath, List<Integer> returnPeriods) throws IOException {
+    if (Files.isDirectory(curvesPath)) {
+      CurvesVisitor curvesFinder = new CurvesVisitor(returnPeriods);
+      Files.walkFileTree(curvesPath, curvesFinder);
+    } else {
+      processCurveFile(curvesPath, returnPeriods);
+    }
+  }
+
+  private static List<String> create(List<String> lines, List<Integer> returnPeriods) {
+    int headerCount = lines.get(0).startsWith("name") ? 3 : 2;
+    List<String> header = Arrays.asList(lines.get(0).split(COMMA));
+
+    String siteStr = header.subList(0, headerCount)
+        .stream()
+        .collect(Collectors.joining(COMMA));
+
+    double[] imls = header.subList(headerCount, header.size())
+        .stream()
+        .mapToDouble(Double::valueOf)
+        .toArray();
+
+    StringBuilder mapHeader = new StringBuilder(siteStr);
+    returnPeriods.forEach(rp -> mapHeader.append(COMMA).append(rp));
+
+    List<String> linesOut = new ArrayList<>(lines.size());
+    linesOut.add(mapHeader.toString());
+
+    Slicer slicer = new Slicer(returnPeriods, imls, headerCount);
+
+    lines.stream()
+        .skip(1)
+        .map(slicer::slice)
+        .forEach(linesOut::add);
+
+    return linesOut;
+  }
+
+  private static void processCurveFile(Path curves, List<Integer> returnPeriods) {
+    try (Stream<String> stream = Files.lines(curves)) {
+      List<String> linesIn = stream.collect(Collectors.toList());
+      List<String> linesOut = create(linesIn, returnPeriods);
+      Path maps = curves.resolveSibling(MAP_FILE);
+      Files.write(maps, linesOut);
+    } catch (IOException ioe) {
+      throw new RuntimeException(ioe);
+    }
+  }
+
+  private static class CurvesVisitor extends SimpleFileVisitor<Path> {
+    List<Integer> returnPeriods;
+
+    public CurvesVisitor(List<Integer> returnPeriods) {
+      this.returnPeriods = returnPeriods;
+    }
+
+    @Override
+    public FileVisitResult visitFile(Path path, BasicFileAttributes attrs) {
+      Path fileName = path.getFileName();
+      if (fileName != null && fileName.endsWith(CURVES_FILE)) {
+        processCurveFile(path, returnPeriods);
+      }
+      return FileVisitResult.CONTINUE;
+    }
+  }
+
+  private static class Slicer {
+    private final List<Integer> returnPeriods;
+    private final double[] imls;
+    private final int headerCount;
+
+    private Slicer(List<Integer> returnPeriods, double imls[], int headerCount) {
+      this.returnPeriods = returnPeriods;
+      this.imls = imls;
+      this.headerCount = headerCount;
+    }
+
+    private String slice(String line) {
+      List<String> elements = Arrays.asList(line.split(COMMA));
+      String siteStr = elements.subList(0, headerCount)
+        .stream()
+        .collect(Collectors.joining(COMMA));
+
+      StringBuilder lineOut = new StringBuilder(siteStr);
+
+      double[] rates = elements
+          .stream()
+          .skip(headerCount)
+          .mapToDouble(Double::valueOf)
+          .toArray();
+
+      for (double returnPeriod : returnPeriods) {
+        lineOut.append(COMMA);
+        lineOut.append(INTERPOLATOR.findX(imls, rates, 1 / returnPeriod));
+      }
+
+      return lineOut.toString();
+    }
+  }
+
+}
-- 
GitLab


From e4cc1af61e8145f4eddbbfc5448f19cd0815a6fe Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:26:05 -0600
Subject: [PATCH 27/39] update pipeline

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index d2a0e9892..68d47612a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -132,7 +132,7 @@ Unit Tests:
   rules:
     -
       changes:
-        - 'src/**'
+        - 'src/**/*'
         - '*gradle*'
       when: on_success
     -
-- 
GitLab


From a853dab5d3eb3190c0ec02510ac8f27669aa32e6 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:26:54 -0600
Subject: [PATCH 28/39] spotless apply

---
 src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
index 9c543e04d..b95c8874a 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
@@ -145,8 +145,8 @@ public class HazardMaps {
     private String slice(String line) {
       List<String> elements = Arrays.asList(line.split(COMMA));
       String siteStr = elements.subList(0, headerCount)
-        .stream()
-        .collect(Collectors.joining(COMMA));
+          .stream()
+          .collect(Collectors.joining(COMMA));
 
       StringBuilder lineOut = new StringBuilder(siteStr);
 
-- 
GitLab


From 51ec9e86bffa4e4b44c78a1c3152f53941a09716 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Wed, 4 Aug 2021 17:36:58 -0600
Subject: [PATCH 29/39] remove build lambda

---
 .gitlab-ci.yml      | 23 -----------------------
 build.gradle        |  1 -
 gradle/tasks.gradle | 16 ----------------
 3 files changed, 40 deletions(-)
 delete mode 100644 gradle/tasks.gradle

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 68d47612a..1936de2a1 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -62,29 +62,6 @@ Build Image WS:
     DOCKERFILE: ws.Dockerfile
     UPSTREAM_PATH: ghsc/nshmp/nshmp-haz
 
-Build Lambda:
-  artifacts:
-    expire_in: 1 yr
-    paths:
-      - build/libs/nshmp-haz.jar
-      - build/libs/nshmp-haz-dependencies.zip
-  extends:
-    - .gradle
-  needs:
-    - Init
-  rules:
-    -
-      changes:
-        - 'src/**'
-        - '*gradle*'
-      when: on_success
-    -
-      allow_failure: true
-      when: manual
-  script:
-    - ./gradlew assemble
-    - ./gradlew libs
-
 Build Project:
   extends:
     - .gradle
diff --git a/build.gradle b/build.gradle
index cf42f93f7..4e0a5e5b9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -49,7 +49,6 @@ apply from: "${projectDir}/gradle/ext.gradle"
 apply from: "${projectDir}/gradle/jar.gradle"
 apply from: "${projectDir}/gradle/javadoc.gradle"
 apply from: "${projectDir}/gradle/repositories.gradle"
-apply from: "${projectDir}/gradle/tasks.gradle"
 
 sourceCompatibility = JavaVersion.VERSION_11
 compileJava.options.encoding = "UTF-8"
diff --git a/gradle/tasks.gradle b/gradle/tasks.gradle
deleted file mode 100644
index 5375745fc..000000000
--- a/gradle/tasks.gradle
+++ /dev/null
@@ -1,16 +0,0 @@
-
-/*
- * Create a zip file of all dependencies
- */
-task libs(type: Zip) {
-  archiveBaseName = "nshmp-haz-dependencies"
-  from {
-    configurations.compileClasspath.collect {
-      it
-    }
-  }
-
-  into("java/lib")
-
-  destinationDirectory.value(libsDirectory)
-}
-- 
GitLab


From 3379e6cb27f044c4a438d28668eefa36e358f524 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 08:08:02 -0600
Subject: [PATCH 30/39] add return periods

---
 docs/pages/Calculation-Configuration.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 36778cf8e..723bbb987 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -36,7 +36,8 @@ __`site`__
 &nbsp;&nbsp;&nbsp;`.z2p5`                  |`Double`   | `null`                    | [7](#notes)
 __`output`__                               |
 &nbsp;&nbsp;&nbsp;`.directory`             |`String`   | `hazout`
-&nbsp;&nbsp;&nbsp;`.dataTypes`             |`String[]` | `[ TOTAL ]`               | [`DataType`][url-datatype]
+&nbsp;&nbsp;&nbsp;`.dataTypes`             |`String[]` | `[ TOTAL, MAP ]`          | [`DataType`][url-datatype]
+&nbsp;&nbsp;&nbsp;`.returnPeriods`         |`Integer[]`| `[ 475, 975, 2475 ]`      | [`ReturnPeriods`][url-returnperiods]
 __`performance`__
 &nbsp;&nbsp;&nbsp;`.optimizeGrids`         |`Boolean`  | `true`                    | [8](#notes)
 &nbsp;&nbsp;&nbsp;`.smoothGrids`           |`Boolean`  | `true`                    | [9](#notes)
@@ -49,6 +50,7 @@ __`performance`__
 [url-distribution]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DistributionFormat.html
 [url-site]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/Site.html
 [url-datatype]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DataType.html
+[url-returnperiods]: https://staging-earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/CalcConfig.Output.html#returnPeriods
 [url-sheets]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ThreadCount.html
 
 ### Notes
-- 
GitLab


From 952dfd071172a07ced40e0ec26481cd5ca742639 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 08:10:40 -0600
Subject: [PATCH 31/39] add return periods

---
 docs/pages/Calculation-Configuration.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/pages/Calculation-Configuration.md b/docs/pages/Calculation-Configuration.md
index 723bbb987..c7a20bde5 100644
--- a/docs/pages/Calculation-Configuration.md
+++ b/docs/pages/Calculation-Configuration.md
@@ -50,7 +50,7 @@ __`performance`__
 [url-distribution]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DistributionFormat.html
 [url-site]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/Site.html
 [url-datatype]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/DataType.html
-[url-returnperiods]: https://staging-earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/CalcConfig.Output.html#returnPeriods
+[url-returnperiods]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/CalcConfig.Output.html#returnPeriods
 [url-sheets]: https://earthquake.usgs.gov/nshmp/docs/nshmp-lib/gov/usgs/earthquake/nshmp/calc/ThreadCount.html
 
 ### Notes
-- 
GitLab


From aebde66544e0f75d8b054d8581534c4b241126db Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 08:44:54 -0600
Subject: [PATCH 32/39] add log, add formatter

---
 .../gov/usgs/earthquake/nshmp/HazardCalc.java |  5 ++-
 .../gov/usgs/earthquake/nshmp/HazardMaps.java | 43 ++++++++++++++-----
 2 files changed, 35 insertions(+), 13 deletions(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
index 5fc4aef4f..624c9ffe0 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java
@@ -112,12 +112,13 @@ public class HazardCalc {
       log.info("Sites: " + sites);
 
       Path out = calc(model, config, sites, log);
-      log.info(PROGRAM + ": finished");
 
       if (config.output.dataTypes.contains(DataType.MAP)) {
-        HazardMaps.createDataSets(out, config.output.returnPeriods);
+        HazardMaps.createDataSets(out, config.output.returnPeriods, log);
       }
 
+      log.info(PROGRAM + ": finished");
+
       /* Transfer log and write config, windows requires fh.close() */
       fh.close();
       Files.move(tmpLog, out.resolve(PROGRAM + ".log"));
diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
index b95c8874a..d31672fdf 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
@@ -9,10 +9,13 @@ import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.function.Function;
+import java.util.logging.Logger;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import gov.usgs.earthquake.nshmp.data.Interpolator;
+import gov.usgs.earthquake.nshmp.internal.Parsing;
 
 /**
  * Utility class to create hazard map datasets from a hazard curve results.
@@ -25,12 +28,16 @@ public class HazardMaps {
 
   private static final String COMMA = ",";
   private static final String CURVES_FILE = "curves.csv";
-  private static final String MAP_FILE = "map.csv";
+  private static final List<Integer> DEFAULT_RETURN_PERIODS = List.of(475, 975, 2475);
   private static final Interpolator INTERPOLATOR = Interpolator.builder()
       .logx()
       .logy()
       .decreasingX()
       .build();
+  private static final String MAP_FILE = "map.csv";
+  private static final String PROGRAM = HazardMaps.class.getSimpleName();
+  private static final String VALUE_FMT = "%.8e";
+  private static final Function<Double, String> VALUE_FORMATTER = Parsing.formatDoubleFunction(VALUE_FMT);
 
   private HazardMaps() {}
 
@@ -44,20 +51,27 @@ public class HazardMaps {
    *        tree slicing each {@code curves.csv} file encountered.
    */
   public static void main(String[] args) {
-    if (args.length < 2) {
+    if (args.length < 1) {
       System.out.println("Usage: Supply a path to a file of hazard curve results and");
-      System.out.println("       a space separated list of return periods (in yr)");
+      System.out.println("       optionally a space separated list of return periods (in yr)");
+      System.out.println("       default return periods: 475 975 2475");
+      return;
     }
 
     Path curvesPath = Path.of(args[0]);
-    List<Integer> returnPeriods = Arrays.stream(args)
-        .skip(1)
-        .mapToInt(Integer::valueOf)
-        .boxed()
-        .collect(Collectors.toList());
+    List<Integer> returnPeriods = DEFAULT_RETURN_PERIODS;
+    Logger log = Logger.getLogger(HazardMaps.class.getName());
+
+    if (args.length > 1) {
+      returnPeriods = Arrays.stream(args)
+          .skip(1)
+          .mapToInt(Integer::valueOf)
+          .boxed()
+          .collect(Collectors.toList());
+    }
 
     try {
-      createDataSets(curvesPath, returnPeriods);
+      createDataSets(curvesPath, returnPeriods, log);
     } catch (Exception e) {
       System.out.println("Processing Error");
       System.out.println("Arguments: " + Arrays.toString(args));
@@ -65,7 +79,14 @@ public class HazardMaps {
     }
   }
 
-  static void createDataSets(Path curvesPath, List<Integer> returnPeriods) throws IOException {
+  static void createDataSets(
+      Path curvesPath,
+      List<Integer> returnPeriods,
+      Logger log) throws IOException {
+    log.info(PROGRAM + ": Creating hazard map dataset:");
+    log.info("\tReturn periods: " + returnPeriods.toString());
+    log.info("\tPath: " + curvesPath.toAbsolutePath().toString());
+
     if (Files.isDirectory(curvesPath)) {
       CurvesVisitor curvesFinder = new CurvesVisitor(returnPeriods);
       Files.walkFileTree(curvesPath, curvesFinder);
@@ -158,7 +179,7 @@ public class HazardMaps {
 
       for (double returnPeriod : returnPeriods) {
         lineOut.append(COMMA);
-        lineOut.append(INTERPOLATOR.findX(imls, rates, 1 / returnPeriod));
+        lineOut.append(VALUE_FORMATTER.apply(INTERPOLATOR.findX(imls, rates, 1 / returnPeriod)));
       }
 
       return lineOut.toString();
-- 
GitLab


From e46b52d353ddf6627049d48e8e9a6fb871b8922e Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 08:45:29 -0600
Subject: [PATCH 33/39] add log, add formatter

---
 src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
index d31672fdf..cea833653 100644
--- a/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
+++ b/src/main/java/gov/usgs/earthquake/nshmp/HazardMaps.java
@@ -37,7 +37,8 @@ public class HazardMaps {
   private static final String MAP_FILE = "map.csv";
   private static final String PROGRAM = HazardMaps.class.getSimpleName();
   private static final String VALUE_FMT = "%.8e";
-  private static final Function<Double, String> VALUE_FORMATTER = Parsing.formatDoubleFunction(VALUE_FMT);
+  private static final Function<Double, String> VALUE_FORMATTER =
+      Parsing.formatDoubleFunction(VALUE_FMT);
 
   private HazardMaps() {}
 
-- 
GitLab


From 40c06dc3c6a56f17080836a5c6790a51eaf1c6b9 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 13:20:26 -0600
Subject: [PATCH 34/39] simplify script

---
 scripts/docker-entrypoint.sh | 111 +++++++++++++++++++++--------------
 1 file changed, 68 insertions(+), 43 deletions(-)

diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh
index 3fbe1f8c4..c4a847f80 100644
--- a/scripts/docker-entrypoint.sh
+++ b/scripts/docker-entrypoint.sh
@@ -1,50 +1,75 @@
 #!/bin/bash
-# shellcheck disable=SC1090
-
-source "$(dirname "${0}")/docker-config.inc.sh";
-exit_status=${?};
-[ "${exit_status}" -eq 0 ] || exit "${exit_status}";
-
-# Get nshmp program to call
-nshmp_program=$(get_nshmp_program "${PROGRAM}");
-exit_status=${?};
-check_exit_status "${exit_status}";
-
-# Get model path to use
-if [ "${MOUNT_MODEL}" = true ]; then
-  nshm_path="model";
-else
-  nshm_path=$(get_model_path "${MODEL}" "${NSHM_VERSION}");
+
+##
+# Run nshmp-haz
+##
+main() {
+  # Get name of sites file
+  sites_file=$(ls /app/sites.*);
+
+  # Run nshmp-haz
+  java "${JAVA_OPTS}" \
+      -cp "/app/nshmp-haz.jar" \
+      "gov.usgs.earthquake.nshmp.${CLASS_NAME}" \
+      "${MODEL_PATH}" \
+      "${sites_file}" \
+      ${RETURN_PERIOD:+ "${RETURN_PERIOD}"} \
+      ${IML:+ "${IML}"} \
+      "${CONFIG_FILE}";
+  exit_status=${?};
+  check_exit_status "${exit_status}";
+
+  # Move results to container volume
+  move_to_output_volume;
   exit_status=${?};
   check_exit_status "${exit_status}";
-fi
 
-# Check site file and get site file path
-site_file=$(check_sites_file);
-exit_status=${?};
-check_exit_status "${exit_status}";
+  exit ${exit_status};
+}
+
+####
+# Check current exit status.
+#
+# @param $1 exit_status {Integer}
+#     Current exit status
+####
+check_exit_status() {
+  local exit_status=${1};
+  [ "${exit_status}" -eq 0 ] || exit "${exit_status}";
+}
+
+####
+# Exit with an error message.
+#
+# @param $1 msg {String}
+#     The message for exit
+# @param $2 exit_status {Integer}
+#     The exit status
+####
+error_exit() {
+  local msg=${1}; shift;
+  local exit_status=${1}
+  echo "Error: ${msg}" >> /dev/stderr;
+  exit "${exit_status}";
+}
+
+####
+# Move artifacts to mounted volume.
+#
+# @status Integer
+#     The status of moving the files.
+####
+move_to_output_volume() {
+  local hazout;
+  hazout=$(jq -r ".output.directory" "${CONFIG_FILE}");
+
+  if [ "${hazout}" == null ]; then
+    hazout="hazout";
+  fi
 
-# Check config file
-[ -f "${CONFIG_FILE}" ] || echo "{}" > "${CONFIG_FILE}";
-jq empty < "${CONFIG_FILE}";
-exit_status=${?};
-check_exit_status "${exit_status}";
+  mv "${hazout}/*" "${OUTPUT_PATH}/.";
+  return ${?};
+}
 
 # Run nshmp-haz
-java -"Xmx${JAVA_XMX}" \
-    -cp "/app/${PROJECT}.jar" \
-    "gov.usgs.earthquake.nshmp.${nshmp_program}" \
-    "${nshm_path}" \
-    "${site_file}" \
-    ${RETURN_PERIOD:+ "${RETURN_PERIOD}"} \
-    ${IML:+ "${IML}"} \
-    "${CONFIG_FILE}";
-exit_status=${?};
-check_exit_status "${exit_status}";
-
-# Move results to container volume
-move_to_output_volume;
-exit_status=${?};
-check_exit_status "${exit_status}";
-
-exit ${exit_status};
+main "$@";
-- 
GitLab


From 14f640c5e9ac0e233a9ccbfd60a34d06c59fef23 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 13:20:35 -0600
Subject: [PATCH 35/39] remove old scripts

---
 scripts/custom.config.sh        |  11 --
 scripts/docker-config.inc.sh    |  28 ---
 scripts/docker-functions.inc.sh | 292 --------------------------------
 scripts/nshmp-haz.yml           |  65 -------
 4 files changed, 396 deletions(-)
 delete mode 100644 scripts/custom.config.sh
 delete mode 100644 scripts/docker-config.inc.sh
 delete mode 100644 scripts/docker-functions.inc.sh
 delete mode 100644 scripts/nshmp-haz.yml

diff --git a/scripts/custom.config.sh b/scripts/custom.config.sh
deleted file mode 100644
index e0630f304..000000000
--- a/scripts/custom.config.sh
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/bash
-# shellcheck disable=SC2140
-
-export SERVICE_MAP=(
-  "/nshmp/ws/conus-2018":"nshmp-haz-conus-2018"
-  # "/nshmp/conus-2014":"nshmp-haz-conus-2014"
-  # "/nshmp/conus-2014b":"nshmp-haz-conus-2014b"
-  # "/nshmp/conus-2008":"nshmp-haz-conus-2008"
-  # "/nshmp/hawaii-2020":"nshmp-haz-hi-2020"
-  # "/nshmp/alaska-2007":"nshmp-haz-ak-2007"
-);
diff --git a/scripts/docker-config.inc.sh b/scripts/docker-config.inc.sh
deleted file mode 100644
index 3db50451a..000000000
--- a/scripts/docker-config.inc.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-# shellcheck disable=SC1090
-# shellcheck disable=SC2034
-
-# Prevent configuration from being included multiple times
-[ -z "${CONFIGURATION_COMPLETE}" ] || return;
-source "$(dirname "$0")/docker-functions.inc.sh";
-
-readonly DEBUG="${DEBUG:-false}";
-
-# Turn on debugging if desired. Do this first so each value is echo'd
-if [[ "${DEBUG}" == "true" ]]; then
-  set -x;
-fi
-
-readonly CEUS="Central & Eastern US";
-readonly CONFIG_FILE="${CONFIG_FILE:-config.json}";
-readonly CONTEXT_PATH="${CONTEXT_PATH:-/}";
-readonly JAVA_XMX="${JAVA_XMX:-8g}";
-readonly MODEL=$(echo "${MODEL:-CONUS_2008}"  | awk \{'print toupper($0)'\});
-readonly NSHM_VERSION="${NSHM_VERSION:-main}";
-readonly PROJECT="${PROJECT:-nshmp-haz}";
-readonly PROGRAM=$(echo "${PROGRAM:-hazard}" | awk \{'print tolower($0)'\});
-readonly WUS="Western US";
-readonly VERSION_2014B="v4.1.1";
-
-# Include guard to prevent accidental re-configuration
-CONFIGURATION_COMPLETE="true";
diff --git a/scripts/docker-functions.inc.sh b/scripts/docker-functions.inc.sh
deleted file mode 100644
index ae711e683..000000000
--- a/scripts/docker-functions.inc.sh
+++ /dev/null
@@ -1,292 +0,0 @@
-#!/bin/bash
-
-####
-# Check current exit status.
-#
-# @param $1 exit_status {Integer}
-#     Current exit status
-####
-check_exit_status() {
-  local exit_status=${1};
-  [ "${exit_status}" -eq 0 ] || exit "${exit_status}";
-}
-
-####
-# Check that the sites file is valid.
-#
-# @return String
-#     The site file name
-# @status Integer
-#     The exit status
-####
-check_sites_file() {
-  local site_file;
-  local exit_status;
-  site_file=$(ls sites*) || error_exit "Site file does not exist." 1;
-
-  # Check if valid JSON or ASCII file
-  case ${site_file} in
-    *.geojson)
-      jq empty < "${site_file}";
-      exit_status=${?};
-      ;;
-    *.csv)
-      if [[ "$(file "${site_file}" -b)" != "ASCII text"* ]]; then
-        error_exit "Site file [${site_file}] is not valid ASCII" 1;
-      fi
-      ;;
-    *)
-      error_exit "Bad site file [${site_file}]." 1;
-      ;;
-  esac
-
-  echo "${site_file}";
-  return "${exit_status}";
-}
-
-####
-# Download a repository from Github.
-#
-# @param $1 url {String}
-#     The url to download
-# @param $2 branch {String}
-#     The branch or tag to checkout
-#
-# @status Integer
-#     The status of the curl call
-####
-download_repo() {
-  local url=${1};
-  local branch=${2};
-  local exit_status;
-
-  git clone --depth 1 -b "${branch}" "${url}";
-  exit_status=${?};
-
-  if [ ${exit_status} -ne 0 ]; then
-    error_exit "Could not download [${url}]" ${exit_status};
-  fi
-
-  return ${exit_status};
-}
-
-####
-# Exit with an error message.
-#
-# @param $1 msg {String}
-#     The message for exit
-# @param $2 exit_status {Integer}
-#     The exit status
-####
-error_exit() {
-  local msg=${1};
-  local exit_status=${2}
-  echo "Error: ${msg}" >> /dev/stderr;
-  exit "${exit_status}";
-}
-
-####
-# Returns the model path.
-#
-# @param $1 nshm {String}
-#     The NSHM to download.
-# @param $1 nshm_version {String}
-#     The version to download from GitHub.
-#
-# @return String
-#     The model path
-# @status Integer
-#     The result of downloading the repository.
-####
-get_model() {
-  local nshm=${1};
-  local nshm_version=${2};
-  local model;
-  local model_path;
-  local url;
-  local exit_status;
-
-  if [ "${nshm_version}" == "null" ]; then
-    return 0;
-  fi
-
-  case ${nshm} in
-    "AK_2007")
-      model="nshm-ak-2007";
-      model_path="${model}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CEUS_2008")
-      model="nshm-cous-2008";
-      model_path="${model}/${CEUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CEUS_2014")
-      model="nshm-cous-2014";
-      model_path="${model}/${CEUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CEUS_2014B")
-      model="nshm-cous-2014";
-      model_path="${model}/${CEUS}/";
-      nshm_version="${VERSION_2014B}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CEUS_2018")
-      model="nshm-cous-2018";
-      model_path="${model}/${CEUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CONUS_2008")
-      model="nshm-cous-2008";
-      model_path="${model}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CONUS_2014")
-      model="nshm-cous-2014";
-      model_path="${model}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CONUS_2014B")
-      model="nshm-cous-2014";
-      model_path="${model}";
-      nshm_version="${VERSION_2014B}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "CONUS_2018")
-      model="nshm-cous-2018";
-      model_path="${model}";
-      url="https://github.com/usgs/${model}.git";
-      # model="nshm-conus-2018";
-      # url="git@code.usgs.gov:ghsc/nshmp/nshm-conus-2018.git";
-      ;;
-    # "CONUS_2023")
-    #   model="nshm-conus-2023";
-    #   url="git@code.usgs.gov:ghsc/nshmp/nshm-conus-2023.git";
-    #   ;;
-    "HI_2020")
-      model="nshm-hi-2020";
-      model_path="${model}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "WUS_2008")
-      model="nshm-cous-2008";
-      model_path="${model}/${WUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "WUS_2014")
-      model="nshm-cous-2014";
-      model_path="${model}/${WUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "WUS_2014B")
-      model="nshm-cous-2014";
-      model_path="${model}/${WUS}/";
-      nshm_version="${VERSION_2014B}";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-    "WUS_2018")
-      model="nshm-cous-2018";
-      model_path="${model}/${WUS}/";
-      url="https://github.com/usgs/${model}.git";
-      ;;
-
-    *)
-      error_exit "Model [${nshm}] not supported" 1;
-      ;;
-  esac
-
-  download_repo "${url}" "${nshm_version}";
-  rm -rf "${model:?}/.git";
-  exit_status=${?};
-
-  echo "${model_path}";
-  return ${exit_status}
-}
-
-####
-# Returns the path to the model.
-#
-# @param $1 nshm {String}
-#     The NSHM to download.
-# @param $1 nshm_version {String}
-#     The version to download from GitHub.
-#
-# @return String
-#     The path to the model
-# @status Integer
-#     Status of get_model call
-####
-get_model_path() {
-  local nshm=${1};
-  local nshm_version=${2};
-  local nshmp_model_path;
-  local exit_status;
-  nshmp_model_path=$(get_model "${nshm}" "${nshm_version}");
-  exit_status=${?};
-
-  echo "${nshmp_model_path}";
-  return ${exit_status};
-}
-
-####
-# Returns to nshmp-haz Java class to call.
-#
-# @param $1 program {String}
-#     The program to run
-#
-# @return String
-#     The program to call in nshmp-haz
-####
-get_nshmp_program() {
-  local program=${1};
-  local nshmp_program;
-
-  case ${program} in
-    "deagg")
-      nshmp_program="DeaggCalc";
-      ;;
-    "deagg-epsilon")
-      nshmp_program="DeaggEpsilon";
-      ;;
-    "deagg-iml")
-      nshmp_program="DeaggIml";
-      ;;
-    "hazard-2018")
-      nshmp_program="Hazard2018";
-      ;;
-    "hazard")
-      nshmp_program="HazardCalc";
-      ;;
-    "rate")
-      nshmp_program="RateCalc";
-      ;;
-    *)
-      error_exit "Program [${program}] not supported" 1;
-      ;;
-  esac
-
-  echo "${nshmp_program}";
-}
-
-####
-# Move artifacts to mounted volume.
-#
-# @param $1 config_file {String}
-#     The config file
-#
-# @status Integer
-#     The status of moving the files.
-####
-move_to_output_volume() {
-  local config_file;
-  local hazout;
-  hazout=$(jq -r ".output.directory" "${config_file}");
-
-  if [ "${hazout}" == null ]; then
-    hazout="hazout";
-  fi
-
-  mv ${hazout}/* output/.;
-  return ${?};
-}
diff --git a/scripts/nshmp-haz.yml b/scripts/nshmp-haz.yml
deleted file mode 100644
index b1164d857..000000000
--- a/scripts/nshmp-haz.yml
+++ /dev/null
@@ -1,65 +0,0 @@
-version: "3.7"
-
-# General deployment config
-x-app: &app
-  image: ${REGISTRY}/nshmp-haz-ws:${CI_COMMIT_REF_SLUG}
-  deploy:
-    restart_policy:
-      condition: any
-      delay: 5s
-      max_attempts: 3
-      window: 120s
-    replicas: 1
-    update_config:
-      order: start-first
-      parallelism: 1
-  ports:
-    - 8080
-
-services:
-  # Deploy nshmp-haz with CONUS-2018
-  nshmp-haz-conus-2018:
-    <<: *app
-    environment:
-      MODEL: CONUS-2018
-      CONTEXT_PATH: /nshmp/ws/conus-2018
-
-  # # Deploy nshmp-haz with CONUS-2014
-  # nshmp-haz-conus-2014:
-  #   <<: *app
-  #   environment:
-  #     RUN_HAZARD: 'false'
-  #     MODEL: CONUS-2014
-  #     CONTEXT_PATH: nshmp/conus-2014
-
-  # # Deploy nshmp-haz with CONUS-2014B
-  # nshmp-haz-conus-2014b:
-  #   <<: *app
-  #   environment:
-  #     RUN_HAZARD: 'false'
-  #     MODEL: CONUS-2014B
-  #     CONTEXT_PATH: nshmp/conus-2014b
-
-  # # Deploy nshmp-haz with CONUS-2008
-  # nshmp-haz-conus-2008:
-  #   <<: *app
-  #   environment:
-  #     RUN_HAZARD: 'false'
-  #     MODEL: CONUS-2008
-  #     CONTEXT_PATH: nshmp/conus-2008
-
-  # # Deploy nshmp-haz with HI-2020
-  # nshmp-haz-hi-2020:
-  #   <<: *app
-  #   environment:
-  #     RUN_HAZARD: 'false'
-  #     MODEL: HI-2020
-  #     CONTEXT_PATH: nshmp/hawaii-2020
-
-  # # Deploy nshmp-haz with AK-2007
-  # nshmp-haz-ak-2007:
-  #   <<: *app
-  #   environment:
-  #     RUN_HAZARD: 'false'
-  #     MODEL: AK-2007
-  #     CONTEXT_PATH: nshmp/alaska-2007
-- 
GitLab


From 9a52a7bef728d46b10145ec667ce8e2cbcba4890 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 13:21:24 -0600
Subject: [PATCH 36/39] simplify

---
 Dockerfile | 76 +++++++++++++++++++++++++-----------------------------
 1 file changed, 35 insertions(+), 41 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index e0a43e378..f9d895193 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,48 +1,48 @@
 ####
-# Run hazard jar file.
+# Run nshmp-haz
+#
+# Pull Docker Image:
+#   - Production (stable): docker pull usgs/nshmp-haz:production-latest
+#   - Staging (latest, main branch of repo): docker pull usgs/nshmp-haz:staging-latest
+#   - Development (developer forks): docker pull usgs/nshmp-haz:development-latest
+#
+# Run Docker Image:
+#   Parameters:
+#     - CLASS_NAME: The nshmp-haz class name to run (e.g. HazardCalc)
+#     - IML: The intensity measure level, used in certain programs
+#     - JAVA_OPTS: Any JVM options (e.g. -Xmx8g)
+#     - RETURN_PERIOD: The return period, used in certian programs
+#
+#   Volumes:
+#     - Model: /app/model
+#     - Output: /app/output
 #
-# Running Hazard:
-#   docker pull code.chs.usgs.gov:5001/ghsc/nshmp/images/nshmp-haz;
 #   docker run \
-#       -e PROGRAM=<deagg | deagg-epsilon | deagg-iml | hazard | hazard-2018 | rate> \
-#       -e MODEL=<WUS_20[08|14|18] | CEUS_20[08|14|18] | COUS_20[08|14|18] | AK_2007 | HI_2020> \
-#       -v /absolute/path/to/sites/file:/app/sites.<geojson | csv> \
-#       -v /absolute/path/to/config/file:/app/config.json \
-#       -v /absolute/path/to/output:/app/output \
-#       code.chs.usgs.gov:5001/ghsc/nshmp/images/nshmp-haz;
+#       --env CLASS_NAME="nshmp-haz class name" \
+#       --volume "/path/to/model:/app/model" \
+#       --volume "/path/to/output:/app/output" \
+#       usgs/nshmp-haz:production-latest
 #
 # Build locally:
-#   docker build
-#       --build-arg gitlab_token=<git-api-token>
+#   docker build \
+#       --build-arg GITLAB_TOKEN=<git-api-token> \
 #       -t nshmp-haz .
 ####
 
 ARG BUILD_IMAGE=usgs/java:11
 ARG FROM_IMAGE=usgs/java:11
 
-ARG project=nshmp-haz
-ARG builder_workdir=/app/${project}
-ARG libs_dir=${builder_workdir}/build/libs
-
 ####
 # Builder image: Build jar file.
 ####
 FROM ${BUILD_IMAGE} as builder
 
-ARG builder_workdir
-ARG libs_dir
-
 # TODO
 # Remove once nshmp-lib is public
-ARG git_username
-ARG git_password
 ARG GITLAB_TOKEN=null
 ARG CI_JOB_TOKEN=null
 
-ENV GIT_NSHMP_USERNAME ${git_username}
-ENV GIT_NSHMP_PASSWORD ${git_password}
-
-WORKDIR ${builder_workdir}
+WORKDIR /app
 
 COPY . .
 
@@ -55,30 +55,24 @@ FROM ${FROM_IMAGE}
 
 LABEL maintainer="Peter Powers <pmpowers@usgs.gov>, Brandon Clayton <bclayton@usgs.gov>"
 
-ARG builder_workdir
-ARG libs_dir
-ARG project
-ARG ws_file
-
-ENV CONFIG_FILE ""
-ENV DEBUG false
+# nshmp-haz inputs
+ENV CLASS_NAME "HazardCalc"
 ENV IML ""
-ENV JAVA_XMX "8g"
-ENV MODEL ""
-ENV MOUNT_MODEL false
-ENV NSHM_VERSION main
-ENV PROGRAM hazard
-ENV PROJECT ${project}
 ENV RETURN_PERIOD ""
 
-VOLUME [ "/app/output" ]
+ENV CONFIG_FILE "/app/config.json"
+ENV JAVA_OPTS "-Xmx8g"
+ENV MODEL_PATH "/app/model"
+ENV OUTPUT_PATH "/app/output"
+
+VOLUME [ "${MODEL_PATH}", "${OUTPUT_PATH}" ]
 
 WORKDIR /app
 
-COPY --from=builder ${libs_dir}/* ./
+COPY --from=builder /app/build/libs/nshmp-haz.jar .
 COPY scripts scripts
 
-RUN yum install -y jq
+RUN yum install -y jq \
+    && echo "{}" > "${CONFIG_FILE}"
 
-EXPOSE 8080
 ENTRYPOINT [ "bash", "scripts/docker-entrypoint.sh" ]
-- 
GitLab


From 60782db53b954fac762ea70e14e57914173c6f7b Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 14:31:45 -0600
Subject: [PATCH 37/39] update docker section

---
 docs/pages/Building-&-Running.md | 173 ++++++++++++++++++++++++-------
 1 file changed, 138 insertions(+), 35 deletions(-)

diff --git a/docs/pages/Building-&-Running.md b/docs/pages/Building-&-Running.md
index 8b36c7087..25622afad 100644
--- a/docs/pages/Building-&-Running.md
+++ b/docs/pages/Building-&-Running.md
@@ -72,10 +72,28 @@ files. Disaggregations also have some independent
 
 ## Run with [Docker](https://docs.docker.com/install/)
 
-To ensure you are have the latest *nshmp-haz* update, always first pull the image from Docker:
+nshmp-haz is available as a [public image](https://hub.docker.com/repository/docker/usgs/nshmp-haz)
+with tags:
+
+* `development-latest`: Developer forks
+* `staging-latest`: Latest updates associated with the
+[main](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/main) branch
+* `production-latest`: Latest stable release associated with the
+[production](https://code.usgs.gov/ghsc/nshmp/nshmp-haz/-/tree/production) branch
+
+To ensure you have the latest *nshmp-haz* update associated with a specific tag,
+always first pull the image from Docker:
+
+```bash
+docker pull usgs/nshmp-haz:<tag>
+```
+
+> Replace `<tag>` with one of the above tags.
+
+Example:
 
 ```bash
-docker pull usgs/nshmp-haz
+docker pull usgs/nshmp-haz:production-latest
 ```
 
 ### Docker Memory on Mac
@@ -84,7 +102,7 @@ By default, Docker Desktop for Mac is set to use 2 GB runtime memory. To run *ns
 memory available to Docker must be [increased](https://docs.docker.com/docker-for-mac/#advanced)
 to a minimum of 4 GB.
 
-### Run in Docker
+### Run nshmp-haz in Docker
 
 The *nshmp-haz* application may be run as a Docker container which mitigates the need to install
 Git, Java, or other dependencies besides Docker. A public image is available on
@@ -93,63 +111,148 @@ which can be run with:
 
 ```bash
 docker run \
-    -e PROGRAM=<disagg | hazard | rate> \
-    -e MODEL=<CONUS_2018 | HAWAII_2021> \
-    -e RETURN_PERIOD=<RETURN_PERIOD> \
-    -v /absolute/path/to/sites/file:/app/sites.<geojson | csv> \
-    -v /absolute/path/to/config/file:/app/config.json \
-    -v /absolute/path/to/output:/app/output \
-    usgs/nshmp-haz
-
-# Example
-docker run \
-    -e PROGRAM=hazard \
-    -e MODEL=CONUS_2018 \
-    -v $(pwd)/sites.geojson:/app/sites.geojson \
-    -v $(pwd)/config.json:/app/config.json \
-    -v $(pwd)/hazout:/app/output \
+    --env CLASS_NAME=<DeaggCalc | DeaggIml | HazardCalc | RateCalc> \
+    --env IML=<NUMBER> \
+    --env RETURN_PERIOD=<NUMBER> \
+    --volume /absolute/path/to/sites/file:/app/sites.<geojson | csv> \
+    --volume /absolute/path/to/config/file:/app/config.json \
+    --volume /absolute/path/to/output:/app/output \
     usgs/nshmp-haz
 ```
 
 Where:
 
-* `PROGRAM` is the nshmp-haz program to run:
-  * disagg = `DisaggCalc`
-  * hazard = `HazardCalc`
-  * rate = `RateCalc`
-
-* `MODEL` is the [USGS model (NSHM)](./USGS-Models.md) to run:
-  * `CONUS_2018`: [Conterminous U.S. 2018](https://code.usgs.gov/ghsc/nshmp/nshm-conus)
-  * `HAWAII_2021`: [Hawaii 2021](https://code.usgs.gov/ghsc/nshmp/nshm-hawaii)
-
+* `CLASS_NAME` is the nshmp-haz class to run:
+  * [DeaggCalc](../../src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java)
+  * [DeaggIml](../../src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java)
+  * [HazardCalc](../../src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java)
+  * [RateCalc](../../src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java)
 * `RETURN_PERIOD`, in years, is only required when running a disaggregation
-
+* `IML`: intensity measure level, only required when running `DeaggIml`
 * Other arguments (local files mapped to files within the Docker container with `:/app/...`):
+  * (required) The absolute path to a [USGS model (NSHM)](./USGS-Models.md)
+    * Example: `$(pwd)/nshm-hawaii:/app/model`
   * (required) The absolute path to a GeoJSON or CSV [site(s)](./Site-Specification.md) file
     * CSV example: `$(pwd)/my-csv-sites.csv:/app/sites.csv`
     * GeoJSON example: `$(pwd)/my-geojson-sites.geojson:/app/sites.geojson`
-  * (optional) The absolute path to a [configuration](./Calculation-Configuration.md) file
-    * Example: `$(pwd)/my-custom-config.json:/app/config.json`
   * (required) The absolute path to an output directory
     * Example: `$(pwd)/my-hazard-output:/app/output`
+  * (optional) The absolute path to a [configuration](./Calculation-Configuration.md) file
+    * Example: `$(pwd)/my-custom-config.json:/app/config.json`
+
+### Docker Examples
+
+#### [`DeaggCalc`](../../src/main/java/gov/usgs/earthquake/nshmp/DeaggCalc.java) Example
+
+The following example runs the `DeaggCalc` program in nshmp-haz with the
+[nshm-hawaii](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git) model and the
+assumption a GeoJSON [site](./Site-Specification.md) file exists named `sites.geojson`.
+
+```bash
+# Download Hawaii NSHM
+git clone https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git
+
+# Pull image
+docker pull usgs/nshmp-haz:production-latest
+
+# Run nshmp-haz DeaggCalc
+docker run \
+    --env CLASS_NAME="DeaggCalc" \
+    --env RETURN_PERIOD=475 \
+    --volume "$(pwd)/nshm-hawaii:/app/model" \
+    --volume "$(pwd)/sites.geojson" \
+    --volume "$(pwd)/hawaii-disagg-output:/app/output" \
+    usgs/nshmp-haz:production-latest
+```
+
+#### [`DeaggIml`](../../src/main/java/gov/usgs/earthquake/nshmp/DeaggIml.java) Example
+
+The following example runs the `DeaggIml` program in nshmp-haz with the
+[nshm-hawaii](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git) model and the
+assumption a GeoJSON [site](./Site-Specification.md) file exists named `sites.geojson`.
+
+```bash
+# Download Hawaii NSHM
+git clone https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git
+
+# Pull image
+docker pull usgs/nshmp-haz:production-latest
+
+# Run nshmp-haz DeaggIml
+docker run \
+    --env CLASS_NAME="DeaggCalc" \
+    --env IML=1 \
+    --volume "$(pwd)/nshm-hawaii:/app/model" \
+    --volume "$(pwd)/sites.geojson" \
+    --volume "$(pwd)/hawaii-disagg-iml-output:/app/output" \
+    usgs/nshmp-haz:production-latest
+```
+
+#### [`HazardCalc`](../../src/main/java/gov/usgs/earthquake/nshmp/HazardCalc.java) Example
+
+The following example runs the `HazardCalc` program in nshmp-haz with the
+[nshm-hawaii](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git) model and the
+assumption a GeoJSON [site](./Site-Specification.md) file exists named `sites.geojson`.
+
+```bash
+# Download Hawaii NSHM
+git clone https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git
+
+# Pull image
+docker pull usgs/nshmp-haz:production-latest
+
+# Run nshmp-haz HazardCalc
+docker run \
+    --env CLASS_NAME="HazardCalc" \
+    --volume "$(pwd)/nshm-hawaii:/app/model" \
+    --volume "$(pwd)/sites.geojson" \
+    --volume "$(pwd)/hawaii-hazard-output:/app/output" \
+    usgs/nshmp-haz:production-latest
+```
+
+#### [`RateCalc`](../../src/main/java/gov/usgs/earthquake/nshmp/RateCalc.java) Example
+
+The following example runs the `RateCalc` program in nshmp-haz with the
+[nshm-hawaii](https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git) model and the
+assumption a GeoJSON [site](./Site-Specification.md) file exists named `sites.geojson`.
+
+```bash
+# Download Hawaii NSHM
+git clone https://code.usgs.gov/ghsc/nshmp/nshms/nshm-hawaii.git
+
+# Pull image
+docker pull usgs/nshmp-haz:production-latest
+
+# Run nshmp-haz RateCalc
+docker run \
+    --env CLASS_NAME="RateCalc" \
+    --volume "$(pwd)/nshm-hawaii:/app/model" \
+    --volume "$(pwd)/sites.geojson" \
+    --volume "$(pwd)/hawaii-rate-output:/app/output" \
+    usgs/nshmp-haz:production-latest
+```
 
 ### Run Customization
 
-When running *nshmp-haz* with Docker the initial (Xms) and maximum (Xmx) JVM memory sizes can
+When running *nshmp-haz* with Docker the maximum JVM memory size can
 be set with the environment flag (-e, -env):
 
 ```bash
 docker run \
-    -e JAVA_XMS=<JAVA_XMS> \
-    -e JAVA_XMX=<JAVA_XMX> \
+    --env JAVA_MEMORY=<MEMORY> \
+    ...
+    usgs/nshmp-haz
+
+# Example
+docker run \
+    --env JAVA_MEMORY="12g" \
     ...
     usgs/nshmp-haz
 ```
 
 Where:
 
-* `JAVA_XMS` is the intial memory for the JVM (default: system)
-* `JAVA_XMX` is the maximum memory for the JVM (default: 8g)
+* `JAVA_MEMORY` is the maximum memory for the JVM (default: 8g)
 
 ---
 
-- 
GitLab


From 4ec1cbd9b67ca51cf74538e425ffb17d44d0ce5e Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 14:31:58 -0600
Subject: [PATCH 38/39] update parameter

---
 Dockerfile                   | 2 +-
 scripts/docker-entrypoint.sh | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index f9d895193..32d8e203c 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -61,7 +61,7 @@ ENV IML ""
 ENV RETURN_PERIOD ""
 
 ENV CONFIG_FILE "/app/config.json"
-ENV JAVA_OPTS "-Xmx8g"
+ENV JAVA_MEMORY "8g"
 ENV MODEL_PATH "/app/model"
 ENV OUTPUT_PATH "/app/output"
 
diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh
index c4a847f80..ad3f2b852 100644
--- a/scripts/docker-entrypoint.sh
+++ b/scripts/docker-entrypoint.sh
@@ -8,7 +8,7 @@ main() {
   sites_file=$(ls /app/sites.*);
 
   # Run nshmp-haz
-  java "${JAVA_OPTS}" \
+  java "-Xmx${JAVA_MEMORY}" \
       -cp "/app/nshmp-haz.jar" \
       "gov.usgs.earthquake.nshmp.${CLASS_NAME}" \
       "${MODEL_PATH}" \
@@ -67,7 +67,7 @@ move_to_output_volume() {
     hazout="hazout";
   fi
 
-  mv "${hazout}/*" "${OUTPUT_PATH}/.";
+  mv "${hazout}"/* "${OUTPUT_PATH}"/.;
   return ${?};
 }
 
-- 
GitLab


From e9bbcdf00277998d1dc26d1a6372332983688ac5 Mon Sep 17 00:00:00 2001
From: Brandon Clayton <bclayton@usgs.gov>
Date: Thu, 5 Aug 2021 14:38:41 -0600
Subject: [PATCH 39/39] cleanup

---
 Dockerfile | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/Dockerfile b/Dockerfile
index 32d8e203c..934d0ee14 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -24,9 +24,7 @@
 #       usgs/nshmp-haz:production-latest
 #
 # Build locally:
-#   docker build \
-#       --build-arg GITLAB_TOKEN=<git-api-token> \
-#       -t nshmp-haz .
+#   docker build -t nshmp-haz .
 ####
 
 ARG BUILD_IMAGE=usgs/java:11
-- 
GitLab