pyBenD - Python Meander Bend Morphodynamic
  • User Guide
    • Input data
      • Loading Centerline Data
      • Loading CenterlineCollection Data
    • Methods
      • Centerline Creation
        • Resampling and path smoothing
        • Property interpolation
        • Curvature calculation and curvature smoothing
      • Meander Bend Identification
        • Bend apex identification
          • Curvature-distribution method (default)
          • Probability-from-weights method
          • Azimuth change method
      • Morphometric Parameter Calculation
        • Morphometric parameters (bend scale)
        • Morphometric parameters (meander scale, Leopold & Wolman)
      • Centerline and Bend tracking
        • Centerline matching (channel-point tracking)
        • Bend connection (bend-to-bend tracking)
          • 1) Apex-distance connection
          • 2) Centroid-distance connection
          • 3) Connection from point matching
          • Validity of BendEvolution objects
      • Section across channel belt
        • Defining section lines
        • Finding channel location on a section
        • Section coordinate system
        • Stacking pattern classification
          • Step classification
          • From steps to stacking-pattern types
      • Kinematic Parameter Calculation
        • Prerequisites
        • Channel-point migration (Seine river example)
        • From trajectories to kinematic components
        • Bend-average migration (bend_kinematics_analysis example)
        • Apex migration (bend_kinematics_analysis example)
        • Section-based (apparent) kinematics and mobility numbers
  • Examples
    • Bend apex detection
    • Bend kinematic analysis
    • Meander morphometry analysis
    • Seine River migration analysis
  • How-To
    • Create a Centerline object
      • From csv file
      • From kml file
      • From inline code
    • Compute Centerline morphometric parameters
    • Create a CenterlineCollection object
      • From a csv file
      • From multiple csv files
    • Compute channel migration rates
    • Compute bend kinematics parameters
    • Create sections across channel paths
  • pyBenD Python Package
    • Main API
      • Core model
      • Method & Types
      • IO
    • Packages
      • pybend.algorithms package
        • pybend.algorithms.synthetic_bends module
          • circular_bend()
          • kinoshita_bend()
          • mirror()
        • pybend.algorithms.geometry_functions module
          • barycenter()
          • compute_colinear()
          • distance()
          • distance_arrays()
          • get_MP()
          • get_angle_between_vectors()
          • normal()
          • orthogonal_distance()
          • perp()
          • project_orthogonal()
          • seg_intersect()
        • pybend.algorithms.centerline_process_functions module
          • clpoints2coords()
          • compute_curvature()
          • compute_curvature_at_point()
          • compute_curvature_at_point_Menger()
          • compute_curvature_at_point_flumy()
          • compute_cuvilinear_abscissa()
          • compute_esperance()
          • compute_half_angle_variation()
          • compute_kurtosis()
          • compute_median_curvature_index()
          • compute_point_displacements()
          • compute_skewness()
          • compute_variance()
          • filter_consecutive_indices()
          • find_2_closest_points()
          • find_2_closest_points_mono_proc()
          • find_2_closest_points_multi_proc()
          • find_inflection_points()
          • find_inflection_points_from_peaks()
          • get_keys_from_to()
          • resample_path()
          • sort_key()
        • pybend.algorithms.plot_functions module
          • _get_keys_to_plot()
          • _plot_bend_evol_trajectories()
          • _plot_warping()
          • _update_plot_properties()
          • plot_bend_evol()
          • plot_bends()
          • plot_centerline_collection()
          • plot_centerline_single()
          • plot_section()
          • plot_versus_curvilinear()
      • pybend.io package
        • pybend.io.common module
        • pybend.io.centerline_io module
          • create_dataset_from_xy()
          • dump_centerline_to_csv()
          • load_centerline_dataset_from_Flumy_csv()
          • load_centerline_dataset_from_csv()
          • load_centerline_dataset_from_kml()
          • load_centerline_from_file()
        • pybend.io.centerline_collection_io module
          • load_centerline_collection_dataset_from_Flumy_csv()
          • load_centerline_collection_from_a_file()
          • load_centerline_collection_from_multiple_files()
          • load_centerline_evolution_from_multiple_kml()
          • load_centerline_evolution_from_multiple_xy_csv()
          • load_centerline_evolution_from_single_xy_csv()
      • pybend.model package
        • pybend.model.Bend module
          • Bend
            • Bend.add_bend_connection_next()
            • Bend.add_bend_connection_prev()
            • Bend.add_intersected_section_index()
            • Bend.get_nb_points()
            • Bend.age
            • Bend.apex_probability
            • Bend.apex_probability_smooth
            • Bend.bend_evol_id
            • Bend.bend_uid_next
            • Bend.bend_uid_prev
            • Bend.id
            • Bend.index_apex
            • Bend.index_inflex_down
            • Bend.index_inflex_up
            • Bend.index_max_curv
            • Bend.intersected_section_indexes
            • Bend.isvalid
            • Bend.params
            • Bend.params_averaged
            • Bend.polygon
            • Bend.pt_center
            • Bend.pt_centroid
            • Bend.side
            • Bend.uid
          • BendClPointIndexIter
            • BendClPointIndexIter.bend
            • BendClPointIndexIter.index
          • get_bend_uid()
          • parse_bend_uid()
          • uid_module
        • pybend.model.BendEvolution module
          • BendEvolution
            • BendEvolution._check_is_valid()
            • BendEvolution.get_all_ages()
            • BendEvolution.get_number_of_bends()
            • BendEvolution.set_is_valid()
            • BendEvolution.apex_trajec_smooth
            • BendEvolution.bend_indexes
            • BendEvolution.centroid_trajec_smooth
            • BendEvolution.id
            • BendEvolution.inflex_down_trajec_smooth
            • BendEvolution.inflex_up_trajec_smooth
            • BendEvolution.isvalid
            • BendEvolution.middle_trajec_smooth
            • BendEvolution.order
        • pybend.model.Centerline module
          • Centerline
            • Centerline._compute_bend_apex_probability_user_weights()
            • Centerline._compute_bend_properties()
            • Centerline._compute_curvature()
            • Centerline._compute_curvature_monoproc()
            • Centerline._compute_curvature_multiproc()
            • Centerline._compute_curvilinear_abscissa()
            • Centerline._compute_distance_orthogonal_to_inflection_segment()
            • Centerline._compute_distance_to_bend_center()
            • Centerline._compute_filtered_curvature()
            • Centerline._compute_index_max_curvature()
            • Centerline._compute_normal_to_points()
            • Centerline._compute_property_at_point()
            • Centerline._create_bend()
            • Centerline._create_bends_monoproc()
            • Centerline._create_bends_multiproc()
            • Centerline._init_centerline()
            • Centerline._interpolate_properties()
            • Centerline._update_bend()
            • Centerline.check_if_bend_is_valid()
            • Centerline.compute_all_bend_center()
            • Centerline.compute_all_bend_centroid()
            • Centerline.compute_bend_centroid()
            • Centerline.compute_bend_middle()
            • Centerline.compute_bend_polygon()
            • Centerline.filter_bends()
            • Centerline.find_all_bend_apex()
            • Centerline.find_all_bend_apex_user_weights()
            • Centerline.find_bend_apex()
            • Centerline.find_bend_apex_from_weights()
            • Centerline.find_bend_apex_limaye()
            • Centerline.find_bends()
            • Centerline.find_inflection_points()
            • Centerline.gather_consecutive_invalid_bends()
            • Centerline.get_all_curvature()
            • Centerline.get_all_curvature_filtered()
            • Centerline.get_bend_curvature()
            • Centerline.get_bend_curvature_filtered()
            • Centerline.get_bend_index_from_cl_pt_index()
            • Centerline.get_bend_property()
            • Centerline.get_bend_side()
            • Centerline.get_nb_bends()
            • Centerline.get_nb_points()
            • Centerline.get_nb_valid_bends()
            • Centerline.get_property()
            • Centerline.get_property_list()
            • Centerline.get_valid_bend_indexes()
            • Centerline.set_bend_apex_probability_user_weights()
            • Centerline.set_property_all_points()
            • Centerline.set_property_point()
            • Centerline.age
            • Centerline.bends
            • Centerline.cl_points
            • Centerline.index_cl_pts_next_centerline
            • Centerline.index_cl_pts_prev_centerline
        • pybend.model.CenterlineCollection module
          • CenterlineCollection
            • CenterlineCollection._add_bend_connection()
            • CenterlineCollection._apply_centerline_warping()
            • CenterlineCollection._connect_bends_apex()
            • CenterlineCollection._connect_bends_centroid()
            • CenterlineCollection._connect_bends_from_matching()
            • CenterlineCollection._create_all_channel_sections()
            • CenterlineCollection._create_bend_evolution()
            • CenterlineCollection._create_centerline()
            • CenterlineCollection._create_section_lines_from_bend()
            • CenterlineCollection._create_section_lines_from_neighboring_apex()
            • CenterlineCollection._do_smooth_bend_apex_trajec()
            • CenterlineCollection._get_bend_evol_apex_points()
            • CenterlineCollection._get_bend_index_connection_counts()
            • CenterlineCollection._get_bend_index_from_cl_point_index()
            • CenterlineCollection._match_centerlines_monoproc()
            • CenterlineCollection._match_centerlines_multiproc()
            • CenterlineCollection._set_cl_pts_indexes_in_prev_next_centerlines()
            • CenterlineCollection._smooth_bend_apex_trajec()
            • CenterlineCollection._smooth_bend_centroid_trajec()
            • CenterlineCollection._smooth_bend_middle_trajec()
            • CenterlineCollection._update_bend_evolution()
            • CenterlineCollection.connect_bends()
            • CenterlineCollection.create_section_lines()
            • CenterlineCollection.find_all_bend_apex()
            • CenterlineCollection.find_all_bend_apex_user_weights()
            • CenterlineCollection.find_all_bend_centroid()
            • CenterlineCollection.find_all_bend_middle()
            • CenterlineCollection.find_points_on_sections()
            • CenterlineCollection.get_all_ages()
            • CenterlineCollection.get_bend_evol_side()
            • CenterlineCollection.get_centerline_property()
            • CenterlineCollection.get_nb_bends_evol()
            • CenterlineCollection.get_nb_valid_bends_evol()
            • CenterlineCollection.get_valid_bends_evol_id()
            • CenterlineCollection.initialize_monoproc()
            • CenterlineCollection.initialize_multiproc()
            • CenterlineCollection.match_centerlines()
            • CenterlineCollection.set_centerline_constant_properties()
            • CenterlineCollection.set_centerline_properties()
            • CenterlineCollection.set_section_lines()
            • CenterlineCollection._centerline_matching_computed
            • CenterlineCollection.apparent_kinematics_computed
            • CenterlineCollection.bends_evol
            • CenterlineCollection.bends_tracking_computed
            • CenterlineCollection.centerlines
            • CenterlineCollection.real_kinematics_computed
            • CenterlineCollection.section_lines
            • CenterlineCollection.sections_computed
        • pybend.model.ClPoint module
          • ClPoint
            • ClPoint.curvature()
            • ClPoint.curvature_filtered()
            • ClPoint.depth_max()
            • ClPoint.depth_mean()
            • ClPoint.get_data()
            • ClPoint.get_property()
            • ClPoint.set_curvature()
            • ClPoint.set_property()
            • ClPoint.velocity()
            • ClPoint.velocity_perturbation()
            • ClPoint.width()
            • ClPoint._age
            • ClPoint._data
            • ClPoint._id
            • ClPoint.cl_pt_index_next
            • ClPoint.cl_pt_index_prev
            • ClPoint.pt
        • pybend.model.Isoline module
          • ChannelCrossSection
            • ChannelCrossSection.complete_channel_shape()
          • Isoline
            • Isoline.points
          • IsolineType
            • IsolineType.CHANNEL
            • IsolineType.UNKNOWN
        • pybend.model.Morphometry module
          • Morphometry
            • Morphometry._get_window_end_indexes()
            • Morphometry.compute_average_metric_window()
            • Morphometry.compute_bend_amplitude()
            • Morphometry.compute_bend_amplitude_leopold()
            • Morphometry.compute_bend_arc_length()
            • Morphometry.compute_bend_asymmetry()
            • Morphometry.compute_bend_extension()
            • Morphometry.compute_bend_radius()
            • Morphometry.compute_bend_roundness()
            • Morphometry.compute_bend_sinuosity()
            • Morphometry.compute_bend_sinuosity_moving_window()
            • Morphometry.compute_bend_skewness()
            • Morphometry.compute_bend_wavelength()
            • Morphometry.compute_bend_wavelength_leopold()
            • Morphometry.compute_bends_morphometry()
        • pybend.model.Section module
          • Section
            • Section._compute_average_disp()
            • Section._compute_origin()
            • Section.channel_apparent_displacements()
            • Section.get_stacking_pattern_type()
            • Section.section_averaged_channel_displacements()
            • Section.averaged_disp
            • Section.bend_id
            • Section.dir
            • Section.id
            • Section.isolines
            • Section.isolines_origin
            • Section.local_disp
            • Section.pt_start
            • Section.pt_stop
            • Section.same_bend
            • Section.stacking_pattern_type
          • StackingPatternType
            • StackingPatternType.AGGRADATION
            • StackingPatternType.AGGRAD_ONE_WAY
            • StackingPatternType.MULTIPLE_WAYS
            • StackingPatternType.ONE_WAY
            • StackingPatternType.TWO_WAYS
            • StackingPatternType.UNDEFINED
        • pybend.model.enumerations module
          • AmplitudeType
            • AmplitudeType._generate_next_value_()
            • AmplitudeType.MIDDLE
            • AmplitudeType.ORTHOGONAL
          • BendConnectionMethod
            • BendConnectionMethod._generate_next_value_()
            • BendConnectionMethod.APEX
            • BendConnectionMethod.CENTROID
            • BendConnectionMethod.MATCHING
          • BendSide
            • BendSide._generate_next_value_()
            • BendSide.DOWN
            • BendSide.UNKNWON
            • BendSide.UP
          • CreateSectionMethod
            • CreateSectionMethod._generate_next_value_()
            • CreateSectionMethod.APEX
            • CreateSectionMethod.CENTROID
            • CreateSectionMethod.MIDDLE
          • FilterName
            • FilterName._generate_next_value_()
            • FilterName.SAVITSKY
            • FilterName.UNIFORM
          • MorphometricNames
            • MorphometricNames._generate_next_value_()
            • MorphometricNames.AMPLITUDE
            • MorphometricNames.AMPLITUDE_LEOPOLD
            • MorphometricNames.ARC_LENGTH
            • MorphometricNames.ASYMMETRY
            • MorphometricNames.EXTENSION
            • MorphometricNames.RADIUS_CURVATURE
            • MorphometricNames.ROUNDNESS
            • MorphometricNames.SINUOSITY
            • MorphometricNames.SKEWNESS
            • MorphometricNames.WAVELENGTH
            • MorphometricNames.WAVELENGTH_LEOPOLD
          • PropertyNames
            • PropertyNames._generate_next_value_()
            • PropertyNames.AGE
            • PropertyNames.APEX_PROBABILITY
            • PropertyNames.CARTESIAN_ABSCISSA
            • PropertyNames.CARTESIAN_ORDINATE
            • PropertyNames.CURVATURE
            • PropertyNames.CURVATURE_FILTERED
            • PropertyNames.CURVILINEAR_ABSCISSA
            • PropertyNames.DEPTH_MAX
            • PropertyNames.DEPTH_MEAN
            • PropertyNames.ELEVATION
            • PropertyNames.NORMAL_X
            • PropertyNames.NORMAL_Y
            • PropertyNames.VELOCITY
            • PropertyNames.VELOCITY_PERTURBATION
            • PropertyNames.WIDTH
      • pybend.utils package
        • pybend.utils.globalParameters
          • get_nb_procs()
          • set_nb_procs()
        • pybend.utils.logging
          • CustomLoggerFormatter
            • CustomLoggerFormatter.format()
            • CustomLoggerFormatter.FORMATS
            • CustomLoggerFormatter.bold_red
            • CustomLoggerFormatter.format1
            • CustomLoggerFormatter.format2
            • CustomLoggerFormatter.grey
            • CustomLoggerFormatter.red
            • CustomLoggerFormatter.reset
            • CustomLoggerFormatter.yellow
          • Logger
            • Logger._log()
            • Logger.addHandler()
            • Logger.callHandlers()
            • Logger.critical()
            • Logger.debug()
            • Logger.error()
            • Logger.exception()
            • Logger.fatal()
            • Logger.findCaller()
            • Logger.getChild()
            • Logger.getChildren()
            • Logger.getEffectiveLevel()
            • Logger.handle()
            • Logger.hasHandlers()
            • Logger.info()
            • Logger.isEnabledFor()
            • Logger.log()
            • Logger.makeRecord()
            • Logger.removeHandler()
            • Logger.setLevel()
            • Logger.warn()
            • Logger.warning()
            • Logger.manager
            • Logger.root
          • getLogger()
  • Glossary
    • Meandering Channel Morphology
    • Morphometric Parameters
    • Kinematic Parameters
    • pyBenD terms
    • References
  • Publications
    • Peer-Review Articles
pyBenD - Python Meander Bend Morphodynamic
  • Search


© Copyright 2025 Martin Lemay <martin.lemay@mines-paris.org>.

Built with Sphinx using a theme provided by Read the Docs.