@aeroswarm/weather 0.1.4 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/dist/aftn.d.ts +4 -4
- package/dist/aftn.d.ts.map +1 -1
- package/dist/conditions.d.ts +2 -1
- package/dist/conditions.d.ts.map +1 -1
- package/dist/geo.d.ts +54 -0
- package/dist/geo.d.ts.map +1 -0
- package/dist/grid.d.ts +12 -0
- package/dist/grid.d.ts.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +925 -36
- package/dist/metar.d.ts.map +1 -1
- package/dist/nil.d.ts +16 -0
- package/dist/nil.d.ts.map +1 -0
- package/dist/sigmet.d.ts +91 -0
- package/dist/sigmet.d.ts.map +1 -0
- package/dist/snowtam.d.ts +43 -0
- package/dist/snowtam.d.ts.map +1 -0
- package/dist/store.d.ts +25 -1
- package/dist/store.d.ts.map +1 -1
- package/dist/taf.d.ts.map +1 -1
- package/dist/types.d.ts +34 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/vaa.d.ts +75 -0
- package/dist/vaa.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/metar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metar.d.ts","sourceRoot":"","sources":["../src/metar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAWxC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,KAAK,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"metar.d.ts","sourceRoot":"","sources":["../src/metar.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAWxC;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,KAAK,GAAG,IAAI,CA+ElF"}
|
package/dist/nil.d.ts
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Laporan `NIL`: stasiun tidak mengirim isi (mis. `METAR WARR 021300Z NIL`). */
|
|
2
|
+
export interface NilReport {
|
|
3
|
+
kind: "NIL";
|
|
4
|
+
/** Jenis laporan yang dinyatakan NIL. */
|
|
5
|
+
of: "METAR" | "SPECI" | "TAF";
|
|
6
|
+
station: string;
|
|
7
|
+
/** Waktu laporan (pada `ddhhmmZ`); waktu acuan bila tidak ada. */
|
|
8
|
+
at: Date;
|
|
9
|
+
raw: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Baca laporan NIL. Mengembalikan null bila teks bukan NIL (laporan biasa dibaca `parseMetar` atau
|
|
13
|
+
* `parseTaf`).
|
|
14
|
+
*/
|
|
15
|
+
export declare function parseNil(rawText: string, reference?: Date): NilReport | null;
|
|
16
|
+
//# sourceMappingURL=nil.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nil.d.ts","sourceRoot":"","sources":["../src/nil.ts"],"names":[],"mappings":"AAEA,iFAAiF;AACjF,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,CAAC;IACZ,yCAAyC;IACzC,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,EAAE,EAAE,IAAI,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;CACb;AAID;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,SAAS,GAAG,IAAI,CASxF"}
|
package/dist/sigmet.d.ts
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type AltitudeRange, type Compass, type GeoPosition, type Movement } from "./geo.js";
|
|
2
|
+
export type SigmetHazard = "THUNDERSTORM" | "TURBULENCE" | "ICING" | "MOUNTAIN_WAVE" | "VOLCANIC_ASH" | "TROPICAL_CYCLONE" | "DUST_STORM" | "SAND_STORM" | "RADIOACTIVE_CLOUD" | "SURFACE_WIND" | "SURFACE_VISIBILITY" | "CLOUD" | "CANCEL" | "OTHER";
|
|
3
|
+
export type SigmetArea = {
|
|
4
|
+
kind: "polygon";
|
|
5
|
+
points: GeoPosition[];
|
|
6
|
+
} | {
|
|
7
|
+
kind: "line";
|
|
8
|
+
side: Compass | null;
|
|
9
|
+
points: GeoPosition[];
|
|
10
|
+
} | {
|
|
11
|
+
kind: "circle";
|
|
12
|
+
radiusNm: number;
|
|
13
|
+
center: GeoPosition | "TC_CENTRE" | "VA_CENTRE" | null;
|
|
14
|
+
} | {
|
|
15
|
+
kind: "corridor";
|
|
16
|
+
widthNm: number;
|
|
17
|
+
points: GeoPosition[];
|
|
18
|
+
} | {
|
|
19
|
+
kind: "latitude-line";
|
|
20
|
+
side: Compass;
|
|
21
|
+
lat: number;
|
|
22
|
+
} | {
|
|
23
|
+
kind: "longitude-line";
|
|
24
|
+
side: Compass;
|
|
25
|
+
lon: number;
|
|
26
|
+
} | {
|
|
27
|
+
kind: "entire-fir";
|
|
28
|
+
};
|
|
29
|
+
export interface SigmetForecast {
|
|
30
|
+
at: Date | null;
|
|
31
|
+
area: SigmetArea | null;
|
|
32
|
+
/** Posisi pusat yang diprakirakan (siklon tropis). */
|
|
33
|
+
centre?: GeoPosition;
|
|
34
|
+
/** `NO VA EXP`: tidak ada abu vulkanik yang diperkirakan. */
|
|
35
|
+
noVaExpected?: boolean;
|
|
36
|
+
}
|
|
37
|
+
export interface Sigmet {
|
|
38
|
+
kind: "SIGMET" | "AIRMET";
|
|
39
|
+
/** Penunjuk FIR yang menerbitkan, mis. `WIIZ`. */
|
|
40
|
+
fir: string;
|
|
41
|
+
firName?: string;
|
|
42
|
+
/** Kantor pengamat meteorologi (MWO), mis. `WIII`. */
|
|
43
|
+
issuer: string | null;
|
|
44
|
+
/** Nomor urut, mis. `03` atau `A01`. */
|
|
45
|
+
series: string;
|
|
46
|
+
validFrom: Date;
|
|
47
|
+
validTo: Date;
|
|
48
|
+
hazard: SigmetHazard;
|
|
49
|
+
/** Frasa fenomena apa adanya, mis. `EMBD TS` atau `SEV TURB`. */
|
|
50
|
+
phenomenon: string;
|
|
51
|
+
/** Pembatalan pesan lain (`CNL SIGMET 02 011200/011600`). */
|
|
52
|
+
cancel?: {
|
|
53
|
+
series: string;
|
|
54
|
+
validFrom: Date;
|
|
55
|
+
validTo: Date;
|
|
56
|
+
};
|
|
57
|
+
/** Keterangan tambahan pada pembatalan (mis. `VA MOV TO YUDO FIR`). */
|
|
58
|
+
note?: string;
|
|
59
|
+
volcano?: {
|
|
60
|
+
name: string | null;
|
|
61
|
+
position?: GeoPosition;
|
|
62
|
+
};
|
|
63
|
+
cyclone?: {
|
|
64
|
+
name: string;
|
|
65
|
+
position?: GeoPosition;
|
|
66
|
+
cumulonimbus?: boolean;
|
|
67
|
+
};
|
|
68
|
+
status?: "OBS" | "FCST" | "OBS/FCST";
|
|
69
|
+
/** Waktu pengamatan (OBS) atau prakiraan (FCST) yang disebut pada `AT hhmmZ`. */
|
|
70
|
+
statusAt?: Date;
|
|
71
|
+
/** Area utama (yang pertama disebut). */
|
|
72
|
+
area: SigmetArea | null;
|
|
73
|
+
/** Semua area bila lebih dari satu (`N OF N28 AND S OF N33`). */
|
|
74
|
+
areas?: SigmetArea[];
|
|
75
|
+
altitude?: AltitudeRange;
|
|
76
|
+
movement?: Movement;
|
|
77
|
+
trend?: "NC" | "INTSF" | "WKN";
|
|
78
|
+
forecast?: SigmetForecast;
|
|
79
|
+
surfaceWindKt?: number;
|
|
80
|
+
surfaceVisibilityM?: number;
|
|
81
|
+
/** Bagian teks yang tidak dikenali (tidak diam-diam hilang). */
|
|
82
|
+
unparsed: string[];
|
|
83
|
+
raw: string;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Baca satu SIGMET atau AIRMET berformat ICAO (Annex 3): `WIIZ SIGMET 03 VALID 021200/021600 WIII-
|
|
87
|
+
* WIIZ JAKARTA FIR EMBD TS FCST WI ...`. Mengembalikan null bila kepala pesannya tidak terbaca.
|
|
88
|
+
* `reference` = waktu pesan diterima (menentukan bulan dan tahun).
|
|
89
|
+
*/
|
|
90
|
+
export declare function parseSigmet(rawText: string, reference?: Date): Sigmet | null;
|
|
91
|
+
//# sourceMappingURL=sigmet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sigmet.d.ts","sourceRoot":"","sources":["../src/sigmet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/** Satu runway pada SNOWTAM berformat lama (butir C sampai H). */
|
|
2
|
+
export interface SnowtamRunway {
|
|
3
|
+
/** Penunjuk runway, mis. `04L`. */
|
|
4
|
+
designator: string;
|
|
5
|
+
/** Panjang runway yang dibersihkan (m), bila kurang dari panjang yang dipublikasikan. */
|
|
6
|
+
clearedLengthM?: number;
|
|
7
|
+
/** Lebar runway yang dibersihkan (m); `side` bila hanya satu sisi dari sumbu (L/R). */
|
|
8
|
+
clearedWidthM?: {
|
|
9
|
+
value: number;
|
|
10
|
+
side?: "L" | "R";
|
|
11
|
+
};
|
|
12
|
+
/** Endapan per sepertiga runway: 1 bersih/kering ... 9 salju padat, atau null = NIL/tidak dilaporkan. */
|
|
13
|
+
deposits?: (number | null)[];
|
|
14
|
+
/** Kedalaman rata-rata per sepertiga (mm); null = NR/XX. */
|
|
15
|
+
meanDepthMm?: (number | null)[];
|
|
16
|
+
/** Gesekan permukaan per sepertiga, apa adanya (koefisien atau kode perkiraan). */
|
|
17
|
+
friction?: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface Snowtam {
|
|
20
|
+
kind: "SNOWTAM";
|
|
21
|
+
/** `lettered` = butir A) sampai T) (Annex 15 lama); `grf` = format pelaporan global (setelah 2021). */
|
|
22
|
+
format: "lettered" | "grf";
|
|
23
|
+
number: string | null;
|
|
24
|
+
aerodrome: string | null;
|
|
25
|
+
/** Waktu penilaian (butir B). */
|
|
26
|
+
assessedAt: Date | null;
|
|
27
|
+
runways: SnowtamRunway[];
|
|
28
|
+
/** Butir selain A-H (J, K, L, M, N, P, R, S, T), apa adanya. */
|
|
29
|
+
items: Record<string, string>;
|
|
30
|
+
/** Rencana pengamatan berikutnya (butir S). */
|
|
31
|
+
nextObservationAt?: Date | null;
|
|
32
|
+
/** Catatan bebas (butir T). */
|
|
33
|
+
remarks?: string;
|
|
34
|
+
unparsed: string[];
|
|
35
|
+
raw: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Baca SNOWTAM. Format lama berbutir `A) ... T)` dibaca penuh (aerodrom, waktu, runway, endapan,
|
|
39
|
+
* kedalaman, gesekan, rencana pengamatan, catatan). Format pelaporan global (tanpa huruf butir) hanya
|
|
40
|
+
* dibaca kepalanya (nomor, aerodrom, waktu, runway); sisanya dilaporkan di `unparsed`.
|
|
41
|
+
*/
|
|
42
|
+
export declare function parseSnowtam(rawText: string, reference?: Date): Snowtam | null;
|
|
43
|
+
//# sourceMappingURL=snowtam.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snowtam.d.ts","sourceRoot":"","sources":["../src/snowtam.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,mCAAmC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,yFAAyF;IACzF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,GAAG,GAAG,CAAA;KAAE,CAAC;IACpD,yGAAyG;IACzG,QAAQ,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAC7B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC;IAChC,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,uGAAuG;IACvG,MAAM,EAAE,UAAU,GAAG,KAAK,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iCAAiC;IACjC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACxB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAChC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AAyBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,OAAO,GAAG,IAAI,CAqF1F"}
|
package/dist/store.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type AnimationSnapshot } from "./animation.js";
|
|
2
|
-
import { type GeoPoint, type GridBounds, type ScalarGrid, type WindGrid } from "./grid.js";
|
|
2
|
+
import { type GeoPoint, type GridBounds, type NudgeOptions, type ScalarGrid, type WindGrid } from "./grid.js";
|
|
3
3
|
import type { TafChange } from "./types.js";
|
|
4
4
|
export type Locate = (icao: string) => GeoPoint | undefined;
|
|
5
5
|
export interface IngestOptions {
|
|
@@ -11,6 +11,10 @@ export interface IngestOptions {
|
|
|
11
11
|
export interface IngestResult {
|
|
12
12
|
metars: number;
|
|
13
13
|
tafs: number;
|
|
14
|
+
/** Laporan `NIL` (stasiun tidak mengirim isi); tidak mengubah data yang ada. */
|
|
15
|
+
nil: number;
|
|
16
|
+
/** Pesan yang dikenali tetapi bukan METAR/SPECI/TAF (SIGMET, AIRMET, VAA, SNOWTAM). */
|
|
17
|
+
other: number;
|
|
14
18
|
/** Laporan yang dikenali kata kuncinya tetapi tidak terbaca. */
|
|
15
19
|
skipped: number;
|
|
16
20
|
stations: string[];
|
|
@@ -41,6 +45,16 @@ export interface WeatherFields {
|
|
|
41
45
|
/** Suhu (°C); null bila tidak ada pengamatan bersuhu. */
|
|
42
46
|
temperature: ScalarGrid | null;
|
|
43
47
|
}
|
|
48
|
+
/** Medan dengan besaran yang boleh tidak ada (mis. seri model tanpa data suhu). */
|
|
49
|
+
export interface FieldSet {
|
|
50
|
+
at: Date;
|
|
51
|
+
/** Sumber yang dipakai: stasiun, atau nama model diikuti stasiun yang menyesuaikannya. */
|
|
52
|
+
stations: string[];
|
|
53
|
+
wind: WindGrid | null;
|
|
54
|
+
cloud: ScalarGrid | null;
|
|
55
|
+
rain: ScalarGrid | null;
|
|
56
|
+
temperature: ScalarGrid | null;
|
|
57
|
+
}
|
|
44
58
|
export interface FieldGridOptions {
|
|
45
59
|
bounds: GridBounds;
|
|
46
60
|
nx: number;
|
|
@@ -82,6 +96,16 @@ export declare class WeatherStore {
|
|
|
82
96
|
fieldsAt(at: Date, grid: FieldGridOptions, options?: {
|
|
83
97
|
includeProbable?: boolean;
|
|
84
98
|
}): WeatherFields | null;
|
|
99
|
+
/**
|
|
100
|
+
* Gabungkan medan model dengan laporan: grid model disesuaikan ke pengamatan (METAR/SPECI) atau
|
|
101
|
+
* prakiraan (TAF) di stasiun yang punya koordinat, dalam jarak `radiusKm` dari tiap stasiun. Tanpa
|
|
102
|
+
* stasiun yang bisa dipakai, medan model dikembalikan apa adanya.
|
|
103
|
+
*/
|
|
104
|
+
blendInto(model: Omit<FieldSet, "stations" | "at">, modelName: string, at: Date, options?: NudgeOptions & {
|
|
105
|
+
includeProbable?: boolean;
|
|
106
|
+
}): FieldSet;
|
|
107
|
+
/** Nilai tiap stasiun yang punya koordinat dan data pada waktu `at`. */
|
|
108
|
+
private pointsAt;
|
|
85
109
|
private changed;
|
|
86
110
|
private add;
|
|
87
111
|
private latest;
|
package/dist/store.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,iBAAiB,EAAqB,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EAEf,KAAK,UAAU,EAGf,KAAK,QAAQ,EAEd,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
|
package/dist/taf.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taf.d.ts","sourceRoot":"","sources":["../src/taf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAwB,MAAM,YAAY,CAAC;AAgBxE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,GAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"taf.d.ts","sourceRoot":"","sources":["../src/taf.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAwB,MAAM,YAAY,CAAC;AAgBxE;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAE,IAAiB,GAAG,GAAG,GAAG,IAAI,CA4J9E;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,mFAAmF;IACnF,SAAS,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,eAAe;IAC9B,8EAA8E;IAC9E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,sGAAsG;AACtG,wBAAgB,eAAe,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,GAAG,UAAU,CAgCnF;AAED,wGAAwG;AACxG,wBAAgB,UAAU,CACxB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,IAAI,EACR,OAAO,GAAE,eAAoB,GAC5B,UAAU,GAAG,IAAI,CA2CnB"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import type { NilReport } from "./nil.js";
|
|
2
|
+
import type { Sigmet } from "./sigmet.js";
|
|
3
|
+
import type { Snowtam } from "./snowtam.js";
|
|
4
|
+
import type { VolcanicAshAdvisory } from "./vaa.js";
|
|
5
|
+
export type ReportKind = "METAR" | "SPECI" | "TAF" | "SIGMET" | "AIRMET" | "VAA" | "SNOWTAM";
|
|
2
6
|
export type CloudCover = "FEW" | "SCT" | "BKN" | "OVC" | "VV" | "SKC" | "NSC" | "NCD";
|
|
3
7
|
export interface CloudLayer {
|
|
4
8
|
cover: CloudCover;
|
|
@@ -26,6 +30,20 @@ export interface PresentWeather {
|
|
|
26
30
|
/** Kode asli, mis. `+TSRA`. */
|
|
27
31
|
code: string;
|
|
28
32
|
}
|
|
33
|
+
/** Jarak pandang landasan (RVR) di satu runway. */
|
|
34
|
+
export interface Rvr {
|
|
35
|
+
/** Runway, mis. `06R` atau `28`. */
|
|
36
|
+
runway: string;
|
|
37
|
+
/** Nilai dalam meter (feet dikonversi); batas bawah/atas ada di `modifier`. */
|
|
38
|
+
meters: number;
|
|
39
|
+
/** `above` = lebih dari (P), `below` = kurang dari (M). */
|
|
40
|
+
modifier?: "above" | "below";
|
|
41
|
+
/** Rentang RVR berubah-ubah (V): nilai terkecil dan terbesar (meter). */
|
|
42
|
+
variableMinM?: number;
|
|
43
|
+
variableMaxM?: number;
|
|
44
|
+
/** Tren: naik (U), turun (D), tidak berubah (N). */
|
|
45
|
+
trend?: "up" | "down" | "none";
|
|
46
|
+
}
|
|
29
47
|
/** Kondisi cuaca pada satu titik waktu. */
|
|
30
48
|
export interface Conditions {
|
|
31
49
|
wind: Wind;
|
|
@@ -34,6 +52,8 @@ export interface Conditions {
|
|
|
34
52
|
cavok: boolean;
|
|
35
53
|
clouds: CloudLayer[];
|
|
36
54
|
weather: PresentWeather[];
|
|
55
|
+
/** RVR per runway, bila dilaporkan. */
|
|
56
|
+
rvr?: Rvr[];
|
|
37
57
|
}
|
|
38
58
|
export interface Metar {
|
|
39
59
|
kind: "METAR" | "SPECI";
|
|
@@ -46,6 +66,8 @@ export interface Metar {
|
|
|
46
66
|
dewPointC: number | null;
|
|
47
67
|
qnhHpa: number | null;
|
|
48
68
|
trend: "NOSIG" | "BECMG" | "TEMPO" | null;
|
|
69
|
+
/** Token laporan yang tidak dikenali parser (tidak diam-diam hilang). */
|
|
70
|
+
unparsed: string[];
|
|
49
71
|
raw: string;
|
|
50
72
|
}
|
|
51
73
|
export type TafChange = "BASE" | "FM" | "BECMG" | "TEMPO" | "PROB";
|
|
@@ -59,6 +81,8 @@ export interface TafPeriod {
|
|
|
59
81
|
conditions: Partial<Conditions> & {
|
|
60
82
|
noSignificantWeather?: boolean;
|
|
61
83
|
};
|
|
84
|
+
/** Token grup ini yang tidak dikenali parser. */
|
|
85
|
+
unparsed: string[];
|
|
62
86
|
raw: string;
|
|
63
87
|
}
|
|
64
88
|
export interface Taf {
|
|
@@ -70,8 +94,16 @@ export interface Taf {
|
|
|
70
94
|
amended: boolean;
|
|
71
95
|
corrected: boolean;
|
|
72
96
|
cancelled: boolean;
|
|
97
|
+
/** `AMD NOT SKED`: amendments are not scheduled for this TAF. */
|
|
98
|
+
amendmentsNotScheduled?: boolean;
|
|
73
99
|
periods: TafPeriod[];
|
|
100
|
+
/**
|
|
101
|
+
* Token yang tidak masuk ke periode mana pun: grup perubahan dengan periode rusak (mis.
|
|
102
|
+
* `TEMPO 0214/02014`) dibuang beserta isinya, bukan digabungkan diam-diam ke kondisi dasar.
|
|
103
|
+
*/
|
|
104
|
+
unparsed: string[];
|
|
74
105
|
raw: string;
|
|
75
106
|
}
|
|
76
|
-
|
|
107
|
+
/** Hasil `decodeWeatherMessage`: bedakan lewat `kind`. */
|
|
108
|
+
export type Report = Metar | Taf | NilReport | Sigmet | VolcanicAshAdvisory | Snowtam;
|
|
77
109
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vaa.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { type GeoPosition, type Movement } from "./geo.js";
|
|
2
|
+
export type VaCloudStatus = "identified" | "not-identifiable" | "not-available" | "none-expected";
|
|
3
|
+
export interface VaLayer {
|
|
4
|
+
baseFt: number | null;
|
|
5
|
+
topFt: number | null;
|
|
6
|
+
/** Titik batas awan abu (poligon atau garis). */
|
|
7
|
+
area: GeoPosition[];
|
|
8
|
+
movement?: Movement;
|
|
9
|
+
/** Waktu yang disebut pada awal baris prakiraan (`02/0000Z`). */
|
|
10
|
+
at?: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface VaCloud {
|
|
13
|
+
status: VaCloudStatus;
|
|
14
|
+
layers: VaLayer[];
|
|
15
|
+
/** Angin pada ketinggian abu bila awan tidak teridentifikasi (`WIND FL080 290/12KT`). */
|
|
16
|
+
wind?: {
|
|
17
|
+
levelFt: number;
|
|
18
|
+
directionDeg: number;
|
|
19
|
+
speedKt: number;
|
|
20
|
+
};
|
|
21
|
+
/** Teks asli bagian ini. */
|
|
22
|
+
text: string;
|
|
23
|
+
}
|
|
24
|
+
export interface VolcanicAshAdvisory {
|
|
25
|
+
kind: "VAA";
|
|
26
|
+
/** Pusat pengamat abu vulkanik, mis. `TOKYO` atau `DARWIN`. */
|
|
27
|
+
vaac: string;
|
|
28
|
+
issuedAt: Date;
|
|
29
|
+
volcano: {
|
|
30
|
+
name: string | null;
|
|
31
|
+
number?: string;
|
|
32
|
+
};
|
|
33
|
+
position?: GeoPosition;
|
|
34
|
+
area?: string;
|
|
35
|
+
summitElevationM?: number;
|
|
36
|
+
advisoryNumber: string;
|
|
37
|
+
infoSource?: string;
|
|
38
|
+
colourCode?: string;
|
|
39
|
+
eruption?: {
|
|
40
|
+
text: string;
|
|
41
|
+
at?: Date;
|
|
42
|
+
topFt?: number;
|
|
43
|
+
};
|
|
44
|
+
observed?: {
|
|
45
|
+
at: Date | null;
|
|
46
|
+
cloud: VaCloud;
|
|
47
|
+
};
|
|
48
|
+
estimated?: {
|
|
49
|
+
at: Date | null;
|
|
50
|
+
cloud: VaCloud;
|
|
51
|
+
};
|
|
52
|
+
/** Prakiraan +6, +12, +18 jam. */
|
|
53
|
+
forecasts: {
|
|
54
|
+
hoursAhead: number;
|
|
55
|
+
at: Date | null;
|
|
56
|
+
cloud: VaCloud;
|
|
57
|
+
}[];
|
|
58
|
+
remarks?: string;
|
|
59
|
+
next?: {
|
|
60
|
+
text: string;
|
|
61
|
+
noFurther: boolean;
|
|
62
|
+
by?: Date;
|
|
63
|
+
};
|
|
64
|
+
/** Isi label yang tidak bisa dibaca (tidak diam-diam hilang). */
|
|
65
|
+
unparsed: string[];
|
|
66
|
+
raw: string;
|
|
67
|
+
}
|
|
68
|
+
/** Baca satu bagian awan abu (`OBS VA CLD`, `FCST VA CLD +6 HR`, ...). */
|
|
69
|
+
export declare function parseVaCloud(text: string, reference: Date): VaCloud;
|
|
70
|
+
/**
|
|
71
|
+
* Baca satu Volcanic Ash Advisory (VAAC), mis. dari Tokyo atau Darwin. Mengembalikan null bila DTG,
|
|
72
|
+
* VAAC, atau nama gunung tidak terbaca.
|
|
73
|
+
*/
|
|
74
|
+
export declare function parseVaa(rawText: string, _reference?: Date): VolcanicAshAdvisory | null;
|
|
75
|
+
//# sourceMappingURL=vaa.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vaa.d.ts","sourceRoot":"","sources":["../src/vaa.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,QAAQ,EAId,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,kBAAkB,GAAG,eAAe,GAAG,eAAe,CAAC;AAElG,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iDAAiD;IACjD,IAAI,EAAE,WAAW,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,iEAAiE;IACjE,EAAE,CAAC,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,yFAAyF;IACzF,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAClE,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,KAAK,CAAC;IACZ,+DAA+D;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,IAAI,CAAC;IACf,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAClD,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,QAAQ,CAAC,EAAE;QAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/C,SAAS,CAAC,EAAE;QAAE,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;IAChD,kCAAkC;IAClC,SAAS,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,OAAO,CAAC;QAAC,EAAE,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC;IACvD,iEAAiE;IACjE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb;AA0CD,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,OAAO,CAmCnE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,GAAE,IAAiB,GAAG,mBAAmB,GAAG,IAAI,CAkGnG"}
|