fractopo.analysis.relationships module
Functions for plotting cross-cutting and abutting relationships.
- fractopo.analysis.relationships.determine_crosscut_abutting_relationships(trace_series: GeoSeries, node_series: GeoSeries, node_types: ndarray, set_array: ndarray, set_names: Sequence[str], buffer_value: float | int | Real, label: str) DataFrame
Determine cross-cutting and abutting relationships between trace sets.
Determines relationships between all inputted sets by using spatial intersects between node and trace data.
E.g.
>>> trace_series = gpd.GeoSeries( ... [LineString([(0, 0), (1, 0)]), LineString([(0, 1), (0, -1)])] ... ) >>> node_series = gpd.GeoSeries( ... [Point(0, 0), Point(1, 0), Point(0, 1), Point(0, -1)] ... ) >>> node_types = np.array(["Y", "I", "I", "I"]) >>> set_array = np.array(["1", "2"]) >>> set_names = ("1", "2") >>> buffer_value = 0.001 >>> label = "title" >>> determine_crosscut_abutting_relationships( ... trace_series, ... node_series, ... node_types, ... set_array, ... set_names, ... buffer_value, ... label, ... ) name sets x y y-reverse error-count 0 title (1, 2) 0 1 0 0
TODO: No within set relations…..yet… Problem?
- fractopo.analysis.relationships.determine_intersect(node: Point, node_class: str, l1: bool, l2: bool, first_set: str, second_set: str, first_setpointtree: PreparedGeometry, buffer_value: float | int | Real) dict[str, Point | str | tuple[str, str] | bool]
Determine what intersection the node represents.
TODO: R0912: Too many branches.
- fractopo.analysis.relationships.determine_intersects(trace_series_two_sets: tuple[GeoSeries, GeoSeries], set_names_two_sets: tuple[str, str], node_series_xy_intersects: GeoSeries, node_types_xy_intersects: ndarray, buffer_value: float | int | Real) DataFrame
Determine how abutments and crosscuts occur between two sets.
E.g.
>>> traces = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]), gpd.GeoSeries( ... [LineString([(0, 1), (0, -1)])] ... ) >>> set_names_two_sets = ("1", "2") >>> node_series_xy_intersects = gpd.GeoSeries([Point(0, 0)]) >>> node_types_xy_intersects = np.array(["Y"]) >>> buffer_value = 0.001 >>> determine_intersects( ... traces, ... set_names_two_sets, ... node_series_xy_intersects, ... node_types_xy_intersects, ... buffer_value, ... ) node nodeclass sets error 0 POINT (0 0) Y (1, 2) False
- fractopo.analysis.relationships.determine_nodes_intersecting_sets(trace_series_two_sets: tuple[GeoSeries, GeoSeries], set_names_two_sets: tuple[str, str], node_series_xy: GeoSeries, buffer_value: float | int | Real) list[bool]
Conduct a spatial intersect between nodes and traces.
Node GeoDataFrame contains only X- and Y-nodes and the trace GeoDataFrame only two sets. Returns boolean array of based on intersections.
E.g.
>>> traces = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]), gpd.GeoSeries( ... [LineString([(0, 1), (0, -1)])] ... ) >>> set_names_two_sets = ("1", "2") >>> nodes_xy = gpd.GeoSeries([Point(0, 0), Point(1, 1), Point(0, 1), Point(0, -1)]) >>> buffer_value = 0.001 >>> determine_nodes_intersecting_sets( ... traces, set_names_two_sets, nodes_xy, buffer_value ... ) [True, False, False, False]
- fractopo.analysis.relationships.plot_crosscut_abutting_relationships_plot(relations_df: DataFrame, set_array: ndarray, set_names: tuple[str, ...]) tuple[list[Figure], list[ndarray]]
Plot cross-cutting and abutting relationships.