Time based indoor location determination
A computer system obtaining location data derived from a plurality of data sources, the location data is associated with a user. The location data comprises one or more data points, each of which comprises a location indication, time data associated with the location indication, an indication of the data source from which the location indication was derived, and a confidence score associated with the location indication. The computer system produces a location estimate for the user in relation to an area at a given time point by: for each of at least some of the data sources, obtaining one of the data points from amongst the data points associated with the respective data source, the obtained data point having time data that corresponds to the given time point; and providing the location estimate based on the location indications, confidence scores and time data associated with the obtained data points.
1 . A computer system comprising at least one processor and at least one memory comprising computer readable instructions, the at least one processor being configured to execute the instructions to perform the steps of:
obtaining location data associated with a user device and derived from a plurality of three data sources within a building, including wireless access points, wired connections and Bluetooth devices, wherein the location data comprises, for each of the data sources, one or more data points, each of which comprises a location indication, time data associated with the location indication, an indication of the data source from which the location indication was derived, and a confidence score associated with the location indication; and
producing a location estimate for the user device in relation to an area in the building at a given time point by:
for each of the data sources, obtaining one of the data points from amongst the data points associated with the respective data source, the obtained data point having time data that corresponds to the given time point;
providing the location estimate based on the location indications, confidence scores and time data associated with the obtained data points; and
adjusting for each of the obtained data points, the confidence score based on the respective attrition rule for each of the three types of data sources and based on an amount of elapsed time between the given time point and a time point indicated by the respective time data; and
displaying a timeline of location estimates for the user device in the building, the timeline including the location estimate and the confidence score for the user device at the given time points.
2 . A computer system as claimed in claim 1 , wherein for each of the data sources, the one or more data points comprises a plurality of data points.
3 . A computer system as claimed in claim 1 , wherein the at least one processor is configured to execute the instructions to:
in response to determining that a first indication of the location of each of a first set of one or more of the obtained data points is inconsistent with a second indication of location of each of a second set of obtained data points, selecting between the first indication and the second indication based on one or more of:
whether the data points from any of the data sources for the first and second sets indicate that the user is moving within a particular period associated with the given time point;
a pre-defined priority allocated to each data source for the first and second sets; and
the confidence scores for the data points in the first and second data sets; and
determining the estimated location based on the selected indication of the location.
4 . A computer system as claimed in claim 1 , wherein for each of the data sources, each of the one or more data points comprise an attrition rule, wherein the at least one processor is configured to execute the instructions to:
for each of the at least some of the obtained data points, adjust the confidence score based on the respective attrition rule for each type of data source and on an amount of elapsed time between the given time point and a time point indicated by the respective time data; and
use the adjusted confidence scores to determine a location estimate associated with the location estimate.
5 . A computer system as claimed in claim 1 , wherein the at least one processor is configured to execute the instructions to:
in response to determining that the indication of the location of at least one of the obtained data points is inconsistent with one or more other indications of the locations of one or more others of the obtained data points:
provide the estimate of the location for the user based upon the one or more others of the obtained data points; and
provide a further estimate of the location for the user based upon the at least one of the obtained data points.
6 . A computer system as claimed in claim 1 , wherein obtaining the data belonging to a plurality of data sources comprises:
receiving ones of the data points derived from a first of the data sources from a first device; and
receiving ones of the data points derived from a second of the data sources from a second device, which is a different type of device to the first device.
7 . A computer system as claimed in claim 6 , wherein the first device is a user device associated with the user.
8 . A computer system as claimed in claim 1 , wherein the plurality of data sources comprise one or more of:
local area network positioning data;
personal area network based positioning data;
global positioning system data;
data indicating a wired connection;
motion sensor data;
booking data;
user authentication data; and
checkpoint data.
9 . A computer system as claimed in claim 1 , wherein obtaining the location data associated with a plurality of data sources comprises for each of the plurality of data sources:
receiving raw data associated with the respective data source from a device associated with the respective data source; and
processing the raw data to produce the plurality of data points belonging to a pre-defined format comprising a pre-defined set of fields.
10 . A computer system as claimed in claim 9 , wherein the processing the raw data comprises the determining of the confidence score.
11 . A computer system as claimed in claim 1 , wherein the at least one processor being configured to execute the instructions to perform the steps of:
producing a timeline of location estimates for the user in relation to the facility, the timeline including the location estimate for the user at the given time point.
12 . A computer system as claimed in claim 1 wherein the estimate of the location for the user indicates at least one of: the presence of the user within the area; the absence of the user within the area; and/or a location of the user within the area.
13 . A computer system as claimed in claim 1 , wherein the at least one processor is configured to execute the instructions to perform the steps of:
in response to determining that the location estimate indicates a location within a predefined sub-area of the area, cause a notification to be sent to a user device associated with the user.
14 . A computer implemented method comprising:
obtaining location data associated with a user device and derived from a plurality of three data sources within a building, including wireless access points, wired connections and Bluetooth devices, wherein the location data comprises, for each of the data sources, one or more data points, each of which comprises a location indication, time data associated with the location indication, an indication of the data source from which the location indication was derived, and a confidence score associated with the location indication; and
producing a location estimate for the user device in relation to an area in the building at a given time point by:
for each of the data sources, obtaining one of the data points from amongst the data points associated with the respective data source, the obtained data point having time data that corresponds to the given time point; and
providing the location estimate based on the location indications, confidence scores and time data associated with the obtained data points; and
adjusting for each of the obtained data points, the confidence score based on the respective attrition rule for each of the three types of data sources and based on an amount of elapsed time between the given time point and a time point indicated by the respective time data; and
displaying a timeline of location estimates for the user device in the building, the timeline including the location estimate and the confidence score for the user device at the given time points.
15 . A non-transitory computer readable medium storing a computer program comprising a set of executable instructions, which when executed by a processor cause a method to be performed, the method comprising:
obtaining location data associated with a user device and derived from a plurality of three data sources within a building, including wireless access points, wired connections and Bluetooth devices, wherein the location data comprises, for each of the data sources, one or more data points, each of which comprises a location indication, time data associated with the location indication, an indication of the data source from which the location indication was derived, and a confidence score associated with the location indication; and
producing a location estimate for the user device in relation to an area in the building at a given time point by:
for each of the data sources, obtaining one of the data points from amongst the data points associated with the respective data source, the obtained data point having time data that corresponds to the given time point; and
providing the location estimate based on the location indications, confidence scores and time data associated with the obtained data points; and
adjusting for each of the obtained data points, the confidence score based on the respective attrition rule for each of the three types of data sources and based on an amount of elapsed time between the given time point and a time point indicated by the respective time data; and
displaying a timeline of location estimates for the user device in the building the timeline including the location estimate and the confidence score for the user device at the given time points.