diff --git a/libs/erp/index.ts b/libs/erp/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..268af9d107a50592b3c19ec0e238fb21fdb0751d --- /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 0000000000000000000000000000000000000000..db48eb4edcca16ef277964c11af2efd53274b969 --- /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 0000000000000000000000000000000000000000..489cf33c16e98bfe175501ddb38eb0394084a769 --- /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 0000000000000000000000000000000000000000..58c5e139d02a8005e7e93eed250fbf9da8435998 --- /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[]; +}