@sk-global/hazard-risk
Version:
A TypeScript library for analyzing hazard risks and calculating risk assessments
68 lines (67 loc) • 1.41 kB
TypeScript
export type RiskLevel = number;
export interface RiskLevelConfig {
name: string;
color: string;
description: string;
}
export interface HazardConfig {
name: string;
levels: {
[level: number]: RiskLevelConfig;
};
waterColors?: string[];
}
export interface RiskStat {
level: RiskLevel | 'water';
count: number;
ratio: number;
}
export interface GridPoint {
lat: number;
lon: number;
tile: TileCoord;
pixel: PixelCoord;
riskLevel?: RiskLevel;
isWater: boolean;
}
export interface AnalyzeRiskOptions {
polygon: GeoJSONPolygon;
hazardTileUrl: string;
baseTileUrl: string;
gridSize: number;
zoom: number;
hazardConfig?: HazardConfig;
currentLocation?: {
lat: number;
lon: number;
};
}
export interface AnalyzeRiskResult {
grid: GridPoint[];
stats: RiskStat[];
total: number;
hazardConfig?: HazardConfig;
}
export type GeoJSONPolygon = {
type: 'Polygon';
coordinates: number[][][];
};
export interface TileCoord {
z: number;
x: number;
y: number;
}
export interface PixelCoord {
x: number;
y: number;
}
export interface TileProvider {
getTileUrl: (x: number, y: number, z: number) => string;
}
export interface AnalysisResult {
grid: GridPoint[];
stats: RiskStat[];
totalPoints: number;
waterPoints: number;
riskPoints: number;
}