# coding = utf-8 import argparse import networkx as nx import pandas as pd import joblib import json import geopandas as gpd from lib.draw import draw parser = argparse.ArgumentParser() parser.add_argument("input_file",help="edgelist format (sep = \",\" )") parser.add_argument("output_file") parser.add_argument("--country",help="if country node",action="store_true") parser.add_argument("-w",action="store_true") args = parser.parse_args() G = nx.read_gexf(args.input_file) encoder = None labels_dict = {} positions = {} if args.country: iso2_name = json.load(open("data/ISO3166-1.alpha2.json.txt")) world = gpd.read_file("data/TM_WORLD_BORDERS-0/TM_WORLD_BORDERS-0.3.shp") world["centroid_c"] = world.centroid iso2_togeom = dict(world["ISO2 centroid_c".split()].values) positions = {k: [v.x, v.y] for k, v in iso2_togeom.items() if k in G} for node in list(G.nodes()): if args.country: labels_dict[node] = iso2_name[node] else: labels_dict[node] = node fig, ax = draw(G,labels_dict,positions) if args.country: world.boundary.plot(ax=ax) fig.savefig(args.output_file)