UNPKG

@seismo/core

Version:

This is the package for the core library of Seismo, a JavaScript library for seismic data processing and visualization. It provides utilities for handling seismic data, including FDSN web services, waveform processing, and event handling. The library is d

156 lines (155 loc) 7.49 kB
import { FDSNCommon } from "../fdsn/common"; import { Station, Channel } from "../stations/stationxml"; import { Quake } from "../events/quakeml"; export declare const IRIS_HOST = "service.iris.edu"; export declare const TEXT_FORMAT = "text"; export declare const JSON_FORMAT = "json"; export declare const SVG_FORMAT = "svg"; /** * Type for json returned by iris traveltime web service * */ export type TraveltimeJsonType = { model: string; sourcedepth: number; receiverdepth: number; phases: Array<string>; arrivals: Array<TraveltimeArrivalType>; }; export type TraveltimeArrivalType = { distdeg: number; phase: string; time: number; rayparam: number; takeoff: number; incident: number; puristdist: number; puristname: string; }; /** * Verifies that JSON matches the types we expect, for typescript. * * @param v JSON object, usually from the traveltime web service * @returns true if matches expected structure */ export declare function isValidTraveltimeJsonType(v: unknown): v is TraveltimeJsonType; export declare function isValidTraveltimeArrivalType(v: unknown): v is TraveltimeArrivalType; /** * converts a text line from the text format into an * TraveltimeArrivalType object like what is returned by the json format. * * @param ttimeline travel time output line for an arrival * @returns parsed travel time arrival */ export declare function convertTravelTimeLineToObject(ttimeline: string): TraveltimeArrivalType; /** * Creates a fake arrival for the origin time, useful to display a flag * at origin time similar to the P and S arrival. * @param distdeg earthquake to station distance, in degrees * @returns an arrival for the origin */ export declare function createOriginArrival(distdeg: number): TraveltimeArrivalType; /** * Query to the IRIS traveltime webservice, based on the TauP Toolkit. See * https://service.iris.edu/irisws/traveltime/1/ and * https://www.seis.sc.edu/TauP/ * * @param host optional host to connect to, defaults to IRIS */ export declare class TraveltimeQuery extends FDSNCommon { /** @private */ _evdepth: number; /** @private */ _distdeg: Array<number> | undefined; /** @private */ _model: string | undefined; /** @private */ _phases: string | undefined; /** @private */ _stalat: number | undefined; /** @private */ _stalon: number | undefined; /** @private */ _receiverdepth: number | undefined; /** @private */ _evlat: number | undefined; /** @private */ _evlon: number | undefined; /** @private */ _format: string; /** @private */ _noheader: boolean; constructor(host?: string | null); protocol(value?: string): TraveltimeQuery; getProtocol(): string | undefined; host(value?: string): TraveltimeQuery; getHost(): string | undefined; /** * Gets/Sets the remote port to connect to. * * @param value optional new value if setting * @returns new value if getting, this if setting */ port(value?: number): TraveltimeQuery; getPort(): number | undefined; /** * Gets/Sets the nodata parameter, usually 404 or 204 (default), controlling * the status code when no matching data is found by the service. * * @param value optional new value if setting * @returns new value if getting, this if setting */ nodata(value?: number): TraveltimeQuery; getNodata(): number | undefined; specVersion(value?: string): TraveltimeQuery; getSpecVersion(): string | undefined; evdepth(value?: number): TraveltimeQuery; evdepthInMeter(value?: number): TraveltimeQuery; getEvdepth(): number | undefined; distdeg(value?: number | Array<number>): TraveltimeQuery; getDistdeg(): Array<number> | undefined; model(value?: string): TraveltimeQuery; getModel(): string | undefined; phases(value?: string): TraveltimeQuery; getPhases(): string | undefined; stalat(value?: number): TraveltimeQuery; getStalat(): number | undefined; stalon(value?: number): TraveltimeQuery; getStalon(): number | undefined; latLonFromStation(station: Station): TraveltimeQuery; receiverdepth(value?: number): TraveltimeQuery; receiverdepthInMeter(value?: number): TraveltimeQuery; receiverdepthFromChannel(channel: Channel): TraveltimeQuery; getReceiverdepth(): number | undefined; evlat(value?: number): TraveltimeQuery; getEvlat(): number | undefined; evlon(value?: number): TraveltimeQuery; getEvlon(): number | undefined; latLonFromQuake(quake: Quake): TraveltimeQuery; format(value?: string): TraveltimeQuery; getFormat(): string | undefined; noheader(value?: boolean): TraveltimeQuery; getNoheader(): boolean | undefined; /** * Get/Set the timeout in seconds for the request. Default is 30. * * @param value optional new value if setting * @returns new value if getting, this if setting */ timeout(value?: number): TraveltimeQuery; getTimeout(): number | undefined; queryText(): Promise<string>; queryJson(): Promise<TraveltimeJsonType>; querySvg(): Promise<Element>; queryWadl(): Promise<Document>; query(): Promise<TraveltimeJsonType | Element | string>; formBaseURL(): string; formURL(): string; queryTauPVersion(): Promise<string>; formTauPVersionURL(): string; formWadlURL(): string; } export declare const FAKE_EMPTY_TEXT_MODEL = "Model: "; export declare const FAKE_EMPTY_TEXT_HEADERS = "\nDistance Depth Phase Travel Ray Param Takeoff Incident Purist Purist\n (deg) (km) Name Time (s) p (s/deg) (deg) (deg) Distance Name\n-----------------------------------------------------------------------------------\n"; export declare function createEmptyTraveltimeJson(ttquery: TraveltimeQuery): TraveltimeJsonType; export declare const FAKE_EMPTY_SVG = "\n<svg version=\"1.1\" baseProfile=\"full\" xmlns=\"http://www.w3.org/2000/svg\" width=\"500\" height=\"500\" viewBox=\"0 0 14016.2 14016.2\">\n<!--\n This script will plot ray paths generated by TauP using SVG. -->\n<defs>\n <style type=\"text/css\"><![CDATA[\n circle {\n vector-effect: non-scaling-stroke;\n stroke: grey;\n fill: none;\n }\n polyline {\n vector-effect: non-scaling-stroke;\n stroke: black;\n fill: none;\n }\n ]]></style>\n</defs>\n<g transform=\"translate(7008.1,7008.1)\" >\n<!-- draw surface and label distances.-->\n<!-- tick marks every 30 degrees.-->\n <polyline points=\" 0.00 -6371.00, 0.00 -6689.55\" />\n <polyline points=\" 3185.50 -5517.45, 3344.78 -5793.32\" />\n <polyline points=\" 5517.45 -3185.50, 5793.32 -3344.77\" />\n <polyline points=\" 6371.00 0.00, 6689.55 0.00\" />\n <polyline points=\" 5517.45 3185.50, 5793.32 3344.77\" />\n <polyline points=\" 3185.50 5517.45, 3344.78 5793.32\" />\n <polyline points=\" 0.00 6371.00, 0.00 6689.55\" />\n <polyline points=\"-3185.50 5517.45, -3344.77 5793.32\" />\n <polyline points=\"-5517.45 3185.50, -5793.32 3344.77\" />\n <polyline points=\"-6371.00 0.00, -6689.55 0.00\" />\n <polyline points=\"-5517.45 -3185.50, -5793.32 -3344.78\" />\n <polyline points=\"-3185.50 -5517.45, -3344.78 -5793.32\" />\n <circle cx=\"0.0\" cy=\"0.0\" r=\"6371.0\" />\n </g>\n</svg>\n";