From 1740749691357a5df75bdf7a36ad3803bdae1e93 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Thu, 26 Sep 2024 10:34:53 -0600 Subject: [PATCH] add rtgm service --- libs/erp/index.ts | 1 + libs/erp/rtgm/index.ts | 2 + libs/erp/rtgm/rtgm-response.model.ts | 78 ++++++++++++++++++++++++++++ libs/erp/rtgm/rtgm-usage.model.ts | 43 +++++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 libs/erp/index.ts create mode 100644 libs/erp/rtgm/index.ts create mode 100644 libs/erp/rtgm/rtgm-response.model.ts create mode 100644 libs/erp/rtgm/rtgm-usage.model.ts diff --git a/libs/erp/index.ts b/libs/erp/index.ts new file mode 100644 index 0000000..268af9d --- /dev/null +++ b/libs/erp/index.ts @@ -0,0 +1 @@ +export * as rtgmService from './rtgm'; diff --git a/libs/erp/rtgm/index.ts b/libs/erp/rtgm/index.ts new file mode 100644 index 0000000..db48eb4 --- /dev/null +++ b/libs/erp/rtgm/index.ts @@ -0,0 +1,2 @@ +export * from './rtgm-response.model'; +export * from './rtgm-usage.model'; diff --git a/libs/erp/rtgm/rtgm-response.model.ts b/libs/erp/rtgm/rtgm-response.model.ts new file mode 100644 index 0000000..489cf33 --- /dev/null +++ b/libs/erp/rtgm/rtgm-response.model.ts @@ -0,0 +1,78 @@ +import {Response} from '../../nshmp-ws-utils'; + +/** + * RTGM calculation response. + */ +export type RtgmCalcResponse = Response<RtgmRequestData, RtgmResponseData>; + +export interface RtgmRequestData { + hazard_curves: RtgmHazardCurveRequest[]; + building_code: string; +} + +export interface RtgmHazardCurveRequest { + label: string; + iml: number[]; + afe: number[]; +} + +export interface RtgmResponseData { + riskTargets: RiskTargets; + summary: Record<string, RtgmSummary>; + RTGM: Record<string, Rtgm>; +} + +export interface RiskTargets { + UH_retPeriod: number; + condCollapseProb: number; + beta: number; + tgtCollapseRisk_T: number; + timeHorizon_Yr: number; + riskTgt_Annual: number; + BldgCode: string; +} + +export interface RtgmSummary { + uhgm: number; + rtgm: number; + riskCoeff: number; + colRisk_annual: number; + timePeriod: number; + colRisk_T: number; +} + +export interface Rtgm { + riskTargets: RiskTargets; + rawHaz: RtgmRawHaz; + rtgmCalc: RtgmCalc; +} + +export interface RtgmRawHaz { + iml: number[]; + afe: number[]; +} + +export interface RtgmCalc { + uhgm: number; + rtgm: number; + riskCoeff: number; + upsampledHazCurve: RtgmUpsampledHaz; + iterations: RtgmIteration[]; +} + +export interface RtgmUpsampledHaz { + imlUP: number[]; + afeUP: number[]; +} + +export interface RtgmIteration { + iter: number; + rtgmGuess: number; + frCDF: number[]; + frPDF: number[]; + hazXpdf: number[]; + colCDF: number[]; + colCDF_Yr: number[]; + colRisk_Annual: number; + colRisk_Yr: number; +} diff --git a/libs/erp/rtgm/rtgm-usage.model.ts b/libs/erp/rtgm/rtgm-usage.model.ts new file mode 100644 index 0000000..58c5e13 --- /dev/null +++ b/libs/erp/rtgm/rtgm-usage.model.ts @@ -0,0 +1,43 @@ +import {Response} from '../../nshmp-ws-utils'; + +/** + * RTGM service usage response. + */ +export type RtgmUsageResponse = Response<string, RtgmRequestMetdata>; + +/** + * RTGM service usage request metadata. + */ +export interface RtgmRequestMetdata { + description: string; + syntax: string[]; + parameters: RtgmUsageParameters; +} + +/** + * RTGM usage parameters. + */ +export interface RtgmUsageParameters { + building_code: UsageParameterValues; + label: UsageParameter; + iml: UsageParameter; + afe: UsageParameter; +} + +/** + * RTGM usage parameter + */ +export interface UsageParameter { + label: string; + info: string; + units: string; +} + +/** + * RTGM usage paramter with values. + */ +export interface UsageParameterValues { + label: string; + info: string; + values: string[]; +} -- GitLab