def _add_encoded_geom(df, geom_col):
"""Add encoded geometry to DataFrame"""
# None if not a GeoDataFrame
is_geopandas = getattr(df, '_geometry_column_name', None)
if is_geopandas is None and geom_col is None:
warn('`encode_geom` works best with Geopandas '
'(http://geopandas.org/) and/or shapely '
'(https://pypi.python.org/pypi/Shapely).')
geom_col = 'geometry' if 'geometry' in df.columns else None
if geom_col is None:
raise KeyError('Geometries were requested to be encoded '
'but a geometry column was not found in the '
'DataFrame.'.format(geom_col=geom_col))
elif is_geopandas and geom_col:
warn('Geometry column of the input DataFrame does not '
'match the geometry column supplied. Using user-supplied '
'column...\n'
'\tGeopandas geometry column: {}\n'
'\tSupplied `geom_col`: {}'.format(is_geopandas,
geom_col))
elif is_geopandas and geom_col is None:
geom_col = is_geopandas
# updates in place
df['the_geom'] = df[geom_col].apply(_encode_geom)
return None
评论列表
文章目录