def main(): # a 28 minute walk location1 = gps_utils.Location(37.417747, -122.086086) location2 = gps_utils.Location(37.421624, -122.096472) speed = 7 # meters/sec frequency = 10 # Hz file_name = "userwalking.csv" user_motion = generate_route.TimedRoute(location1, location2, speed, frequency) user_motion.write_route(file_name) file_path = os.path.abspath("geobeam/user_motion_files/" + file_name) simulation_set = (SimulationSetBuilder() .add_dynamic_route(file_path, gain=-2) .add_dynamic_route(file_path, run_duration=30, gain=-2) .add_static_route(27.417747, -112.086086, run_duration=10, gain=-2) .build()) simulation_set.run_simulations()
def test_location_init_no_altitude(self, mock_geodetic_to_cartesian): geodetic_coordinate = (37.4178134, -122.086011) ecef_coordinate = (-2694180.667, -4297222.330, 3854325.576) mock_geodetic_to_cartesian.return_value = ecef_coordinate lat, lon = geodetic_coordinate location = gps_utils.Location(lat, lon) self.assertEqual(location.x, ecef_coordinate[0]) self.assertEqual(location.y, ecef_coordinate[1]) self.assertEqual(location.z, ecef_coordinate[2]) self.assertEqual(location.latitude, lat) self.assertEqual(location.longitude, lon) self.assertEqual(location.altitude, 0)
def main(config_file_name): """Create and run simulation set based on user specified config file. Args: config_file_name: string, name of file in simulation_configs folder to read from """ config = configparser.ConfigParser() config['DEFAULT']['Speed'] = DEFAULT_SPEED config_file_path = os.path.abspath("simulation_configs/" + config_file_name) config.read(config_file_path) sections = config.sections() simulation_set_builder = SimulationSetBuilder() for simulation in sections: try: run_duration = config.getint(simulation, "RunDuration", fallback=None) gain = config.getint(simulation, "Gain", fallback=None) # Dynamic Simulation if config.getboolean(simulation, "Dynamic"): file_name = config.get(simulation, "FileName") file_path = os.path.abspath("geobeam/user_motion_files/" + file_name) # Creating New Route File if config.getboolean(simulation, "CreateFile"): speed = config.getfloat(simulation, "Speed") frequency = DEFAULT_FREQUENCY if config.has_option(simulation, "GpxSourcePath"): gpx_source_path = config.get(simulation, "GpxSourcePath") user_motion = TimedRoute.from_gpx( gpx_source_path, speed, frequency) else: start_latitude = config.getfloat( simulation, "StartLatitude") start_longitude = config.getfloat( simulation, "StartLongitude") end_latitude = config.getfloat(simulation, "EndLatitude") end_longitude = config.getfloat( simulation, "EndLongitude") location1 = gps_utils.Location(start_latitude, start_longitude) location2 = gps_utils.Location(end_latitude, end_longitude) user_motion = TimedRoute.from_start_and_end( location1, location2, speed, frequency) user_motion.write_route(file_name) simulation_set_builder.add_dynamic_route( file_path, run_duration=run_duration, gain=gain) # Static Simulation else: latitude = config.getfloat(simulation, "Latitude") longitude = config.getfloat(simulation, "Longitude") simulation_set_builder.add_static_route( latitude, longitude, run_duration=run_duration, gain=gain) except configparser.NoOptionError as err: print("Error in reading value from configuration file: %s" % err) return simulation_set = simulation_set_builder.build() simulation_set.run_simulations()