1

Dear StackOverflow community,

Main question:

I have a GeoDataFrame containing the StreetNetwork of NYC - Manhattan (obtained through the osmnx package), where I would like to extract the coordinates (lon/lat data) from all streets which are stored as LineStrings under geometry, like so:

*

field_1                                                     0
access                                                       
bridge                                                       
geometry    LINESTRING (-73.9975944 40.7140611, -73.997492...
highway                                           residential
junction                                                     
key                                                         0
lanes                                                        
length                                                 11.237
maxspeed                                               25 mph
name                                         Catherine Street
oneway                                                   True
osmid                                                 5670536
ref                                                          
service                                                      
tunnel                                                       
u                                                  1773060097
v                                                    42437559
width                                                        
geometry    LINESTRING (-73.9975944 40.7140611, -73.997492...
Name: 0, dtype: object

*

What I am trying to do is to extract the geometry information for each line-item:

df.iloc[x][3]

The issue is that the output format is as str:

[1]: LINESTRING (-73.9975944 40.7140611, -73.9974922 40.7139962)
[2]: print(type(...))
[2]: <class 'str'>

This makes it hard to automate and process the output data. Does anyone know how to extract it so that it is already in LineString (or any other useable list/array) format?

Further question:

My overall goal is to map this street information with a shapefile for taxi zones (zones in the format of polygons) to identify which streets are in which zone, and which lon/lat areas are covered with streets within one zone (polygon). Is there any straight forward way to do this leveraging shapely, geopandas or osmnx packages (i.e. something like "polygon.contains(Point)" but in the sense of "polygon.contains(LineString)"?

Thanks a lot for your support!

Peter P
  • 43
  • 5
  • Possible duplicate of [Converting a column of Polygons from string to GeoPandas geometry](https://stackoverflow.com/questions/56433138/converting-a-column-of-polygons-from-string-to-geopandas-geometry) – Georgy Jul 26 '19 at 07:49

1 Answers1

1

For extraction coordinates of geometry you need to use the following code:

df.geometry.apply(lambda geom: geom.coords, axis=1)
Dmitry Shepelev
  • 152
  • 2
  • 10