NOAA-OWP / inundation-mapping

Flood inundation mapping and evaluation software configured to work with U.S. National Water Model.
Other
88 stars 26 forks source link

[21pt] Test adjustment of SRCs using the ML-estimated missing flow volumes #1112

Open CarsonPruitt-NOAA opened 3 months ago

CarsonPruitt-NOAA commented 3 months ago

The data schema according to Arash is as follows:

It contains all the below channel properties computed for 2 flow conditions 1- bankfull 2- in-channel. Our experiments with branch 0 showed the in-channel estimates were more apt to account for missing volume and is stored in inchan_ChannelVolume (m3). Also, the ML derived roughness can be used and we will work to refine that with ML derived bathymetric information.


hf_id: reference fabric id (can be interchanged 99% of the time with NHDPlusV2 COMID) hf_source: the source geospatial fabric used owp_y_bf: Machine Learned depth at bankfull owp_y_inchan: Machine Learned depth at in channel owp_tw_bf: Machine Learned topwidth at bankfull owp_tw_inchan: Machine Learned topwidth at in channel owp_ahg_c: Machine Learned AHG c coefficient owp_ahg_f: Machine Learned AHG f coefficient owp_ahg_a: Machine Learned AHG a coefficient owp_ahg_b: Machine Learned AHG b coefficient owp_ahg_k: Machine Learned AHG k coefficient owp_ahg_m: Machine Learned AHG m coefficient owp_dingman_r: Machine Learned channel shape r Dingman parameter LENGTHKM: the reference fabric length roughness: an approximation of roughness learned from CFIM SRCs, the NHDPlus Network and USGS rating curves. inchan_ChannelArea (m2): The cross sectional area at in channel (using AHGestimation) inchan_ChannelPerimeter (m): The cross sectional perimeter at in channel bf_ChannelArea (m2): The cross sectional area at bankfull (using AHGestimation) bf_ChannelPerimeter (m): The cross sectional perimeter at bankfull inchan_ChannelVolume (m3): The channel volume at in channel
inchan_ChannelBedArea (m2): The channel bed area at in channel
bf_ChannelVolume (m3): The channel volume at bankfull bf_ChannelBedArea (m2): The channel bed area at bankfull

More info:

inchan_ChannelVolume (m3) = LENGTHKM 1000 inchan_ChannelArea (m2) In case FIM hydrofabric is going to be used instead of reference fabric LENGTHKM need to come from FIM hydrofabric to recompute inchan_ChannelVolume (m3).

CarsonPruitt-NOAA commented 3 months ago

As a validation measure, I saved a flow file for an event on 4/4/2024 in Wheeling, WV. The flow file can be used to create a candidate FIM to be validated against the drone aerial photo. The files are stored on our EFS drive here: /fim-home/wheeling_bathy_test.

CarsonPruitt-NOAA commented 2 months ago

Arash started a notes document here.

arashmodrad commented 2 months ago

An updated version of the dataset is now at s3://lynker-spatial/hydrofabric/v20.1/3D/ml-outputs/ml_outputs_v1.01.parquet It has an updated metadata that can be accessed using this example script in python

` import pandas as pd import pyarrow.parquet as pq

table = pq.read_table('direcotry/ml_outputs_v1.01.parquet')

Read as pandas dataframe

ml_outputs = table.to_pandas()

Read metadata

schema = table.schema for field in schema.names: print("Column: {0}".format(field)) print("Unit: {0}".format(schema.field(field).metadata[b'unit'].decode('utf-8'))) print("Description: {0} \n".format(schema.field(field).metadata[b'description'].decode('utf-8'))) `

hhs732 commented 1 month ago

Image

Image

Image

hhs732 commented 1 month ago

👍

Image

CarsonPruitt-NOAA commented 3 weeks ago

I saved a flow file with some drone photos in our shared EFS folder. Can you run a test to see if the new estimated bathymetry data gets us closer to the floods shown in the pictures?

/fim-home/wheeling_bathy_test/

hhs732 commented 2 weeks ago

Wheeling Island, Pittsburgh New inundation map with bathy data added

Image

hhs732 commented 2 weeks ago

Image

Image

hhs732 commented 2 weeks ago

Example of SRC for a nwm stream at the location after applying AI-based bathy data

Image

hhs732 commented 2 weeks ago

hydroTable_1542000004_analysis.xlsx

CarsonPruitt-NOAA commented 2 weeks ago

So, based off the drone photos, it looks like the ML-bathymetry is under-estimating FIM in this particular case.

hhs732 commented 1 week ago

Image

Image

Image

Image

Image

hhs732 commented 1 week ago

Image

CarsonPruitt-NOAA commented 1 week ago

Thank you for doing this analysis. Once you have run the full alpha domain, I would like to see those plots as well, but these are exactly what I was expecting. The right-shift of the SRC is lowering the CSI and increasing PND from an increase in false negatives (underprediction). It seems to also have a marginally greater effect on the 100-yr flood, which also aligns with our expectations.

In order to avoid possible interference with other people branching off dev with these lower skill scores, I'm going to recommend that we turn the ML-bathy "off" in a default fim_pipeline until you're able to optimize the roughness. @RyanSpies-NOAA I'd like to know your opinion on this also.