NOAA Sea Level Rise Screener - Site Inundation Threshold avatar

NOAA Sea Level Rise Screener - Site Inundation Threshold

Pricing

from $4.40 / 1,000 screened sites

Go to Apify Store
NOAA Sea Level Rise Screener - Site Inundation Threshold

NOAA Sea Level Rise Screener - Site Inundation Threshold

Batch coordinates to the NOAA sea level rise increment at which each site first floods (0-10 ft above MHHW), with confidence class, inundated vs low-lying split, levee-exclusion flag and nearest high-tide-flooding thresholds. Out-of-coverage is reported explicitly, never as a false clear. MCP-ready.

Pricing

from $4.40 / 1,000 screened sites

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

At what sea level rise does this property flood? Give it coordinates; it returns the NOAA sea-level-rise increment at which each site first becomes inundated - plus NOAA's own confidence class, a separate low-lying flag, a levee-exclusion flag, an explicit out-of-coverage status, and the nearest high-tide-flooding thresholds.

Built directly on the NOAA Office for Coastal Management Sea Level Rise viewer services (coast.noaa.gov). Keyless, no scraping of the viewer UI, one billable row per site.


Why this actor is not just "did the blue layer cover my point"

Three things about this data will produce a confident wrong answer if you get them wrong, and all three were measured live before this actor was written.

1. "Not inundated" and "not modelled" look identical. Anchorage, Alaska is outside the NOAA sea-level-rise model entirely. Its inundation tile comes back HTTP 200 with a fully transparent pixel - byte-identical to Beacon Hill in Boston, which is inside the model and genuinely dry through 10 ft. Only the data-extent polygon layer separates them. This actor queries that layer for every site and reports in_slr_coverage / out_of_coverage on every row. It will never call an unmodelled site clear.

2. Inundated and low-lying are different findings. NOAA maps low-lying areas - ground below the modelled water level but hydrologically disconnected from the ocean - separately from connected inundation. They are different answers to different questions, and they are shipped as separate fields (first_inundation_ft and first_low_lying_ft, plus a per-increment class). Watch a site move through all three: the Charleston City Market is dry to 1.5 ft, low-lying from 2 ft, and inundated from 3.5 ft.

3. Leveed areas are excluded from the model, not found to be safe. The New Orleans French Quarter reads not inundated at every increment from 0 to 10 ft. That is not a finding of no risk - NOAA does not model inundation behind the mapped levees. This actor checks NOAA's Louisiana, Texas and Washington leveed-area polygons and returns behind_levee: true, levee_system_name: "Orleans Metro Polder" and the verdict not_modelled_behind_levee rather than a false clear.


Who buys this

PersonaWhat they do with it
Coastal real-estate / CRE due diligenceScreen a portfolio before LOI. first_inundation_ft under 3-4 ft on a 30-year hold is a financing and insurance conversation.
Insurers and reinsurersBatch-score books of coastal exposure with a nationally consistent federal model, and pair the threshold with the nearest station's minor/moderate/major flood levels.
Infrastructure, ports and energy sitingSubstations, terminals, landfall points and O&M yards. Screen candidate parcels before survey spend.
Phase I ESA / climate-risk disclosureA defensible, citable federal screening line for a physical-risk section, with the model's coverage gaps stated rather than hidden.
AI agents (MCP)One tool call, one flat row per coordinate, every uncertainty on the row.

Example input

{
"assets": [
{ "lat": 32.7808, "lon": -79.9297, "label": "Charleston City Market, SC" },
{ "lat": 25.7907, "lon": -80.13, "label": "Miami Beach City Hall, FL" },
{ "lat": 29.9511, "lon": -90.0715, "label": "New Orleans French Quarter, LA" },
{ "lat": 42.3583, "lon": -71.0656, "label": "Beacon Hill, Boston MA" }
],
"stepFt": "1",
"maxFeet": 10,
"includeConfidence": true,
"includeLevees": true,
"includeHighTideFlooding": true
}

Real results from that input (measured live):

SiteVerdictFirst inundatedFirst low-lyingHigh-confidence wet
Charleston City Market, SCinundated within range4 ft2 ft3 ft
Miami Beach City Hall, FLinundated within range6 ft-7 ft
Embarcadero, San Francisco CAinundated at current MHHW0 ft-0 ft
New Orleans French Quarter, LAnot modelled behind levee---
Beacon Hill, Boston MAnot inundated through 10 ft---
Anchorage, AKout of SLR coverage---

Set stepFt: "0.5" to walk half-foot increments: Miami Beach City Hall sharpens from 6 ft to 5.5 ft. NOAA publishes its confidence raster for whole feet only, so half-foot steps carry no confidence column at all (rather than a permanently empty one).


Output fields

One row per asset. Every field is nullable: null means "not checked", never "checked and negative".

Identity and row health

