Example #1
0
def main():
	number_of_time_points = 20000 #number of time points to generate
	time_series_header = ["Time series A", "Time series B", "Time series C"]
	run_id = ""

	if len(sys.argv) >= 2:
		run_id = str(sys.argv[1])

	#we are using a lattice of sensors that reads data from different
	#songs. We combine the listening from 3 different readings.
	time_series = generate_predictable_parabola_time_series(number_of_time_points)
	time_series_b = generate_predictable_time_series(number_of_time_points) #series b
	time_series_c = generate_predictable_parabola_time_series(number_of_time_points, 100) #series c, right shift by 100
	rare_event_song = generate_predictable_sin_time_series(number_of_time_points)

	data_to_write = [time_series, time_series_b, time_series_c]

	ft.save_data_to_file(data_to_write, "the_series_" + run_id + ".csv")
	ft.save_data_to_file([rare_event_song], "rare_song_" + run_id + ".csv")

	normalized_time_series = tstools.normalize_to_range(time_series)
	normalized_time_series_b = tstools.normalize_to_range(time_series_b)
	normalized_time_series_c = tstools.normalize_to_range(time_series_c)

	data_to_write = [normalized_time_series, normalized_time_series_b, normalized_time_series_c]
	ft.save_data_to_file(data_to_write, "the_series_normalized_" + run_id +".csv")

	rare_event_song_normalized = tstools.normalize_to_range(rare_event_song)
	ft.save_data_to_file([rare_event_song_normalized], "rare_song_normalized_" + run_id + ".csv")
	def change_sensor_time_series_to_rare_series(sensor, loudness_of_the_area, start_index, end_index):
		sensor_time_series = sensor.get_time_series()

		cropped_sensor_time_series = crop_time_series(sensor_time_series, start_index, end_index)
		cropped_rare_event_song = crop_time_series(rare_event_song, start_index, end_index)

		merged_series = tstools.merge_series([cropped_rare_event_song, cropped_sensor_time_series], 
		[loudness_of_the_area, 1])

		new_series = sensor_time_series[:]
		#to append previous valus to the new time series
		for i in range(len(merged_series)):
			new_series[start_index + i] = merged_series[i]

		new_series = tstools.normalize_to_range(new_series, 1.0) #normalize to 1
		sensor.set_time_series(new_series)
def add_erroneous_drift_towards_a_value_to_sensor(sensor, 
	probability_of_erroneous_reading, number_of_erroneous_points, 
	random_generator):
	"""
	This function adds erroneous drift to a single sensor time series. 
	This function modifies the sensor's original time series.
	"""
	time_series = sensor.get_time_series()

	erroneous_reading = \
	error_generator.add_erroneous_drift_towards_a_value(time_series, 
		probability_of_erroneous_reading, number_of_erroneous_points, 
		random_generator)

	#normalize
	erroneous_reading = tstools.normalize_to_range(erroneous_reading, 1.0) 
	sensor.set_time_series(erroneous_reading)
	return erroneous_reading
def add_erroneous_reading_to_sensor(sensor, 
	probability_of_erroneous_reading, 
	erroneous_reading_standard_deviation, warmup_time, random_generator):
	"""
	This function adds erroneous readings to a single sensor time series. 
	This function modifies the sensor's original time series.
	"""
	time_series = sensor.get_time_series()
	erroneous_reading, number_of_errors_inserted, \
	list_of_errors_inserted = \
	error_generator.add_erroneous_reading_to_time_series(time_series, 
		probability_of_erroneous_reading, 
		erroneous_reading_standard_deviation, warmup_time, 
		random_generator)
	
	#normalize to be between 0 and 1
	erroneous_reading = tstools.normalize_to_range(erroneous_reading, 1.0) 
	sensor.set_time_series(erroneous_reading)
	return erroneous_reading, number_of_errors_inserted, list_of_errors_inserted
def add_continous_erroneous_reading_to_sensor(sensor, 
	probability_of_erroneous_reading, 
	number_of_continous_erroneous_readings, warmup_time, 
	random_generator):
	"""
	This function adds a sequence erroneous readings to a single sensor 
	time series. This function modifies the sensor's original 
	time series.
	"""
	time_series = sensor.get_time_series()
	
	erroneous_reading = \
	error_generator.add_erroneous_continuous_sequence_to_time_series(
		time_series, probability_of_erroneous_reading, 
		number_of_continous_erroneous_readings, warmup_time, 
		random_generator)

	erroneous_reading = tstools.normalize_to_range(erroneous_reading, 1.0)
	sensor.set_time_series(erroneous_reading)
	return erroneous_reading
Example #6
0
	def set_time_series_according_to_sensor_weight(self, list_of_time_series):
		"""
		Sets the time series of a sensor depending on the location of the grid.
		It normalizes the data so it falls betweem 0 and 1 for the neural network.
		"""
		lattice_of_sensors = []

		for row in range(self.dimension_of_lattice):
			for col in range(self.dimension_of_lattice):

				weigth_from_b = row / (self.dimension_of_lattice * 1.0) #in vertical increase b 
				weigth_from_a = col / (self.dimension_of_lattice * 1.0) #in horizontal increase a
				weight_from_c = 0
				total_weight = weigth_from_a + weigth_from_b

				if total_weight < 1:
					weight_from_c = 1 - total_weight

				list_of_weights = [weigth_from_a, weigth_from_b, weight_from_c]
				time_series_for_sensor = \
				tstools.merge_series(list_of_time_series, list_of_weights)
				time_series_for_sensor = \
				tstools.normalize_to_range(time_series_for_sensor, 1)
				self.set_sensor_time_series(row, col, time_series_for_sensor)