JSPM

@hazardprep/core

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 28
  • Score
    100M100P100Q68783F
  • License Apache-2.0

Multi-hazard personal risk assessment engine using federal open data (FEMA, USGS, NOAA)

Package Exports

  • @hazardprep/core

Readme

@hazardprep/core

Multi-hazard personal risk assessment engine using federal open data (FEMA, USGS, NOAA).

Enter any US address and get a composite risk profile covering floods, earthquakes, wildfires, hurricanes, tornadoes, and more.

Install

npm install @hazardprep/core

Quick Start

import { HazardScorer } from '@hazardprep/core';

const scorer = new HazardScorer();
const profile = await scorer.assess('1600 Pennsylvania Ave, Washington, DC');

console.log(profile.overallScore);    // 45
console.log(profile.overallLevel);    // 'moderate'
console.log(profile.topRisks);        // [{ type: 'flood', score: 68, ... }, ...]
console.log(profile.recommendations); // [{ title: 'Flood Preparedness', ... }]

Data Sources

All data comes from free, public US federal government APIs:

Provider Data API
FEMA Disaster declarations, National Risk Index OpenFEMA
USGS Earthquake history & seismic hazard USGS Earthquake Hazards
NOAA Active weather alerts, severe storms NWS API
NIFC Active wildfires, fire perimeters NIFC Open Data

No API keys required.

Custom Providers

Extend BaseProvider to add your own data source:

import { BaseProvider, HazardType, scoreToLevel } from '@hazardprep/core';
import type { HazardScore, Location } from '@hazardprep/core';

class MyCustomProvider extends BaseProvider {
  readonly id = 'my-provider';
  readonly name = 'My Custom Data Source';
  readonly hazardTypes = [HazardType.Flood];

  protected async assess(location: Location): Promise<HazardScore[]> {
    // Fetch from your data source
    const score = 42;
    return [{
      type: HazardType.Flood,
      score,
      level: scoreToLevel(score),
      description: 'Custom flood risk assessment',
      source: { name: 'My Source', url: 'https://example.com' },
    }];
  }
}

const scorer = new HazardScorer({ providers: [new MyCustomProvider()] });

License

Apache 2.0