@@ -512,19 +512,39 @@ def simplify_clusters(
512
512
return new_roads
513
513
514
514
515
- def get_type (edges , shared_edge ):
516
- if ( # roundabout special case
517
- edges .coins_group .nunique () == 1 and edges .shape [0 ] == edges .coins_count .iloc [0 ]
515
+ def get_type (edges : gpd .GeoDataFrame , shared_edge : int ) -> str :
516
+ """Classify artifact edges according to the ``{C, E, S}``
517
+ schema when considering solutions for pairs of artifacts.
518
+
519
+ Parameters
520
+ ----------
521
+ edges : geopandas.GeoDataFrame
522
+ Artifact edges in consideration.
523
+ shared_edge : int
524
+ The index location of the shared edge of the pair.
525
+
526
+ Returns
527
+ -------
528
+ str
529
+ Classification for an edge in ``{C, E, S}``.
530
+ """
531
+
532
+ if ( # Roundabout special case
533
+ edges ["coins_group" ].nunique () == 1
534
+ and edges .shape [0 ] == edges ["coins_count" ].iloc [0 ]
518
535
):
519
536
return "S"
520
537
521
- all_ends = edges [edges . coins_end ]
522
- mains = edges [~ edges . coins_group .isin (all_ends . coins_group )]
538
+ all_ends = edges [edges [ " coins_end" ] ]
539
+ mains = edges [~ edges [ " coins_group" ] .isin (all_ends [ " coins_group" ] )]
523
540
shared = edges .loc [shared_edge ]
541
+
524
542
if shared_edge in mains .index :
525
543
return "C"
526
- if shared .coins_count == (edges .coins_group == shared .coins_group ).sum ():
544
+
545
+ if shared ["coins_count" ] == (edges ["coins_group" ] == shared ["coins_group" ]).sum ():
527
546
return "S"
547
+
528
548
return "E"
529
549
530
550
0 commit comments