File size: 1,052 Bytes
6a82282
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""FEMA OpenFEMA: aggregated NFIP claims by NY census tract.

Property-level NFIP records are off-limits per project policy. We only
pull tract-level aggregates. The OpenFEMA endpoint streams large
result sets via CSV; we use the v2 dataset list as the smoke test
since the actual claims download is multi-GB."""

import json
import sys
import urllib.request

from _runner import cli, write_cache  # noqa: E402

URL = "https://www.fema.gov/api/open/v2/FimaNfipClaims?$top=1&$filter=state%20eq%20'NY'"


def probe():
    with urllib.request.urlopen(URL, timeout=20) as r:
        d = json.loads(r.read())
    claims = d.get("FimaNfipClaims", [])
    if not claims:
        return False, f"no NY claims sample (response keys: {list(d.keys())})", None
    sample_keys = sorted(list(claims[0].keys()))[:6]
    write_cache("openfema", {"sample_keys": sample_keys,
                              "metadata": d.get("metadata", {})})
    return True, f"NY sample row, keys[:6]={sample_keys}", d


if __name__ == "__main__":
    sys.exit(cli("openfema", probe))