FieldMeaning
asset_labelYour label, echoed back.
asset_lat, asset_lonThe coordinates screened (WGS84).
row_statusok, invalid_input (coordinates missing or out of range), or error (no NOAA layer answered).
row_errorWhy the row could not be screened. Null on a healthy row - that is good news, not a dead column.

Coverage - read this before you read anything else

FieldMeaning
slr_coverage_statusok if NOAA's data-extent layer answered, unavailable if it did not.
in_slr_coverageTrue if NOAA has modelled this location. Null if the layer did not answer.
out_of_coverageTrue when NOAA has not modelled the location. Not a finding that it does not flood.
slr_data_extent_oidOBJECTID of the containing data-extent polygon.

Known gaps: all of Alaska, Guam and other Pacific territories are outside the extent. Hawaii, Puerto Rico, the US Virgin Islands and the CONUS coasts are inside it.

The answer

FieldMeaning
slr_verdictinundated_at_current_mhhw, inundated_within_modelled_range, not_inundated_through_10ft, not_modelled_behind_levee, out_of_slr_coverage, or indeterminate. It can never read a clear value while a contributing layer is unavailable.
slr_verdict_explainedA plain sentence stating exactly what the verdict does and does not assert.
first_inundation_ftLowest increment (ft above current MHHW) at which NOAA shows the site inundated - connected to the ocean.
first_wet_ftLowest increment at which the site is inundated or low-lying.
first_low_lying_ftLowest increment at which NOAA maps the site as a low-lying area (below the water level, hydrologically disconnected).
first_low_confidence_ftLowest whole foot at which NOAA's confidence raster reads "low confidence, wet or dry".
first_high_confidence_wet_ftLowest whole foot at which it reads "high confidence area wet".
inundated_at_max_modelled_incrementWhether the site is inundated at the highest requested increment. Null if that increment was never sampled.
max_increment_modelled_ftHighest increment this run asked for.
highest_increment_answered_ftHighest increment NOAA actually served. Below max_increment_modelled_ft means the top of the range was not checked.
increment_step_ft1 or 0.5.

Honesty accounting

FieldMeaning
increments_requested / increments_ok / increments_unavailableHow many increments were asked for, answered, and missing.
increments_unavailable_listWhich increments (ft) did not answer. Null when all answered.
inundation_monotonic_okInundation must be non-decreasing as the water rises. False means NOAA returned a physically impossible sequence for this site.
inundation_monotonic_violationsWhich increments broke it. Null on a healthy row.
confidence_monotonic_ok / confidence_monotonic_violationsThe same test on the confidence class.
partial_resultTrue when at least one requested increment could not be sampled, so the true threshold may sit inside the gap.

Levee exclusion

FieldMeaning
levee_statusok, partial, unavailable, or not_requested.
behind_leveeTrue inside a NOAA-mapped leveed area. Null if a levee layer did not answer - never false on an unchecked site.
levee_system_namee.g. Orleans Metro Polder.
levee_source_stateLA, TX or WA - the three states NOAA publishes leveed areas for.
levee_layers_checked / levee_layers_failedHow many of the three answered, and which did not.

Nearest high tide flooding station

NOAA's 99 high-tide-flooding tide stations, with the water levels at which NOAA declares minor, moderate and major flooding today.

FieldMeaning
htf_statusok, unavailable, or not_requested.
nearest_htf_station_name / nearest_htf_station_idStation name and NOAA CO-OPS id.
nearest_htf_station_distance_kmDistance to it. A distant station is a weak local reference - read this before relying on the thresholds.
htf_minor_ft_above_mhhw / htf_moderate_ft_above_mhhw / htf_major_ft_above_mhhwFlood thresholds in feet above mean higher high water.
htf_station_mhhw_ftThe station's published HTF datum offset.

Per increment

For each increment F in the requested set (ft0, ft0_5, ft1 ... ft10):

FieldMeaning
ft<F>_statusok, unavailable, out_of_coverage, or not_requested. unavailable means NOT CHECKED - it is never the same as not inundated.
ft<F>_inundationinundated, low_lying, or not_inundated. Null when not checked.
ft<F>_confidencehigh_confidence_wet, low_confidence, or high_confidence_dry. Whole feet only - NOAA publishes no confidence raster for half-foot steps, so those columns do not exist.
ft<F>_depth_symbology_rank_pctPosition on that increment's depth colour ramp, 0 = shallowest rendered, 100 = deepest. See the depth note below - this is NOT a depth in feet. Null unless inundated at that increment.

Provenance

FieldMeaning
sample_zoom_levelCached tile level the pixel was read from (15 - the finest level both the inundation and confidence services publish, about 4.78 m/px).
sample_resolution_mGround size of the sampled pixel.
sample_tile_row / sample_tile_col / sample_pixel_x / sample_pixel_yExactly which cached pixel produced the answer, so any row can be re-derived by hand.
drift_gate_statuspassed, or passed_with_unavailable_increments.
drift_gate_checksEvery value the live drift gate measured on this run, as JSON.
data_sourceThe NOAA service family.
low_lying_definitionThe exact meaning of low_lying, restated on every row.
depth_noteWhy there is no numeric depth field.
disclaimerNOAA's own statement of what this dataset is and is not.
screened_at_utcISO-8601 run timestamp.

