Source code for atra.preprocess.combine_roads
"""
Get Argentina shapefiles and combine them into a single file
"""
import os
import sys
import pandas as pd
import geopandas as gpd
from atra.utils import *
[docs]def main():
config = load_config()
sectors = 'roads'
subsects = ['national_roads','province_roads','rural_roads','osm_roads']
subfolders = ['rutas','','','']
road_types = ['national','province','rural','osm']
attributes = [['cod_ruta','sentido'],
['nombre','clase'],
['caracteris'],
['road_name','road_type']]
input_files = ['rutas.shp','Rutas_provinciales.shp','rural_roads.shp','osm_roads.shp']
networks = []
for sb in range(len(subsects)):
if subsects[sb] == 'national_roads':
input_data = os.path.join(config['paths']['incoming_data'],'pre_processed_network_data',sectors,subsects[sb],subfolders[sb],input_files[sb])
else:
input_data = os.path.join(config['paths']['incoming_data'],'pre_processed_network_data',sectors,subsects[sb],input_files[sb])
input_df = gpd.read_file(input_data,encoding='utf-8')
input_df = input_df[attributes[sb] + ['geometry']]
input_df.rename(columns={'cod_ruta':'road_name','nombre':'road_name',
'clase':'surface',
'caracteris':'surface'},inplace=True)
if road_types[sb] != 'osm':
input_df['road_type'] = road_types[sb]
if road_types[sb] == 'national':
input_df = input_df[input_df['sentido'] == 'A']
networks.append(input_df)
networks_file = gpd.GeoDataFrame(pd.concat(networks,ignore_index=True,sort=False),geometry='geometry',crs={'init': 'epsg:4326'})
networks_file.to_file(os.path.join(config['paths']['incoming_data'],
'pre_processed_network_data',
'roads',
'combined_roads',
'combined_roads.shp'),encoding='utf-8')
if __name__ == '__main__':
main()