US20130238573A1 - Contextual data compression for geo-tracking applications - Google Patents

Contextual data compression for geo-tracking applications Download PDF

Info

Publication number
US20130238573A1
US20130238573A1 US13/782,712 US201313782712A US2013238573A1 US 20130238573 A1 US20130238573 A1 US 20130238573A1 US 201313782712 A US201313782712 A US 201313782712A US 2013238573 A1 US2013238573 A1 US 2013238573A1
Authority
US
United States
Prior art keywords
location data
value
contextual
contextual profile
original location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US13/782,712
Other versions
US9235591B2 (en
Inventor
Pierre LE PIFRE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Titan Intelligence Technology Ltd
Morgan Stanley Senior Funding Inc
Original Assignee
NXP BV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NXP BV filed Critical NXP BV
Assigned to NXP B.V. reassignment NXP B.V. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LE PIFRE, PIERRE
Publication of US20130238573A1 publication Critical patent/US20130238573A1/en
Assigned to TELIT AUTOMOTIVE SOLUTIONS NV reassignment TELIT AUTOMOTIVE SOLUTIONS NV ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NXP B.V.
Application granted granted Critical
Publication of US9235591B2 publication Critical patent/US9235591B2/en
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. SECURITY AGREEMENT SUPPLEMENT Assignors: NXP B.V.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to NXP B.V. reassignment NXP B.V. PATENT RELEASE Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Assigned to HSBC BANK PLC reassignment HSBC BANK PLC SECURITY INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TELIT AUTOMOTIVE SOLUTIONS NV
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to TELIT AUTOMOTIVE SOLUTIONS NV reassignment TELIT AUTOMOTIVE SOLUTIONS NV RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: HSBC BANK PLC
Assigned to NXP B.V. reassignment NXP B.V. RELEASE BY SECURED PARTY (SEE DOCUMENT FOR DETAILS). Assignors: MORGAN STANLEY SENIOR FUNDING, INC.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to MORGAN STANLEY SENIOR FUNDING, INC. reassignment MORGAN STANLEY SENIOR FUNDING, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Assignors: NXP B.V.
Assigned to TITAN AUTOMOTIVE SOLUTIONS NV reassignment TITAN AUTOMOTIVE SOLUTIONS NV CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: TELIT AUTOMOTIVE SOLUTIONS NV
Assigned to TITAN INTELLIGENCE TECHNOLOGY LIMITED reassignment TITAN INTELLIGENCE TECHNOLOGY LIMITED ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: TITAN AUTOMOTIVE SOLUTIONS NV
Expired - Fee Related legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30153
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • G06F16/1744Redundancy elimination performed by the file system using compression, e.g. sparse files
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/03Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/0009Transmission of position information to remote stations
    • G01S5/0018Transmission from mobile station to base station

Definitions

  • Various exemplary embodiments disclosed herein relate generally to compression of location data.
  • GNSS Global Navigation Satellite System
  • NMEA National Marine Electronics Association
  • JSR Java Specification Request
  • GNSS receivers are currently used for a variety of applications.
  • Location data from a GNSS receiver may be used locally or transmitted to a remote location.
  • Exemplary uses of location data include navigation systems, fleet management, photo tagging and social networking.
  • Geo-tracking applications may determine location data frequently and store the location data.
  • a geo-tracking application that constantly records location data or compiles location data from multiple GNSS receivers may consume a large amount of storage space for the location data.
  • Various exemplary embodiments relate to a method of compressing location data.
  • the method may include: receiving original location data; selecting a contextual profile based at least in part on the original location data; selecting a compression method based on the contextual profile; and converting the original location data to a compressed format based on the compression method.
  • the method further includes: receiving second location data; determining that the contextual profile no longer applies; selecting a second contextual profile; selecting a second compression method based on the second contextual profile; and converting the second location data to a second compressed format using fewer bits than the second location data according to the second compression method.
  • the original location data includes a plurality of component values including a longitude value and a latitude value and the step of selecting a contextual profile includes: comparing the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and selecting the contextual profile if the longitude and latitude are within the geographical area.
  • the contextual profile may include, for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored using the corresponding number of bits.
  • the step of converting the original location data may include, for each original component value: generating an intermediate value by subtracting the base value from the original component value; generating a compressed value by dividing the intermediate value by the precision value; and storing the compressed value in the compressed format.
  • the method may also include storing an indication of the selected contextual profile.
  • the method may also include determining, based on a contextual profile, compression parameters including a number of bits, a precision value, and a base value; reading the number of bits from a stored compressed value; generating an intermediate value by multiplying the read bits by the precision value; and generating a location data component by adding the base value to the intermediate value.
  • original location data includes a plurality of component values including a speed value and the step of selecting a contextual profile includes: using the speed value to determine a mode of transportation; and selecting a contextual profile based on the mode of transportation.
  • the step of converting the original location data to a compressed format includes scaling a component of the original location data.
  • the step of converting the original location data to a compressed format includes converting a component of the original location data to a relative measurement.
  • Various exemplary embodiments relate to the above described methods encoded as instructions on a non-transitory machine-readable medium.
  • the non-transitory machine-readable medium may include instructions that if executed by a processor of a geo-tracking device perform the above described method.
  • Various exemplary embodiments relate to a system for compressing location data.
  • the system may include: a location receiver configured to generate original location data based at least on signals from global navigation satellite system (GNSS) satellites; a location engine configured to select a contextual profile based at least in part on the original location data; and a contextual compression filter configured to generate compressed location data in a compressed format based on the selected contextual profile.
  • GNSS global navigation satellite system
  • the system may also include a data storage device configured to store the compressed location data.
  • the system may also include a wireless modem configured to transmit the compressed location data.
  • the original location data includes a plurality of component values including a longitude value and a latitude value.
  • the location engine may be configured to: compare the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and select the contextual profile if the longitude and latitude are within the geographical area.
  • the contextual profile includes for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored in the compressed format using the corresponding number of bits.
  • the contextual compression filter may be configured to, for each original component value: generate an intermediate value by subtracting the base value from the original component value; generate a compressed value by dividing the intermediate value by the precision value; and store the compressed value in the compressed format.
  • the contextual compression filter is further configured to store an indication of the selected contextual profile.
  • the system includes a processor configured to: determine, based on a contextual profile, compression parameters including a number of bits, a precision value, and a base value; read the number of bits from a stored compressed value; generate an intermediate value by multiplying the read bits by the precision value; and generate a location data component by adding the base value to the intermediate value.
  • the contextual compression filter is configured to scale a component of the original location data based on a parameter defined in the contextual profile.
  • the original location data includes a plurality of component values including a speed value and the location engine is configured to select a contextual profile based on the speed value.
  • various exemplary embodiments enable a method and system for compressing location data.
  • the location data may be efficiently compressed.
  • FIG. 1 illustrates a diagram of an exemplary geo-tracking system
  • FIG. 2 illustrates a diagram of exemplary geo-tracking device
  • FIG. 3 illustrates an exemplary data structure for storing a contextual profile
  • FIG. 4 illustrates a flowchart showing an exemplary method of compressing location data
  • FIG. 5 illustrates a flowchart showing an exemplary method of compressing a component of location data
  • FIG. 6 illustrates a flowchart showing an exemplary method of using a compressed component of location data.
  • Location data standards are designed to represent location data for any location on the planet. They are also designed to be used by a variety of different applications including military applications. Many common civilian uses of location data are confined to predictable geographic areas and require less precision than provided by the location data standards. Compression of location data may reduce the amount of memory required to store location data and bandwidth required to transmit location data. This in turn may reduce communication costs, material costs, and power consumption.
  • Contextual compression of location data may provide an efficient method of compressing location data.
  • contextual compression may make use of the received location data to determine an appropriate compression scheme.
  • Contextual compression may minimize the size of location data without requiring complicated algorithms and processing.
  • FIG. 1 illustrates a diagram of an exemplary geo-tracking system 100 .
  • Exemplary geo-tracking system 100 may be used to track a device 120 and store location data in a compressed format.
  • Geo-tracking system 100 may include satellites 110 , device 120 , wireless access point 130 , network 140 and server 150 .
  • Satellites 110 may enable device 120 to determine its location. Satellites 110 may include a plurality of satellites 110 a - d that transmits geospatial location data.
  • satellites 110 may be Global Positioning System (GPS) satellites.
  • GPS Global Positioning System
  • at least four GPS satellites may be required for device 120 to determine its location.
  • satellites 110 may be replaced by other means of determining location.
  • device 120 may determine its location from mobile network access points or wireless hotspots.
  • Device 120 may be any device capable of determining its location.
  • device 120 may include a Global Navigation Satellite System (GNSS) receiver.
  • Device 120 may also include any device including a GNSS receiver such as, for example, a GPS receiver, mobile phone, PDA, tablet computer, automobile, airplane or watercraft.
  • Device 120 may receive signals from satellites 110 and generate location data based on the signals.
  • Device 120 may also take other physical measurements and associate the measurements with the location data. For example, device 120 may measure vehicle emissions, energy consumption, barometric pressure, and/or temperature.
  • GNSS Global Navigation Satellite System
  • device 120 may first generate original location data according to a standard format. For example, device 120 may first generate location data according to the National Marine Electronics Association (NMEA) 0183 and Java Specification Request (JSR) 179 standards. Device 120 may compress this original location data using contextual compression to generate compressed location data. Device 120 may store compressed location data locally or transmit the compressed location data to, for example, server 150 via wireless access point 130 and network 140 . Device 120 may also transmit other types of data including contextual profiles via wireless access point 130 and network 140 .
  • NMEA National Marine Electronics Association
  • JSR Java Specification Request
  • Wireless access point 130 may be any access point for wirelessly receiving data from device 120 .
  • wireless access point 130 may be a mobile phone network access point.
  • wireless access point 130 may be a local area network access point.
  • Wireless access point 130 may receive compressed location data from device 120 and forward the compressed location data to network 140 .
  • wireless access point 130 may be associated with a network provider that charges by volume for data received at wireless access point 130 . Transmitting compressed location data may result in lower network access charges than transmitting uncompressed location data.
  • Network 140 may include any network for transmitting data.
  • Network 140 may include, for example, the Internet.
  • Network 140 may transmit compressed location data originating at device 120 from wireless access point 130 to server 150 .
  • Compressed location data may take a variety of paths through network 140 before it reaches server 150 .
  • Server 150 may be any computing device implementing a geo-tracking application.
  • a geo-tracking application may be any application that makes use of location data.
  • geo-tracking applications may include navigation systems, fleet management systems, traffic management systems, vehicle security systems, emergency reporting systems, toll collection systems, photo tagging applications, fitness management applications, social networking applications, telemetry applications and others.
  • Server 150 may receive location data from one or more devices such as device 120 .
  • Server 150 may process the received location data and provide results to device 120 or other devices.
  • Server 150 may also store received location data.
  • a server 150 running a fleet management system may receive location data from numerous devices and store the location data for record keeping or future analysis.
  • FIG. 2 illustrates a diagram of exemplary geo-tracking device 120 .
  • Device 120 may correspond to device 120 shown in FIG. 1 .
  • Device 120 may include Location receiver 210 , location engine 220 , contextual profile storage 230 , contextual compression filter 240 , data storage 250 , wireless modem 260 , and processor 270 .
  • Location receiver 210 may include any receiver capable of receiving GNSS signals.
  • Location receiver 210 may include, for example, a GPS receiver, a GLONASS receiver, a BeiDou or Compass receiver, or a Galileo receiver.
  • Location receiver 210 may use information received in GNSS signals to generate location data.
  • location receiver 210 may also include receivers that generate location data based on terrestrial signals such as tactical air navigation system (TACAN), mobile network access points and local area network hotspots.
  • TACAN tactical air navigation system
  • Location receiver 210 may also measure other physical characteristics associated with device 200 at a particular time and location and include these measurements in the location data. For example, if device 200 is a motor vehicle, location receiver 210 it may be desirable to measure exhaust emissions and energy consumption.
  • Location data may include a variety of information related to the location of device 120 .
  • location data may include a time, longitude and latitude coordinates, and altitude.
  • Location receiver 210 may also generate other types of location data based on comparisons of location data. For example, location receiver 210 may determine a speed by determining the change in location during a time interval. Location receiver 210 may also generate information such as error estimations.
  • Location receiver 210 may output location data according to a standard such as NMEA 0183 or JSR 179. Location receiver 210 may output location data as a series of messages containing current location data.
  • location receiver 210 may include an API that allows another component to query the receiver with a request for location data.
  • Location engine 220 may include hardware and/or executable instructions encoded on a machine-readable storage medium configured to determine a contextual profile based on location data.
  • Location engine 220 may receive location data from location receiver 210 .
  • the received location data may be formatted according to a standard used by location receiver 210 .
  • Location engine 220 may extract relevant location information from the location data to determine a contextual profile.
  • location engine 220 may determine a contextual profile based on longitude and latitude coordinates.
  • Location engine 220 may compare the longitude and latitude coordinates from the received location data with longitude and latitude coordinates defined in contextual profiles within contextual profile storage 230 .
  • Location engine 220 may receive other inputs including other location data such as speed and altitude or user selected inputs for determining the contextual profile.
  • a speed greater than, for instance 30 km/h may indicate that device 120 is within a motorized vehicle and an appropriate contextual profile should be chosen.
  • a user may enter and/or select a mode of transportation that may be useful for determining a contextual profile.
  • Location engine 220 may forward the received location data to contextual compression filter 240 along with an indication of the selected contextual profile.
  • Location engine 220 may continue to receive location data from location receiver 210 and forward the received location data to contextual compression filter 240 . If location engine 220 determines that a contextual profile is no longer applicable to the received location data, location engine 220 may determine a new contextual profile and send an indication of the new contextual profile to contextual compression filter 240 .
  • Contextual profile storage 230 may include any machine-readable medium capable of storing contextual profiles for use by device 120 . Accordingly, contextual profile storage 230 may include a machine-readable storage medium such as read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and/or similar storage media. Contextual profile storage 230 may be accessed by location engine 220 to select a contextual profile. Contextual compression filter 240 may access contextual profile storage 230 to determine a compression method for the received location data. Contextual profile storage 230 may send contextual profiles to wireless modem 260 to provide the contextual profile to other devices such as server 150 . The contextual profiles stored in contextual profile storage 230 will be described in greater detail below regarding FIG. 3 .
  • Contextual compression filter 240 may include hardware and/or executable instructions encoded on a machine-readable storage medium configured to compress received location data using a contextual profile. Contextual compression filter 240 may receive an indication of a contextual profile from location engine 220 . Contextual compression filter 240 may then look up the contextual profile in contextual compression profile storage 230 and determine an appropriate compression method. Contextual compression filter 240 may compress location data by scaling one or more components of the location data according to one or more parameters defined in the contextual profile. Contextual compression filter 240 may also compress location data by converting the location data to a different unit or a relative measurement. In various exemplary embodiments, contextual compression filter 240 may use base values, boundaries, precision levels and/or format data to determine how to compress the received location data. An exemplary method performed by contextual compression filter 240 for compressing a component of location data will be described in further detail below regarding FIG. 5 .
  • contextual compression filter may execute instructions and/or computer code stored or indicated in the selected contextual profile. Once the location data has been compressed, contextual compression filter 240 may forward the compressed location data to data storage 250 and/or wireless modem 260 .
  • Data storage 250 may include any machine-readable medium capable of storing compressed location data. Accordingly, data storage 250 may include a machine-readable storage medium such as read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and/or similar storage media. Data storage 250 may be used to store other data used by device 120 . For example, if device 120 is a mobile phone, data storage 250 may be a phone memory or flash card used to store data for other mobile phone applications. Because the location data stored in data storage 250 has been compressed, the location data may consume less space, leaving more memory available for other applications. Additionally, compression of location data may allow use of a smaller and/or less expensive machine-readable medium.
  • Wireless modem 260 may be an interface comprising hardware and/or executable instructions encoded on a machine-readable storage medium configured to communicate with a wireless access point.
  • wireless modem 260 may include a mobile phone antenna for communicating with a mobile network access point.
  • Wireless modem 260 may be used to transmit data, including compressed location data, to other device such as, for example, server 150 . Because the location data transmitted via wireless modem 260 has been compressed, wireless modem 260 may use less bandwidth and or less power than if uncompressed data were transmitted.
  • Processor 270 may include any processor capable of executing instructions encoded on a machine-readable storage medium.
  • processor 270 may include a general computer processor, mobile phone processor, or integrated circuit.
  • Processor 270 may be configured to execute a geo-tracking application.
  • Processor 270 may use compressed location data.
  • processor 270 may use a contextual profile stored in contextual profile storage 230 to decompress and read compressed location data stored in data storage 250 .
  • An exemplary method performed by processor 270 for using compressed location data will be described in further detail below regarding FIG. 6 .
  • FIG. 3 illustrates an exemplary data structure 300 for storing a contextual profile 305 .
  • data structure 300 may be implemented using a variety of data structures such as, for example, objects, arrays, linked lists, or trees.
  • Data structure 300 may be stored in contextual profile storage 230 or another computer-readable storage medium accessible to device 120 .
  • Data structure 300 may include fields for application 310 , area 320 , and format 330 .
  • Application field 310 may indicate a type of geo-tracking application.
  • application field 310 may indicate a mode of transportation for the geo-tracking application.
  • Application field 310 may be used to distinguish two or more contextual profiles applicable to the same geographic area. For example, a contextual profile for walking may provide greater precision for coordinates or speed, but a lower maximum speed. In contrast, a contextual profile for driving a motor vehicle may provide less precision for speed, but a greater maximum speed.
  • Area field 320 may indicate a geographical area to which the contextual profile is applicable. Area field 320 may be used to select a contextual profile.
  • the geographical area may be represented in various ways.
  • area field 320 may include a plurality of coordinate points that define a boundary of a geographic area.
  • field 320 may include the points: (+41°, ⁇ 5°), (+41°,+10°), (+52°, ⁇ 5°), and (+52°,+10°), given as (latitude, longitude) in degrees. These coordinate points may approximately define a geographical area within France. It should be apparent that a plurality of coordinate points may be used to define various geographical areas associated with different contextual profiles.
  • a contextual profile including a geographical area may be defined for a city with a certain speed limit.
  • a smaller area defined by area field 320 may allow greater compression or precision of location data.
  • area field 320 may include minimum and maximum values for longitude and latitude.
  • Format field 330 may indicate a format and/or method for compressing the received location data.
  • format field 330 may include an entry 335 for each component of the location data.
  • Each entry 335 may include a sub-field for a variable 340 , base value 342 , precision value 344 , and number of bits 346 .
  • Variable sub-field 340 may indicate the component of location data to which the entry applies.
  • Base value sub-field 342 may indicate a base value that should be subtracted from the location data to compress the location data.
  • Precision value sub-field 344 may indicate a level of precision of the compressed location data.
  • Number of bits sub-field 346 may indicate the total number of bits used by the variable after the location data is compressed.
  • Exemplary contextual profile 305 may include multiple entries 335 a - e for variables within the received location data that may be stored in a compressed format. It should be apparent that the exemplary values described below may be used in one possible contextual profile. For instance, exemplary contextual profile 305 may be used to compress location data for a device located on an automobile in France. Other contextual profiles may be created to fulfill the needs of applications operating in varying contexts.
  • Entry 335 a may be an example of a format for compressing longitude data. Entry 335 a may indicate that a base value of +41 may be subtracted from the received longitude value. Entry 335 a may further indicate that the longitude should be stored to the nearest 0.001 minute and a total of 14 bits should be used. Entry 335 b may indicate that a base value of ⁇ 5 may be subtracted from the received latitude value. Entry 335 b may further indicate that the latitude should be stored to the nearest 0.001 minute and a total of 14 bits should be used. Entry 335 c may indicate that a base value of 0 may be subtracted from the received speed value.
  • Entry 335 c may further indicate that the speed should be stored to the nearest km/h and a total of 7 bits should be used.
  • Entry 335 d may indicate that a base value of 0 may be subtracted from the received altitude value.
  • Entry 335 d may further indicate that the altitude should be stored to the nearest 10 meters and a total of 9 bits should be used.
  • Entry 335 e may indicate that a base value of the start time may be subtracted from the received altitude value.
  • Entry 335 e may further indicate that the time should be stored to the nearest second and a total of 16 bits should be used.
  • FIG. 4 illustrates a flowchart showing an exemplary method 400 of compressing location data.
  • Method 400 may be performed by the various components of device 120 including location receiver 210 , location engine 220 , contextual compression filter 240 , and wireless modem 260 .
  • Method 400 may access contextual profile storage 230 and data storage 250 .
  • Method 400 may begin at step 405 and proceed to step 410 .
  • device 120 may receive location data.
  • the location data may be received via location receiver 210 .
  • Location receiver 210 may first receive signals from satellites 110 .
  • Location receiver 210 may generate location data based on the signals from satellites 110 .
  • the location data generated by location receiver 210 may use a standard format.
  • the standard format is a text string indicating multiple components of location data.
  • location receiver 210 may provide individual components of location data or a set of location data using standard data types.
  • Location receiver 210 may continuously generate location data as it receives signals from satellites 110 . For example, location receiver 210 may regularly output a text string of location data once per time interval such as once per second.
  • step 415 device 120 may determine whether an applicable contextual profile has been selected for the received location data.
  • the first time device 120 receives location data no contextual profile may have been selected. If no contextual profile has been selected, the method may proceed to step 420 .
  • device 120 may compare the received location data to the contextual profile to determine whether the contextual profile is still applicable. For example, if the received longitude and latitude are outside of the geographic area defined by a contextual profile, the contextual profile may no longer be applicable. If the contextual profile is no longer applicable, the method may proceed to step 420 . If the contextual profile is still applicable, the method may proceed to step 430 .
  • device 120 may select a contextual profile based on the received location data.
  • Device 120 may compare the received location data with various fields of contextual profiles 300 .
  • device 120 may compare the received location data with area field 320 to determine whether device 120 is within the defined geographical area.
  • Device 120 may also compare user or application input with other fields of contextual profiles 300 such as application field 310 .
  • Device 120 may compare the location data to contextual profiles 300 until an applicable contextual profile is found.
  • Contextual profiles 300 may be stored using known techniques for efficiently locating an applicable contextual profile. Once a contextual profile is selected, the method may proceed to step 425 .
  • device 120 may select a compression method.
  • device 120 may choose a compression method defined in the selected contextual profile. For example, device 120 may select compression parameters defining the base value, precision, and bits used for each component of the location data.
  • Device 120 may generate an indication of the compression method chosen. The indication may be included with the compressed location data. For example, the indication of the compression method may be stored as a header to a log file including the compressed location data. The indication may also be transmitted to another node. In various exemplary embodiments, the contextual profile 300 may be transmitted as an indication of the compression method used.
  • step 430 device 120 may compress the location data according to the selected compression method.
  • Each component of the location data may be compressed individually and placed into a format for a set of location data defined by the contextual profile.
  • the compression may involve some loss of precision of the data; however, the level of precision may be defined in the contextual profile so that it remains acceptable for the application.
  • Compression may include limiting the number of bits used to store the location data based on an expected data interval.
  • the contextual profile may define the expected data interval. The number of bits may be limited by expressly defining a number of bits or defining a data type to store the compressed location data.
  • Compression may include scaling the location data to have a defined level of precision.
  • Device 120 may scale location data by dividing, rounding, using the most significant bits, shifting bits, or otherwise reducing precision.
  • Compression may include changing units of the location data. For example, changing from degrees to meters may allow for storage of the location data as an integer rather than a floating point number.
  • Compression may include using relative data instead of absolute data.
  • the contextual profile may define an absolute value from which the relative data is based. The above described compression methods may be used alone or in combination as defined by a contextual profile. An exemplary method of compressing location data will be described in greater detail below regarding FIG. 5 . Once a set of location data has been compressed, the method may proceed to step 435 .
  • step 435 device 120 may determine whether the compressed location data is to be used locally or remotely. If the compressed location data is to be used locally, the method 400 may proceed to step 440 . If the compressed location data is to be used remotely, the method 400 may proceed to step 445 .
  • device 120 may store the compressed location data locally.
  • Device 120 may store the compressed location data as a log file within data storage 250 .
  • the log file may include as a header the indication of the data compression method used.
  • the log file may include one or more indications along with the compressed location data. If device 120 changes compression method or contextual profile while recording location data, the log file may indicate when the compression method or contextual profile changed.
  • the method 400 may proceed to step 450 .
  • device 120 may transmit the compressed location data via wireless modem 260 .
  • device 120 may transmit the compressed location data to server 150 .
  • the compressed location data may be transmitted as it is generated. Transmitting the compressed location data as it is generated may allow an application on a remote server to track the device 120 .
  • device 120 may buffer the compressed location data before transmitting it. Once the compressed data has been transmitted, the method 400 may proceed to step 450 .
  • step 450 device 120 or server 150 may process the compressed location data.
  • a set or individual component of compressed location data may be read and processed individually if the format of the compressed location data is known. For example, an application may process only the speed component of the location data by extracting only the bits that indicate the speed component. An exemplary method for reading compressed location data will be described in greater detail below regarding FIG. 6 .
  • the method 400 may proceed to step 455 , where it ends.
  • FIG. 5 illustrates a flowchart showing an exemplary method 500 of compressing a component of location data.
  • Method 500 may be performed by the various components of device 120 , particularly contextual compression filter 240 .
  • Method 500 may begin in step 505 and proceed to step 510 .
  • contextual compression filter 240 may receive a component of location data.
  • the component may be formatted according to a GPSS standard.
  • the method 500 may then proceed to step 515 .
  • contextual compression filter 240 may determine whether the component is a text string. If the component is a text string, the method 500 may proceed to step 520 , where the text string may be converted to a number using known methods. The method may then proceed to step 525 .
  • contextual compression filter 240 may subtract the base value defined in the contextual profile from the location data component.
  • contextual compression filter 240 may divide the result of step 525 by the precision value defined in the contextual profile. Any remainders may be rounded or ignored.
  • the result of step 530 may be stored in the number of bits defined by the contextual profile. Leading bits may be added or removed to obtain the defined number of bits.
  • contextual compression filter 240 may receive a speed component of location data as a 32 bit floating point number: 55.84 km/h. Subtracting the base value of 0, and dividing by the precision, this number becomes 55. This number can be stored in only 6 bits. An extra bit may be added to store the value in the 7 bits defined by the contextual profile 305 . As long as the speed limit in the geographical area defined by a contextual profile is less than 128 km/h, any expected value may be stored in the 7 bits.
  • contextual compression filter 240 may receive a UTC time as a 32 bit integer, for example, 1321646220.
  • Contextual compression filter may use the time that the contextual profile was selected as a base value. If the contextual profile is chosen at 1321646220 and a second time is received 10 minutes later at 1321646820, the base value may be subtracted from the received second time with a result of 600, which may remain 600 when divided by a precision of 1. The 600 may then be padded with leading bits to store the value in the 16 bits defined by the contextual profile.
  • a format using 16 bits for time with a precision of 1 second may allow the device 120 to track location data for over 18 hours. If the tracking time exceeds the limit for the number of bits, an indication of a new contextual profile with new base value may be used.
  • contextual compression filter 240 may receive longitude as a floating point number: 49.18333. Contextual compression filter 240 may subtract the base value of 41 and divide by a precision of 0.001 resulting in a value of 8183. This value may be stored in 13 bits. An extra bit may be added to store the value in the 14 bits defined by the contextual profile. According to contextual profile 305 , the longitude of any location within France may be stored using 14 bits with a precision of approximately 100 m. It should be apparent that defining a contextual profile for a smaller geographical area, a city for example, would allow any location within the city to be stored using fewer bits or greater precision.
  • FIG. 6 illustrates a flowchart showing an exemplary method 600 of using a compressed component of location data.
  • Method 600 may be performed by any processor capable of reading data stored in a machine-readable storage medium.
  • Method 600 may also be performed by a processor of device 120 or server 150 .
  • Method 600 may begin in step 605 and proceed to step 610 .
  • the processor may look up compression parameters including a number of bits, a precision value, and a base value from an indication of the compression method used.
  • the processor may read the compressed value from, for example, a tracking log.
  • the processor may read the number of bits indicated by the number of bits compression parameter.
  • the processor may multiply the compressed value by the precision value.
  • the processor may add the base value to the result of step 620 .
  • the processor may convert the result of step 625 to the data type used by the processing application.
  • the method may end.
  • the examples may use the contextual profile 305 including the values in format field 330 .
  • numbers will be given in decimal format rather than the binary format in which they may be stored.
  • the example values described above regarding FIG. 5 will be used.
  • the value 55 may be read from a log file. Because the base value is 0 and the precision is 1, this value may simply be converted to the appropriate data type. It may be noted that the value 55 may have permanently lost precision from the original value 55.84.
  • the compressed value 600 may be multiplied by a precision value of 1 and the base value of 1321646220 may be added resulting in the original value of 1321646820.
  • the compressed value 8183 may be multiplied by the precision value of 0.001, and the base value of +41 may be added resulting in the value of 49.183. It may be noted that the value 49.183 may have permanently lost precision from the original value 49.18333.
  • various exemplary embodiments provide for a method and system for compressing location data.
  • the location data may be efficiently compressed.
  • various exemplary embodiments of the invention may be implemented in hardware and/or firmware. Furthermore, various exemplary embodiments may be implemented as instructions stored on a machine-readable storage medium, which may be read and executed by at least one processor to perform the operations described in detail herein.
  • a machine-readable storage medium may include any mechanism for storing information in a form readable by a machine, such as a personal or laptop computer, a server, or other computing device.
  • a machine-readable storage medium may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and similar storage media.
  • any block diagrams herein represent conceptual views of illustrative circuitry embodying the principals of the invention.
  • any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in machine readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.

Abstract

Various exemplary embodiments relate to a method of compressing location data. The method may include: receiving original location data; selecting a contextual profile based at least in part on the original location data; selecting a compression method based on the contextual profile; and converting the original location data to a compressed format based on the compression method. Various exemplary embodiments relate to a system for compressing location data. The system may include: a location receiver configured to generate original location data based at least on signals from global navigation satellite system (GNSS) satellites; a location engine configured to select a contextual profile based at least in part on the original location data; and a contextual compression filter configured to generate compressed location data in a compressed format based on the selected contextual profile.

Description

    TECHNICAL FIELD
  • Various exemplary embodiments disclosed herein relate generally to compression of location data.
  • BACKGROUND OF THE INVENTION
  • In a Global Navigation Satellite System (GNSS), a receiver determines its location based on signals received from a plurality of satellites. Various standards exist for communicating and storing location and telemetry data. These standards include National Marine Electronics Association (NMEA) 0183 and Java Specification Request (JSR) 179. These standards define formats for various elements of location data.
  • GNSS receivers are currently used for a variety of applications. Location data from a GNSS receiver may be used locally or transmitted to a remote location. Exemplary uses of location data include navigation systems, fleet management, photo tagging and social networking. Geo-tracking applications may determine location data frequently and store the location data. A geo-tracking application that constantly records location data or compiles location data from multiple GNSS receivers may consume a large amount of storage space for the location data.
  • SUMMARY OF THE INVENTION
  • In view of the foregoing, it would be desirable to provide a method and system for compressing location data. In particular, it would be desirable to use the location data to determine an appropriate compression method for a particular application and location.
  • In light of the present need for a method and system for compressing location data, a brief summary of various exemplary embodiments is presented. Some simplifications and omissions may be made in the following summary, which is intended to highlight and introduce some aspects of the various exemplary embodiments, but not to limit the scope of the invention. Detailed descriptions of a preferred exemplary embodiment adequate to allow those of ordinary skill in the art to make and use the inventive concepts will follow in later sections.
  • Various exemplary embodiments relate to a method of compressing location data. The method may include: receiving original location data; selecting a contextual profile based at least in part on the original location data; selecting a compression method based on the contextual profile; and converting the original location data to a compressed format based on the compression method.
  • In various alternative embodiments, the method further includes: receiving second location data; determining that the contextual profile no longer applies; selecting a second contextual profile; selecting a second compression method based on the second contextual profile; and converting the second location data to a second compressed format using fewer bits than the second location data according to the second compression method.
  • In various alternative embodiments, the original location data includes a plurality of component values including a longitude value and a latitude value and the step of selecting a contextual profile includes: comparing the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and selecting the contextual profile if the longitude and latitude are within the geographical area.
  • The contextual profile may include, for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored using the corresponding number of bits. The step of converting the original location data may include, for each original component value: generating an intermediate value by subtracting the base value from the original component value; generating a compressed value by dividing the intermediate value by the precision value; and storing the compressed value in the compressed format.
  • In various alternative embodiments, the method may also include storing an indication of the selected contextual profile.
  • In various alternative embodiments, the method may also include determining, based on a contextual profile, compression parameters including a number of bits, a precision value, and a base value; reading the number of bits from a stored compressed value; generating an intermediate value by multiplying the read bits by the precision value; and generating a location data component by adding the base value to the intermediate value.
  • In various alternative embodiments, original location data includes a plurality of component values including a speed value and the step of selecting a contextual profile includes: using the speed value to determine a mode of transportation; and selecting a contextual profile based on the mode of transportation.
  • In various alternative embodiments, the step of converting the original location data to a compressed format includes scaling a component of the original location data.
  • In various alternative embodiments the step of converting the original location data to a compressed format includes converting a component of the original location data to a relative measurement. Various exemplary embodiments relate to the above described methods encoded as instructions on a non-transitory machine-readable medium. The non-transitory machine-readable medium may include instructions that if executed by a processor of a geo-tracking device perform the above described method.
  • Various exemplary embodiments relate to a system for compressing location data. The system may include: a location receiver configured to generate original location data based at least on signals from global navigation satellite system (GNSS) satellites; a location engine configured to select a contextual profile based at least in part on the original location data; and a contextual compression filter configured to generate compressed location data in a compressed format based on the selected contextual profile.
  • In various alternative embodiments, the system may also include a data storage device configured to store the compressed location data. In various alternative embodiments, the system may also include a wireless modem configured to transmit the compressed location data.
  • In various alternative embodiments, the original location data includes a plurality of component values including a longitude value and a latitude value. The location engine may be configured to: compare the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and select the contextual profile if the longitude and latitude are within the geographical area.
  • In various alternative embodiments, the contextual profile includes for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored in the compressed format using the corresponding number of bits. The contextual compression filter may be configured to, for each original component value: generate an intermediate value by subtracting the base value from the original component value; generate a compressed value by dividing the intermediate value by the precision value; and store the compressed value in the compressed format.
  • In various alternative embodiments, the contextual compression filter is further configured to store an indication of the selected contextual profile.
  • In various alternative embodiments, the system includes a processor configured to: determine, based on a contextual profile, compression parameters including a number of bits, a precision value, and a base value; read the number of bits from a stored compressed value; generate an intermediate value by multiplying the read bits by the precision value; and generate a location data component by adding the base value to the intermediate value.
  • In various alternative embodiments, the contextual compression filter is configured to scale a component of the original location data based on a parameter defined in the contextual profile.
  • In various alternative embodiments, the original location data includes a plurality of component values including a speed value and the location engine is configured to select a contextual profile based on the speed value.
  • It should be apparent that, in this manner, various exemplary embodiments enable a method and system for compressing location data. In particular, by using the location data to determine an appropriate compression method for a particular application and location, the location data may be efficiently compressed.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • In order to better understand various exemplary embodiments, reference is made to the accompanying drawings, wherein:
  • FIG. 1 illustrates a diagram of an exemplary geo-tracking system;
  • FIG. 2 illustrates a diagram of exemplary geo-tracking device;
  • FIG. 3 illustrates an exemplary data structure for storing a contextual profile;
  • FIG. 4 illustrates a flowchart showing an exemplary method of compressing location data;
  • FIG. 5 illustrates a flowchart showing an exemplary method of compressing a component of location data; and
  • FIG. 6 illustrates a flowchart showing an exemplary method of using a compressed component of location data.
  • DETAILED DESCRIPTION OF THE EMBODIMENTS
  • Location data standards are designed to represent location data for any location on the planet. They are also designed to be used by a variety of different applications including military applications. Many common civilian uses of location data are confined to predictable geographic areas and require less precision than provided by the location data standards. Compression of location data may reduce the amount of memory required to store location data and bandwidth required to transmit location data. This in turn may reduce communication costs, material costs, and power consumption.
  • Contextual compression of location data may provide an efficient method of compressing location data. In particular, contextual compression may make use of the received location data to determine an appropriate compression scheme. Contextual compression may minimize the size of location data without requiring complicated algorithms and processing.
  • Referring now to the drawings, in which like numerals refer to like components or steps, there are disclosed broad aspects of various exemplary embodiments.
  • FIG. 1 illustrates a diagram of an exemplary geo-tracking system 100. Exemplary geo-tracking system 100 may be used to track a device 120 and store location data in a compressed format. Geo-tracking system 100 may include satellites 110, device 120, wireless access point 130, network 140 and server 150.
  • Satellites 110 may enable device 120 to determine its location. Satellites 110 may include a plurality of satellites 110 a-d that transmits geospatial location data. For example, satellites 110 may be Global Positioning System (GPS) satellites. In various exemplary embodiments, at least four GPS satellites may be required for device 120 to determine its location. In various alternative embodiments, satellites 110 may be replaced by other means of determining location. For example, device 120 may determine its location from mobile network access points or wireless hotspots.
  • Device 120 may be any device capable of determining its location. For example, device 120 may include a Global Navigation Satellite System (GNSS) receiver. Device 120 may also include any device including a GNSS receiver such as, for example, a GPS receiver, mobile phone, PDA, tablet computer, automobile, airplane or watercraft. Device 120 may receive signals from satellites 110 and generate location data based on the signals. Device 120 may also take other physical measurements and associate the measurements with the location data. For example, device 120 may measure vehicle emissions, energy consumption, barometric pressure, and/or temperature.
  • As will be explained in further detail below regarding FIGS. 2-4, device 120 may first generate original location data according to a standard format. For example, device 120 may first generate location data according to the National Marine Electronics Association (NMEA) 0183 and Java Specification Request (JSR) 179 standards. Device 120 may compress this original location data using contextual compression to generate compressed location data. Device 120 may store compressed location data locally or transmit the compressed location data to, for example, server 150 via wireless access point 130 and network 140. Device 120 may also transmit other types of data including contextual profiles via wireless access point 130 and network 140.
  • Wireless access point 130 may be any access point for wirelessly receiving data from device 120. For example, wireless access point 130 may be a mobile phone network access point. In various alternative embodiments, wireless access point 130 may be a local area network access point. Wireless access point 130 may receive compressed location data from device 120 and forward the compressed location data to network 140. In various exemplary embodiments, wireless access point 130 may be associated with a network provider that charges by volume for data received at wireless access point 130. Transmitting compressed location data may result in lower network access charges than transmitting uncompressed location data.
  • Network 140 may include any network for transmitting data. Network 140, may include, for example, the Internet. Network 140 may transmit compressed location data originating at device 120 from wireless access point 130 to server 150. Compressed location data may take a variety of paths through network 140 before it reaches server 150.
  • Server 150 may be any computing device implementing a geo-tracking application. A geo-tracking application may be any application that makes use of location data. For example, geo-tracking applications may include navigation systems, fleet management systems, traffic management systems, vehicle security systems, emergency reporting systems, toll collection systems, photo tagging applications, fitness management applications, social networking applications, telemetry applications and others. Server 150 may receive location data from one or more devices such as device 120. Server 150 may process the received location data and provide results to device 120 or other devices. Server 150 may also store received location data. For example, a server 150 running a fleet management system may receive location data from numerous devices and store the location data for record keeping or future analysis.
  • FIG. 2 illustrates a diagram of exemplary geo-tracking device 120. Device 120 may correspond to device 120 shown in FIG. 1. Device 120 may include Location receiver 210, location engine 220, contextual profile storage 230, contextual compression filter 240, data storage 250, wireless modem 260, and processor 270.
  • Location receiver 210 may include any receiver capable of receiving GNSS signals. Location receiver 210 may include, for example, a GPS receiver, a GLONASS receiver, a BeiDou or Compass receiver, or a Galileo receiver. Location receiver 210 may use information received in GNSS signals to generate location data. In various alternative embodiments, location receiver 210 may also include receivers that generate location data based on terrestrial signals such as tactical air navigation system (TACAN), mobile network access points and local area network hotspots. Location receiver 210 may also measure other physical characteristics associated with device 200 at a particular time and location and include these measurements in the location data. For example, if device 200 is a motor vehicle, location receiver 210 it may be desirable to measure exhaust emissions and energy consumption.
  • Location data may include a variety of information related to the location of device 120. In particular, location data may include a time, longitude and latitude coordinates, and altitude. Location receiver 210 may also generate other types of location data based on comparisons of location data. For example, location receiver 210 may determine a speed by determining the change in location during a time interval. Location receiver 210 may also generate information such as error estimations. Location receiver 210 may output location data according to a standard such as NMEA 0183 or JSR 179. Location receiver 210 may output location data as a series of messages containing current location data. In various alternative embodiments, location receiver 210 may include an API that allows another component to query the receiver with a request for location data.
  • Location engine 220 may include hardware and/or executable instructions encoded on a machine-readable storage medium configured to determine a contextual profile based on location data. Location engine 220 may receive location data from location receiver 210. The received location data may be formatted according to a standard used by location receiver 210. Location engine 220 may extract relevant location information from the location data to determine a contextual profile. In various exemplary embodiments, location engine 220 may determine a contextual profile based on longitude and latitude coordinates. Location engine 220 may compare the longitude and latitude coordinates from the received location data with longitude and latitude coordinates defined in contextual profiles within contextual profile storage 230. Location engine 220 may receive other inputs including other location data such as speed and altitude or user selected inputs for determining the contextual profile. For example, a speed greater than, for instance 30 km/h, may indicate that device 120 is within a motorized vehicle and an appropriate contextual profile should be chosen. Alternatively, a user may enter and/or select a mode of transportation that may be useful for determining a contextual profile. Location engine 220 may forward the received location data to contextual compression filter 240 along with an indication of the selected contextual profile. Location engine 220 may continue to receive location data from location receiver 210 and forward the received location data to contextual compression filter 240. If location engine 220 determines that a contextual profile is no longer applicable to the received location data, location engine 220 may determine a new contextual profile and send an indication of the new contextual profile to contextual compression filter 240.
  • Contextual profile storage 230 may include any machine-readable medium capable of storing contextual profiles for use by device 120. Accordingly, contextual profile storage 230 may include a machine-readable storage medium such as read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and/or similar storage media. Contextual profile storage 230 may be accessed by location engine 220 to select a contextual profile. Contextual compression filter 240 may access contextual profile storage 230 to determine a compression method for the received location data. Contextual profile storage 230 may send contextual profiles to wireless modem 260 to provide the contextual profile to other devices such as server 150. The contextual profiles stored in contextual profile storage 230 will be described in greater detail below regarding FIG. 3.
  • Contextual compression filter 240 may include hardware and/or executable instructions encoded on a machine-readable storage medium configured to compress received location data using a contextual profile. Contextual compression filter 240 may receive an indication of a contextual profile from location engine 220. Contextual compression filter 240 may then look up the contextual profile in contextual compression profile storage 230 and determine an appropriate compression method. Contextual compression filter 240 may compress location data by scaling one or more components of the location data according to one or more parameters defined in the contextual profile. Contextual compression filter 240 may also compress location data by converting the location data to a different unit or a relative measurement. In various exemplary embodiments, contextual compression filter 240 may use base values, boundaries, precision levels and/or format data to determine how to compress the received location data. An exemplary method performed by contextual compression filter 240 for compressing a component of location data will be described in further detail below regarding FIG. 5.
  • In various alternative embodiments, contextual compression filter may execute instructions and/or computer code stored or indicated in the selected contextual profile. Once the location data has been compressed, contextual compression filter 240 may forward the compressed location data to data storage 250 and/or wireless modem 260.
  • Data storage 250 may include any machine-readable medium capable of storing compressed location data. Accordingly, data storage 250 may include a machine-readable storage medium such as read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and/or similar storage media. Data storage 250 may be used to store other data used by device 120. For example, if device 120 is a mobile phone, data storage 250 may be a phone memory or flash card used to store data for other mobile phone applications. Because the location data stored in data storage 250 has been compressed, the location data may consume less space, leaving more memory available for other applications. Additionally, compression of location data may allow use of a smaller and/or less expensive machine-readable medium.
  • Wireless modem 260 may be an interface comprising hardware and/or executable instructions encoded on a machine-readable storage medium configured to communicate with a wireless access point. For example, wireless modem 260 may include a mobile phone antenna for communicating with a mobile network access point. Wireless modem 260 may be used to transmit data, including compressed location data, to other device such as, for example, server 150. Because the location data transmitted via wireless modem 260 has been compressed, wireless modem 260 may use less bandwidth and or less power than if uncompressed data were transmitted.
  • Processor 270 may include any processor capable of executing instructions encoded on a machine-readable storage medium. For example, processor 270 may include a general computer processor, mobile phone processor, or integrated circuit. Processor 270 may be configured to execute a geo-tracking application. Processor 270 may use compressed location data. In particular, processor 270 may use a contextual profile stored in contextual profile storage 230 to decompress and read compressed location data stored in data storage 250. An exemplary method performed by processor 270 for using compressed location data will be described in further detail below regarding FIG. 6.
  • FIG. 3 illustrates an exemplary data structure 300 for storing a contextual profile 305. It should be apparent that data structure 300 may be implemented using a variety of data structures such as, for example, objects, arrays, linked lists, or trees. Data structure 300 may be stored in contextual profile storage 230 or another computer-readable storage medium accessible to device 120. Data structure 300 may include fields for application 310, area 320, and format 330.
  • Application field 310 may indicate a type of geo-tracking application. For example, application field 310 may indicate a mode of transportation for the geo-tracking application. Application field 310 may be used to distinguish two or more contextual profiles applicable to the same geographic area. For example, a contextual profile for walking may provide greater precision for coordinates or speed, but a lower maximum speed. In contrast, a contextual profile for driving a motor vehicle may provide less precision for speed, but a greater maximum speed.
  • Area field 320 may indicate a geographical area to which the contextual profile is applicable. Area field 320 may be used to select a contextual profile. The geographical area may be represented in various ways. In various exemplary embodiments, area field 320 may include a plurality of coordinate points that define a boundary of a geographic area. For example, field 320 may include the points: (+41°,−5°), (+41°,+10°), (+52°,−5°), and (+52°,+10°), given as (latitude, longitude) in degrees. These coordinate points may approximately define a geographical area within France. It should be apparent that a plurality of coordinate points may be used to define various geographical areas associated with different contextual profiles. For example, a contextual profile including a geographical area may be defined for a city with a certain speed limit. In various exemplary embodiments, a smaller area defined by area field 320 may allow greater compression or precision of location data. In various alternative embodiments, area field 320 may include minimum and maximum values for longitude and latitude.
  • Format field 330 may indicate a format and/or method for compressing the received location data. In various exemplary embodiments, format field 330 may include an entry 335 for each component of the location data. Each entry 335 may include a sub-field for a variable 340, base value 342, precision value 344, and number of bits 346. Variable sub-field 340 may indicate the component of location data to which the entry applies. Base value sub-field 342 may indicate a base value that should be subtracted from the location data to compress the location data. Precision value sub-field 344 may indicate a level of precision of the compressed location data. Number of bits sub-field 346 may indicate the total number of bits used by the variable after the location data is compressed.
  • Exemplary contextual profile 305 may include multiple entries 335 a-e for variables within the received location data that may be stored in a compressed format. It should be apparent that the exemplary values described below may be used in one possible contextual profile. For instance, exemplary contextual profile 305 may be used to compress location data for a device located on an automobile in France. Other contextual profiles may be created to fulfill the needs of applications operating in varying contexts.
  • Entry 335 a may be an example of a format for compressing longitude data. Entry 335 a may indicate that a base value of +41 may be subtracted from the received longitude value. Entry 335 a may further indicate that the longitude should be stored to the nearest 0.001 minute and a total of 14 bits should be used. Entry 335 b may indicate that a base value of −5 may be subtracted from the received latitude value. Entry 335 b may further indicate that the latitude should be stored to the nearest 0.001 minute and a total of 14 bits should be used. Entry 335 c may indicate that a base value of 0 may be subtracted from the received speed value. Entry 335 c may further indicate that the speed should be stored to the nearest km/h and a total of 7 bits should be used. Entry 335 d may indicate that a base value of 0 may be subtracted from the received altitude value. Entry 335 d may further indicate that the altitude should be stored to the nearest 10 meters and a total of 9 bits should be used. Entry 335 e may indicate that a base value of the start time may be subtracted from the received altitude value. Entry 335 e may further indicate that the time should be stored to the nearest second and a total of 16 bits should be used.
  • FIG. 4 illustrates a flowchart showing an exemplary method 400 of compressing location data. Method 400 may be performed by the various components of device 120 including location receiver 210, location engine 220, contextual compression filter 240, and wireless modem 260. Method 400 may access contextual profile storage 230 and data storage 250. Method 400 may begin at step 405 and proceed to step 410.
  • In step 410, device 120 may receive location data. The location data may be received via location receiver 210. Location receiver 210 may first receive signals from satellites 110. Location receiver 210 may generate location data based on the signals from satellites 110. The location data generated by location receiver 210 may use a standard format. In various exemplary embodiments, the standard format is a text string indicating multiple components of location data. In various alternative embodiments, location receiver 210 may provide individual components of location data or a set of location data using standard data types. Location receiver 210 may continuously generate location data as it receives signals from satellites 110. For example, location receiver 210 may regularly output a text string of location data once per time interval such as once per second.
  • In step 415, device 120 may determine whether an applicable contextual profile has been selected for the received location data. The first time device 120 receives location data, no contextual profile may have been selected. If no contextual profile has been selected, the method may proceed to step 420. If a contextual profile has been selected, device 120 may compare the received location data to the contextual profile to determine whether the contextual profile is still applicable. For example, if the received longitude and latitude are outside of the geographic area defined by a contextual profile, the contextual profile may no longer be applicable. If the contextual profile is no longer applicable, the method may proceed to step 420. If the contextual profile is still applicable, the method may proceed to step 430.
  • In step 420, device 120 may select a contextual profile based on the received location data. Device 120 may compare the received location data with various fields of contextual profiles 300. In various exemplary embodiments, device 120 may compare the received location data with area field 320 to determine whether device 120 is within the defined geographical area. Device 120 may also compare user or application input with other fields of contextual profiles 300 such as application field 310. Device 120 may compare the location data to contextual profiles 300 until an applicable contextual profile is found. Contextual profiles 300 may be stored using known techniques for efficiently locating an applicable contextual profile. Once a contextual profile is selected, the method may proceed to step 425.
  • In step 425, device 120 may select a compression method. In various exemplary embodiments, device 120 may choose a compression method defined in the selected contextual profile. For example, device 120 may select compression parameters defining the base value, precision, and bits used for each component of the location data. Device 120 may generate an indication of the compression method chosen. The indication may be included with the compressed location data. For example, the indication of the compression method may be stored as a header to a log file including the compressed location data. The indication may also be transmitted to another node. In various exemplary embodiments, the contextual profile 300 may be transmitted as an indication of the compression method used.
  • In step 430, device 120 may compress the location data according to the selected compression method. Each component of the location data may be compressed individually and placed into a format for a set of location data defined by the contextual profile. The compression may involve some loss of precision of the data; however, the level of precision may be defined in the contextual profile so that it remains acceptable for the application.
  • Various compression methods may be used to compress the location data. Compression may include limiting the number of bits used to store the location data based on an expected data interval. The contextual profile may define the expected data interval. The number of bits may be limited by expressly defining a number of bits or defining a data type to store the compressed location data. Compression may include scaling the location data to have a defined level of precision. Device 120 may scale location data by dividing, rounding, using the most significant bits, shifting bits, or otherwise reducing precision. Compression may include changing units of the location data. For example, changing from degrees to meters may allow for storage of the location data as an integer rather than a floating point number. Compression may include using relative data instead of absolute data. The contextual profile may define an absolute value from which the relative data is based. The above described compression methods may be used alone or in combination as defined by a contextual profile. An exemplary method of compressing location data will be described in greater detail below regarding FIG. 5. Once a set of location data has been compressed, the method may proceed to step 435.
  • In step 435, device 120 may determine whether the compressed location data is to be used locally or remotely. If the compressed location data is to be used locally, the method 400 may proceed to step 440. If the compressed location data is to be used remotely, the method 400 may proceed to step 445.
  • In step 440, device 120 may store the compressed location data locally. Device 120 may store the compressed location data as a log file within data storage 250. The log file may include as a header the indication of the data compression method used. Alternatively, the log file may include one or more indications along with the compressed location data. If device 120 changes compression method or contextual profile while recording location data, the log file may indicate when the compression method or contextual profile changed. Once the compressed data has been stored, the method 400 may proceed to step 450.
  • In step 445, device 120 may transmit the compressed location data via wireless modem 260. For example, device 120 may transmit the compressed location data to server 150. In various exemplary embodiments, the compressed location data may be transmitted as it is generated. Transmitting the compressed location data as it is generated may allow an application on a remote server to track the device 120. In various alternative embodiments, device 120 may buffer the compressed location data before transmitting it. Once the compressed data has been transmitted, the method 400 may proceed to step 450.
  • In step 450, device 120 or server 150 may process the compressed location data. A set or individual component of compressed location data may be read and processed individually if the format of the compressed location data is known. For example, an application may process only the speed component of the location data by extracting only the bits that indicate the speed component. An exemplary method for reading compressed location data will be described in greater detail below regarding FIG. 6. Once processing of the compressed location data is complete, the method 400 may proceed to step 455, where it ends.
  • FIG. 5 illustrates a flowchart showing an exemplary method 500 of compressing a component of location data. Method 500 may be performed by the various components of device 120, particularly contextual compression filter 240. Method 500 may begin in step 505 and proceed to step 510.
  • In step 510, contextual compression filter 240 may receive a component of location data. The component may be formatted according to a GPSS standard. The method 500 may then proceed to step 515.
  • In step 515, contextual compression filter 240 may determine whether the component is a text string. If the component is a text string, the method 500 may proceed to step 520, where the text string may be converted to a number using known methods. The method may then proceed to step 525.
  • In step 525, contextual compression filter 240 may subtract the base value defined in the contextual profile from the location data component.
  • In step 530, contextual compression filter 240 may divide the result of step 525 by the precision value defined in the contextual profile. Any remainders may be rounded or ignored. In step 535, the result of step 530 may be stored in the number of bits defined by the contextual profile. Leading bits may be added or removed to obtain the defined number of bits.
  • Having described a method of compressing a component of location data, several examples will be given. The examples may use the contextual profile 305 including the values in format field 330. For the sake of simplicity, numbers will be given in decimal format rather than the binary format in which they may be stored. As a first example, contextual compression filter 240 may receive a speed component of location data as a 32 bit floating point number: 55.84 km/h. Subtracting the base value of 0, and dividing by the precision, this number becomes 55. This number can be stored in only 6 bits. An extra bit may be added to store the value in the 7 bits defined by the contextual profile 305. As long as the speed limit in the geographical area defined by a contextual profile is less than 128 km/h, any expected value may be stored in the 7 bits.
  • As a second example, contextual compression filter 240 may receive a UTC time as a 32 bit integer, for example, 1321646220. Contextual compression filter may use the time that the contextual profile was selected as a base value. If the contextual profile is chosen at 1321646220 and a second time is received 10 minutes later at 1321646820, the base value may be subtracted from the received second time with a result of 600, which may remain 600 when divided by a precision of 1. The 600 may then be padded with leading bits to store the value in the 16 bits defined by the contextual profile. A format using 16 bits for time with a precision of 1 second may allow the device 120 to track location data for over 18 hours. If the tracking time exceeds the limit for the number of bits, an indication of a new contextual profile with new base value may be used.
  • As a third example, contextual compression filter 240 may receive longitude as a floating point number: 49.18333. Contextual compression filter 240 may subtract the base value of 41 and divide by a precision of 0.001 resulting in a value of 8183. This value may be stored in 13 bits. An extra bit may be added to store the value in the 14 bits defined by the contextual profile. According to contextual profile 305, the longitude of any location within France may be stored using 14 bits with a precision of approximately 100 m. It should be apparent that defining a contextual profile for a smaller geographical area, a city for example, would allow any location within the city to be stored using fewer bits or greater precision.
  • FIG. 6 illustrates a flowchart showing an exemplary method 600 of using a compressed component of location data. Method 600 may be performed by any processor capable of reading data stored in a machine-readable storage medium. Method 600 may also be performed by a processor of device 120 or server 150. Method 600 may begin in step 605 and proceed to step 610.
  • In step 610, the processor may look up compression parameters including a number of bits, a precision value, and a base value from an indication of the compression method used. In step 615, the processor may read the compressed value from, for example, a tracking log. The processor may read the number of bits indicated by the number of bits compression parameter. In step 620, the processor may multiply the compressed value by the precision value. In step 625, the processor may add the base value to the result of step 620. In step 630, the processor may convert the result of step 625 to the data type used by the processing application. In step 635, the method may end.
  • Having described an exemplary method of processing compressed location data values, several examples will be given. The examples may use the contextual profile 305 including the values in format field 330. For the sake of convenience, numbers will be given in decimal format rather than the binary format in which they may be stored. The example values described above regarding FIG. 5 will be used. From the first example, the value 55 may be read from a log file. Because the base value is 0 and the precision is 1, this value may simply be converted to the appropriate data type. It may be noted that the value 55 may have permanently lost precision from the original value 55.84. From the second example, the compressed value 600 may be multiplied by a precision value of 1 and the base value of 1321646220 may be added resulting in the original value of 1321646820. For the third example, the compressed value 8183 may be multiplied by the precision value of 0.001, and the base value of +41 may be added resulting in the value of 49.183. It may be noted that the value 49.183 may have permanently lost precision from the original value 49.18333.
  • According to the foregoing, various exemplary embodiments provide for a method and system for compressing location data. In particular, by using the location data to determine an appropriate compression method for a particular application and location, the location data may be efficiently compressed.
  • It should be apparent from the foregoing description that various exemplary embodiments of the invention may be implemented in hardware and/or firmware. Furthermore, various exemplary embodiments may be implemented as instructions stored on a machine-readable storage medium, which may be read and executed by at least one processor to perform the operations described in detail herein. A machine-readable storage medium may include any mechanism for storing information in a form readable by a machine, such as a personal or laptop computer, a server, or other computing device. Thus, a machine-readable storage medium may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and similar storage media.
  • It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principals of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in machine readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown.
  • Although the various exemplary embodiments have been described in detail with particular reference to certain exemplary aspects thereof, it should be understood that the invention is capable of other embodiments and its details are capable of modifications in various obvious respects. As is readily apparent to those skilled in the art, variations and modifications can be affected while remaining within the spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and figures are for illustrative purposes only and do not in any way limit the invention, which is defined only by the claims.

Claims (15)

1. A method comprising:
receiving original location data;
selecting a contextual profile based at least in part on the original location data;
selecting a compression method based on the contextual profile; and
converting the original location data to a compressed format based on the compression method.
2. The method of claim 1, further comprising:
receiving second location data;
determining that the contextual profile no longer applies;
selecting a second contextual profile;
selecting a second compression method based on the second contextual profile; and
converting the second location data to a second compressed format using fewer bits than the second location data according to the second compression method.
3. The method of claim 1, wherein the original location data includes a plurality of component values including a longitude value and a latitude value and the step of selecting a contextual profile comprises:
comparing the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and
selecting the contextual profile if the longitude and latitude are within the geographical area.
4. The method of claim 1, wherein the contextual profile includes for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored using the corresponding number of bits.
5. The method of claim 1, further comprising storing an indication of the selected contextual profile.
6. The method of claim 1, wherein the original location data includes a plurality of component values including a speed value and the step of selecting a contextual profile comprises:
using the speed value to determine a mode of transportation; and
selecting a contextual profile based on the mode of transportation.
7. The method of claim 1, wherein the step of converting the original location data to a compressed format comprises scaling a component of the original location data.
8. The method of claim 1, wherein the step of converting the original location data to a compressed format comprises converting a component of the original location data to a relative measurement.
9. A system for compressing location data, the system comprising:
a location receiver configured to generate original location data based at least on signals from a global navigation satellite system satellites;
a location engine configured to select a contextual profile based at least in part on the original location data; and
a contextual compression filter configured to generate compressed location data in a compressed format based on the selected contextual profile.
10. The system of claim 9, wherein the original location data includes a plurality of component values including a longitude value and a latitude value and the location engine is configured to:
compare the longitude value and the latitude value of the original location data to a geographical area defined for a contextual profile; and
select the contextual profile if the longitude and latitude are within the geographical area.
11. The system of claim 9, wherein the contextual profile includes for each component of the original location data: a base value, a precision value, and a number of bits, wherein each component of the original location data is stored in the compressed format using the corresponding number of bits.
12. The system of claim 9, wherein the contextual compression filter is configured to, for each original component value:
generate an intermediate value by subtracting the base value from the original component value;
generate a compressed value by dividing the intermediate value by the precision value; and
store the compressed value in the compressed format.
13. The system of claim 9, further comprising a processor configured to:
determine, based on a contextual profile, compression parameters including a number of bits, a precision value, and a base value;
read the number of bits from a stored compressed value;
generate an intermediate value by multiplying the read bits by the precision value; and
generate a location data component by adding the base value to the intermediate value.
14. The system of claim 9, wherein the contextual compression filter is configured to scale a component of the original location data based on a parameter defined in the contextual profile.
15. The system of claim 9, wherein the original location data includes a plurality of component values including a speed value and the location engine is configured to select a contextual profile based on the speed value.
US13/782,712 2012-03-07 2013-03-01 Contextual data compression for geo-tracking applications Expired - Fee Related US9235591B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP12290078.0 2012-03-07
EP20120290078 EP2637033B1 (en) 2012-03-07 2012-03-07 Contextual data compression for geo-tracking applications
EP12290078 2012-03-07

Publications (2)

Publication Number Publication Date
US20130238573A1 true US20130238573A1 (en) 2013-09-12
US9235591B2 US9235591B2 (en) 2016-01-12

Family

ID=45937136

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/782,712 Expired - Fee Related US9235591B2 (en) 2012-03-07 2013-03-01 Contextual data compression for geo-tracking applications

Country Status (4)

Country Link
US (1) US9235591B2 (en)
EP (1) EP2637033B1 (en)
CN (1) CN103308933B (en)
ES (1) ES2543919T3 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258249A1 (en) * 2013-03-11 2014-09-11 Navteq B.V. Method and apparatus for providing compressed data structure
JP2017187486A (en) * 2016-03-31 2017-10-12 株式会社日立製作所 Gis based compression and reconstruction of gps data for transmission from vehicular edge platform to cloud
CN109856651A (en) * 2019-03-13 2019-06-07 广东海聊科技有限公司 A kind of position data compression method and system based on dipper system
US10827310B2 (en) 2018-09-17 2020-11-03 Phillips Connect Technologies, Inc. Real-time asset location tracking and monitoring at a low data rate
US20220109959A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Location reporting for user equipment
US20220343554A1 (en) * 2018-12-28 2022-10-27 Intel Corporation Context-aware compression with quantization of hierarchical transform matrices

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103969667B (en) * 2014-05-27 2016-08-17 哈尔滨工业大学 A kind of GNSS calculation method based on piecemeal particle filter
EP3240311B1 (en) * 2015-01-16 2021-03-03 Huawei Technologies Co., Ltd. Location information acquiring methods and devices
US10313256B2 (en) * 2015-05-21 2019-06-04 Intel Corporation Apparatus and methods for adaptive data compression
US10616857B1 (en) 2018-03-26 2020-04-07 Lynq Technologies, Inc. Determining a set of access points in response to a geo-location request
CN114900796B (en) * 2022-07-15 2022-10-21 北京太极疆泰科技发展有限公司 Longitude and latitude coordinate compression method based on Beidou short message transmission

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6141454A (en) * 1996-11-01 2000-10-31 Motorola Methods for data compression and decompression using digitized topology data
US6266008B1 (en) * 1991-12-10 2001-07-24 Charles D. Huston System and method for determining freight container locations
US6324213B1 (en) * 1999-09-01 2001-11-27 General Electric Company Asset tracking system employing reduced order GPS with compressed GPS satellite identification data
US20020055924A1 (en) * 2000-01-18 2002-05-09 Richard Liming System and method providing a spatial location context
US6411899B2 (en) * 1996-10-24 2002-06-25 Trimble Navigation Ltd. Position based personal digital assistant
US6429811B1 (en) * 2000-02-15 2002-08-06 Motorola, Inc. Method and apparatus for compressing GPS satellite broadcast message information
US6703947B1 (en) * 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US20060244587A1 (en) * 2005-04-28 2006-11-02 Mci, Inc. Method and apparatus for providing transmission of compressed telemetry data in a tracking system
US7215255B2 (en) * 2003-01-21 2007-05-08 Bernard Grush Method and apparatus for a satellite positioning-based metering system for use in transport-related applications
US7218938B1 (en) * 2002-04-24 2007-05-15 Chung Lau Methods and apparatus to analyze and present location information
US7502620B2 (en) * 2005-03-04 2009-03-10 Shyhook Wireless, Inc. Encoding and compression of a location beacon database
US7818017B2 (en) * 2004-10-29 2010-10-19 Skyhook Wireless, Inc. Location-based services that choose location algorithms based on number of detected wireless signal stations within range of user device
US20120038633A1 (en) * 2010-08-09 2012-02-16 Clark Abraham J Methods and apparatus for geospatial management and visualization of events

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5808564A (en) * 1992-02-06 1998-09-15 Simms Security Corp. Personal security system with remote activation
JP3333146B2 (en) * 1999-05-24 2002-10-07 松下電器産業株式会社 Mobile terminals and information service centers
CN1278501C (en) * 2002-12-06 2006-10-04 国际商业机器公司 Compressing method and compressing equipment for mobile target-position data
US8498815B2 (en) * 2005-01-26 2013-07-30 Lockheed Martin Corporation System, method and apparatus for communicating position data
US20080080712A1 (en) * 2006-09-29 2008-04-03 Haiquan Huang System and methods for secure communication using an enhanced GPS receiver
CN1948990B (en) 2006-11-16 2010-10-27 北京尧天网迅科技有限公司 Method of compressing GPS positioning information
CN101469989B (en) * 2007-12-29 2012-12-12 厦门雅迅网络股份有限公司 Compression method for navigation data in mobile phone network navigation
US8456359B2 (en) * 2008-10-03 2013-06-04 Trimble Navigation Limited Continuous tracking counter for enabling cycle-slip free messages in a network of global navigation system satellite receivers
CN101894135A (en) * 2009-06-15 2010-11-24 复旦大学 Method for compressing and storing GPS data based on route clustering
WO2011107964A1 (en) * 2010-03-03 2011-09-09 Cellguide Ltd. Method of generating an elevation database
CN102325002A (en) * 2011-07-05 2012-01-18 北京世纪高通科技有限公司 Method and device for positioning data compression and transmission

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266008B1 (en) * 1991-12-10 2001-07-24 Charles D. Huston System and method for determining freight container locations
US6411899B2 (en) * 1996-10-24 2002-06-25 Trimble Navigation Ltd. Position based personal digital assistant
US6141454A (en) * 1996-11-01 2000-10-31 Motorola Methods for data compression and decompression using digitized topology data
US6324213B1 (en) * 1999-09-01 2001-11-27 General Electric Company Asset tracking system employing reduced order GPS with compressed GPS satellite identification data
US20020055924A1 (en) * 2000-01-18 2002-05-09 Richard Liming System and method providing a spatial location context
US6429811B1 (en) * 2000-02-15 2002-08-06 Motorola, Inc. Method and apparatus for compressing GPS satellite broadcast message information
US6703947B1 (en) * 2000-09-22 2004-03-09 Tierravision, Inc. Method for organizing and compressing spatial data
US7218938B1 (en) * 2002-04-24 2007-05-15 Chung Lau Methods and apparatus to analyze and present location information
US7215255B2 (en) * 2003-01-21 2007-05-08 Bernard Grush Method and apparatus for a satellite positioning-based metering system for use in transport-related applications
US7818017B2 (en) * 2004-10-29 2010-10-19 Skyhook Wireless, Inc. Location-based services that choose location algorithms based on number of detected wireless signal stations within range of user device
US7502620B2 (en) * 2005-03-04 2009-03-10 Shyhook Wireless, Inc. Encoding and compression of a location beacon database
US20060244587A1 (en) * 2005-04-28 2006-11-02 Mci, Inc. Method and apparatus for providing transmission of compressed telemetry data in a tracking system
US20120038633A1 (en) * 2010-08-09 2012-02-16 Clark Abraham J Methods and apparatus for geospatial management and visualization of events

Non-Patent Citations (12)

* Cited by examiner, † Cited by third party
Title
Cudre-Mauroux, Philippe, et al., "TrajStore: An Adaptive Storage System for Very Large Trajectory Data Sets", ICDE 2010, Long Beach, CA, March 1-6, 2010, pp. 109-120. *
Hönle, Nicola, et al., "Usability Analysis of Compression Algorithms for Position Data Streams", ACM GIS '10, San Jose, CA, Nov. 2-5, 2010, pp. 240-249. *
Ibrahim, Khaled, et al., "CASCADE: Cluster-based Accurate Syntactic Compression of Aggregated Data in VANETS", 2008 IEEE GLOBECOM Workshops, New Orleans, LA, Nov. 30 - Dec. 4, 2008, pp. 1-10. *
Kellaris, Georgios, et al., "Trajectory Compression under Network Constraints", SSTD 2009, LNCS 5644, Springer-Verlag, Berlin, Germany, © 2009, pp. 392-398. *
Lange, Ralph, et al., "Making the World Wide Space Happen: New Challenges for the Nexus Context Platform", PerCom 2009, Galveston, TX, March 9-13, 2009, pp. 1-4. *
Lawson, Catherine T., et al., "Compression and Mining of GPS Trace Data: New Techniques and Applications", Final Report: Region II University Transportation Research Center, University at Albany - SUNY, March 11, 2011, 25 pages. *
Lever, Ryan, et al., "Compressing GPS Data on Mobile Devices", OTM Workshops 2006, LNCS 4278, Springer-Verlag, Berlin, Germany, © 2006, pp. 1944-1947. *
Microsoft Computer Dictionary, 5th Edition, Microsoft Press, Redmond, WA, © 2002, pp. 118 and 142. *
Muckell, Jonathan, et al., "Algorithms for Compressing GPS Trajectory Data: An Empirical Evaluation", ACM GIS '10, San Jose, CA, Nov. 2-5, 2010, pp. 402-405. *
Muckell, Jonathan, et al., "SQUISH: An Online Approach for GPS Trajectory Compression", COM.Geo '11, Washington, DC, May 23-25, 2011, Article No. 13, 8 pages. *
Randell, Cliff, et al., "Context Awareness by Analysing Accelerometer Data", The Fourth International Symposium on Wearable Computers, Atlanta, GA, Oct. 16-17, 2000, pp. 175-176. *
Yan, Zhixian, et al., "SeTraStream: Semantic-Aware Trajectory Construction over Streaming Movement Data", SSTD 2011, LNCS 6849, Springer-Verlag, Berlin, Germany, © 2011, pp. 367-385. *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140258249A1 (en) * 2013-03-11 2014-09-11 Navteq B.V. Method and apparatus for providing compressed data structure
US9779102B2 (en) * 2013-03-11 2017-10-03 Here Global B.V. Method and apparatus for providing compressed data structure
JP2017187486A (en) * 2016-03-31 2017-10-12 株式会社日立製作所 Gis based compression and reconstruction of gps data for transmission from vehicular edge platform to cloud
US10827310B2 (en) 2018-09-17 2020-11-03 Phillips Connect Technologies, Inc. Real-time asset location tracking and monitoring at a low data rate
US20220343554A1 (en) * 2018-12-28 2022-10-27 Intel Corporation Context-aware compression with quantization of hierarchical transform matrices
US11915459B2 (en) * 2018-12-28 2024-02-27 Intel Corporation Context-aware compression with quantization of hierarchical transform matrices
CN109856651A (en) * 2019-03-13 2019-06-07 广东海聊科技有限公司 A kind of position data compression method and system based on dipper system
US20220109959A1 (en) * 2020-10-07 2022-04-07 Qualcomm Incorporated Location reporting for user equipment

Also Published As

Publication number Publication date
EP2637033A1 (en) 2013-09-11
US9235591B2 (en) 2016-01-12
CN103308933B (en) 2015-09-02
EP2637033B1 (en) 2015-05-06
ES2543919T3 (en) 2015-08-25
CN103308933A (en) 2013-09-18

Similar Documents

Publication Publication Date Title
US9235591B2 (en) Contextual data compression for geo-tracking applications
US20230305166A1 (en) On demand positioning
US8265652B2 (en) Geographic tagging of network access points
US8700322B2 (en) Efficient use of expected user altitude data to aid in determining a position of a mobile station
CN103765162B (en) Identifier for visual beacon produces
CN101542308B (en) Assisted satellite signal based positioning
EP2232460A1 (en) Automatically identifying location information in text data
KR20100068919A (en) Global positioning system receiver and locating method therof
JP2010122236A (en) Method and system for storage and fast retrieval of digital terrain model elevations for positioning systems
CN103760581A (en) System and/or method for acquisition of GNSS signals
US20090167599A1 (en) Location Based Services Information Storage and Transport
US20140136102A1 (en) Identifying Neighbors of Geographically Distributed Assets
KR20130004590A (en) Providing ephemeris data and clock corrections to a satellite navigation system receiver
KR101419339B1 (en) An apparatus for processing differential information of differential global navigation satellite system and the method thereof
CN103399329A (en) GNSS (global navigation satellite system) receiver and intermediate frequency data processing method thereof
Chen et al. Signal acquisition of Luojia-1A low earth orbit navigation augmentation system with software defined receiver
CN104852783A (en) GPS data transmission method and system
US20150293232A1 (en) System and Method for Compressing GPS Data
KR101344426B1 (en) An apparatus for processing differential information of differential global navigation satellite system and the method thereof
Jones et al. Horizontal accuracy assessment of global positioning system data from common smartphones
KR101374934B1 (en) System for presenting location based service using location correction information, apparatus thereof, and method thereof
CN104520731A (en) GNSS radio signal with an improved navigation message
JP2006125867A (en) Positioning system, terminal device, information providing device, and control method and control program for terminal device
Brachmann About performance requirements set against consumer-grade geolocation technologies
Senanayake et al. Accuracy of smartphone location services for geo-tagged data collection: A field study

Legal Events

Date Code Title Description
AS Assignment

Owner name: NXP B.V., NETHERLANDS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LE PIFRE, PIERRE;REEL/FRAME:029908/0444

Effective date: 20120926

AS Assignment

Owner name: TELIT AUTOMOTIVE SOLUTIONS NV, BELGIUM

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NXP B.V.;REEL/FRAME:032584/0560

Effective date: 20140331

ZAAA Notice of allowance and fees due

Free format text: ORIGINAL CODE: NOA

ZAAB Notice of allowance mailed

Free format text: ORIGINAL CODE: MN/=.

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCF Information on status: patent grant

Free format text: PATENTED CASE

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:038017/0058

Effective date: 20160218

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:039361/0212

Effective date: 20160218

AS Assignment

Owner name: NXP B.V., NETHERLANDS

Free format text: PATENT RELEASE;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:039707/0471

Effective date: 20160805

AS Assignment

Owner name: HSBC BANK PLC, UNITED KINGDOM

Free format text: SECURITY INTEREST;ASSIGNOR:TELIT AUTOMOTIVE SOLUTIONS NV;REEL/FRAME:040007/0201

Effective date: 20161013

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:042762/0145

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:042985/0001

Effective date: 20160218

AS Assignment

Owner name: TELIT AUTOMOTIVE SOLUTIONS NV, BELGIUM

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:HSBC BANK PLC;REEL/FRAME:048466/0594

Effective date: 20190227

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

AS Assignment

Owner name: NXP B.V., NETHERLANDS

Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MORGAN STANLEY SENIOR FUNDING, INC.;REEL/FRAME:050745/0001

Effective date: 20190903

AS Assignment

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051145/0184

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0387

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0001

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0387

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051030/0001

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051029/0001

Effective date: 20160218

Owner name: MORGAN STANLEY SENIOR FUNDING, INC., MARYLAND

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT;ASSIGNOR:NXP B.V.;REEL/FRAME:051145/0184

Effective date: 20160218

AS Assignment

Owner name: TITAN AUTOMOTIVE SOLUTIONS NV, BELGIUM

Free format text: CHANGE OF NAME;ASSIGNOR:TELIT AUTOMOTIVE SOLUTIONS NV;REEL/FRAME:051857/0882

Effective date: 20190523

AS Assignment

Owner name: TITAN INTELLIGENCE TECHNOLOGY LIMITED, HONG KONG

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TITAN AUTOMOTIVE SOLUTIONS NV;REEL/FRAME:058686/0883

Effective date: 20211112

FEPP Fee payment procedure

Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20240112