weatherlayers-gl
Version:
WeatherLayers GL - Weather Visualization Layers for deck.gl
75 lines (66 loc) • 2.04 kB
TypeScript
import { Palette } from 'cpt2js';
import * as GeoTIFF from 'geotiff';
type TextureDataArray = GeoTIFF.TypedArray | Uint8ClampedArray;
interface TextureData {
data: TextureDataArray;
width: number;
height: number;
}
type DatetimeISOString = string;
type DatetimeISOStringRange = [start: DatetimeISOString, end: DatetimeISOString];
declare enum ImageType {
SCALAR = "SCALAR",
VECTOR = "VECTOR"
}
type ImageUnscale = [min: number, max: number] | null;
declare enum UnitSystem {
METRIC = "METRIC",
IMPERIAL = "IMPERIAL",
NAUTICAL = "NAUTICAL"
}
interface UnitFormat {
system: UnitSystem;
unit: string;
scale?: number;
offset?: number;
decimals?: number;
}
interface ClientConfig {
url?: string;
accessToken?: string;
dataFormat?: string;
unitSystem?: UnitSystem;
attributionLinkClass?: string;
datetimeInterpolate?: boolean;
}
interface Dataset {
title: string;
unitFormat: UnitFormat;
attribution: string;
datetimeRange: DatetimeISOStringRange;
datetimes: DatetimeISOString[];
palette: Palette;
}
interface DatasetSlice {
datetimes: DatetimeISOString[];
}
interface DatasetData {
image: TextureData;
image2: TextureData | null;
imageWeight: number;
imageType: ImageType;
imageUnscale: ImageUnscale;
bounds: [number, number, number, number];
}
declare class Client {
#private;
constructor(config: ClientConfig);
getConfig(): ClientConfig;
setConfig(config: ClientConfig): void;
updateConfig(config: Partial<ClientConfig>): void;
loadCatalog(config?: ClientConfig): Promise<string[]>;
loadDataset(dataset: string, config?: ClientConfig): Promise<Dataset>;
loadDatasetSlice(dataset: string, datetimeRange: DatetimeISOStringRange, config?: ClientConfig): Promise<DatasetSlice>;
loadDatasetData(dataset: string, datetime: DatetimeISOString, config?: ClientConfig): Promise<DatasetData>;
}
export { Client, type ClientConfig, type Dataset, type DatasetData, type DatasetSlice };