IP Library Granted Patent US 10,466,217
Granted Patent B1
US 10,466,217 · App. 14/139,769 · Granted Nov 5, 2019

Method to combine partially aggregated sensor data in a distributed sensor system

Inventors: Gigi Sayfan (Davis, CA); Stanley Hu (San Francisco, CA)
Assignee: Aclima Inc.
G01N33/0009
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,466,217
App. No.
14/139,769
Granted
Nov 5, 2019
Kind
B1
Abstract

A method for processing sensor data in a distributed sensor system includes generating aggregated sensor data values associated with a first sensor and belonging to one or more aggregation time intervals, tagging each aggregated sensor data value with an aggregation indicator. The aggregation indicator has a first value indicating partial aggregation and has a second value indicating complete aggregation. In some embodiments, the method combines the partially aggregated sensor data belonging to the same time interval into a complete aggregated sensor data.

Claims (63)

1. A method for processing sensor data in a distributed sensor system, the distributed sensor system including a plurality of spatially distributed sensor nodes in communication with a data network, each sensor node comprising at least one sensor configured to measure an air quality parameter or an environment parameter, the method comprising:

receiving sensor data messages sent by one or more sensors in the sensor nodes of the distributed sensor system;

processing the sensor data messages using scalable distributed stateless processing to enable a data collection system of the distributed sensor system to be scaled up as additional sensors are deployed in the distributed sensor system, the processing being performed using multiple distributed parallel software processes running on one or more processor, wherein each of the multiple distributed parallel software processes do not communicate with each of the other of the multiple distributed parallel software processes and wherein each of the multiple distributed parallel software processes is unaware of the each of the other of the multiple distributed parallel software processes and wherein each of the multiple distributed software processes is configured to operate independently without requiring information about a previous processing state and to manage a partial state of a sensor such that sensor data related to the partial state is written independently to a sensor database;

generating from the processing aggregated sensor data values associated with a first sensor and belonging to one or more aggregation time intervals,

tagging each aggregated sensor data value with an aggregation indicator, the aggregation indicator having a first value to indicate that the aggregated sensor data value comprises a partially aggregated sensor data value having aggregated a unique portion of the sensor data values for the first sensor within a given aggregation time interval, and the aggregation indicator having a second value to indicate that the aggregated sensor data value comprises a complete aggregated sensor data value having aggregated all of the sensor data values for the first sensor within the given aggregation time interval; and

storing in a memory the aggregated sensor data values tagged with the aggregation indicator;

accessing the memory to retrieve aggregated sensor data values for a first time interval with the aggregation indicator set to the first value;

combining the retrieved aggregated sensor data values to generate a complete aggregated sensor data value for the first time interval;

tagging the complete aggregated sensor data value with an aggregation indicator having the second value; and

storing in the memory the complete aggregated sensor data value tagged with the aggregation indicator having the second value.

2. The method of claim 1 , wherein generating from the processing aggregated sensor data values associated with a first sensor and belonging to one or more aggregation time intervals comprises:

averaging some or all of the sensor data values for the first sensor within a given time interval to generate the aggregated sensor data value for that given time interval.

3. The method of claim 1 , wherein combining the retrieved aggregated sensor data values to generate a complete aggregated sensor data value for the first time interval comprises:

averaging the sensor data values from the retrieved aggregated sensor data values to generate the complete aggregated sensor data value.

4. The method of claim 3 , wherein generating from the processing aggregated sensor data values associated with a first sensor and belonging to one or more aggregation time intervals comprises:

averaging some or all of the sensor data values for the first sensor within a given time interval to generate the aggregated sensor data; and

storing a sensor data set with the aggregated sensor data value, the sensor data set comprising a maximum sensor data value, a minimum sensor data value and the average sensor data value over the given time interval, and further comprising a sum value of all sensor data values for the given time interval, and the number of samples for the given time interval.

5. The method of claim 4 , wherein averaging the sensor data values from the retrieved aggregated sensor data values to generate the complete aggregated sensor data value comprises:

adding the sum values in the retrieved aggregated sensor data values to generate a total sum value;

adding the numbers of samples in the retrieved aggregated sensor data values to generate a total number of samples; and

dividing the total sum value by the total number of samples to generate the complete aggregated sensor data value.

6. The method of claim 1 , wherein processing the sensor data messages using scalable distributed stateless processing to enable a data collection system of the distributed sensor system to be scaled up as additional sensors are deployed in the distributed sensor system, comprises:

decoding the sensor data messages to obtain decoded sensor data including sensor identifying information and sensor readings;

converting the sensor readings to sensor data values having physical units associated with the respective types of sensors that generated the sensor readings; and

calibrating each sensor data value using calibration data associated with the sensor identified by the sensor identifying information accompanying the sensor readings.

7. The method of claim 1 , wherein receiving sensor data messages sent by one or more sensors in the sensor nodes of the distributed sensor system comprises receiving sensor data messages at a sampling rate, the sampling rate being faster than the one or more aggregation time intervals.

8. The method of claim 1 , wherein tagging each aggregated sensor data value with an aggregation indicator comprises:

tagging each aggregated sensor data value with the aggregation indicator having the second value to indicate that the aggregated sensor data value comprises a complete aggregated sensor data value having aggregated all of the sensor data values for the first sensor within the given aggregation time interval, the second value comprises a zero value or an absence of a value.

