Me gustaría devolver el lat, lon
o x, y
del objeto de punto en la siguiente serie, ya que planeo vincularlos con una API que construí que vincula OSM y NetworkX. Los centroides se añadirán como nuevos nodos para el análisis de la red.
gp.GeoSeries(zones.centroid).x
y gp.GeoSeries(zones.centroid).y
como se indica en docs genera el siguiente error:
AttributeError: El objeto 'GeoSeries' no tiene el atributo 'x'
Modificando un poco las cosas e imprimiendo list(gp.GeoSeries(zones.centroid))
devuelve miles de puntos de forma con el siguiente formato:
[... <shapely.geometry.point.Point object at 0x0000000024035940>,
<shapely.geometry.point.Point object at 0x0000000024035978>,
<shapely.geometry.point.Point object at 0x00000000240359B0>,
<shapely.geometry.point.Point object at 0x00000000240359E8>,
<shapely.geometry.point.Point object at 0x0000000024035A20>,
<shapely.geometry.point.Point object at 0x0000000024035A58>,
<shapely.geometry.point.Point object at 0x0000000024035A90>,
<shapely.geometry.point.Point object at 0x0000000024035AC8>]
El código que estoy utilizando es el siguiente:
import geopandas as gp
zones = gp.GeoDataFrame.from_file(shp_file)
for index, row in zones.iterrows():
print index, gp.GeoSeries(zones.centroid)
# result:
# 9700022.00 POINT (-122.8196050489696 54.00617624128658)
# 9700023.00 POINT (-122.7474362519174 53.99998921974029)
# 9700100.00 POINT (-121.4904983300892 53.98447191612864)
# 9700101.00 POINT (-122.5513619751679 53.73999791511078)
# 9700102.00 POINT (-123.0624037191615 53.62317549646422)
# 9700103.00 POINT (-123.0848175548173 54.05921695782788)
¿Cómo puedo devolver el x, y
de las GeoPandas POINT
¿Objeto?