This commit is contained in:
HappyZ 2019-05-23 11:28:12 -05:00
parent cbb93cae69
commit 9eff9454ac
2 changed files with 15 additions and 8 deletions

View File

@ -27,8 +27,8 @@ def exproom():
reflections = np.ones((64, 64), dtype=float) * -100.0 reflections = np.ones((64, 64), dtype=float) * -100.0
orientations = np.empty((64, 64), dtype=float) * float('nan') orientations = np.empty((64, 64), dtype=float) * float('nan')
wall_penetration = -20.0 wall_penetration = -30.0
wall_reflection = -3.0 wall_reflection = -10.0
glass_penetration = -3.0 glass_penetration = -3.0
glass_reflection = -3.0 glass_reflection = -3.0
# walls # walls

View File

@ -7,6 +7,7 @@ import pickle
import argparse import argparse
import numpy as np import numpy as np
from multiprocessing import Process from multiprocessing import Process
from multiprocessing import Manager
from libs.util import convert_vector_to_mat from libs.util import convert_vector_to_mat
from libs.consts import RANDOM_SEED_TEST from libs.consts import RANDOM_SEED_TEST
@ -42,7 +43,7 @@ def getPowers(power_range, step_size: float = 2):
return np.arange(power_range[0], power_range[1] + step_size, step_size) return np.arange(power_range[0], power_range[1] + step_size, step_size)
def log_gamma_floorplan_multi(floormap, rx_loc, tx_loc, power, gaussian_noise, results, idx): def log_gamma_floorplan_multi(floormap, rx_loc, tx_loc, power, gaussian_noise, results, kk):
rss, __ = log_gamma_floorplan( rss, __ = log_gamma_floorplan(
floormap, floormap,
rx_loc, rx_loc,
@ -50,7 +51,7 @@ def log_gamma_floorplan_multi(floormap, rx_loc, tx_loc, power, gaussian_noise, r
power, power,
gaussian_noise=gaussian_noise gaussian_noise=gaussian_noise
) )
results[idx] = rss results[kk] = rss
def generateData(floormap, tx_locs, args): def generateData(floormap, tx_locs, args):
@ -85,19 +86,22 @@ def generateData(floormap, tx_locs, args):
starttime = int(time.time()) starttime = int(time.time())
for j in range(0, rx_locs.shape[0], args.procnum): for j in range(0, rx_locs.shape[0], args.procnum):
procs = [] procs = []
results = [None] * args.procnum results = Manager().dict()
for kk in range(args.procnum): for kk in range(args.procnum):
rx_loc = SpaceBlock(rx_locs[j, 0], rx_locs[j, 1]) rx_loc = SpaceBlock(rx_locs[j, 0], rx_locs[j, 1])
tx_loc = SpaceBlock(rx_locs[i, 0], rx_locs[i, 1]) tx_loc = SpaceBlock(rx_locs[i, 0], rx_locs[i, 1])
proc = Process( proc = Process(
target=log_gamma_floorplan_multi, target=log_gamma_floorplan_multi,
args=(floormap, rx_loc, tx_loc, power, args.withnoise, results, kk,) args=(floormap, rx_loc, tx_loc, power, args.withnoise, results, kk)
) )
proc.start() proc.start()
procs.append(proc) procs.append(proc)
for proc in procs: for proc in procs:
proc.join() proc.join()
rss_vec.extend(results) rss_vec.extend([results[kk] for kk in range(args.procnum)])
# rx_loc = SpaceBlock(rx_locs[j, 0], rx_locs[j, 1])
# tx_loc = SpaceBlock(rx_locs[i, 0], rx_locs[i, 1])
# rss, multipaths = log_gamma_floorplan( # rss, multipaths = log_gamma_floorplan(
# floormap, # floormap,
# rx_loc, # rx_loc,
@ -109,10 +113,13 @@ def generateData(floormap, tx_locs, args):
# paths = [] # paths = []
# for path in multipaths: # for path in multipaths:
# paths.extend(list(path)) # paths.extend(list(path))
# print(rss, rx_loc, tx_loc)
# plotSpace(floormap, space_rays=paths, cminmax=(-50, 0.0)) # plotSpace(floormap, space_rays=paths, cminmax=(-50, 0.0))
# rss_vec.append(rss)
duration = (int(time.time()) - starttime) duration = (int(time.time()) - starttime)
print("duration: {}s ({:.2f}%) - len {}".format(duration, j/rx_locs.shape[0]*100.0, len(rss_vec))) print("duration: {}s ({:.2f}%) - len {}".format(duration, j/rx_locs.shape[0]*100.0, len(rss_vec)))
# rss_vec.append(rss) print("results: {}".format(rss_vec))
rss_map = convert_vector_to_mat(rx_locs, np.array(rss_vec), (64, 64)) rss_map = convert_vector_to_mat(rx_locs, np.array(rss_vec), (64, 64))
with open("{}_{}.pickle".format(fp_base, int(power)), 'wb') as f: with open("{}_{}.pickle".format(fp_base, int(power)), 'wb') as f: