From 98f47c08b86493be29fc935818026be6d6a84bc4 Mon Sep 17 00:00:00 2001 From: HappyZ Date: Tue, 11 Jun 2019 13:44:06 -0500 Subject: [PATCH] more parsers --- .../003c.convert_data_into_xy_center_at_00.py | 12 ++++---- .../003d_optional.generate_image.py | 29 +++++++++++++------ 2 files changed, 26 insertions(+), 15 deletions(-) diff --git a/opencellid_parsing/003c.convert_data_into_xy_center_at_00.py b/opencellid_parsing/003c.convert_data_into_xy_center_at_00.py index 9ccd334..496f8a7 100644 --- a/opencellid_parsing/003c.convert_data_into_xy_center_at_00.py +++ b/opencellid_parsing/003c.convert_data_into_xy_center_at_00.py @@ -7,10 +7,10 @@ import pickle import numpy as np -def convert_gps_into_xy(latlon1, latlon2, convert2radian=False): +def convert_gps_into_xy(latlon, reference, convert2radian=False): radius = 6371e3 - lat1, lon1 = latlon1 - lat2, lon2 = latlon2 + lat1, lon1 = reference + lat2, lon2 = latlon if convert2radian: lat1 = lat1 * np.pi / 180 lat2 = lat2 * np.pi / 180 @@ -21,8 +21,8 @@ def convert_gps_into_xy(latlon1, latlon2, convert2radian=False): # a = np.sin(delta_lat / 2) ** 2 + np.cos(lat1) * np.cos(lat2) * np.sin(delta_lon / 2) ** 2 # c = 2 * np.arctan2(np.sqrt(a), np.sqrt(1 - a)) # d1meters = radius * c # Haversine distance - x = delta_lon * np.cos((lat1 + lat2) / 2) - y = delta_lat + x = radius * delta_lon * np.cos((lat1 + lat2) / 2) + y = radius * delta_lat # d2meters = radius * np.sqrt(x*x + y*y) # Pythagorean distance return x, y @@ -71,7 +71,7 @@ for filepath in glob.glob("{}/with_groundtruth/*/*/*/*/*.csv".format(folderpath) lon = float(tmp[0]) lat = float(tmp[1]) sig = float(tmp[2]) - x, y = convert_gps_into_xy((lat, lon), (cell_lat_rad, cell_lon_rad)) + x, y = convert_gps_into_xy((lat * np.pi / 180, lon * np.pi / 180), (cell_lat_rad, cell_lon_rad)) min_x = min(min_x, x) min_y = min(min_y, y) min_sig = min(min_sig, sig) diff --git a/opencellid_parsing/003d_optional.generate_image.py b/opencellid_parsing/003d_optional.generate_image.py index 7414f62..bff0806 100644 --- a/opencellid_parsing/003d_optional.generate_image.py +++ b/opencellid_parsing/003d_optional.generate_image.py @@ -17,22 +17,32 @@ def blocking_display_signal_map( ''' ''' plt.scatter(data_vector[:, 3], data_vector[:, 4], s=50, c=data_vector[:, 2]) + # plt.xlim() + # plt.ylim() plt.colorbar() + plt.xlabel('loc x (m)') + plt.ylabel('loc y (m)') # plt.show() plt.draw() - plt.savefig("{}.png".format(fp), dpi=50) - plt.pause(0.1) - q = input("press Enter to continue... type q to quit: ") - if q == 'q': - sys.exit() + plt.savefig(fp, dpi=50) + # plt.pause(0.1) + # q = input("press Enter to continue... type q to quit: ") + # if q == 'q': + # sys.exit() plt.close() if len(sys.argv) < 3: - print('Usage: {} pickle_fp'.format(sys.argv[0])) + print('Usage: {} pickle_fp outputfolder'.format(sys.argv[0])) sys.exit(0) pickle_fp = sys.argv[1] +outputfolder = sys.argv[2] +if not os.path.isdir(outputfolder): + try: + os.makedirs(outputfolder) + except BaseException: + raise ############################ # load @@ -40,9 +50,10 @@ pickle_fp = sys.argv[1] all_data = pickle.load(open(pickle_fp, 'rb')) for data in all_data: + num_of_entries = len(data['measurements']) filename = ( - "{}_{}_{}_{}_{}_{}.png" - .format(data['country_code'], data['radio'], data['mcc'], data['mnc'], data['area'], data['cell']) + "{}_{}_{}_{}_{}_{}_{}entries.png" + .format(data['country_code'], data['radio'], data['mcc'], data['mnc'], data['area'], data['cell'], num_of_entries) ) - blocking_display_signal_map(data['measurements'], filename) + blocking_display_signal_map(data['measurements'], "{}/{}".format(outputfolder, filename))