5

I would like to create a LINESTRING from two POINT geometries and then determine the mid-POINT. So, from my original Pandas' DataFrame, with "x" and "y" columns, I created the following GeoPandas' DataFrame:

zone_short_edges = 
 id vertex_id fr_point \
1 A1 2 POINT (119.79008 28.35047) 
3 A1 4 POINT (122.85067 44.85106) 
5 A2 1 POINT (138.79141 26.48802) 
7 A2 3 POINT (141.73386 44.89716) 
 to_point seg_length 
1 POINT (122.85067 28.08433) 3.072140 
3 POINT (119.92314 44.71798) 2.930553 
5 POINT (141.92247 26.26168) 3.139230 
7 POINT (138.79141 44.89716) 2.942450 

where fr_point and to_point are dtype = geometry.

Now, I am facing two choices:

  1. Create a LINESTRING for each pair and then finding that linestrings midpoint.
  2. Finding the midpoint (what I actually want to the possibility to find all the POINT(s) that divide the segment into N segments of equal length).

I tried doing this:

geometry = [xy for xy in zip(zone_short_edges.fr_point, zone_short_edges.to_point)]
LineString([geometry]).wkt

but that was a clear failure.

Any ideas that might put me in the right direction or do I really need to go to my original DataFrame?

Taras
35.8k5 gold badges77 silver badges152 bronze badges
asked Jun 12, 2021 at 6:05
0

1 Answer 1

6

Try something like:

import geopandas as gpd
from shapely.geometry import LineString
df['line'] = df.apply(lambda row: LineString([row['fr_point'], row['to_point']]), axis=1) #Create a linestring column
df['midpoint'] = df.apply(lambda row: row['line'].centroid, axis=1) #Find centroid
df.head().to_clipboard()

enter image description here

answered Jun 12, 2021 at 9:10
0

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.