Skip to content
Snippets Groups Projects
gmm-usage.model.ts 2.91 KiB
Newer Older
  • Learn to ignore specific revisions
  • Clayton, Brandon Scott's avatar
    Clayton, Brandon Scott committed
    import {Response} from '../../nshmp-ws-utils';
    import {
      EnumParameter,
      EnumParameterValues,
    } from '../../nshmp-ws-utils/metadata';
    
    /**
     * Marker interface for gmm usage from nshmp-ws.
     */
    export type GmmSpectraUsage = Response<string, GmmSpectraUsageResponse>;
    
    /**
     * Marker interface for gmm/distance and gmm/hw-fw usage.
     */
    export type GmmDistanceUsage = Response<string, GmmDistanceUsageResponse>;
    
    /**
     * Marker interface for gmm/distance and gmm/hw-fw usage.
     */
    export type GmmMagnitudeUsage = Response<string, GmmMagnitudeUsageResponse>;
    
    /**
     * Gmm usage response in Response object.
     */
    export interface GmmUsageResponse {
      description: string;
      syntax: string;
      parameters: GmmUsageParameters;
    }
    
    /**
     * Gmm vs distance usage response in Response object.
     */
    export interface GmmSpectraUsageResponse extends GmmUsageResponse {
      parameters: GmmSpectraUsageParameters;
    }
    
    /**
     * Gmm vs distance usage response in Response object.
     */
    export interface GmmDistanceUsageResponse extends GmmUsageResponse {
      parameters: GmmDistanceUsageParameters;
    }
    
    /**
     * Gmm vs magnitude usage response in Response object.
     */
    export interface GmmMagnitudeUsageResponse extends GmmUsageResponse {
      parameters: GmmMagnitudeUsageParameters;
    }
    
    /**
     * gmm parameter.
     */
    export interface GmmParameter {
      label: string;
      info: string;
      values: GmmValue[];
    }
    
    /**
     * gmm value.
     */
    export interface GmmValue {
      id: string;
      label: string;
      supportedImts: string[];
    }
    
    /**
     * gmm group parameters.
     */
    export interface GmmGroupParameter {
      label: string;
      info: string;
      values: GmmGroupValue[];
    }
    
    /**
     * gmm group values.
     */
    export interface GmmGroupValue {
      id: string;
      label: string;
      data: string[];
    }
    /**
     * gmm usage parameter.
     */
    export interface GmmUsageParameter {
      label: string;
      info: string;
      units?: string;
      min?: number;
      max?: number;
      value: number | boolean;
    }
    
    /**
     * gmm usage parameters.
     */
    export interface GmmUsageParameters {
      Mw: GmmUsageParameter;
      dip: GmmUsageParameter;
      width: GmmUsageParameter;
      zTor: GmmUsageParameter;
      zHyp: GmmUsageParameter;
      rake: GmmUsageParameter;
      vs30: GmmUsageParameter;
      z1p0: GmmUsageParameter;
      z2p5: GmmUsageParameter;
      zSed: GmmUsageParameter;
      gmm: GmmParameter;
      group: GmmGroupParameter;
    }
    
    /**
     * gmm/spectra usage parameters.
     */
    export interface GmmSpectraUsageParameters extends GmmUsageParameters {
      rJB: GmmUsageParameter;
      rRup: GmmUsageParameter;
      rX: GmmUsageParameter;
    }
    
    /**
     * gmm/distance usage parameters.
     */
    export interface GmmDistanceUsageParameters extends GmmUsageParameters {
      imt: EnumParameter<EnumParameterValues>;
      rMin: GmmUsageParameter;
      rMax: GmmUsageParameter;
    }
    
    /**
     * gmm/magnitude usage parameters.
     */
    export interface GmmMagnitudeUsageParameters extends GmmUsageParameters {
      imt: EnumParameter<EnumParameterValues>;
      mMin: GmmUsageParameter;
      mMax: GmmUsageParameter;
      distance: GmmUsageParameter;
      step: GmmUsageParameter;
    }