Source code for generalization.n100.river.preparing_river_network

# Importing modules
import arcpy

# Importing custom tools
from custom_tools.general_tools import custom_arcpy
from env_setup import environment_setup

# Importing file manager
from file_manager.n100.file_manager_rivers import River_N100


[docs] def main(): """ Summary: This script prepares the river network for the 1:100,000 scale by setting line directions and thinning hydrology lines. Details: 1. `set_line_direction`: Sets the direction of each stream segment in the river network based on downhill flow. 2. `thin_hydrology_lines`: Thins the hydrology lines in the river network to optimize for the 1:100,000 scale. The function thins the river network, removing line segments based on hierarchy, direction, length and spacing between features """ environment_setup.main() set_line_direction()
# This function sets the direction of each stream segment in the river network
[docs] def set_line_direction(): arcpy.topographic.SetLineDirection( in_line_features="placeholder", digital_elevation_model="placeholder_for_DTM", line_direction="DOWNHILL_FLOW", )
# This function thins the river network
[docs] def thin_hydrology_lines(): arcpy.topographic.ThinHydrologyLines( in_features="placeholder_for_streamnetwork", invisibility_field="invisibility", min_length="500", min_spacing="100", hierarchy_field="Strahler_placeholder", intersecting_features=River_N100.selecting_water_polygons__centerline__n100.value, unsplit_lines="UNSPLIT_LINES", use_angles="NO_USE_ANGLES", ) # Selecting featueres that have visibility value 0 from Thin Hydrology Lines custom_arcpy.select_attribute_and_make_permanent_feature( input_layer="placeholder_from_function_above", expression="invisibility = 0", output_name=River_N100.thin_hydrology_lines__visible_streams__n100.value, selection_type="NEW_SELECTION", )
if __name__ == "__main__": main()