Uys of Spades Uys of Spades - 1 year ago 358
Python Question

Finding coordinate points of intersection with two numpy arrays

This sort of question is a tad bit different the normal 'how to find the intersection of two lines' via numpy. Here is the situation, I am creating a program that looks at slope stability and I need to find where a circle intersects a line.

I have two numpy arrays:

One array gives me a normal (x, y) values of an elevation profile in 2D

The other array is calculated values of coordinates (x, y) that spans the circumference of a circle from a defined centre.

I need to somehow compare the two at what approximate point does the coordinates of the circle intersect the profile line?

Here some data to work with:

circ_coords = np.array([

linear_profile = np.array([

I need a function that would spit out say a single or multiple coordinate values saying that based on these circular coordinates and your linear profile.. the two would intersect here.

def intersect(array1, array2):
# stuff
return computed_array

Answer Source

Shapely has some cool functions. According to this post, this code should work:

from shapely.geometry import LineString
from shapely.geometry import Point

p = Point(0,0)//center
c = p.buffer(0.71).boundary//radius
l = LineString([(0.,0.), (1., 1.)])//line point
i = c.intersection(l)

Apparently here i is the array you are looking for, also, check this post too. Hope this helps.