Calculate total marsh migration area, ratio of total migration area to marsh unit area and migration rate.
Total migration area for a marsh unit is calculated as the sum of all catchment areas within in the migration zone that the marsh unit borders, where catchments are clipped to the SLR extent landward. If same migration area is bounded by multiple marsh units then the marsh area proportioned by the length of the shared boundary between the migration area and each unit.
Marsh migration rate for each unit is defined as the migration area covered per year by that marsh unit under a SLR scenario. Similar to total area calculation, if same migration area is shared by multiple marsh units a migration rate is calculated per each migration area proportional to the shared boundary. However, if multiple catchments are within the total marsh migration area, the maximum of the migration rates is assigned as the final migration rate.
a) First, calculate the migration rate in terms of area per time by dividing the migration area for each unit by the time it takes for a SLR of 4 feet. This step is done in MATLAB (version 2021b). For sea-level rise projections Sweet and others (2022) SLR data within the region were used. A total of 40 points including 20 stations and 20 grid points were within the bounding box with lower left corner of (-78.0000N, 35.7950W) and upper right corner of (-74.9600N, 40.0000W). SLR rate is calculated as SLR_RATE=(RSL2100+RSL_OFFSET)/100-RSL_VLM, where RSL2100 is the relative sea level by 2100 under a global mean sea level rise scenario, RSL_OFFSET is the offset to initiate the projection at year 2000, and RSL_VLM is the relative sea level contribution from vertical land motion. Interpolate the SLR_RATE from 40 points over a regular grid using GRIDDATA function with natural neighbor interpolation (grid size of 30 longitudinal by 42 latitudinal points). Assign to each marsh migration polygon the interpolated SLR_RATE value from the nearest grid point. For each polygon, calculate the time it takes for a SLR of 4 feet by dividing the migration area by the SLR_RATE. Do this for the GMSL rise scenario closest to 4 feet (1.0 meters rise by year 2100). Join these values to the marsh migration polygons table as MIGR10.
Sweet, W.V., Hamlington, B.D., Kopp, R.E., Weaver, C.P., Barnard, P.L., Bekaert, D., Brooks, W., Craghan, M., Dusek, G., Frederikse, T., Garner, G., Genz, A.S., Krasting, J.P., Larour, E., Marcy, D., Marra, J.J., Obeysekera, J., Osler, M., Pendleton, M., Roman, D., Schmied, L., Veatch, W., White, K.D., and Zuzak, C., 2022, Global and regional sea level rise scenarios for the United States—Updated mean projections and extreme water level probabilities along U.S. coastlines: National Oceanic and Atmospheric Administration, NOAA Technical Report NOS 01, 111 pp.,
https://oceanservice.noaa.gov/hazards/sealevelrise/noaa-nos-techrpt01-global-regional-SLR-scenarios-US.pdf
b) Next, add a new field to marsh migration polygons dataset to transfer their FID info to the shared boundary segments. CALCULATE_FIELD(Input table=marsh_migration_polgons.shp; Field name=FID_MM; Field Type=Long; Expression="FID_MM=!FID!"). Then intersect the marsh units and the marsh polygons to calculate the length of each shared boundary. INTERSECT(Input features=mu_UVVR_CB.shp, marsh_migration_polygons.shp; Output feature=MM_MU_boundary.shp; Output type=Line). Calculate the length of each boundary segment with CALCULATE_GEOMETRY_ATTRIBUTES(Input features=MM_MU_boundary.shp; Geometry attributes field=M_L; Property=Length(geodesic); Length units=Meters; Coordinate system=NAD_1983_2011_UTM_Zone_18N).
c) Delete field FID_MM from marsh migration polygons and spatial join with the shared boundary dataset to create marsh polygons with boundary segment lengths. SPATIAL_JOIN(Target features=marsh_migration_polygons.shp; Join features=MM_MU_boundary.shp; Output feature class=MM_MU_boundary_len.shp; Join operation=One to many; Match option=Intersect; Fields=FID_MM,FID_CMU,M_L). SELECT(Input features=MM_MU_boundary_len.shp; Output feature class=MM_MU_boundary_len_Select.shp; Where=TARGET_FID is equal to FID_MM).
d) Calculate marsh migration area associated with each boundary segment by CALCULATE_GEOMETRY_ATTRIBUTES(Input features=MM_MU_boundary_len_Select.shp; Geometry attributes field=MM_A; Property=Area (geodesic); Area unit=Square meters; Coordinate system=NAD_1983_2011_Contiguous_USA_Albers) and SUMMARY_STATISTICS(Input table=MM_MU_boundary_len_Select.shp; Output table=M_L_sum_by_MM.dbf; Statistics field property=M_L; Statistics type=Sum; Case field=TARGET_FID) and JOIN_FIELD(Input table=MM_MU_boundary_len_Select.shp; Input field=TARGET_FID; Join table=M_L_sum_by_MM.dbf; Join field=TARGET_FID; Transfer method=Use field mapping; Field map=TARGET_FID, SUM_M_L; Index join fields=Do not add indexes).
e) Calculate potential marsh migration area associated with each marsh unit by CALCULATE_FIELD(Input table=MM_MU_boundary_len_Select.shp; Field name=PMA; Expression="!M_L! / !SUM_M_L! * !MM_A!") and then PAIRWISE_DISSOLVE(Input features=MM_MU_boundary_len_Select.shp; Output feature class=MM_MU_boundary_area_summary.shp; Dissolve fields=FID_CMU; Statistics fields=PMA; Statistics type=Sum; Create multipart features=Yes).
f) Finally, create the marsh migration dataset by joining the migration summary dataset to the UVVR dataset. Also calculate a ratio of migration area to marsh unit are at this step. JOIN_FIELD(Input table=mu_UVVR_CB.shp; Input field=FID_CMU; Join table=MM_MU_boundary_area_summary.shp; Join field=FID_CMU; Transfer method=Use field mapping; FieldMap:AMIG_M2,MIGR10). CALCULATE_FIELD(Input table=mu_UVVR_CB.shp; Field name=AMIGRAT; Expression="!AMIG_M2!/!ATOT_M2!"). Keep only FID_CMU, ATOT_M2, AVEG_M2, AMIG_M2, FLG fields and the transferred fields, project to Web Mercator projection, and export features as mu_migration_CB_4ft.shp.