Alphashape returns a Shapely polygon, so if you convert the Matplotlib circle into
a Polygon you can take advantage of Shapely's intersection function.
circle = plt.Circle((50,100), 4, color='r', fill=True)
circle_basepath = circle.get_path()
# Matplotlib's get_path on the circle just gives a circle with radius 1 at the origin,
# so circle_basepath needs ...
Using the steps and script posted by Emil has worked (for the most part). I added one extra step because my centerlines are modeled different.
I ran the script on the first category of lines to get the first result which are the lines on one side of the intersection. The step I then added was to make a copy of the first category of lines, Flip the direction ...
I don't think you have a processing problem, I think you probably have a visualization problem, related to the fact that your output will be quite diverse in terms of geometry type, while your viewer might expect only to get one geometry type. So filter out things, like so.
CREATE TABLE test AS
SELECT ST_Multi(ST_CollectionExtract(ST_Intersection(a.geom, b....
This is a process that is best done through automation, and an advanced license helps. The basic work flow:
Divide your lines up for by their categories. For each category:
Select lines within desired line distance of points, such as A = 400
Dissolve selection with multipart
Split your selected dissolve line by your points (Advanced license needed)