more parsers

This commit is contained in:
HappyZ 2019-06-11 13:44:06 -05:00
parent e84b3fb142
commit 98f47c08b8
2 changed files with 26 additions and 15 deletions

View File

@ -7,10 +7,10 @@ import pickle
import numpy as np import numpy as np
def convert_gps_into_xy(latlon1, latlon2, convert2radian=False): def convert_gps_into_xy(latlon, reference, convert2radian=False):
radius = 6371e3 radius = 6371e3
lat1, lon1 = latlon1 lat1, lon1 = reference
lat2, lon2 = latlon2 lat2, lon2 = latlon
if convert2radian: if convert2radian:
lat1 = lat1 * np.pi / 180 lat1 = lat1 * np.pi / 180
lat2 = lat2 * 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 # 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)) # c = 2 * np.arctan2(np.sqrt(a), np.sqrt(1 - a))
# d1meters = radius * c # Haversine distance # d1meters = radius * c # Haversine distance
x = delta_lon * np.cos((lat1 + lat2) / 2) x = radius * delta_lon * np.cos((lat1 + lat2) / 2)
y = delta_lat y = radius * delta_lat
# d2meters = radius * np.sqrt(x*x + y*y) # Pythagorean distance # d2meters = radius * np.sqrt(x*x + y*y) # Pythagorean distance
return x, y return x, y
@ -71,7 +71,7 @@ for filepath in glob.glob("{}/with_groundtruth/*/*/*/*/*.csv".format(folderpath)
lon = float(tmp[0]) lon = float(tmp[0])
lat = float(tmp[1]) lat = float(tmp[1])
sig = float(tmp[2]) 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_x = min(min_x, x)
min_y = min(min_y, y) min_y = min(min_y, y)
min_sig = min(min_sig, sig) min_sig = min(min_sig, sig)

View File

@ -17,22 +17,32 @@ def blocking_display_signal_map(
''' '''
''' '''
plt.scatter(data_vector[:, 3], data_vector[:, 4], s=50, c=data_vector[:, 2]) plt.scatter(data_vector[:, 3], data_vector[:, 4], s=50, c=data_vector[:, 2])
# plt.xlim()
# plt.ylim()
plt.colorbar() plt.colorbar()
plt.xlabel('loc x (m)')
plt.ylabel('loc y (m)')
# plt.show() # plt.show()
plt.draw() plt.draw()
plt.savefig("{}.png".format(fp), dpi=50) plt.savefig(fp, dpi=50)
plt.pause(0.1) # plt.pause(0.1)
q = input("press Enter to continue... type q to quit: ") # q = input("press Enter to continue... type q to quit: ")
if q == 'q': # if q == 'q':
sys.exit() # sys.exit()
plt.close() plt.close()
if len(sys.argv) < 3: 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) sys.exit(0)
pickle_fp = sys.argv[1] pickle_fp = sys.argv[1]
outputfolder = sys.argv[2]
if not os.path.isdir(outputfolder):
try:
os.makedirs(outputfolder)
except BaseException:
raise
############################ ############################
# load # load
@ -40,9 +50,10 @@ pickle_fp = sys.argv[1]
all_data = pickle.load(open(pickle_fp, 'rb')) all_data = pickle.load(open(pickle_fp, 'rb'))
for data in all_data: for data in all_data:
num_of_entries = len(data['measurements'])
filename = ( filename = (
"{}_{}_{}_{}_{}_{}.png" "{}_{}_{}_{}_{}_{}_{}entries.png"
.format(data['country_code'], data['radio'], data['mcc'], data['mnc'], data['area'], data['cell']) .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))