Model Inputs

The inputs of each InVEST model, generated automatically from the model’s MODEL_SPEC at documentation build time.

Each diagram is a dependency tree: the model is the root, every parameter is a node, and an edge runs from each parameter to the one that enables it – so an optional toggle branches to the inputs it switches on. Nodes are coloured by requirement: green = required, amber = conditional (the condition is printed on the node), grey = optional.

workspace_dir and n_workers are not shown: the WPS manages them itself and does not accept them as process inputs. results_suffix is left out of the diagrams too, but every process does accept it.

Annual Water Yield

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Annual Water Yield"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>lulc_path &middot; raster"]:::inputRequired
  n1["root restricting layer depth<br/>depth_to_root_rest_layer_path &middot; raster"]:::inputRequired
  n2["precipitation<br/>precipitation_path &middot; raster"]:::inputRequired
  n3["plant available water content<br/>pawc_path &middot; raster"]:::inputRequired
  n4["reference evapotranspiration<br/>eto_path &middot; raster"]:::inputRequired
  n5["watersheds<br/>watersheds_path &middot; vector"]:::inputRequired
  n6["sub-watersheds<br/>sub_watersheds_path &middot; vector"]:::inputOptional
  n7["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n8["z parameter<br/>seasonality_constant &middot; number"]:::inputRequired
  n9["water demand table<br/>demand_table_path &middot; csv<br/>only if: valuation_table_path"]:::inputConditional
  n10["hydropower valuation table<br/>valuation_table_path &middot; csv"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  n10 --> n9
  root --> n10
    

Carbon Storage and Sequestration

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Carbon Storage and Sequestration"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["baseline LULC<br/>lulc_bas_path &middot; raster"]:::inputRequired
  n1["calculate sequestration<br/>calc_sequestration &middot; boolean<br/>only if: do_valuation"]:::inputConditional
  n2["alternate LULC<br/>lulc_alt_path &middot; raster<br/>only if: calc_sequestration"]:::inputConditional
  n3["carbon pools<br/>carbon_pools_path &middot; csv"]:::inputRequired
  n4["baseline LULC year<br/>lulc_bas_year &middot; number<br/>only if: do_valuation"]:::inputConditional
  n5["alternate LULC year<br/>lulc_alt_year &middot; number<br/>only if: do_valuation"]:::inputConditional
  n6["run valuation model<br/>do_valuation &middot; boolean"]:::inputOptional
  n7["price of carbon<br/>price_per_metric_ton_of_c &middot; number<br/>only if: do_valuation"]:::inputConditional
  n8["annual market discount rate<br/>discount_rate &middot; percent<br/>only if: do_valuation"]:::inputConditional
  n9["annual price change<br/>rate_change &middot; percent<br/>only if: do_valuation"]:::inputConditional
  root --> n0
  n6 --> n1
  n1 --> n2
  root --> n3
  n6 --> n4
  n6 --> n5
  root --> n6
  n6 --> n7
  n6 --> n8
  n6 --> n9
    

Coastal Blue Carbon

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Coastal Blue Carbon"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["landcover snapshots table<br/>landcover_snapshot_csv &middot; csv"]:::inputRequired
  n1["analysis year<br/>analysis_year &middot; integer"]:::inputOptional
  n2["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n3["landcover transitions table<br/>landcover_transitions_table &middot; csv"]:::inputRequired
  n4["run valuation<br/>do_economic_analysis &middot; boolean"]:::inputOptional
  n5["use price table<br/>use_price_table &middot; boolean"]:::inputOptional
  n6["price<br/>price &middot; number<br/>only if: do_economic_analysis and (not use_price_table)"]:::inputConditional
  n7["interest rate<br/>inflation_rate &middot; percent<br/>only if: do_economic_analysis and (not use_price_table)"]:::inputConditional
  n8["price table<br/>price_table_path &middot; csv<br/>only if: use_price_table"]:::inputConditional
  n9["discount rate<br/>discount_rate &middot; percent<br/>only if: do_economic_analysis"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  n4 --> n6
  n4 --> n7
  n5 --> n8
  n4 --> n9
    

Coastal Blue Carbon Preprocessor

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Coastal Blue Carbon Preprocessor"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["LULC lookup table<br/>lulc_lookup_table_path &middot; csv"]:::inputRequired
  n1["LULC snapshots table<br/>landcover_snapshot_csv &middot; csv"]:::inputRequired
  root --> n0
  root --> n1
    

Coastal Vulnerability

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Coastal Vulnerability"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["area of interest<br/>aoi_vector_path &middot; vector"]:::inputRequired
  n1["model resolution<br/>model_resolution &middot; number"]:::inputRequired
  n2["landmasses<br/>landmass_vector_path &middot; vector"]:::inputRequired
  n3["WaveWatchIII<br/>wwiii_vector_path &middot; vector"]:::inputRequired
  n4["maximum fetch distance<br/>max_fetch_distance &middot; number"]:::inputRequired
  n5["Bathymetry<br/>bathymetry_raster_path &middot; raster"]:::inputRequired
  n6["continental shelf contour<br/>shelf_contour_vector_path &middot; vector"]:::inputRequired
  n7["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n8["elevation averaging radius<br/>dem_averaging_radius &middot; number"]:::inputRequired
  n9["habitats table<br/>habitat_table_path &middot; csv"]:::inputRequired
  n10["geomorphology<br/>geomorphology_vector_path &middot; vector"]:::inputOptional
  n11["geomorphology fill value<br/>geomorphology_fill_value &middot; option_string<br/>only if: geomorphology_vector_path"]:::inputConditional
  n12["human population<br/>population_raster_path &middot; raster"]:::inputOptional
  n13["population search radius<br/>population_radius &middot; number<br/>only if: population_raster_path"]:::inputConditional
  n14["sea level rise<br/>slr_vector_path &middot; vector"]:::inputOptional
  n15["sea level rise field<br/>slr_field &middot; option_string<br/>only if: slr_vector_path"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  root --> n9
  root --> n10
  n10 --> n11
  root --> n12
  n12 --> n13
  root --> n14
  n14 --> n15
    

Crop Pollination

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Crop Pollination"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>landcover_raster_path &middot; raster"]:::inputRequired
  n1["Guild Table<br/>guild_table_path &middot; csv"]:::inputRequired
  n2["biophysical table<br/>landcover_biophysical_table_path &middot; csv"]:::inputRequired
  n3["farms map<br/>farm_vector_path &middot; vector"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
    

Crop Production: Percentile

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Crop Production: Percentile"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>landcover_raster_path &middot; raster"]:::inputRequired
  n1["LULC to Crop Table<br/>landcover_to_crop_table_path &middot; csv"]:::inputRequired
  n2["area of interest<br/>aggregate_polygon_path &middot; vector"]:::inputOptional
  n3["Climate Bin Raster Table<br/>climate_bin_raster_table &middot; csv"]:::inputRequired
  n4["Observed Yield Raster Table<br/>observed_yield_raster_table &middot; csv"]:::inputRequired
  n5["Percentile Yield CSV Table<br/>percentile_yield_csv_table &middot; csv"]:::inputRequired
  n6["Crop Nutrient Table<br/>crop_nutrient_table &middot; csv"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
    

Crop Production: Regression

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Crop Production: Regression"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>landcover_raster_path &middot; raster"]:::inputRequired
  n1["LULC to crop table<br/>landcover_to_crop_table_path &middot; csv"]:::inputRequired
  n2["fertilization rate table<br/>fertilization_rate_table_path &middot; csv"]:::inputRequired
  n3["area of interest<br/>aggregate_polygon_path &middot; vector"]:::inputOptional
  n4["Climate Bin Raster Table<br/>climate_bin_raster_table &middot; csv"]:::inputRequired
  n5["Observed Yield Raster Table<br/>observed_yield_raster_table &middot; csv"]:::inputRequired
  n6["Regression Yield CSV Table<br/>regression_yield_csv_table &middot; csv"]:::inputRequired
  n7["Crop Nutrient Table<br/>crop_nutrient_table &middot; csv"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
    

DelineateIt

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["DelineateIt"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n1["detect pour points<br/>detect_pour_points &middot; boolean"]:::inputOptional
  n2["watershed outlets<br/>outlet_vector_path &middot; vector<br/>only if: not detect_pour_points"]:::inputConditional
  n3["snap points to the nearest stream<br/>snap_points &middot; boolean"]:::inputOptional
  n4["threshold flow accumulation<br/>flow_threshold &middot; number<br/>only if: snap_points"]:::inputConditional
  n5["snap distance<br/>snap_distance &middot; number<br/>only if: snap_points"]:::inputConditional
  n6["skip invalid geometries<br/>skip_invalid_geometry &middot; boolean"]:::inputOptional
  root --> n0
  root --> n1
  n1 --> n2
  root --> n3
  n3 --> n4
  n3 --> n5
  root --> n6
    

Forest Carbon Edge Effect

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Forest Carbon Edge Effect"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["number of points to average<br/>n_nearest_model_points &middot; integer<br/>only if: compute_forest_edge_effects"]:::inputConditional
  n1["area of interest<br/>aoi_vector_path &middot; vector"]:::inputOptional
  n2["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n3["land use/land cover<br/>lulc_raster_path &middot; raster"]:::inputRequired
  n4["carbon pools to calculate<br/>pools_to_calculate &middot; option_string"]:::inputRequired
  n5["compute forest edge effects<br/>compute_forest_edge_effects &middot; boolean"]:::inputRequired
  n6["global regression models<br/>tropical_forest_edge_carbon_model_vector_path &middot; vector<br/>only if: compute_forest_edge_effects"]:::inputConditional
  n7["forest edge biomass to carbon conversion factor<br/>biomass_to_carbon_conversion_factor &middot; ratio<br/>only if: compute_forest_edge_effects"]:::inputConditional
  n5 --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  n5 --> n6
  n5 --> n7
    

Habitat Quality

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Habitat Quality"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["current land cover<br/>lulc_cur_path &middot; raster"]:::inputRequired
  n1["future land cover<br/>lulc_fut_path &middot; raster"]:::inputOptional
  n2["baseline land cover<br/>lulc_bas_path &middot; raster"]:::inputOptional
  n3["threats table<br/>threats_table_path &middot; csv"]:::inputRequired
  n4["accessibility to threats<br/>access_vector_path &middot; vector"]:::inputOptional
  n5["sensitivity table<br/>sensitivity_table_path &middot; csv"]:::inputRequired
  n6["half-saturation constant<br/>half_saturation_constant &middot; number"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
    

Habitat Risk Assessment

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Habitat Risk Assessment"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["habitat stressor table<br/>info_table_path &middot; csv"]:::inputRequired
  n1["criteria scores table<br/>criteria_table_path &middot; csv"]:::inputRequired
  n2["resolution of analysis<br/>resolution &middot; number"]:::inputRequired
  n3["maximum criteria score<br/>max_rating &middot; number"]:::inputRequired
  n4["risk equation<br/>risk_eq &middot; option_string"]:::inputRequired
  n5["decay equation<br/>decay_eq &middot; option_string"]:::inputRequired
  n6["area of interest<br/>aoi_vector_path &middot; vector"]:::inputRequired
  n7["Number of Overlapping Stressors<br/>n_overlapping_stressors &middot; number"]:::inputRequired
  n8["Generate GeoJSONs<br/>visualize_outputs &middot; boolean"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
    

Nutrient Delivery Ratio

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Nutrient Delivery Ratio"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n1["land use/land cover<br/>lulc_path &middot; raster"]:::inputRequired
  n2["nutrient runoff proxy<br/>runoff_proxy_path &middot; raster"]:::inputRequired
  n3["watersheds<br/>watersheds_path &middot; vector"]:::inputRequired
  n4["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n5["calculate phosphorus<br/>calc_p &middot; boolean"]:::inputRequired
  n6["calculate nitrogen<br/>calc_n &middot; boolean"]:::inputRequired
  n7["threshold flow accumulation<br/>threshold_flow_accumulation &middot; number"]:::inputRequired
  n8["Borselli k parameter<br/>k_param &middot; number"]:::inputRequired
  n9["average runoff proxy<br/>runoff_proxy_av &middot; number"]:::inputOptional
  n10["subsurface critical length (nitrogen)<br/>subsurface_critical_length_n &middot; number<br/>only if: calc_n"]:::inputConditional
  n11["subsurface maximum retention efficiency (nitrogen)<br/>subsurface_eff_n &middot; ratio<br/>only if: calc_n"]:::inputConditional
  n12["flow direction algorithm<br/>flow_dir_algorithm &middot; option_string"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  root --> n9
  n6 --> n10
  n6 --> n11
  root --> n12
    

RouteDEM

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["RouteDEM"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n1["band index<br/>dem_band_index &middot; integer"]:::inputOptional
  n2["routing algorithm<br/>algorithm &middot; option_string"]:::inputRequired
  n3["calculate flow direction<br/>calculate_flow_direction &middot; boolean"]:::inputOptional
  n4["calculate flow accumulation<br/>calculate_flow_accumulation &middot; boolean"]:::inputOptional
  n5["calculate streams<br/>calculate_stream_threshold &middot; boolean"]:::inputOptional
  n6["threshold flow accumulation<br/>threshold_flow_accumulation &middot; number<br/>only if: calculate_stream_threshold"]:::inputConditional
  n7["calculate distance to stream<br/>calculate_downslope_distance &middot; boolean"]:::inputOptional
  n8["calculate slope<br/>calculate_slope &middot; boolean"]:::inputOptional
  n9["calculate strahler stream orders (D8 only)<br/>calculate_stream_order &middot; boolean"]:::inputOptional
  n10["calculate subwatersheds (D8 only)<br/>calculate_subwatersheds &middot; boolean"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  n5 --> n6
  root --> n7
  root --> n8
  root --> n9
  root --> n10
    

Scenario Generator: Proximity Based

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Scenario Generator: Proximity Based"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["base LULC map<br/>base_lulc_path &middot; raster"]:::inputRequired
  n1["replacement landcover code<br/>replacement_lucode &middot; integer"]:::inputRequired
  n2["maximum area to convert<br/>area_to_convert &middot; number"]:::inputRequired
  n3["focal landcover codes<br/>focal_landcover_codes &middot; string"]:::inputRequired
  n4["convertible landcover codes<br/>convertible_landcover_codes &middot; string"]:::inputRequired
  n5["number of conversion steps<br/>n_fragmentation_steps &middot; integer"]:::inputRequired
  n6["area of interest<br/>aoi_path &middot; vector"]:::inputOptional
  n7["convert farthest from edge<br/>convert_farthest_from_edge &middot; boolean"]:::inputRequired
  n8["convert nearest to edge<br/>convert_nearest_to_edge &middot; boolean"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
    

Scenic Quality

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Scenic Quality"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["area of interest<br/>aoi_path &middot; vector"]:::inputRequired
  n1["features impacting scenic quality<br/>structure_path &middot; vector"]:::inputRequired
  n2["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n3["refractivity coefficient<br/>refraction &middot; ratio"]:::inputRequired
  n4["run valuation<br/>do_valuation &middot; boolean"]:::inputOptional
  n5["Valuation function<br/>valuation_function &middot; option_string<br/>only if: do_valuation"]:::inputConditional
  n6["coefficient a<br/>a_coef &middot; number<br/>only if: do_valuation"]:::inputConditional
  n7["coefficient b<br/>b_coef &middot; number<br/>only if: do_valuation"]:::inputConditional
  n8["maximum valuation radius<br/>max_valuation_radius &middot; number"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  n4 --> n5
  n4 --> n6
  n4 --> n7
  root --> n8
    

Seasonal Water Yield

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Seasonal Water Yield"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["threshold flow accumulation<br/>threshold_flow_accumulation &middot; number"]:::inputRequired
  n1["ET0 table<br/>et0_raster_table &middot; csv<br/>only if: not user_defined_local_recharge"]:::inputConditional
  n2["precipitation table<br/>precip_raster_table &middot; csv<br/>only if: not user_defined_local_recharge"]:::inputConditional
  n3["digital elevation model<br/>dem_raster_path &middot; raster"]:::inputRequired
  n4["land use/land cover<br/>lulc_raster_path &middot; raster"]:::inputRequired
  n5["soil hydrologic group<br/>soil_group_path &middot; raster<br/>only if: not user_defined_local_recharge"]:::inputConditional
  n6["area of interest<br/>aoi_path &middot; vector"]:::inputRequired
  n7["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n8["rain events table<br/>rain_events_table_path &middot; csv<br/>only if: (not user_defined_local_recharge) & (not user_defined_climate_zones)"]:::inputConditional
  n9["alpha_m parameter<br/>alpha_m &middot; string<br/>only if: not monthly_alpha"]:::inputConditional
  n10["beta_i parameter<br/>beta_i &middot; ratio"]:::inputRequired
  n11["gamma parameter<br/>gamma &middot; ratio"]:::inputRequired
  n12["user-defined recharge layer (advanced)<br/>user_defined_local_recharge &middot; boolean"]:::inputRequired
  n13["local recharge<br/>l_path &middot; raster<br/>only if: user_defined_local_recharge"]:::inputConditional
  n14["climate zones (advanced)<br/>user_defined_climate_zones &middot; boolean"]:::inputRequired
  n15["climate zone table<br/>climate_zone_table_path &middot; csv<br/>only if: user_defined_climate_zones"]:::inputConditional
  n16["climate zone map<br/>climate_zone_raster_path &middot; raster<br/>only if: user_defined_climate_zones"]:::inputConditional
  n17["use monthly alpha table (advanced)<br/>monthly_alpha &middot; boolean"]:::inputRequired
  n18["monthly alpha table<br/>monthly_alpha_path &middot; csv<br/>only if: monthly_alpha"]:::inputConditional
  n19["flow direction algorithm<br/>flow_dir_algorithm &middot; option_string"]:::inputRequired
  root --> n0
  n12 --> n1
  n12 --> n2
  root --> n3
  root --> n4
  n12 --> n5
  root --> n6
  root --> n7
  n12 --> n8
  n17 --> n9
  root --> n10
  root --> n11
  root --> n12
  n12 --> n13
  root --> n14
  n14 --> n15
  n14 --> n16
  root --> n17
  n17 --> n18
  root --> n19
    

Sediment Delivery Ratio

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Sediment Delivery Ratio"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["digital elevation model<br/>dem_path &middot; raster"]:::inputRequired
  n1["erosivity<br/>erosivity_path &middot; raster"]:::inputRequired
  n2["soil erodibility<br/>erodibility_path &middot; raster"]:::inputRequired
  n3["land use/land cover<br/>lulc_path &middot; raster"]:::inputRequired
  n4["Watersheds<br/>watersheds_path &middot; vector"]:::inputRequired
  n5["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n6["threshold flow accumulation<br/>threshold_flow_accumulation &middot; number"]:::inputRequired
  n7["Borselli k parameter<br/>k_param &middot; number"]:::inputRequired
  n8["maximum SDR value<br/>sdr_max &middot; ratio"]:::inputRequired
  n9["Borselli IC0 parameter<br/>ic_0_param &middot; number"]:::inputRequired
  n10["maximum l value<br/>l_max &middot; number"]:::inputRequired
  n11["drainages<br/>drainage_path &middot; raster"]:::inputOptional
  n12["flow direction algorithm<br/>flow_dir_algorithm &middot; option_string"]:::inputRequired
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  root --> n9
  root --> n10
  root --> n11
  root --> n12
    

Urban Cooling

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Urban Cooling"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>lulc_raster_path &middot; raster"]:::inputRequired
  n1["reference evapotranspiration<br/>ref_eto_raster_path &middot; raster"]:::inputRequired
  n2["area of interest<br/>aoi_vector_path &middot; vector"]:::inputRequired
  n3["biophysical table<br/>biophysical_table_path &middot; csv"]:::inputRequired
  n4["maximum cooling distance<br/>green_area_cooling_distance &middot; number"]:::inputRequired
  n5["air blending distance<br/>t_air_average_radius &middot; number"]:::inputRequired
  n6["reference air temperature<br/>t_ref &middot; number"]:::inputRequired
  n7["UHI effect<br/>uhi_max &middot; number"]:::inputRequired
  n8["run energy savings valuation<br/>do_energy_valuation &middot; boolean"]:::inputRequired
  n9["run work productivity valuation<br/>do_productivity_valuation &middot; boolean"]:::inputRequired
  n10["average relative humidity<br/>avg_rel_humidity &middot; percent<br/>only if: do_productivity_valuation"]:::inputConditional
  n11["buildings<br/>building_vector_path &middot; vector<br/>only if: do_energy_valuation"]:::inputConditional
  n12["energy consumption table<br/>energy_consumption_table_path &middot; csv<br/>only if: do_energy_valuation"]:::inputConditional
  n13["cooling capacity calculation method<br/>cc_method &middot; option_string"]:::inputRequired
  n14["shade weight<br/>cc_weight_shade &middot; ratio"]:::inputOptional
  n15["albedo weight<br/>cc_weight_albedo &middot; ratio"]:::inputOptional
  n16["evapotranspiration weight<br/>cc_weight_eti &middot; ratio"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  root --> n9
  n9 --> n10
  n8 --> n11
  n8 --> n12
  root --> n13
  root --> n14
  root --> n15
  root --> n16
    

Urban Flood Risk Mitigation

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Urban Flood Risk Mitigation"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["area of interest<br/>aoi_watersheds_path &middot; vector"]:::inputRequired
  n1["rainfall depth<br/>rainfall_depth &middot; number"]:::inputRequired
  n2["land use/land cover<br/>lulc_path &middot; raster"]:::inputRequired
  n3["soil hydrologic group<br/>soils_hydrological_group_raster_path &middot; raster"]:::inputRequired
  n4["biophysical table<br/>curve_number_table_path &middot; csv"]:::inputRequired
  n5["built infrastructure<br/>built_infrastructure_vector_path &middot; vector"]:::inputOptional
  n6["damage loss table<br/>infrastructure_damage_loss_table_path &middot; csv<br/>only if: built_infrastructure_vector_path"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  n5 --> n6
    

Urban Mental Health

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Urban Mental Health"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["area of interest<br/>aoi_path &middot; vector"]:::inputRequired
  n1["population<br/>population_raster &middot; raster"]:::inputRequired
  n2["search radius<br/>search_radius &middot; number"]:::inputRequired
  n3["health effect size<br/>effect_size &middot; number"]:::inputRequired
  n4["baseline prevalence<br/>baseline_prevalence_vector &middot; vector"]:::inputRequired
  n5["health cost rate<br/>health_cost_rate &middot; number"]:::inputOptional
  n6["option<br/>model_option &middot; option_string"]:::inputRequired
  n7["baseline NDVI<br/>ndvi_base &middot; raster<br/>only if: model_option!='lulc'"]:::inputConditional
  n8["alternate NDVI<br/>ndvi_alt &middot; raster<br/>only if: model_option=='ndvi'"]:::inputConditional
  n9["baseline land use/land cover<br/>lulc_base &middot; raster<br/>only if: model_option=='lulc' or lulc_attr_csv"]:::inputConditional
  n10["alternate land use/land cover<br/>lulc_alt &middot; raster<br/>only if: model_option=='lulc'"]:::inputConditional
  n11["LULC attribute table<br/>lulc_attr_csv &middot; csv<br/>only if: model_option=='lulc' or (model_option!='lulc' and lulc_base)"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  n6 --> n7
  n6 --> n8
  n6 --> n9
  n6 --> n10
  n6 --> n11
    

Urban Nature Access

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Urban Nature Access"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>lulc_raster_path &middot; raster"]:::inputRequired
  n1["LULC attribute table<br/>lulc_attribute_table &middot; csv"]:::inputRequired
  n2["population raster<br/>population_raster_path &middot; raster"]:::inputRequired
  n3["administrative boundaries<br/>admin_boundaries_vector_path &middot; vector"]:::inputRequired
  n4["urban nature demand per capita<br/>urban_nature_demand &middot; number"]:::inputRequired
  n5["decay function<br/>decay_function &middot; option_string"]:::inputRequired
  n6["search radius mode<br/>search_radius_mode &middot; option_string"]:::inputRequired
  n7["Aggregate by population groups<br/>aggregate_by_pop_group &middot; boolean"]:::inputOptional
  n8["uniform search radius<br/>search_radius &middot; number<br/>only if: search_radius_mode == 'uniform radius'"]:::inputConditional
  n9["population group radii table<br/>population_group_radii_table &middot; csv<br/>only if: search_radius_mode == 'radius per population group'"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  n6 --> n8
  n6 --> n9
    

Urban Stormwater Retention

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Urban Stormwater Retention"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["land use/land cover<br/>lulc_path &middot; raster"]:::inputRequired
  n1["soil hydrologic group<br/>soil_group_path &middot; raster"]:::inputRequired
  n2["precipitation<br/>precipitation_path &middot; raster"]:::inputRequired
  n3["Biophysical table<br/>biophysical_table &middot; csv"]:::inputRequired
  n4["Adjust retention ratios<br/>adjust_retention_ratios &middot; boolean"]:::inputRequired
  n5["Retention radius<br/>retention_radius &middot; number<br/>only if: adjust_retention_ratios"]:::inputConditional
  n6["Road centerlines<br/>road_centerlines_path &middot; vector<br/>only if: adjust_retention_ratios"]:::inputConditional
  n7["area of interest<br/>aggregate_areas_path &middot; vector"]:::inputOptional
  n8["Replacement cost<br/>replacement_cost &middot; number"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  n4 --> n5
  n4 --> n6
  root --> n7
  root --> n8
    

Visitation: Recreation and Tourism

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Visitation: Recreation and Tourism"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["area of interest<br/>aoi_path &middot; vector"]:::inputRequired
  n1["hostname<br/>hostname &middot; string"]:::inputOptional
  n2["port<br/>port &middot; integer"]:::inputOptional
  n3["start year<br/>start_year &middot; integer"]:::inputRequired
  n4["end year<br/>end_year &middot; integer"]:::inputRequired
  n5["grid the AOI<br/>grid_aoi &middot; boolean"]:::inputOptional
  n6["grid type<br/>grid_type &middot; option_string<br/>only if: grid_aoi"]:::inputConditional
  n7["cell size<br/>cell_size &middot; number<br/>only if: grid_aoi"]:::inputConditional
  n8["compute regression<br/>compute_regression &middot; boolean"]:::inputOptional
  n9["predictor table<br/>predictor_table_path &middot; csv<br/>only if: compute_regression"]:::inputConditional
  n10["scenario predictor table<br/>scenario_predictor_table_path &middot; csv"]:::inputOptional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  n5 --> n6
  n5 --> n7
  root --> n8
  n8 --> n9
  root --> n10
    

Wave Energy Production

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Wave Energy Production"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["wave base data<br/>wave_base_data_table &middot; csv"]:::inputRequired
  n1["analysis area<br/>analysis_area &middot; option_string"]:::inputRequired
  n2["area of interest<br/>aoi_path &middot; vector"]:::inputOptional
  n3["machine performance table<br/>machine_perf_path &middot; csv"]:::inputRequired
  n4["machine parameter table<br/>machine_param_path &middot; csv"]:::inputRequired
  n5["bathymetry<br/>dem_path &middot; raster"]:::inputRequired
  n6["run valuation<br/>valuation_container &middot; boolean"]:::inputOptional
  n7["grid connection points table<br/>land_gridPts_path &middot; csv<br/>only if: valuation_container"]:::inputConditional
  n8["machine economic table<br/>machine_econ_path &middot; csv<br/>only if: valuation_container"]:::inputConditional
  n9["number of machines<br/>number_of_machines &middot; integer<br/>only if: valuation_container"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  n6 --> n7
  n6 --> n8
  n6 --> n9
    

Wind Energy Production

        flowchart LR
  classDef inputRequired fill:#e8f5e9,stroke:#2e7d32,color:#222;
  classDef inputConditional fill:#fff3e0,stroke:#ef6c00,color:#222;
  classDef inputOptional fill:#eceff1,stroke:#546e7a,color:#222;
  root(["Wind Energy Production"])
  style root fill:#1565c0,stroke:#0d47a1,color:#ffffff
  n0["wind data points<br/>wind_data_path &middot; csv"]:::inputRequired
  n1["area of interest<br/>aoi_vector_path &middot; vector"]:::inputRequired
  n2["bathymetry<br/>bathymetry_path &middot; raster"]:::inputRequired
  n3["land polygon<br/>land_polygon_vector_path &middot; vector"]:::inputRequired
  n4["global wind energy parameters<br/>global_wind_parameters_path &middot; csv"]:::inputRequired
  n5["turbine parameters<br/>turbine_parameters_path &middot; csv"]:::inputRequired
  n6["number of turbines<br/>number_of_turbines &middot; number"]:::inputRequired
  n7["minimum depth<br/>min_depth &middot; number"]:::inputRequired
  n8["maximum depth<br/>max_depth &middot; number"]:::inputRequired
  n9["minimum distance<br/>min_distance &middot; number"]:::inputRequired
  n10["maximum distance<br/>max_distance &middot; number"]:::inputRequired
  n11["run valuation<br/>valuation_container &middot; boolean"]:::inputOptional
  n12["foundation cost<br/>foundation_cost &middot; number<br/>only if: valuation_container"]:::inputConditional
  n13["discount rate<br/>discount_rate &middot; ratio<br/>only if: valuation_container"]:::inputConditional
  n14["grid connection points<br/>grid_points_path &middot; csv<br/>only if: valuation_container and not avg_grid_distance"]:::inputConditional
  n15["average shore-to-grid distance<br/>avg_grid_distance &middot; number<br/>only if: valuation_container and not grid_points_path"]:::inputConditional
  n16["use price table<br/>price_table &middot; boolean<br/>only if: valuation_container"]:::inputConditional
  n17["wind energy price table<br/>wind_schedule &middot; csv<br/>only if: valuation_container and price_table"]:::inputConditional
  n18["price of energy<br/>wind_price &middot; number<br/>only if: valuation_container and (not price_table)"]:::inputConditional
  n19["rate of price change<br/>rate_change &middot; ratio<br/>only if: valuation_container and not price_table"]:::inputConditional
  root --> n0
  root --> n1
  root --> n2
  root --> n3
  root --> n4
  root --> n5
  root --> n6
  root --> n7
  root --> n8
  root --> n9
  root --> n10
  root --> n11
  n11 --> n12
  n11 --> n13
  n11 --> n14
  n11 --> n15
  n11 --> n16
  n11 --> n17
  n11 --> n18
  n11 --> n19