What this actor deliberately does NOT publish

A numeric inundation depth in feet. NOAA serves the depth layer as a continuous, per-increment stretched colour ramp - one tile at Charleston contains 162 distinct colours, and the stretch is rebuilt for every increment. There is no numeric depth in these services to read. Rather than reverse-engineer a plausible number, this actor publishes ft<F>_depth_symbology_rank_pct: a relative position on that increment's own ramp, clearly named, with a depth_note on every row. If you need modelled depth in feet, download the NOAA SLR depth rasters directly.

A verdict when a source did not answer. If the coverage layer or every increment fails, the verdict is indeterminate and the row says so. If nothing could be screened for any asset, the run fails and bills nothing rather than emitting one billable "error" row per site.


Live drift assertions

An offline fixture cannot see a silently degraded upstream, because the fixture was shaped from the degraded data. So this actor re-measures the source on every run, before a single billable row exists, and fails loudly rather than publishing:

  • Legend vocabulary. The low-lying colour and all three confidence classes are read from NOAA's live /legend and compared to the values this build was verified against. A re-symbolisation fails the run instead of silently re-meaning every answer.
  • Coverage extent. Polygon count and total area must stay in band (54 polygons and 1.4376e12 m2 when verified), exceededTransferLimit is read, and a polygon with no numeric area is a problem rather than zero area.
  • The whole increment set. A Charleston Harbor marsh point that NOAA models as inundated at every increment is sampled at every requested increment. Any increment that does not read inundated there is marked unavailable for the whole run; more than two and the run fails.
  • A threshold canary. Miami Beach City Hall must read dry at 4 ft and inundated at 8 ft, which proves the increments are still ordered as this build expects.
  • A low-lying canary. A known disconnected pocket must still read low_lying at 6 ft.
  • A negative control. Beacon Hill, Boston must be inside coverage and dry at 10 ft - the geospatial form of catching a query that silently matches nothing.
  • An out-of-coverage control. Denver must fall outside the extent.
  • Per-site monotonicity. Inundation must be non-decreasing as the water rises.
  • Projection. Station coordinates are checked by coordinate magnitude, so a Web Mercator response is caught instantly.

Every measured value is logged and written to drift_gate_checks on every row.

You can prove the failure path yourself: set simulateOutage to tiles, coverage, legend, levees, htf or all. The run FAILS, emits 0 rows and bills nothing.


Use as an MCP tool

Available through mcp.apify.com. One call, one flat row per coordinate, no follow-up lookups needed - coverage, verdict, threshold, confidence, levee status and tide-station thresholds all arrive together, and every uncertainty is a field rather than a footnote.

Pricing

$8 per 1,000 results. One result = one screened coordinate, whatever the increment step. A failed run emits nothing and bills nothing. Graduated discounts apply on paid Apify plans.

FAQ

Is 10 ft realistic? It is the top of NOAA's modelled range and is used as a stress-test bound, not a forecast. NOAA's 2022 Interagency report projects roughly 0.8-1.2 ft of US average rise by 2050. Sites with first_inundation_ft of 1-3 ft are the ones that matter on a normal hold period.

Is this a flood zone determination? No. It is a screening tool for potential sea-level-rise inundation, and it excludes erosion, subsidence, future construction, wind-driven tides and storm surge. It is not FEMA flood-zone data and it is not for navigation, permitting or legal purposes. Pair it with FEMA NFIP claims history and county risk before drawing conclusions.

Why is my site dry at 10 ft when it floods today? Check behind_levee first, then in_slr_coverage. If both are clean, the site is genuinely above the modelled water level - and nearest_htf_station_* will tell you what today's nuisance-flooding thresholds are at the nearest tide gauge.

How precise is a single point? The sample is one 4.78 m pixel from NOAA's cached tiles. NOAA states the data shows the scale of potential flooding, not the exact location. sample_tile_row/sample_pixel_x and friends let you re-derive any row.

Screen the same coordinates against the rest of the coastal and flood shelf:

  • NFIP Flood Loss Risk Screener - actual paid FEMA flood claim history nearby.
  • FEMA NRI County Risk Profile - county and tract expected annual loss by peril.
  • CBRS Coastal Barrier Screener - whether federal flood insurance is barred outright.
  • FWS Wetlands Proximity Screener and NHD Surface Water 404 Screener - the jurisdictional water picture.
  • Site Due Diligence Bundle - 20 layers for one coordinate in one call.

Data: NOAA Office for Coastal Management, Sea Level Rise viewer services (coast.noaa.gov/slr). A screening-level planning tool. Verify with a site visit.