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))
|