-
Notifications
You must be signed in to change notification settings - Fork 0
/
csv_to_shapefile.py
41 lines (32 loc) · 1.1 KB
/
csv_to_shapefile.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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#This script converts from CSV to shapefile ormat to use GeoNode and other Geo management data services.
from sys import exit
import pandas as pd
from geopandas import GeoDataFrame
from shapely.geometry import Point
import fiona
__params = {'x': 'location-Longitude',
'y': 'location-Latitude',
'crs': '+init=epsg:4326',
'driver': 'ESRI Shapefile',
# Write down here the location of the CSV file to convert
'csv': 'db/input.csv',
'output': 'shapefiles/output.shp'
}
def csv_to_shapefile(params):
print(params.values())
try:
__df = pd.read_csv(params['csv'])
__x = __df[params['x']]
__y = __df[params['y']]
__geo = [Point(xy) for xy in zip(__x,__y)]
__gdf = GeoDataFrame(__df, crs=params['crs'], geometry=__geo)
__gdf.to_file(driver=params['driver'], filename=params['output'])
print('Success writting Shapefile')
return True
except:
return False
if __name__ == "__main__":
if not csv_to_shapefile(__params):
exit()
else:
print(__name__ + " is imported as a Module")