-
Notifications
You must be signed in to change notification settings - Fork 0
/
convert.py
26 lines (20 loc) · 889 Bytes
/
convert.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import pandas as pd
import geopandas
from geopandas import GeoDataFrame
import warnings
warnings.filterwarnings('ignore')
def prepare_points_layer(spatial_dataframe: pd.DataFrame,
epsg_code: str = "4326",
lon: str = 'lon',
lat: str = 'lat') -> geopandas.geodataframe:
"""
Prepare geopandas dataframe with points and spatial geometries from simple
pandas DataFrame
:param spatial_dataframe: table to convert
:param epsg_code: code for CRS
:param lon: name of column in pandas DataFrame with info about longitude
:param lat: name of column in pandas DataFrame with info about latitude
"""
geometry = geopandas.points_from_xy(spatial_dataframe[lon], spatial_dataframe[lat])
gdf = GeoDataFrame(spatial_dataframe, crs=f"EPSG:{epsg_code}", geometry=geometry)
return gdf