9. The method of claim 1 , wherein storing in a memory the aggregated sensor data values tagged with the aggregation indicator comprises:

storing in a sensor data database stored in the memory the aggregated sensor data values tagged with the aggregation indicator.

10. A sensor data processing system for processing sensor data in a distributed sensor system, the distributed sensor system including a plurality of spatially distributed sensor nodes in communication with a data network, each sensor node comprising at least one sensor configured to measure an air quality parameter or an environment parameter, the sensor data processing system comprising:

a processor; and

a memory coupled with the processor, wherein the memory is configured to provide the processor with instructions which when executed cause the processor to:

receive sensor data messages sent by one or more sensors in the sensor nodes of the distributed sensor system;

process the sensor data messages using scalable distributed stateless processing to enable the sensor data processing system to be scaled up as additional sensors are deployed in the distributed sensor system, the processing being performed using multiple distributed parallel software processes running on one or more processor, wherein each of the multiple distributed parallel software processes do not communicate with each of the other of the multiple distributed parallel software processes and wherein each of the multiple distributed parallel software processes is unaware of the each of the other of the multiple distributed parallel software processes and wherein each of the multiple distributed software processes is configured to operate independently without requiring information about a previous processing state and to manage a partial state of a sensor such that sensor data related to the partial state is written independently to a sensor database;

generate from the processing aggregated sensor data values associated with a first sensor and belonging to one or more aggregation time intervals,

tag each aggregated sensor data value with an aggregation indicator, the aggregation indicator having a first value to indicate that the aggregated sensor data value comprises a partially aggregated sensor data value having aggregated a unique portion of the sensor data values for the first sensor within a given aggregation time interval, and the aggregation indicator having a second value to indicate that the aggregated sensor data value comprises a complete aggregated sensor data value having aggregated all of the sensor data values for the first sensor within the given aggregation time interval; and

store in a memory the aggregated sensor data values tagged with the aggregation indicator;

access the memory to retrieve aggregated sensor data values for a first time interval with the aggregation indicator set to the first value;

combine the retrieved aggregated sensor data values to generate a complete aggregated sensor data value for the first time interval;

tag the complete aggregated sensor data value with an aggregation indicator having the second value; and

store in the memory the complete aggregated sensor data value tagged with the aggregation indicator having the second value.

11. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

generate the aggregated sensor data values by averaging some or all of the sensor data values for the first sensor within a given time interval to generate the aggregated sensor data.

12. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

combine the retrieved aggregated sensor data values by averaging the sensor data values from the retrieved aggregated sensor data values to generate the complete aggregated sensor data value.

13. The sensor data processing system recited in claim 12 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

generate the aggregated sensor data values by averaging some or all of the sensor data values for the first sensor within a given time interval to generate the aggregated sensor data value; and

store a sensor data set with the aggregated sensor data value, the sensor data set comprising a maximum sensor data value, a minimum sensor data value and the average sensor data value over the given time interval, and further comprising a sum value of all sensor data values for the given time interval, and the number of samples for the given time interval.

14. The sensor data processing system recited in claim 13 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

average the sensor data values from the retrieved aggregated sensor data values by adding the sum values in the retrieved aggregated sensor data values to generate a total sum value;

add the numbers of samples in the retrieved aggregated sensor data values to generate a total number of samples; and

divide the total sum value by the total number of samples to generate the complete aggregated sensor data value.

15. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

decode the sensor data messages to obtain decoded sensor data including sensor identifying information and sensor readings;

convert the sensor readings to sensor data values having physical units associated with the respective types of sensors that generated the sensor readings; and

calibrate each sensor data value using calibration data associated with the sensor identified by the sensor identifying information accompanying the sensor readings.

16. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

receive sensor data messages sent by one or more sensors in the sensor nodes of the distributed sensor system at a sampling rate, the sampling rate being faster than the one or more aggregation time intervals.

17. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

tag each aggregated sensor data value with the aggregation indicator having the second value to indicate that the aggregated sensor data value comprises a complete aggregated sensor data value having aggregated all of the sensor data values for the first sensor within the given aggregation time interval, the second value comprises a zero value or an absence of a value.

18. The sensor data processing system recited in claim 10 , wherein the memory is further configured to provide the processor with instructions which when executed cause the processor to:

store in a sensor data database stored in the memory the aggregated sensor data values tagged with the aggregation indicator.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded Feb 16, 2024
From: VENTURE LENDING & LEASING VIII, INC.; VENTURE LENDING & LEASING IX, INC.
To: ACLIMA, INC.
Reel/Frame 066485/0273 →
SECURITY INTEREST Recorded Sep 7, 2018
From: ACLIMA, INC.
To: VENTURE LENDING & LEASING IX, INC.; VENTURE LENDING & LEASING VIII, INC.
Reel/Frame 047030/0106 →
SECURITY INTEREST Recorded Mar 23, 2017
From: ACLIMA, INC.
To: SILICON VALLEY BANK
Reel/Frame 041700/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2014
From: SAYFAN, GIGI; HU, STANLEY
To: ACLIMA INC.
Reel/Frame 032448/0935 →