WO2011154769A1 - Handling data with limited applicability area - Google Patents

Handling data with limited applicability area Download PDF

Info

Publication number
WO2011154769A1
WO2011154769A1 PCT/IB2010/052518 IB2010052518W WO2011154769A1 WO 2011154769 A1 WO2011154769 A1 WO 2011154769A1 IB 2010052518 W IB2010052518 W IB 2010052518W WO 2011154769 A1 WO2011154769 A1 WO 2011154769A1
Authority
WO
WIPO (PCT)
Prior art keywords
grid
data
area
applicability
terminal
Prior art date
Application number
PCT/IB2010/052518
Other languages
French (fr)
Inventor
Lauri Wirola
Tommi Laine
Original Assignee
Nokia Corporation
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 Nokia Corporation filed Critical Nokia Corporation
Priority to PCT/IB2010/052518 priority Critical patent/WO2011154769A1/en
Publication of WO2011154769A1 publication Critical patent/WO2011154769A1/en

Links

Classifications

    • 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
    • G01S19/07Cooperating elements; Interaction or communication between different cooperating elements or between cooperating elements and receivers providing data for correcting measured positioning data, e.g. DGPS [differential GPS] or ionosphere corrections
    • 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/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/25Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Definitions

  • the invention relates to the field of handling data which has a limited applicability area.
  • GNSS Global Navigation Satellite System
  • GPS global positioning system
  • Klobuchar models Galileo space vehicle
  • GNSS assistance data types have limited applicability areas. Such data types include warnings on ionosphere storms or other space weather-related information.
  • the limited applicability area may be represented by polygons and ellipses.
  • GNSS assistance data could be area sensitive. For example, warnings on thunderstorms or other weather related information could have a limited applicability area.
  • a method for a second aspect of the invention, comprises at a server receiving a request for data that is applicable at a location of a terminal.
  • the method further comprises associating the location of the terminal to at least one grid region of a grid.
  • the method further comprises determining whether the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped. When this is the case, the method further comprises causing a transmission of the set of data.
  • applicability area of a set of data has been mapped, in order to obtain encoded information about the
  • the method further comprises causing a
  • the method further comprises receiving a set of data along with an indication of grid regions of a grid to which an applicability area of the set of data has been mapped.
  • the method further comprises evaluating the indication of grid regions when using the received set of data.
  • This method further comprises run-length decoding the grid regions based on the encoded information about the applicability area and evaluating the decoded grid regions when using the set of data.
  • a first apparatus which comprises means for realizing the actions of the method presented for the first, second and/or third aspect of the invention or means for realizing the actions of the method presented for the fourth and/or fifth aspect of the invention.
  • the means of this apparatus can be implemented in
  • a second apparatus which comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to cause an apparatus at least to perform the actions of the method presented for the first, second and/or third aspect of the invention or to perform the actions of the method presented for the fourth and/or fifth aspect of the invention.
  • a computer readable storage medium in which computer program code is stored.
  • the computer program code causes an apparatus to realize the actions of the method presented for the first, second and/or third aspect of the invention when executed by this processor or to realize the actions of the method presented for the fourth and/or fifth aspect of the invention.
  • the computer readable storage medium could be for example a disk or a memory or the like.
  • the computer program code could be stored in the computer readable storage medium in the form of instructions encoding the computer- readable storage medium.
  • the computer readable storage medium may be intended for taking part in the operation of a device, like an internal or external hard disk of a computer, or be intended for distribution of the program code, like an optical disc.
  • Any of the described apparatuses for the first, second and third aspect may be a module or component for a server, for example a chip.
  • any of the described apparatuses for the first, second and third aspect may be a server.
  • Any of the described apparatuses for the fourth and fifth aspect may be a module or component for a terminal, for example a chip, or another device.
  • any of the described apparatuses for the first, second and third aspect may be a terminal or another device evaluating area sensitive data for the location of a terminal.
  • the described methods are information providing methods
  • the described first apparatus for each aspect is an information providing apparatus
  • the means of the described first apparatus for each aspect are processing means.
  • the methods are methods for handling data with a limited applicability area. In certain embodiments of the described apparatuses, the apparatuses are apparatuses for handling data with a limited applicability area.
  • Fig. 1 is a schematic block diagram of a first
  • Fig. 2 is a flow chart illustrating a first method
  • Fig. 3 is a schematic block diagram of a second
  • Fig. 4 is a flow chart illustrating a second method
  • Fig. 5 is a schematic block diagram of a third method
  • Fig. 6 is a flow chart illustrating a third method
  • Fig. 7 is a schematic block diagram of a fourth
  • Fig. 8 is a flow chart illustrating a fourth method
  • Fig. 9 is a schematic block diagram of a fifth
  • Fig. 10 is a flow chart illustrating a fifth method
  • Fig. 11 is a schematic block diagram of an exemplary
  • Fig. 12 is a flow chart illustrating an exemplary
  • Fig. 13 is a diagram illustrating a part of a grid used in an exemplary embodiment of the invention
  • Fig. 14 is a diagram illustrating a run-length encoding used in an exemplary embodiment of the invention
  • Fig. 15 is a diagram illustrating a part of a grid used in another exemplary embodiment of the invention.
  • Fig. 16 is a diagram illustrating a part of a plurality of grids used in yet another exemplary embodiment of the invention. DETAILED DESCRIPTION OF THE FIGURES
  • Figure 1 is a schematic block diagram of a first
  • Apparatus 100 comprises a processor 101 and, linked to processor 101, a memory 102.
  • Memory 102 stores computer program code for handling the storage of a mapping of an applicability area of received data to grid regions of a grid, a method presented in Figure 2.
  • Processor 101 is configured to execute computer program code stored in memory 102 in order to cause a server to perform desired actions.
  • the applicability area could also be referred to as validity area.
  • Apparatus 100 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. Apparatus 100 is an exemplary embodiment of an apparatus according to the first aspect of the invention.
  • Processor 101 and the program code stored in memory 102 cause a server to perform the operation when the program code is retrieved from memory 102 and executed by processor 101.
  • the server receives a set of data that is applicable in a particular applicability area (action 111) .
  • the data may be received for distribution.
  • the server then causes a storage of a mapping of the applicability area to grid regions of a grid (action 112) .
  • the mapping may be stored in memory 102, in a separate memory of apparatus 100 or in a memory external to apparatus 100 or even or in a memory external to the server.
  • applicability area may optionally be used in determining a set of data that is to be distributed.
  • grid based format or some other format may optionally be used for informing a receiving end about the
  • Figure 3 is a schematic block diagram of a second
  • Apparatus 200 comprises a processor 201 and, linked to processor 201, a memory 202.
  • Memory 202 stores computer program code for handling request for data that is applicable at a location of a terminal, a method presented in Figure .
  • Processor 201 is configured to execute computer program code stored in memory 202 in order to cause a server to perform desired actions.
  • Apparatus 200 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. It is an exemplary embodiment of an apparatus according to the second aspect of the invention. An operation of apparatus 200 will now be described with reference to the flow chart of Figure 4. The operation is an exemplary embodiment of a method according to the second aspect of the invention.
  • Processor 201 and the program code stored in memory 202 cause the server to perform the operation when the program code is retrieved from memory 202 and executed by processor 201.
  • the server receives a reguest for data that is applicable at a location of a terminal (action 211) .
  • the server associates the location of the terminal to at least one grid region of a grid (action 212) .
  • the server determines whether at least one grid region to which the location of terminal has been associated belongs to grid regions of a grid to which an applicability area of a set of data has been mapped (action 213) . Whenever this is the case, the server causes a transmission of the set of data (action 214) .
  • a receiving end may thus assume that the set of data is applicable at the current location of the terminal.
  • the reguest could be received from the terminal or from another entity evaluating data for the location of the terminal.
  • the set of data could be transmitted to the terminal or to another entity.
  • a server When a server receives a reguest for data that is valid at a particular location, the server has to select the correct data. This reguires figuring out whether the terminal is within the applicability area of certain data.
  • the server may have to handle thousands of reguests in a second. In case there are several instances of the same data type with differing applicability areas, it might further be necessary to evaluate through all those areas . Similarly, the computational requirements become more demanding the more location-sensitive data types are requested from the server. Calculating for example the elliptic distance or performing an exhaustive search over limiting lines of a polygon to find out whether the location of a terminal is within the applicability area of a set of data may not be sufficiently efficient in these cases.
  • the server might associate the location of the terminal to more than one grid region for instance for taking account of uncertainty in the location of the terminal location. Furthermore, the server might associate the location of the terminal to more than one grid region by taking into account the surrounding of an assumed
  • the location of the terminal for example to ensure that the actual location is covered and/or to allow for a movement of the terminal. Furthermore, the location of the terminal, for example to ensure that the actual location is covered and/or to allow for a movement of the terminal. Furthermore, the location of the terminal, for example to ensure that the actual location is covered and/or to allow for a movement of the terminal. Furthermore, the location of the terminal, for example to ensure that the actual location is covered and/or to allow for a movement of the terminal. Furthermore, the location of the
  • terminal could be associated to multiple regions in different grids.
  • the set of data is caused to be transmitted along with an indication of the grid regions of the grid to which the applicability area of the set of data has been mapped. This has the effect that a receiving end will not only know that the set of data is applicable at - li the current location of the terminal, but also whether the set of data is still applicable in the case of a changing location of the terminal.
  • the set of data and the indication could be caused to be transmitted as separate information, but the set of data could also be integrated in the indication.
  • a run-length encoding or any other kind of coding could be used.
  • Figure 5 is a schematic block diagram of a third
  • Apparatus 300 comprises a processor 301 and, linked to processor 301, a memory 302.
  • Memory 302 stores computer program code for performing a run-length encoding of grid regions to which an applicability area of data has been mapped, in line with a method presented in Figure 6.
  • Processor 301 is configured to execute computer program code stored in memory 302 in order to cause a server to perform desired actions.
  • Apparatus 300 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. It is an exemplary embodiment of an apparatus according to the third aspect of the invention.
  • Processor 301 and the program code stored in memory 302 cause the server to perform the operation when the program code is retrieved from memory 302 and executed by processor 301.
  • the server performs a run-length encoding of grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area (action 311) .
  • the server then causes a transmission of the encoded information about the applicability area (action 312) .
  • an elliptic shape could be encoded. This might be bit-efficient, but highly restrictive.
  • a polygon might be more flexible in defining an applicability area, but when transferring the applicability area in the form of a polygon the bit consumption increases with the complexity of the applicability area.
  • Using a run-length encoding of grid regions instead may be very bit efficient, also for transferring complex- shaped applicability areas.
  • Apparatus 300 illustrated in Figure 5 and the operation illustrated in Figure 6 may be implemented and refined in various ways .
  • the run-length encoding could comprise determining at least one of the following pieces of information: an indication of a size of the grid regions of the grid, a location indication for a subset of the grid, an
  • the mapping could comprise by way of example an
  • association of a validity indication to the grid regions Such a validity indication could be a Boolean value. For instance, a bit value of '1' could be stored for each region to which the applicability area has been mapped, while a bit value of ' 0 ' could be stored - or used as a default value - for all other regions .
  • the run-length encoding could be considered in this case to be binary validity area encoding. Such an approach is particularly simple and requires little storage space. It could be employed for example if the grid is used for a single set of data.
  • the mapping could comprise an association of a pointer to a stored set of data to grid regions or an association of an identifier identifying a stored set of data to grid regions.
  • mapping could comprise an association of a respective data value from the set of data to the grid regions. In this case, a separate storage of the set of data could be avoided.
  • the employed grid could be defined in a spherical
  • a respective grid could be used for example for a single set of data, for different sets of data of a same type or for different sets of data of different types. Further, it could be used for a single validity period or for different validity periods. Further, it could be used for a single applicability for different
  • An exemplary embodiment of the operation of Figure 6 could comprise as a preceding action receiving at the server a set of data that is applicable in a particular applicability area and causing a storage of a mapping of the particular applicability area to grid regions of a grid. This action could be similar to the operation presented in Figure 2.
  • the mapping could be received at the server from another entity along with the set of data.
  • the operation presented in Figure 6 could further comprise mapping the particular applicability area for the
  • Certain embodiments of the operation presented in Figure 6 could further comprise selecting the set of data by receiving a request for data that is applicable at a location of a terminal, associating the location of the terminal to at least one grid region of a grid,
  • the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped, and, when this is the case, selecting the set of data.
  • the set of data could be selected under condition that the type of the set of data corresponds to the type of the requested data.
  • certain embodiments of the operation presented in Figure 6 could allow selecting the set of data having the longest remaining validity time, or the set of data that has been mapped to the largest number of grid regions surrounding the at least one grid region to which the location of the terminal is associated.
  • the first set of data could be selected, for which it is determined that the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which the applicability area of the set of data has been mapped. This might have the effect of saving resources at a server, for example in case the server has limited resources, and/or the effect of accelerating the selection process. Further
  • each of the different sets of data could be selected .
  • the set of data may include assistance data for a global navigation satellite system based
  • positioning for instance assistance data which is suited to enable a positioning, to accelerate a positioning or to improve the accuracy of a positioning of a mobile device.
  • Such assistance data may include for example data for local atmosphere models, like models of ionosphere and/or troposphere.
  • the local ionosphere model could be a simple Klobuchar model which has, unlike the global Klobuchar model broadcast by GPS space vehicles, a limited validity area.
  • the data for such a model could be provided by an agency that has a capability to measure/forecast the ionosphere behavior. The agency could then provide its forecasts to servers for further distribution to
  • the assistance data may further comprise for instance differential corrections in the scope of differential GNSS (DGNSS) and/or real-time kinematic (RTK) corrections.
  • Differential corrections are typically given for a certain reference point close to a terminal.
  • RTK real-time kinematic
  • Differential corrections are typically given for a certain reference point close to a terminal.
  • such corrections could also be represented instead as a hyper-surface parameterized with respect to horizontal and vertical position coordinates.
  • the surface could then yield the pseudorange corrections for the space vehicles. Such a surface would have a validity area.
  • RTK corrections are typically given for a certain reference point nearby a terminal as well.
  • the corrections could be provided as a hyper-surface as in the case of DGNSS. Such a surface would have a validity area as well.
  • the assistance data for a global navigation satellite system based positioning could further comprise data that is not included in the actual positioning computations. Such data could be suited to provide some additional
  • the assistance data could relate for instance to the visibility of satellites.
  • the server could pre-calculate the satellites that are visible to terminals in a given grid region at regular intervals, for example every 5 minutes. Thus when a terminal connects to the server to receive satellite data, the server can check from the grid, which
  • the server does not need to recalculate the satellite positions for every new reguest, but may check the satellite visibility from the grid. Thus, the server can check very guickly which data should be transmitted.
  • a rough location may be used in that is obtained based on cell id.
  • the assistance data could comprise for instance information on atmospheric
  • Atmospheric pressure at a given height can be used very effectively as height assistance, improving
  • the server could store a representation of a grid such that
  • the server may then guickly determine, which data is to be sent to the terminal.
  • set of data is not limited to global navigation satellite system
  • assistance data It could egually include any other kind of data that has a limited applicability in the spatial dimension, like weather related information for a certain area .
  • Figure 7 is a schematic block diagram of a fourth
  • Apparatus 400 comprises a " processor 401 and, linked to processor 401, a memory 402.
  • Memory 402 stores computer program code for requesting and
  • Processor 401 is configured to execute computer program code stored in memory 402 in order to cause apparatus 400 to perform desired actions.
  • Apparatus 400 could be for instance a terminal, like a mobile phone, a laptop or a netbook, or a module of a terminal, like a chip, circuitry on a chip or a plug-in board. Alternatively, it could be some other entity or a module of some other entity. It is an exemplary
  • Processor 401 and the program code stored in memory 402 cause apparatus 400 to perform the operation when the program code is retrieved from memory 402 and executed by processor 401.
  • Apparatus 400 generates a request for data that is applicable at a location of a terminal (action 411) .
  • Apparatus 400 then causes a transmission of the request (action 412) .
  • Apparatus 400 then receives a set of data along with an indication of grid regions of a grid to which an applicability area of the set of data has been mapped (action 413) .
  • Apparatus 400 evaluates the
  • a grid based representation of the applicability area may be particularly efficient for the apparatus as well, for instance with respect to storage and/or evaluation.
  • the received indication of grid regions can be encoded with any desired coding scheme, run-length encoding being only one example.
  • Figure 9 is a schematic block diagram of a fifth
  • Apparatus 500 comprises a processor 501 and, linked to processor 501, a memory 502.
  • Memory 502 stores computer program code for handling received encoded information about an applicability area obtained by run-length encoding grid regions, in line with a method presented in Figure 10.
  • Processor 501 is
  • Apparatus 500 could be for instance a terminal, like a mobile phone, a laptop or a netbook, or a module of a terminal, like a chip, circuitry on a chip or a plug-in board. Alternatively, it could be some other entity or a module of some other entity. It is an exemplary
  • apparatus 500 An operation of apparatus 500 will now be described with reference to the flow chart of Figure 10.
  • the operation is an exemplary embodiment of a method according to the fifth aspect of the invention.
  • Processor 501 and the program code stored in memory 502 cause apparatus 500 to perform the operation when the program code is retrieved from memory 502 and executed by processor 501.
  • Apparatus 500 receives from a server encoded information about an applicability area of a set of data, which has been obtained by run-length encoding grid regions of a grid, to which the applicability area has been mapped (action 511) . Apparatus 500 then run-length decodes the grid regions based on the encoded information about the applicability area (action 512) . Apparatus 500 further evaluates the decoded grid regions when using the set of data (action 513) .
  • Certain embodiments of the operation presented in Figure 10 may have the effect of supporting a run-length encoding of a grid based representation of an
  • applicability area of a set of data at a server and thus of supporting a bit efficient transmission of information on the applicability area.
  • the encoded information about the applicability area may comprise again an indication of a size of the grid regions of the grid, a location indication for a subset of the grid, an indication of a width of a subset of the grid, run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid and/or run-length encoded data values that are associated to grid regions to which the applicability area has been mapped.
  • the set of data may be provided by the server along with the encoded information about the applicability area or separately from the encoded information about the
  • FIG 11 is a schematic block diagram of a system comprising an exemplary embodiment of an apparatus according to the combined first, second and third aspect of the invention and an exemplary embodiment of an apparatus according to the combined fourth and fifth aspect of the invention.
  • System 800 comprises a server 600, a terminal 700 and a communication network 801 interconnecting server 600 and terminal 700.
  • Server 600 could also belong to
  • Server 600 may comprise a processor 601 that is linked to a first memory 602, to a second memory 603, to a first interface (I/F) 604 and to a second interface (I/F) 605.
  • Processor 601 is configured to execute computer program code, including computer program code stored in memory 602, in order to cause server 600 to perform desired actions .
  • Memory 602 stores computer program code for handling data for a limited applicability area at the side of a server.
  • the computer program code may comprise for example similar program code as memories 102, 202 and 302.
  • the program code could belong for instance to a comprehensive application supporting a positioning of mobile devices.
  • memory 602 may store computer program code implemented to realize other functions, as well as any kind of other data.
  • Processor 601 and memory 602 may optionally belong to a chip or an integrated circuit 609, which may comprise in addition various other components, for instance a further processor or memory.
  • Memory 603 stores databases that can be accessed by processor 601.
  • a first database comprises information on grid regions of at least one grid, for instance in the form of a table.
  • a second database comprises sets of GNSS assistance data having a limited applicability area.
  • memory 603 could store other data, for instance other data supporting a satellite based positioning.
  • the first database is configured to enable for each grid storage of a link or of links to one or more sets of data in the
  • Interface 604 is a component which enables server 600 to communicate with a data provider.
  • Interface 605 is a component which enables server 600 to communicate with other devices, like terminal 700, via network 801.
  • Interface 605 could comprise for instance a TCP/IP socket. It is to be understood that instead of providing a separate interface 604, interface 605 could be used as well for communications with the data provider via network 801.
  • Terminal 700 comprises a processor 701.
  • Processor 701 is linked to a first memory 702, to a second memory 703, to a user interface 704 and to at least one radio interface 705.
  • Processor 701 is configured to execute computer program code, including computer program code stored in memory 702, in order to cause terminal 700 to perform desired actions .
  • Memory 702 stores computer program code for handling data having a limited applicability area at the side of terminal 700.
  • the computer program code may comprise for example similar program code as memories 402 and 502.
  • the program code could belong for instance to a comprehensive positioning application stored in memory 702.
  • memory 702 may store computer program code implemented to realize other functions, as well as any kind of other data.
  • Processor 701 and memory 702 may optionally belong to a chip or an integrated circuit 709, which may comprise in addition various other components, for instance a further processor or memory or a part of interface 705, etc.
  • Memory 703 stores a database which can be accessed by processor 701.
  • the database is suited to comprise GNSS assistance data.
  • Memory 703 may be for example an
  • User interface 704 comprises components enabling a user input and components for providing an output to a user.
  • User interface 704 may comprise for instance a keyboard, a display, a touchscreen, a microphone, speakers, etc.
  • Radio interface 705 may comprise a communication
  • the communication interface which enables terminal 700 to communicate with other devices, like server 600, via communication network 801.
  • the communication interface could comprise for instance a transceiver enabling an access to a cellular communication network, like a GSM or Universal Mobile Telecommunications System (UMTS) network, and/or a transceiver enabling an access to wireless local area networks (WLANs) .
  • terminal 700 could comprise for instance a transceiver enabling an access to a cellular communication network, like a GSM or Universal Mobile Telecommunications System (UMTS) network, and/or a transceiver enabling an access to wireless local area networks (WLANs) .
  • terminal 700 could be
  • a global navigation satellite system receiver for example a GPS receiver and/or a Galileo receiver.
  • Component 709 or terminal 700 could correspond to an exemplary embodiment of an apparatus according to the fourth or fifth aspect of the invention.
  • Terminal 700 could be any kind of mobile device which is able to communicate with a server, for instance a mobile phone, a laptop or a netbook.
  • Network 801 could also represent a combination of several interlinked networks, for instance at least one mobile communication network and the Internet. Terminal 700 could then access the mobile communication network and server 600 via the Internet.
  • An exemplary operation in system 800 of Figure 11 will now be described with reference to the flow chart of Figure 12. Operations at server 600 are presented on the left hand side of Figure 12. Processor 601 and the program code stored in memory 602 cause server 600 to perform the presented operations when the program code is retrieved from memory 602 and executed by processor 601. Operations at terminal 700 are presented on the right hand side of Figure 12. Processor 701 and the program code stored in memory 702 cause terminal 700 to perform the presented operations when the program code is retrieved from memory 702 and executed by processor 701.
  • Server 600 receives from a data provider a set of GNSS assistance data, which has a limited applicability in the spatial dimension, as well as information on the
  • applicability area and possibly information on a validity period (action 611) .
  • server 600 maps at least the information on the applicability area of the set of data to grid regions of a grid (action 612) .
  • the data provider might provide the information on the applicability area in some other format than a grid format. In this case, the mapping includes a conversion to a grid format.
  • mapping may be performed for assembling the information that is to be stored for a respective grid region, in case more than a validity indication is to be stored for each grid region; or a mapping may be performed for changing the grid size; or a mapping may be performed for adding the received grid based information to grid areas of an existing grid that may already contain applicability area information for another set of data.
  • the grid regions to which the information is mapped may be grid regions of a dedicated grid or of a shared grid.
  • a shared grid may be used in common for sets of data of the same type having different validity times and/or different applicability areas.
  • shared grid may be used in common for sets of data of different types.
  • Server 600 stores the mapping in the first database in memory 603 (action 613) and the actual set of data in the second database in memory 603 (action 614) .
  • the stored mapping includes for each grid region at least an explicit or implicit validity indication. In addition, it could include some discrete data values. In case the set of data comprises only such discrete data values, a separate storage of the set of data in the second database in memory 603 could then be omitted.
  • the stored mapping may further include a pointer to the stored data and/or a data identifier identifying the stored data.
  • Terminal 700 may now generate and transmit a request for location sensitive GNSS assistance data that is valid at the location of terminal 700 (action 711) .
  • the request may include location information for terminal 700.
  • server 600 may commence a positioning session with terminal 700 in order to find out the location of terminal 700. Further alternatively, server 600 could use the last known location of terminal 700. In order to increase the reliability of the result, the last known location could be required not to be older than some threshold value.
  • the location information for terminal 700 may be in the form of coordinates or, for example, in the form of the identity of visible cellular network cells or the result of a WLAN scan.
  • Server 600 receives the request via network 801 (action 621) . At first, server 600 may check the second database in memory 603 to see whether the requested type of data is supported at all. If not, an indication may be transmitted to terminal 700 that the requested data type is not supported, and the operation may be terminated.
  • server 600 converts the location information for terminal 700 into the coordinates of the location of the terminal 700 and determines an
  • server 600 determines the grid region (s) of the grid that corresponds to the coordinates and the uncertainty region, (action 622)
  • server 600 now checks the first database in memory 603 to see whether the determined grid region (s) contains a validity indication for the requested type of data (action 623) . The operation is only continued in case a validity indication for at least one set of data is stored for the determined grid region (s) . Otherwise, an indication may be transmitted to terminal 700 that the requested data type is supported, but not available for the required area, and the operation may be terminated.
  • server 600 select the best suited set of data (action 624) .
  • the best suited set of data could be for instance the set of data having the longest remaining validity time. Alternatively, it could be the set of data that has the most validity indications for grid regions surrounding the determined grid region(s) . Further alternatively, server 600 might simply return the first valid set of data without further considerations.
  • Server 600 performs a run-length encoding of grid regions corresponding to the applicability area of the selected set of data to obtain an encoded indication of the applicability area (action 625) .
  • applicability area only a subset of the applicability area may be considered for the run-length encoding.
  • the subset could be limited, for example, to an area of a predetermined or requested size surrounding the location of terminal 700.
  • the subset could also be limited, for example, to one of a plurality of predefined subsets.
  • server 600 could have a set of data and information about its validity spanning the area of
  • server 600 might decide to run-length encode the validity information associated with the area of Northern Europe only (based on the known location of terminal 700), because obviously the validity information associated with Central or Southern Europe would be of limited use for terminal 700.
  • Server 600 then transmits the set of data along with the encoded indication of the applicability area of the set of data to terminal 700 via network 801 (action 626).
  • Terminal 700 receives the data and the run-length encoded indication of the applicability area. It decodes the indication and evaluates the indication when using the data, for example in the scope of a satellite signal based positioning, (action 712)
  • the presented embodiment of Figure 12 thus has the effect of enabling an efficient storage, search and transmission of applicability area information.
  • FIG. 13 is a diagram representing an exemplary grid used in server 600.
  • the grid might cover the whole globe, but for the purposes of illustration only a part of the grid, with latitude values of +61 to +65 degrees and longitude values of +23 to +31 degrees, is shown.
  • the grid size is selected to be one degree in each direction in this example.
  • the term grid region refers to one
  • the sets of data Dl and D2 are of different data types, and terminal 700 may request server 600 to provide data of the type of the first set of data Dl.
  • terminal 700 may request server 600 to provide data of the type of the first set of data Dl.
  • the applicability area of the set of data D2 is even more complex and would require a very large number of vertices. Further, in the case of the set of data D2, additional complexity would be introduced due to fact that the applicability area is patchy. Thus in fact two polygons would be required to represent the area, a first polygon for including the entire applicability area and a second polygon for representing the excluded part. So in case terminal 700 requested for data of the type of sets of data Dl and D2 , there would be three polygons to evaluate, which is computationally rather unbearable due to the potentially high load in server 600.
  • server 600 may simply take the integer degrees of the coordinates of terminal 700 to obtain the lower left corner of the grid region in which terminal 700 is located.
  • server 600 may immediately deduce that terminal 700 is not within the applicability area of the set of data Dl represented by black dots.
  • server 600 would have similarly been able to deduce easily that terminal 700 is within the set of data Dl represented by black dots.
  • the search for a grid region may be varied. For example, instead of rounding the coordinates down to the next integer values it would also be possible to round them up to the next integer values to obtain the upper right corner of the grid region in which terminal 700 is located.
  • the grid may simply be a two-dimensional table in memory 603.
  • Each element of the two-dimensional table that represents a grid region, in which the set of data is valid could contain as "data" a pointer to the set of data or values of the set of data.
  • the grid as a whole could be linked to the set of data, for instance using some kind of header information of the table.
  • Each element of a two-dimensional table that represents a grid region in which the set of data is valid could then contain as
  • server 600 could access the data
  • server 600 might then notice that "data->Dl” is NULL, that is, set of data Dl is not valid in the identified grid region, but "data->D2" is NOT NULL, that is, set of data D2 is valid in the identified grid region.
  • the uncertainty of the provided terminal coordinates may be taken into account in
  • the set of data and/or an indication of the applicability area of the set of data could be transmitted to terminal 700.
  • Such an additional evaluation is rather simple as well, because of the simple indexing scheme as opposed to evaluating whether the uncertainty area intersects with, for example, a polygon defining the applicability area.
  • the uncertainty of the provided location information for a terminal could also be taken into account in case a set of data of the requested type is valid at the location of terminal 700.
  • sets of data Dl and D2 of Figure 13 could be of the same type and terminal 700 could be located at the coordinates 61.5°/25.5°. In this region, set of data D2 is valid and it is transmitted.
  • the terminal location might be known very roughly so that it is known to lie in the circle having 2-degree radius. In such a case terminal 700 might even be located at the coordinates 61.5°/23.5°, in which region only the set of data Dl is valid.
  • server 600 could provide both sets of data Dl and D2 to terminal 600, in order to be sure that at least one of the sets of data transmitted is indeed valid at the terminal
  • terminal 700 may then decide, whether it uses set of data Dl or set of data D2. It could be possible, for instance, that terminal 700 has obtained more accurate location information by that time, for example by means of a GPS-based positioning, so that the appropriate set of data can be selected easily.
  • terminal 700 might request data not only for the terminal location but for the surroundings as well. For example, terminal 700 might request data that is applicable within a radius of 500 km around the current location of terminal 700. Such a request may be handled similarly as the uncertainty region. Again, due to the presented indexing scheme the desired information can be determined easily.
  • the sets of data Dl and D2 are of the same data type "D", and terminal 700 could request server 600 to provide a set of data of type "D".
  • server 700 can easily deduce that it must send the set of data Dl represented by white dots to terminal 700. Also in this case, the presented approach is thus particularly efficient.
  • server 600 could check for example, whether the data sets Dl and D2 are valid also in adjacent grid regions and select the set of data that is valid in most adjacent grid regions, etc. Another criterion could be, for instance, the applicability period of the sets of data.
  • server 600 could provide both sets of data and respectively associated coded applicability area information to terminal 700 and let terminal 700 decide which set of data should be used.
  • Sets of data of the same type with different validity times might be available, for example, if a data provider is providing updated data to server 600 at regular intervals or whenever available.
  • set of data Dl could have for example a validity period from 00:00 to 02:00 UTC and set of data D2 could have a validity period from 01:00 to 03:00 UTC.
  • terminal 700 reguested data "D" at 01:15 UTC, both sets of data Dl and D2 would be valid time-wise.
  • server 600 may provide this set of data to terminal 600.
  • server 600 may decide to provide terminal 700 with the set of data having a longer remaining lifetime, that is, set of data D2.
  • set of data D2 the set of data having a longer remaining lifetime
  • the grid-based approach for storing the data in a server is very powerful even in cases of overlapping validity periods or when there is updated data with a modified applicability area. It has to be noted that the efficiency of the presented search approach is basically independent of the grid size. Although a denser grid requires storing information for more grid regions in server 600, this increase in the database storage requirements is rather negligible. Since the same grid can moreover be used for various data types or for different instances of the same data type, the grid approach is very efficient storage-wise. Also accessing data located at any given element of such a two-dimensional array is very efficient.
  • Carrying the determined applicability area information from server 600 to terminal 700 may be based on run- length encoding.
  • Run-length encoding is an efficient method to encode area information.
  • Figure 14 is again a diagram representing a part of an exemplary a grid in server 600.
  • the depicted part of the grid comprises latitude values of -14° to -18° and longitude values of +83° to +91°.
  • the grid size is selected again by way of example to be one degree in each direction .
  • Run-length encoding of an area may use a "Region Size", a “Corner Point” of a region for an area, the "Width” of the area in terms of regions, and the run-length encoded area .
  • the parameter "Region Size” defines the size of one region in the grid.
  • the grid regions are the building elements of the area definition. In the case of square regions (in degree space) as in the example of Figure 14, a single parameter may be used for defining the region size. However, the scaling could be different in
  • a parameter "Region Size In Degrees” can, for instance, be coded by setting
  • Region_Size__in__degrees 10 / Region__Size .
  • a parameter "Corner Point” for an area is needed, if only a variable subset of the whole grid is to be transferred from server 600 to terminal 700.
  • the corner point defines in this case some starting point of the subset of the grid.
  • the corner point could be for example the lower left corner of the grid region in the very North-West of the subset. In Figure 14, this point is referred to as "North- est Corner” and has the coordinates (-15°, 83°) .
  • any other location information for the subset could be defined.
  • the subset could be for instance a rectangle covering exactly the grid regions to which the applicability area is mapped.
  • the area to be described could be fixed in the global coordinate system by expressing the coordinates of the north-west corner of the applicability area coded using the Region_Size_in___degrees attribute as follows:
  • the North-West corner latitude in degrees could be expressed in a range of [ -90, 90) degrees and the North- West corner longitude could be expressed in a range of [ ⁇ 180, 180) degrees.
  • the value would be 9179, since the range of longitudes does not go exactly up to 180 degrees, because with the above definition of the corner point, the corner point will never lie at coordinates having a longitude of 180 degrees.
  • the area width parameter might require the range [ 1, 9180] to present a range from 0.0392 to 360 degrees using the smallest possible region size of 0.0392 degrees derived earlier. Thus, this parameter requires 2 bytes.
  • the area width in degrees of 8° is indicated as well in Figure 14. It has to be noted that the area width could also be set to a predetermined value, either in general or for particular situations.
  • the region size in the transfer is 1 degree.
  • the above introduced equations can be used for determining the coded Region_Size, the coded North-West Corner coordinates and the coded Area_Width :
  • Area__Width ceil ( Areas Width in degrees /
  • the four determined parameters are transmitted by server 600 to terminal 700. With these parameters it will be known at terminal 700 where the applicability area is located (corner) , and the width of the area is further known in terms of grid regions.
  • the parameter Region__Size is simply an auxiliary parameter in the transfer.
  • the run-length encoded area is used to describe in which regions the provided set of data is valid.
  • the run-length encoded area is represented in the form of a list, and the principle of generating this list is illustrated in Figure 14. It has to be noted again that in Figure 14 only a subset of the grid in server 600 is shown for simplicity, and the white dots in the presented part of the grid represent the applicability area of a set of data that is to be transferred.
  • the dashed lines show the order, in which the applicability area will be described, namely row-by- row always from left to right and starting from the left upper grid region. It is to be understood that another order, for example a reversed order, could be defined to be used just the same.
  • the applicability area may then be described by a list, which alternately indicates the number of all subseguent regions (in the defined order), in which a set of data is valid / non-valid.
  • the run-length encoded list may always begin with the number of regions for which the set of data is not valid. Therefore, in the presented example the first element in the list is "1", since the set of data is not valid only for the first grid region. In case the first region would be valid, the first element in the list would be "0". It is to be understood that in an alternative embodiment, the run-length encoded list could always begin with the number of regions for which the data is valid.
  • including information on a region size and on a corner point could be mandatory, while including information on an area width and a run- length encoded list could be optional.
  • including information on a region size and on a corner point could be mandatory, while including information on an area width and a run- length encoded list could be optional.
  • Such information could be carried very efficiently by omitting information on area width and a run-length encoded list.
  • area width In case information on the area width is absent, the area width corresponds for example to 'one region', and that in case the run-length encoded list is absent, this means that some data is valid in all the regions of a box.
  • a receiving end receiving only information on a region size and on a corner point will know that the data is valid within the box defined by region size and corner point.
  • the region size of the grid represented in a database in memory 603 of server 600 and the region size carried over the protocol for the transmission to terminal 700 may be independent of each other.
  • the protocol could utilize for instance a 5-degree region size, if desired.
  • the efficiency of the proposed approach will now be presented for the example of the applicability area represented by the black dots in figure 13.
  • the relevant applicability area can be reduced to a width of five regions, since the black dots appear only for longitude values between 23° and 28°.
  • Carrying the applicability area information as a polygon would require carrying four vertices. Assuming 4 bytes for latitude and 4 bytes for longitude means that 8 bytes are required per vertex; four vertices would thus result in 32 bytes .
  • FIG 15 is again a diagram representing an exemplary grid in server 600.
  • the grid might cover the whole globe, but for the purposes of illustration only a part of the grid, with latitude values of +30° to +70° and longitude values of -20° to +40°, is shown.
  • the grid size is selected to be ten degree in each direction in this example.
  • a tag is shown for each grid region.
  • the tags represent a storm situation over Europe The tags refer to National Oceanic and Atmospheric
  • Tag G5 represents an "extreme" storm
  • tag G4 represents a
  • RLElist :: SEQUENCE (1...65535) OF RLEelement
  • the field "Type” defines how the grid region is affected in the NOAA scale. In addition to GIGS scale, GO has been added to code that an "area is not affected” .
  • the respective first number indicates the number of subsequent tags of the same type and the respective second number indicates the tag.
  • the subset of the grid is scanned to this end in the same order as indicated ' in Figure 14.
  • the applicability time for the warning should be indicated too. This could be achieved with an indication that the storm map is valid for example from 12:00 UTC to 13:00 UTC. It would also be possible to provide the information on several successive maps to terminal 700, as illustrated in Fig 16.
  • the partial grid on the left hand side represents a storm map for 12:00-13:00 UTC; it is identical to the partial grid of Figure 15.
  • the partial grid on the right hand side of Figure 16 represents the storm map for 13:00- 14:00 UTC. It is similar to the partial grid of Figure 15, but comprises different tags. The individual run- length encoded lists could then be given by
  • This type of information may not enable terminal 700 to compensate for the delays, but terminal 700 is made aware of the prevailing conditions and might alarm the user via user interface 704 that the position accuracy at the current location (corresponding to a particular grid region) may be worse than usually due to geomagnetic storm.
  • the various G-values could be used such that in the case of a tag of G5 the position accuracy is
  • the NOAA G-scale is obviously not the only type of information that could be provided to terminal 700.
  • a first type of data is the NOAA storm indication with enumeration types (Gl, G2, G3, G4 and G5 + GO and unknown), which has been presented above. NOAA
  • geomagnetic storm indices G3 to G5 affect satellite navigation .
  • a second type of data is a NOAA radio blackout with enumeration types (R4 and R5 + RO and unknown) .
  • NOAA radio blackout indices R4 and R5 affect satellite navigation. In severe storm conditions, the ionosphere might not pass through satellite navigation signals at all .
  • VTEC vertical total electron content
  • exemplary enumeration types ⁇ 50, 50 to 100, 100 to 150, 150 to 200, >200, unknown ⁇ .
  • VTEC directly indicates the amount of the ionosphere delay.
  • VTEC is expressed in terms of TECUs (TEC Units) .
  • One TEC Unit corresponds to an electron density of 10 6 eVm 2 corresponding to 0.16-meter delay at GPS LI frequency. Note that in order to find out how a given VTEC value affects the satellite signal, the VTEC in the given ionosphere pierce point (i.e. the point where the satellite signal penetrates the ionosphere) must be mapped to a Slant TEC value according to equation
  • a fourth type of data is the k-index with enumeration types ⁇ kO, kl, k2, k3 , k4, k5, k6 , k7 , k8, k9 , unknown ⁇ .
  • the k-index is a measure of geomagnetic activity.
  • k-indices are deduced retrospectively - that is, the behavior of the geomagnetic field is observed in 3-hour periods after which a respective k-value is deduced, k-values of 5 or greater indicate geomagnetic storms .
  • k-indices are determined at various locations using magnetometers.
  • the planetary k-index k P is the weighted average of these various local k-values.
  • the k-index is meant to be deduced in postprocessing (after each 3-hour period) , in principle it is also possible to evaluate the index in real time.
  • This kind of real-time estimated local k-index data could also be provided to terminals so that they can estimate the level of geomagnetic/ionosphere activity.
  • applicability area information for a set of data is coded in a grid in a server. This may have the effect of enabling a particularly simple storage scheme at the server. Further, it may have the effect of enabling a particularly efficient lookup of sets of data that are applicable in a limited area.
  • applicability area information is coded using run-length encoding when transmitting the applicability area information for a set of data. This may have the effect of providing a very efficient transfer scheme even for complex-shaped applicability areas .
  • Figures 2, 4, 6, 8, 10 and 12 may also be understood to represent exemplary functional blocks of computer program codes for handling a grid based representation of an applicability area of a set of data.
  • connection in the described embodiments is to be understood in a way that the involved components are operationally coupled.
  • connections can be direct or indirect with any number or combination of intervening elements, and there may be merely a
  • circuitry refers to any of the following:
  • firmware such as: (i) to a combination of processor (s) or (ii) to portions of processor ( s ) / software (including digital signal processor ( s ) ) , software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, to perform various functions) and
  • circuits such as a microprocessor ( s ) or a portion of a microprocessor ( s ) , that require software or firmware for operation, even if the software or firmware is not physically present.
  • This definition of ⁇ circuitry' applies to all uses of this term in this text, including in any claims.
  • ⁇ circuitry' also covers an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware.
  • the term ⁇ circuitry' also covers, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone.
  • processors mentioned in this text could be a processor of any suitable type. Any processor may
  • microprocessors one or more processor (s) with
  • processor s
  • processor one or more special-purpose computer chips, one or more field-programmable gate arrays (FPGAS), one or more controllers, one or more application-specific integrated circuits (ASICS), or one or more computer(s).
  • FPGAS field-programmable gate arrays
  • ASICS application-specific integrated circuits
  • computer(s) one or more computer(s).
  • the relevant structure/hardware has been programmed in such a way to carry out the described function.
  • any of the memories mentioned in this text could be implemented as a single memory or as a combination of a plurality of distinct memories, and may comprise for example a read-only memory, a random access memory, a flash memory or a hard disc drive memory etc.
  • any of the actions described or illustrated herein may be implemented using executable instructions in a general-purpose or special-purpose processor and stored on a computer-readable storage medium (e.g., disk, memory, or the like) to be executed by such a processor.
  • a computer-readable storage medium e.g., disk, memory, or the like
  • References to x computer-readable storage medium' should be understood to encompass specialized circuits such as FPGAs, ASICs, signal processing devices, and other devices .
  • processor 601 in combination with memory 602 or the circuitry 609 can be viewed as means for receiving a set of data that is applicable in a particular applicability area; and means for causing a storage of a mapping of the particular applicability area to grid regions of a grid.
  • the functions illustrated by processor 701 in combination with memory 702 or the circuitry 709 can be viewed as means for generating a request for data that is applicable at a location of a terminal, means for causing a transmission of the request, means for receiving a set of data along with an indication of grid regions of a grid to which an
  • applicability area of the set of data has been mapped, and means for evaluating the indication of grid regions when using the received set of data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A server is caused to run-length encode grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area. The encoded information about the applicability area is caused to be transmitted. An apparatus receives the encoded information about the applicability area, run-length decodes the grid regions based on the encoded information about the applicability area, and evaluates the decoded grid regions when using the set of data.

Description

Handling data with limited applicability area
FIELD OF THE DISCLOSURE
The invention relates to the field of handling data which has a limited applicability area.
BACKGROUND
Data that is stored at a server for distribution can be unrelated to any area, it can be valid globally or it can be valid for a certain area only. To date the Global Navigation Satellite System (GNSS) assistance data, for example, have been global in nature. Examples of such data are global ionosphere models for the global positioning system (GPS), known as Klobuchar models, and Galileo space vehicle (SV) broadcasts.
However, certain new emerging GNSS assistance data types have limited applicability areas. Such data types include warnings on ionosphere storms or other space weather- related information. The limited applicability area may be represented by polygons and ellipses.
Also other data than GNSS assistance data could be area sensitive. For example, warnings on thunderstorms or other weather related information could have a limited applicability area. SUMMARY OF SOME EMBODIMENTS OF THE INVENTION
For a first aspect of the invention, a method is
described, which comprises at a server receiving data that is applicable in a particular applicability area, and causing a storage of a mapping of the particular applicability area to grid regions of a grid.
For a second aspect of the invention, a method is described, which comprises at a server receiving a request for data that is applicable at a location of a terminal. The method further comprises associating the location of the terminal to at least one grid region of a grid. The method further comprises determining whether the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped. When this is the case, the method further comprises causing a transmission of the set of data.
For a third aspect of the invention, a method is
described, which comprises at a server run-length
encoding grid regions of a grid, to which an
applicability area of a set of data has been mapped, in order to obtain encoded information about the
applicability area, and causing a transmission of the encoded information about the applicability area.
For a fourth aspect of the invention, a method is
described, which comprises at an apparatus generating a request for data that is applicable at a location of a terminal. The method further comprises causing a
transmission of the request. The method further comprises receiving a set of data along with an indication of grid regions of a grid to which an applicability area of the set of data has been mapped. The method further comprises evaluating the indication of grid regions when using the received set of data.
For a fifth aspect of the invention, a method is
described, which comprises at an apparatus receiving from a server encoded information about an applicability area of a set of data, wherein the encoded information has been obtained by run-length encoding grid regions of a grid, to which the applicability area has been mapped. This method further comprises run-length decoding the grid regions based on the encoded information about the applicability area and evaluating the decoded grid regions when using the set of data.
Each of the aspects thus makes use of a grid based representation of an applicability area of data. For each of the aspects of the invention, moreover a first apparatus is described, which comprises means for realizing the actions of the method presented for the first, second and/or third aspect of the invention or means for realizing the actions of the method presented for the fourth and/or fifth aspect of the invention.
The means of this apparatus can be implemented in
hardware and/or software. They may comprise for instance a processor for executing computer program code for realizing the required functions, a memory storing the program code, or both. Alternatively, they could comprise for instance circuitry that is designed to realize the required functions, for instance implemented in a chipset or a chip, like an integrated circuit. For each of the aspects of the invention, moreover a second apparatus is described, which comprises at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to cause an apparatus at least to perform the actions of the method presented for the first, second and/or third aspect of the invention or to perform the actions of the method presented for the fourth and/or fifth aspect of the invention.
For each of the aspects of the invention, moreover a computer readable storage medium is described, in which computer program code is stored. The computer program code causes an apparatus to realize the actions of the method presented for the first, second and/or third aspect of the invention when executed by this processor or to realize the actions of the method presented for the fourth and/or fifth aspect of the invention.
The computer readable storage medium could be for example a disk or a memory or the like. The computer program code could be stored in the computer readable storage medium in the form of instructions encoding the computer- readable storage medium. The computer readable storage medium may be intended for taking part in the operation of a device, like an internal or external hard disk of a computer, or be intended for distribution of the program code, like an optical disc.
It is to be understood that also the computer program code by itself has to be considered an embodiment of the invention . Any of the described apparatuses may comprise only the indicated components or one or more additional
components . Any of the described apparatuses for the first, second and third aspect may be a module or component for a server, for example a chip. Alternatively, any of the described apparatuses for the first, second and third aspect may be a server. Any of the described apparatuses for the fourth and fifth aspect may be a module or component for a terminal, for example a chip, or another device. Alternatively, any of the described apparatuses for the first, second and third aspect may be a terminal or another device evaluating area sensitive data for the location of a terminal.
In one embodiment, the described methods are information providing methods, and the described first apparatus for each aspect is an information providing apparatus. In one embodiment, the means of the described first apparatus for each aspect are processing means.
In certain embodiments of the described methods, the methods are methods for handling data with a limited applicability area. In certain embodiments of the described apparatuses, the apparatuses are apparatuses for handling data with a limited applicability area.
Further, it is to be understood that the presentation of the invention in this section is merely exemplary and non-limiting .
Other features of the present invention will become apparent from the following detailed description considered in conjunction with the accompanying drawings. It is to be understood, however, that the drawings are designed solely for purposes of illustration and not as a definition of the limits of the invention, for which reference should be made to the appended claims. It should be further understood that the drawings are not drawn to scale and that they are merely intended to conceptually illustrate the structures and procedures described herein.
BRIEF DESCRIPTION OF THE FIGURES
Fig. 1 is a schematic block diagram of a first
apparatus;
Fig. 2 is a flow chart illustrating a first method;
Fig. 3 is a schematic block diagram of a second
apparatus ;
Fig. 4 is a flow chart illustrating a second method; Fig. 5 is a schematic block diagram of a third
apparatus;
Fig. 6 is a flow chart illustrating a third method;
Fig. 7 is a schematic block diagram of a fourth
apparatus ;
Fig. 8 is a flow chart illustrating a fourth method; Fig. 9 is a schematic block diagram of a fifth
apparatus ;
Fig. 10 is a flow chart illustrating a fifth method;
Fig. 11 is a schematic block diagram of an exemplary
embodiment of a system according to the invention;
Fig. 12 is a flow chart illustrating an exemplary
operation in the system of Figure 11;
Fig. 13 is a diagram illustrating a part of a grid used in an exemplary embodiment of the invention; Fig. 14 is a diagram illustrating a run-length encoding used in an exemplary embodiment of the invention; Fig. 15 is a diagram illustrating a part of a grid used in another exemplary embodiment of the invention; and
Fig. 16 is a diagram illustrating a part of a plurality of grids used in yet another exemplary embodiment of the invention. DETAILED DESCRIPTION OF THE FIGURES
Figure 1 is a schematic block diagram of a first
apparatus 100. Apparatus 100 comprises a processor 101 and, linked to processor 101, a memory 102. Memory 102 stores computer program code for handling the storage of a mapping of an applicability area of received data to grid regions of a grid, a method presented in Figure 2. Processor 101 is configured to execute computer program code stored in memory 102 in order to cause a server to perform desired actions. The applicability area could also be referred to as validity area.
Apparatus 100 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. Apparatus 100 is an exemplary embodiment of an apparatus according to the first aspect of the invention.
An operation of apparatus 100 will now be described with reference to the flow chart of Figure 2. The operation is an exemplary embodiment of a method according to the first aspect of the invention. Processor 101 and the program code stored in memory 102 cause a server to perform the operation when the program code is retrieved from memory 102 and executed by processor 101. The server receives a set of data that is applicable in a particular applicability area (action 111) . The data may be received for distribution. The server then causes a storage of a mapping of the applicability area to grid regions of a grid (action 112) . The mapping may be stored in memory 102, in a separate memory of apparatus 100 or in a memory external to apparatus 100 or even or in a memory external to the server.
The presented operation has the effect that a
particularly simple storage of information on an
applicability area of area sensitive data can be
achieved. If the set of data is received at the server for distribution, the grid based format of the
applicability area may optionally be used in determining a set of data that is to be distributed. Furthermore, the grid based format or some other format may optionally be used for informing a receiving end about the
applicability area of a particular set of data.
Figure 3 is a schematic block diagram of a second
apparatus 200. Apparatus 200 comprises a processor 201 and, linked to processor 201, a memory 202. Memory 202 stores computer program code for handling request for data that is applicable at a location of a terminal, a method presented in Figure . Processor 201 is configured to execute computer program code stored in memory 202 in order to cause a server to perform desired actions.
Apparatus 200 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. It is an exemplary embodiment of an apparatus according to the second aspect of the invention. An operation of apparatus 200 will now be described with reference to the flow chart of Figure 4. The operation is an exemplary embodiment of a method according to the second aspect of the invention. Processor 201 and the program code stored in memory 202 cause the server to perform the operation when the program code is retrieved from memory 202 and executed by processor 201. The server receives a reguest for data that is applicable at a location of a terminal (action 211) . The server then associates the location of the terminal to at least one grid region of a grid (action 212) . The server then determines whether at least one grid region to which the location of terminal has been associated belongs to grid regions of a grid to which an applicability area of a set of data has been mapped (action 213) . Whenever this is the case, the server causes a transmission of the set of data (action 214) .
A receiving end may thus assume that the set of data is applicable at the current location of the terminal.
The reguest could be received from the terminal or from another entity evaluating data for the location of the terminal. Correspondingly, the set of data could be transmitted to the terminal or to another entity.
When a server receives a reguest for data that is valid at a particular location, the server has to select the correct data. This reguires figuring out whether the terminal is within the applicability area of certain data. The server may have to handle thousands of reguests in a second. In case there are several instances of the same data type with differing applicability areas, it might further be necessary to evaluate through all those areas . Similarly, the computational requirements become more demanding the more location-sensitive data types are requested from the server. Calculating for example the elliptic distance or performing an exhaustive search over limiting lines of a polygon to find out whether the location of a terminal is within the applicability area of a set of data may not be sufficiently efficient in these cases.
The approach presented in Figure 4, in contrast, may have the effect of enabling a particular simple and fast search for data that is applicable at the location of a terminal .
The server might associate the location of the terminal to more than one grid region for instance for taking account of uncertainty in the location of the terminal location. Furthermore, the server might associate the location of the terminal to more than one grid region by taking into account the surrounding of an assumed
location of the terminal, for example to ensure that the actual location is covered and/or to allow for a movement of the terminal. Furthermore, the location of the
terminal could be associated to multiple regions in different grids.
In certain embodiments of the operation presented in Figure 4, the set of data is caused to be transmitted along with an indication of the grid regions of the grid to which the applicability area of the set of data has been mapped. This has the effect that a receiving end will not only know that the set of data is applicable at - li the current location of the terminal, but also whether the set of data is still applicable in the case of a changing location of the terminal. The set of data and the indication could be caused to be transmitted as separate information, but the set of data could also be integrated in the indication.
For transmitting an indication of the grid regions of the grid to which the applicability area of the requested data has been mapped, a run-length encoding or any other kind of coding could be used.
Figure 5 is a schematic block diagram of a third
apparatus 300. Apparatus 300 comprises a processor 301 and, linked to processor 301, a memory 302. Memory 302 stores computer program code for performing a run-length encoding of grid regions to which an applicability area of data has been mapped, in line with a method presented in Figure 6. Processor 301 is configured to execute computer program code stored in memory 302 in order to cause a server to perform desired actions.
Apparatus 300 could be for instance a server or a module of a server, like a chip, circuitry on a chip or a plug- in board. It is an exemplary embodiment of an apparatus according to the third aspect of the invention.
An operation of apparatus 300 will now be described with reference to the flow chart of Figure 6. The operation is an exemplary embodiment of a method according to the third aspect of the invention. Processor 301 and the program code stored in memory 302 cause the server to perform the operation when the program code is retrieved from memory 302 and executed by processor 301. The server performs a run-length encoding of grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area (action 311) . The server then causes a transmission of the encoded information about the applicability area (action 312) .
For transmitting information on an applicability area of data, an elliptic shape could be encoded. This might be bit-efficient, but highly restrictive. A polygon might be more flexible in defining an applicability area, but when transferring the applicability area in the form of a polygon the bit consumption increases with the complexity of the applicability area.
Using a run-length encoding of grid regions instead may be very bit efficient, also for transferring complex- shaped applicability areas.
Apparatus 300 illustrated in Figure 5 and the operation illustrated in Figure 6 may be implemented and refined in various ways . In an exemplary embodiment of the operation of Figure 6, the run-length encoding could comprise determining at least one of the following pieces of information: an indication of a size of the grid regions of the grid, a location indication for a subset of the grid, an
indication of a width of a subset of the grid, run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid, and run-length encoded data values that are associated to grid regions to which the applicability area has been mapped. In this embodiment, causing a transmission of the encoded information about the
applicability area could then comprise causing a
transmission of the determined pieces of information.
The mapping could comprise by way of example an
association of a validity indication to the grid regions. Such a validity indication could be a Boolean value. For instance, a bit value of '1' could be stored for each region to which the applicability area has been mapped, while a bit value of ' 0 ' could be stored - or used as a default value - for all other regions . The run-length encoding could be considered in this case to be binary validity area encoding. Such an approach is particularly simple and requires little storage space. It could be employed for example if the grid is used for a single set of data. In other exemplary embodiments, the mapping could comprise an association of a pointer to a stored set of data to grid regions or an association of an identifier identifying a stored set of data to grid regions. These approaches have the effect that a single grid may be used for several sets of data. In other exemplary embodiments, the mapping could comprise an association of a respective data value from the set of data to the grid regions. In this case, a separate storage of the set of data could be avoided.
The employed grid could be defined in a spherical
coordinate system, but equally in any other kind of coordinate system, for instance a Cartesian coordinate system.
A respective grid could be used for example for a single set of data, for different sets of data of a same type or for different sets of data of different types. Further, it could be used for a single validity period or for different validity periods. Further, it could be used for a single applicability for different
applicability areas.
An exemplary embodiment of the operation of Figure 6 could comprise as a preceding action receiving at the server a set of data that is applicable in a particular applicability area and causing a storage of a mapping of the particular applicability area to grid regions of a grid. This action could be similar to the operation presented in Figure 2. The mapping could be received at the server from another entity along with the set of data. Alternatively, the operation presented in Figure 6 could further comprise mapping the particular applicability area for the
received set of data to grid regions of a grid. This has the effect that the operation is independent of support by another entity.
Certain embodiments of the operation presented in Figure 6 could further comprise selecting the set of data by receiving a request for data that is applicable at a location of a terminal, associating the location of the terminal to at least one grid region of a grid,
determining whether the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped, and, when this is the case, selecting the set of data. The set of data could be selected under condition that the type of the set of data corresponds to the type of the requested data. When the at least one grid region to which the location of the terminal is associated has been mapped for one or more grids to different sets of data, certain embodiments of the operation presented in Figure 6 could allow selecting the set of data having the longest remaining validity time, or the set of data that has been mapped to the largest number of grid regions surrounding the at least one grid region to which the location of the terminal is associated. This may have the effect that the most appropriate of several sets of data can always be determined in a very easy manner. Alternatively, the first set of data could be selected, for which it is determined that the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which the applicability area of the set of data has been mapped. This might have the effect of saving resources at a server, for example in case the server has limited resources, and/or the effect of accelerating the selection process. Further
alternative, each of the different sets of data could be selected .
In certain embodiments of the operation presented in Figures 6, the set of data may include assistance data for a global navigation satellite system based
positioning, for instance assistance data which is suited to enable a positioning, to accelerate a positioning or to improve the accuracy of a positioning of a mobile device.
Such assistance data may include for example data for local atmosphere models, like models of ionosphere and/or troposphere. The local ionosphere model could be a simple Klobuchar model which has, unlike the global Klobuchar model broadcast by GPS space vehicles, a limited validity area. The data for such a model could be provided by an agency that has a capability to measure/forecast the ionosphere behavior. The agency could then provide its forecasts to servers for further distribution to
terminals in the form of the Klobuchar model, indicating the relevant validity area and optionally other
limitations like a validity period in time, etc. Several (overlapping) models could be used for covering a larger area. The assistance data may further comprise for instance differential corrections in the scope of differential GNSS (DGNSS) and/or real-time kinematic (RTK) corrections. Differential corrections are typically given for a certain reference point close to a terminal. However, such corrections could also be represented instead as a hyper-surface parameterized with respect to horizontal and vertical position coordinates. The surface could then yield the pseudorange corrections for the space vehicles. Such a surface would have a validity area. RTK corrections are typically given for a certain reference point nearby a terminal as well. However, assuming for instance that such corrections are provided in the broadcast for a wide area, the corrections could be provided as a hyper-surface as in the case of DGNSS. Such a surface would have a validity area as well. The assistance data for a global navigation satellite system based positioning could further comprise data that is not included in the actual positioning computations. Such data could be suited to provide some additional
information to a user, for instance on the reliability of a determined position. An example for such data is ionospheric storm indications. Alternatively or in addition, the assistance data could relate for instance to the visibility of satellites. The server could pre-calculate the satellites that are visible to terminals in a given grid region at regular intervals, for example every 5 minutes. Thus when a terminal connects to the server to receive satellite data, the server can check from the grid, which
satellites are visible to the terminal and provide assistance data only for those satellites. The server does not need to recalculate the satellite positions for every new reguest, but may check the satellite visibility from the grid. Thus, the server can check very guickly which data should be transmitted. As a location of the terminal, a rough location may be used in that is obtained based on cell id.
Alternatively or in addition, the assistance data could comprise for instance information on atmospheric
pressure, which is egually suitable to be presented in a grid. Atmospheric pressure at a given height can be used very effectively as height assistance, improving
availability and time-to-first-fix in an assisted global navigation satellite system based positioning. The server could store a representation of a grid such that
information on atmospheric pressure, for instance a respective pressure value, is associated to each grid region of the grid. Upon receiving an assistance reguest, the server may then guickly determine, which data is to be sent to the terminal.
It is further to be understood that the set of data is not limited to global navigation satellite system
assistance data. It could egually include any other kind of data that has a limited applicability in the spatial dimension, like weather related information for a certain area .
Figure 7 is a schematic block diagram of a fourth
apparatus 400. Apparatus 400 comprises a "processor 401 and, linked to processor 401, a memory 402. Memory 402 stores computer program code for requesting and
processing data that is applicable at a location of a terminal, in line with a method presented in Figure 8. Processor 401 is configured to execute computer program code stored in memory 402 in order to cause apparatus 400 to perform desired actions.
Apparatus 400 could be for instance a terminal, like a mobile phone, a laptop or a netbook, or a module of a terminal, like a chip, circuitry on a chip or a plug-in board. Alternatively, it could be some other entity or a module of some other entity. It is an exemplary
embodiment of an apparatus according to the fourth aspect of the invention.
An operation of apparatus 400 will now be described with reference to the flow chart of Figure 8. The operation is an exemplary embodiment of a method according to the fourth aspect of the invention. Processor 401 and the program code stored in memory 402 cause apparatus 400 to perform the operation when the program code is retrieved from memory 402 and executed by processor 401. Apparatus 400 generates a request for data that is applicable at a location of a terminal (action 411) .
Apparatus 400 then causes a transmission of the request (action 412) . Apparatus 400 then receives a set of data along with an indication of grid regions of a grid to which an applicability area of the set of data has been mapped (action 413) . Apparatus 400 evaluates the
indication of the grid regions when using the received set of data (action 414) .
Certain embodiments of the operation presented in Figure 8 may have the effect of supporting a grid based
representation of an applicability area of a set of data at a server. Moreover, a grid based representation of the applicability area may be particularly efficient for the apparatus as well, for instance with respect to storage and/or evaluation. The received indication of grid regions can be encoded with any desired coding scheme, run-length encoding being only one example.
Figure 9 is a schematic block diagram of a fifth
apparatus 500. Apparatus 500 comprises a processor 501 and, linked to processor 501, a memory 502. Memory 502 stores computer program code for handling received encoded information about an applicability area obtained by run-length encoding grid regions, in line with a method presented in Figure 10. Processor 501 is
configured to execute computer program code stored in memory 502 in order to cause apparatus 500 to perform desired actions.
Apparatus 500 could be for instance a terminal, like a mobile phone, a laptop or a netbook, or a module of a terminal, like a chip, circuitry on a chip or a plug-in board. Alternatively, it could be some other entity or a module of some other entity. It is an exemplary
embodiment of an apparatus according to the fifth aspect of the invention. An operation of apparatus 500 will now be described with reference to the flow chart of Figure 10. The operation is an exemplary embodiment of a method according to the fifth aspect of the invention. Processor 501 and the program code stored in memory 502 cause apparatus 500 to perform the operation when the program code is retrieved from memory 502 and executed by processor 501.
Apparatus 500 receives from a server encoded information about an applicability area of a set of data, which has been obtained by run-length encoding grid regions of a grid, to which the applicability area has been mapped (action 511) . Apparatus 500 then run-length decodes the grid regions based on the encoded information about the applicability area (action 512) . Apparatus 500 further evaluates the decoded grid regions when using the set of data (action 513) .
Certain embodiments of the operation presented in Figure 10 may have the effect of supporting a run-length encoding of a grid based representation of an
applicability area of a set of data at a server and thus of supporting a bit efficient transmission of information on the applicability area.
The encoded information about the applicability area may comprise again an indication of a size of the grid regions of the grid, a location indication for a subset of the grid, an indication of a width of a subset of the grid, run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid and/or run-length encoded data values that are associated to grid regions to which the applicability area has been mapped. The set of data may be provided by the server along with the encoded information about the applicability area or separately from the encoded information about the
applicability area. It could also be made available by some other source.
Figure 11 is a schematic block diagram of a system comprising an exemplary embodiment of an apparatus according to the combined first, second and third aspect of the invention and an exemplary embodiment of an apparatus according to the combined fourth and fifth aspect of the invention. System 800 comprises a server 600, a terminal 700 and a communication network 801 interconnecting server 600 and terminal 700. Server 600 could also belong to
communication network 801. Server 600 may comprise a processor 601 that is linked to a first memory 602, to a second memory 603, to a first interface (I/F) 604 and to a second interface (I/F) 605.
Processor 601 is configured to execute computer program code, including computer program code stored in memory 602, in order to cause server 600 to perform desired actions .
Memory 602 stores computer program code for handling data for a limited applicability area at the side of a server. The computer program code may comprise for example similar program code as memories 102, 202 and 302. The program code could belong for instance to a comprehensive application supporting a positioning of mobile devices. In addition, memory 602 may store computer program code implemented to realize other functions, as well as any kind of other data. Processor 601 and memory 602 may optionally belong to a chip or an integrated circuit 609, which may comprise in addition various other components, for instance a further processor or memory. Memory 603 stores databases that can be accessed by processor 601. A first database comprises information on grid regions of at least one grid, for instance in the form of a table. A second database comprises sets of GNSS assistance data having a limited applicability area. In addition, memory 603 could store other data, for instance other data supporting a satellite based positioning. The first database is configured to enable for each grid storage of a link or of links to one or more sets of data in the second database.
Interface 604 is a component which enables server 600 to communicate with a data provider. Interface 605 is a component which enables server 600 to communicate with other devices, like terminal 700, via network 801.
Interface 605 could comprise for instance a TCP/IP socket. It is to be understood that instead of providing a separate interface 604, interface 605 could be used as well for communications with the data provider via network 801.
Component 609 or server 600 could correspond to exemplary embodiments of an apparatus according to the first, second and third aspect of the invention. Terminal 700 comprises a processor 701. Processor 701 is linked to a first memory 702, to a second memory 703, to a user interface 704 and to at least one radio interface 705.
Processor 701 is configured to execute computer program code, including computer program code stored in memory 702, in order to cause terminal 700 to perform desired actions .
Memory 702 stores computer program code for handling data having a limited applicability area at the side of terminal 700. The computer program code may comprise for example similar program code as memories 402 and 502. The program code could belong for instance to a comprehensive positioning application stored in memory 702. In
addition, memory 702 may store computer program code implemented to realize other functions, as well as any kind of other data.
Processor 701 and memory 702 may optionally belong to a chip or an integrated circuit 709, which may comprise in addition various other components, for instance a further processor or memory or a part of interface 705, etc.
Memory 703 stores a database which can be accessed by processor 701. The database is suited to comprise GNSS assistance data. Memory 703 may be for example an
integrated memory of terminal 700 or an exchangeable memory card.
User interface 704 comprises components enabling a user input and components for providing an output to a user. User interface 704 may comprise for instance a keyboard, a display, a touchscreen, a microphone, speakers, etc.
Radio interface 705 may comprise a communication
interface, which enables terminal 700 to communicate with other devices, like server 600, via communication network 801. The communication interface could comprise for instance a transceiver enabling an access to a cellular communication network, like a GSM or Universal Mobile Telecommunications System (UMTS) network, and/or a transceiver enabling an access to wireless local area networks (WLANs) . In addition, terminal 700 could
comprise a global navigation satellite system receiver, for example a GPS receiver and/or a Galileo receiver.
Component 709 or terminal 700 could correspond to an exemplary embodiment of an apparatus according to the fourth or fifth aspect of the invention. Terminal 700 could be any kind of mobile device which is able to communicate with a server, for instance a mobile phone, a laptop or a netbook.
Network 801 could also represent a combination of several interlinked networks, for instance at least one mobile communication network and the Internet. Terminal 700 could then access the mobile communication network and server 600 via the Internet. An exemplary operation in system 800 of Figure 11 will now be described with reference to the flow chart of Figure 12. Operations at server 600 are presented on the left hand side of Figure 12. Processor 601 and the program code stored in memory 602 cause server 600 to perform the presented operations when the program code is retrieved from memory 602 and executed by processor 601. Operations at terminal 700 are presented on the right hand side of Figure 12. Processor 701 and the program code stored in memory 702 cause terminal 700 to perform the presented operations when the program code is retrieved from memory 702 and executed by processor 701.
Server 600 receives from a data provider a set of GNSS assistance data, which has a limited applicability in the spatial dimension, as well as information on the
applicability area and possibly information on a validity period (action 611) .
If reguired, server 600 maps at least the information on the applicability area of the set of data to grid regions of a grid (action 612) . The data provider might provide the information on the applicability area in some other format than a grid format. In this case, the mapping includes a conversion to a grid format. Any
representation of an area is easily convertible to the proposed grid format. Furthermore, since this conversion has to be carried out only once when the data arrives, the required computational resources are limited. If the information on the applicability area of the received data is already provided in grid format, a separate mapping may not be required. Alternatively, a mapping may be performed for assembling the information that is to be stored for a respective grid region, in case more than a validity indication is to be stored for each grid region; or a mapping may be performed for changing the grid size; or a mapping may be performed for adding the received grid based information to grid areas of an existing grid that may already contain applicability area information for another set of data.
The grid regions to which the information is mapped may be grid regions of a dedicated grid or of a shared grid. A shared grid may be used in common for sets of data of the same type having different validity times and/or different applicability areas. Alternatively or in addition, shared grid may be used in common for sets of data of different types.
Server 600 stores the mapping in the first database in memory 603 (action 613) and the actual set of data in the second database in memory 603 (action 614) . The stored mapping includes for each grid region at least an explicit or implicit validity indication. In addition, it could include some discrete data values. In case the set of data comprises only such discrete data values, a separate storage of the set of data in the second database in memory 603 could then be omitted. In
particular if the grid is used in common for several sets of data, the stored mapping may further include a pointer to the stored data and/or a data identifier identifying the stored data.
Terminal 700 may now generate and transmit a request for location sensitive GNSS assistance data that is valid at the location of terminal 700 (action 711) . The request may include location information for terminal 700.
Alternatively, upon the reception of the request, server 600 may commence a positioning session with terminal 700 in order to find out the location of terminal 700. Further alternatively, server 600 could use the last known location of terminal 700. In order to increase the reliability of the result, the last known location could be required not to be older than some threshold value. The location information for terminal 700 may be in the form of coordinates or, for example, in the form of the identity of visible cellular network cells or the result of a WLAN scan. Server 600 receives the request via network 801 (action 621) . At first, server 600 may check the second database in memory 603 to see whether the requested type of data is supported at all. If not, an indication may be transmitted to terminal 700 that the requested data type is not supported, and the operation may be terminated.
Otherwise, if required, server 600 converts the location information for terminal 700 into the coordinates of the location of the terminal 700 and determines an
uncertainty estimate. Moreover, server 600 determines the grid region (s) of the grid that corresponds to the coordinates and the uncertainty region, (action 622)
Otherwise, server 600 now checks the first database in memory 603 to see whether the determined grid region (s) contains a validity indication for the requested type of data (action 623) . The operation is only continued in case a validity indication for at least one set of data is stored for the determined grid region (s) . Otherwise, an indication may be transmitted to terminal 700 that the requested data type is supported, but not available for the required area, and the operation may be terminated.
If there is a validity indication for several sets of data of the requested type for the determined grid region(s), server 600 select the best suited set of data (action 624) . The best suited set of data could be for instance the set of data having the longest remaining validity time. Alternatively, it could be the set of data that has the most validity indications for grid regions surrounding the determined grid region(s) . Further alternatively, server 600 might simply return the first valid set of data without further considerations.
Server 600 performs a run-length encoding of grid regions corresponding to the applicability area of the selected set of data to obtain an encoded indication of the applicability area (action 625) .
It is to be understood that instead of the entire
applicability area, only a subset of the applicability area may be considered for the run-length encoding. The subset could be limited, for example, to an area of a predetermined or requested size surrounding the location of terminal 700. The subset could also be limited, for example, to one of a plurality of predefined subsets. For instances, server 600 could have a set of data and information about its validity spanning the area of
Europe, while terminal 700 is located in Northern Europe. When assembling data for transmission to terminal 700, server 600 might decide to run-length encode the validity information associated with the area of Northern Europe only (based on the known location of terminal 700), because obviously the validity information associated with Central or Southern Europe would be of limited use for terminal 700.
Server 600 then transmits the set of data along with the encoded indication of the applicability area of the set of data to terminal 700 via network 801 (action 626).
Terminal 700 receives the data and the run-length encoded indication of the applicability area. It decodes the indication and evaluates the indication when using the data, for example in the scope of a satellite signal based positioning, (action 712) The presented embodiment of Figure 12 thus has the effect of enabling an efficient storage, search and transmission of applicability area information.
An exemplary mapping of applicability area information to grid regions (actions 611-613) and an exemplary search for applicability area information (actions 621-624) will now be explained in more detail with reference to Figure 13. Figure 13 is a diagram representing an exemplary grid used in server 600. The grid might cover the whole globe, but for the purposes of illustration only a part of the grid, with latitude values of +61 to +65 degrees and longitude values of +23 to +31 degrees, is shown. The grid size is selected to be one degree in each direction in this example. The term grid region refers to one
"slot" of 1-by-l degrees in the grid; one of the grid regions corresponds thus for example to the area between latitude values of 61° and 62° and between longitude values of 23° and 24°. The grid size could be set to any other value as well. The grid regions could also be asymmetric; that is, they could have different lengths in latitudinal and longitudinal directions . Black dots in Figure 13 denote the applicability area for a first set of data (Dl), and white dots denote the applicability area for a second set of data (D2) . Each dot represents a validity indication for a particular set of data in an area associated to a particular grid region. The sets of data Dl and D2 can be of same data type with differing applicability areas and/or different validity periods, or of different data types. To each region, for which a valid set of data is
available, information is associated which indicates the presence of valid set of data and which possibly
indicates which set of data is valid within the region. The latter information can be provided in particular in case a single grid is used for several sets of data. The information can be provided for instance in the form of a pointer to the set of data, an identifier of the set of data, etc. In an exemplary embodiment, the sets of data Dl and D2 are of different data types, and terminal 700 may request server 600 to provide data of the type of the first set of data Dl. For the purpose of illustration, the
coordinates of terminal 700 at the time of request could be latitude = 61.394704° and longitude = 27.3250469°.
If the applicability area of the set of data Dl was represented as a polygon in server 600, it would take a lot of vertices to code since the applicability area of the set of data Dl is quite complex. Thus, evaluating whether terminal 700 is within the area would be
computationally demanding. The applicability area of the set of data D2 is even more complex and would require a very large number of vertices. Further, in the case of the set of data D2, additional complexity would be introduced due to fact that the applicability area is patchy. Thus in fact two polygons would be required to represent the area, a first polygon for including the entire applicability area and a second polygon for representing the excluded part. So in case terminal 700 requested for data of the type of sets of data Dl and D2 , there would be three polygons to evaluate, which is computationally rather unbearable due to the potentially high load in server 600.
The proposed grid-based representation of the
applicability area, in contrast, enables a particularly easy description of patchy and/or non-convex
applicability areas.
With the proposed grid-based representation of the applicability area in server 600 and an assumed on-degree grid size, for example, server 600 may simply take the integer degrees of the coordinates of terminal 700 to obtain the lower left corner of the grid region in which terminal 700 is located. With the above indicated
exemplary coordinates, the integer degrees are for example floor ( 61.394704 ° ) =61 ° and floor (27.3250469° ) =27 ° , resulting in a lower left corner of (61°, 27°) . As a result, server 600 may immediately deduce that terminal 700 is not within the applicability area of the set of data Dl represented by black dots. However, in case terminal 700 requested data of the type of the second set of data D2, server 600 would have similarly been able to deduce easily that terminal 700 is within the
applicability area of the set of data D2. It is to be understood that the search for a grid region may be varied. For example, instead of rounding the coordinates down to the next integer values it would also be possible to round them up to the next integer values to obtain the upper right corner of the grid region in which terminal 700 is located.
If there is a dedicated grid for each set of data, the grid may simply be a two-dimensional table in memory 603. Each element of the two-dimensional table that represents a grid region, in which the set of data is valid, could contain as "data" a pointer to the set of data or values of the set of data. Instead, the grid as a whole could be linked to the set of data, for instance using some kind of header information of the table. Each element of a two-dimensional table that represents a grid region in which the set of data is valid could then contain as
"data" for example a single-bit value of 'Ι' . In any of these cases, the validity indication for the set of data Dl is simply retrievable by, for example, the C-code command data=Dl[ 61-1] [ 27-1] . If the variable "data" is NULL, the data of the type of set of data Dl is not valid in the grid region with lower left corner (61°, 27°) . If the variable "data" is NOT NULL, the data of type of set of data Dl is valid in the grid region with lower left corner ( 61 ° , 27 ° ) .
Alternatively, information on the applicability area of different sets of data could be included in the same grid D. In this case, server 600 could access the data
associated with a grid region for example with the C-code command data=D[ 61-1] [ 27-1] . With the situation
represented in Figure 13, server 600 might then notice that "data->Dl" is NULL, that is, set of data Dl is not valid in the identified grid region, but "data->D2" is NOT NULL, that is, set of data D2 is valid in the identified grid region.
In certain embodiments, the uncertainty of the provided terminal coordinates may be taken into account in
addition. For example, in case no set of data of the requested type is valid at the location of terminal 700, it could be checked whether an uncertainty area overlaps other grid regions. The uncertainty area could be defined to this purpose for instance in the form of an ellipse or some other geometric form. It could then be checked whether the applicability area of a set of data of the desired type has been mapped to any additionally
determined grid regions. The set of data and/or an indication of the applicability area of the set of data could be transmitted to terminal 700. Such an additional evaluation is rather simple as well, because of the simple indexing scheme as opposed to evaluating whether the uncertainty area intersects with, for example, a polygon defining the applicability area.
The uncertainty of the provided location information for a terminal could also be taken into account in case a set of data of the requested type is valid at the location of terminal 700. For example, sets of data Dl and D2 of Figure 13 could be of the same type and terminal 700 could be located at the coordinates 61.5°/25.5°. In this region, set of data D2 is valid and it is transmitted. However, the terminal location might be known very roughly so that it is known to lie in the circle having 2-degree radius. In such a case terminal 700 might even be located at the coordinates 61.5°/23.5°, in which region only the set of data Dl is valid. Thus, server 600 could provide both sets of data Dl and D2 to terminal 600, in order to be sure that at least one of the sets of data transmitted is indeed valid at the terminal
location. Upon reception, terminal 700 may then decide, whether it uses set of data Dl or set of data D2. It could be possible, for instance, that terminal 700 has obtained more accurate location information by that time, for example by means of a GPS-based positioning, so that the appropriate set of data can be selected easily.
In. a similar manner, terminal 700 might request data not only for the terminal location but for the surroundings as well. For example, terminal 700 might request data that is applicable within a radius of 500 km around the current location of terminal 700. Such a request may be handled similarly as the uncertainty region. Again, due to the presented indexing scheme the desired information can be determined easily.
In another embodiment the sets of data Dl and D2 are of the same data type "D", and terminal 700 could request server 600 to provide a set of data of type "D". With the above indicated exemplary coordinates of terminal 700, server 700 can easily deduce that it must send the set of data Dl represented by white dots to terminal 700. Also in this case, the presented approach is thus particularly efficient.
In case the location of terminal 700 is associated to a grid region, in which both sets of data Dl and D2 are valid (for example at latitude = 64.5° and longitude = 24.5°) and both sets of data are of the same type, another criterion can be used to decide which data to send. Server 600 could check for example, whether the data sets Dl and D2 are valid also in adjacent grid regions and select the set of data that is valid in most adjacent grid regions, etc. Another criterion could be, for instance, the applicability period of the sets of data. Alternatively, server 600 could provide both sets of data and respectively associated coded applicability area information to terminal 700 and let terminal 700 decide which set of data should be used.
Sets of data of the same type with different validity times might be available, for example, if a data provider is providing updated data to server 600 at regular intervals or whenever available. As a result, set of data Dl could have for example a validity period from 00:00 to 02:00 UTC and set of data D2 could have a validity period from 01:00 to 03:00 UTC. If terminal 700 reguested data "D" at 01:15 UTC, both sets of data Dl and D2 would be valid time-wise. In case the location of terminal 700 corresponds to a grid region, in which only one of the sets of data Dl or D2 is valid, then server 600 may provide this set of data to terminal 600. In case the location of terminal 700 corresponds to a grid region, in which both sets of data Dl and D2 are valid, server 600 may decide to provide terminal 700 with the set of data having a longer remaining lifetime, that is, set of data D2. When the current time passes 02:00 UTC, the
information on the first set of data Dl may be deleted from all databases in memory 603f and no such decisions needs to be made anymore until information on a new set of data is added. Thus, the grid-based approach for storing the data in a server is very powerful even in cases of overlapping validity periods or when there is updated data with a modified applicability area. It has to be noted that the efficiency of the presented search approach is basically independent of the grid size. Although a denser grid requires storing information for more grid regions in server 600, this increase in the database storage requirements is rather negligible. Since the same grid can moreover be used for various data types or for different instances of the same data type, the grid approach is very efficient storage-wise. Also accessing data located at any given element of such a two-dimensional array is very efficient.
Carrying the determined applicability area information from server 600 to terminal 700 may be based on run- length encoding. Run-length encoding is an efficient method to encode area information.
An exemplary run-length encoding for the transmission of applicability area information (actions 625-626) will now be explained in more detail with reference to Figure 14.
Figure 14 is again a diagram representing a part of an exemplary a grid in server 600. The depicted part of the grid comprises latitude values of -14° to -18° and longitude values of +83° to +91°. The grid size is selected again by way of example to be one degree in each direction .
Run-length encoding of an area may use a "Region Size", a "Corner Point" of a region for an area, the "Width" of the area in terms of regions, and the run-length encoded area .
The parameter "Region Size" defines the size of one region in the grid. The grid regions are the building elements of the area definition. In the case of square regions (in degree space) as in the example of Figure 14, a single parameter may be used for defining the region size. However, the scaling could be different in
different directions. Additional parameters could then be used to independently express the dimensions of the grid region. Still another set of parameters could be used to define the region size of regions having another form than a rectangle form, for instance a triangle form, etc. Obviously the "Region Size" is only required if variable sizes are to be supported.
A parameter "Region Size In Degrees" can, for instance, be coded by setting
Region_Size__in__degrees = 10 / Region__Size .
This means that by using 1 byte for Region_Size [ 1, 255] (zero not allowed), it is possible to represent a region size range of (0.0392, 10] degrees covering from 4.4 km to 1113 km.
A parameter "Corner Point" for an area is needed, if only a variable subset of the whole grid is to be transferred from server 600 to terminal 700. The corner point defines in this case some starting point of the subset of the grid. The corner point could be for example the lower left corner of the grid region in the very North-West of the subset. In Figure 14, this point is referred to as "North- est Corner" and has the coordinates (-15°, 83°) . Alternatively, any other location information for the subset could be defined. The subset could be for instance a rectangle covering exactly the grid regions to which the applicability area is mapped. The area to be described could be fixed in the global coordinate system by expressing the coordinates of the north-west corner of the applicability area coded using the Region_Size_in___degrees attribute as follows:
North-West corner latitude in degrees
Region__Size__in__degrees * Coded NW Latitude
North-West corner longitude in degrees
Region_Size_in_degrees * Coded NW Longitude
degrees
And thus : Coded NW Latitude = floor ( (North-West corner latitude in degrees + 90 degrees ) /
Region_Size_in_degrees)
Coded NW Longitude = floor ( (North-West corner longitude in degrees + 180 degrees ) /
Region___Size_in__degrees)
The North-West corner latitude in degrees could be expressed in a range of [ -90, 90) degrees and the North- West corner longitude could be expressed in a range of [ · 180, 180) degrees. This means that 2 bytes are required for the coded latitude and longitude values: the maximum coded longitude value resulting with the minimum grid size of 0.0392 degrees is equal to (180+180) / 0.0392 = 9180. In practice, the value would be 9179, since the range of longitudes does not go exactly up to 180 degrees, because with the above definition of the corner point, the corner point will never lie at coordinates having a longitude of 180 degrees. Likewise, the maximum coded latitude value is equal to ( 90+90 ) /0.0392 = 4590. In practice, the values go up to 4589, because the corner point will never lie at coordinates having a latitude of 90 degrees. It has to be noted that these ranges depend upon the minimum size of the grid region and are
indicated as an example only.
A parameter "Width" of the area in terms of regions indicates how many regions fit into the subset: Area_Width = ceil ( Areas Width in degrees /
Region___Size in degrees )
In principle, the area width parameter might require the range [ 1, 9180] to present a range from 0.0392 to 360 degrees using the smallest possible region size of 0.0392 degrees derived earlier. Thus, this parameter requires 2 bytes. The area width in degrees of 8° is indicated as well in Figure 14. It has to be noted that the area width could also be set to a predetermined value, either in general or for particular situations.
In the example of Figure 14, the region size in the transfer is 1 degree. The above introduced equations can be used for determining the coded Region_Size, the coded North-West Corner coordinates and the coded Area_Width :
Region__Size = 10 / region__size___in__degrees = 10 / 1 =
10
Coded NW Latitude = floor ( (North-West corner latitude in degrees + 90 degrees ) /
Region_Size__in_degrees)
= floor ( (-15 + 90) /I ) = 75
Coded NW Longitude = floor ( (North-West corner longitude in degrees + 180 degrees ) /
Region_Size_in__degrees) = floor ( (83+180) /l ) = 263
Area__Width = ceil ( Areas Width in degrees /
Region__Size__in_degrees ) = ceil (8/1) = 8 The four determined parameters are transmitted by server 600 to terminal 700. With these parameters it will be known at terminal 700 where the applicability area is located (corner) , and the width of the area is further known in terms of grid regions. The parameter Region__Size is simply an auxiliary parameter in the transfer.
The final part provided in the run-length encoding, the run-length encoded area, is used to describe in which regions the provided set of data is valid. The run-length encoded area is represented in the form of a list, and the principle of generating this list is illustrated in Figure 14. It has to be noted again that in Figure 14 only a subset of the grid in server 600 is shown for simplicity, and the white dots in the presented part of the grid represent the applicability area of a set of data that is to be transferred.
In Figure 14, the dashed lines show the order, in which the applicability area will be described, namely row-by- row always from left to right and starting from the left upper grid region. It is to be understood that another order, for example a reversed order, could be defined to be used just the same. The applicability area may then be described by a list, which alternately indicates the number of all subseguent regions (in the defined order), in which a set of data is valid / non-valid.
The run-length encoded list may always begin with the number of regions for which the set of data is not valid. Therefore, in the presented example the first element in the list is "1", since the set of data is not valid only for the first grid region. In case the first region would be valid, the first element in the list would be "0". It is to be understood that in an alternative embodiment, the run-length encoded list could always begin with the number of regions for which the data is valid.
Next, there are five regions for which the set of data is valid. Hence, the second element is "5". Next, there are four regions for which the set of data is not valid. Thus the next element is "4". After this there are nine regions for which the set of data is valid and the next element is " 9" .
The full run-length encoded list, therefore, is:
1 ; 5 ; 4 ; 9 ; 1 ; 3 ; 2 ; 6 ; 1. This list is equally transmitted by server 600 to
terminal 700. Knowing the width of the area in terms of regions allows changing the line at the correct place at terminal 700 when decoding the list. In an exemplary embodiment, a 1-byte [ 0, 255] field could be used for each item in the list. Each item could then represent any number between 1 and 255 of subsequent regions for which data is valid or non-valid,
respectively. In case there are more than 255 subsequent regions for which data is valid or non-valid, this could be presented by a sequence of three items "255 ; 0 ; x", denoting that there are 255+x regions for which data is valid or non-valid, respectively. Furthermore, in case the applicability area has been mapped to all grid regions within the selected area, this could be indicated in an exemplary embodiment by omitting the run-length encoded list.
In an exemplary embodiment, including information on a region size and on a corner point could be mandatory, while including information on an area width and a run- length encoded list could be optional. In such an
embodiment, it could be checked whether it is only required to carry information that some data is valid within a box of predefined size, for example within a box corresponding to one grid region. Such information could be carried very efficiently by omitting information on area width and a run-length encoded list. To this end, it could be defined that in case information on the area width is absent, the area width corresponds for example to 'one region', and that in case the run-length encoded list is absent, this means that some data is valid in all the regions of a box. Thus, a receiving end receiving only information on a region size and on a corner point will know that the data is valid within the box defined by region size and corner point. The region size of the grid represented in a database in memory 603 of server 600 and the region size carried over the protocol for the transmission to terminal 700 may be independent of each other. Thus, in case server 600 utilizes 0.5-degree grid, the protocol could utilize for instance a 5-degree region size, if desired.
The efficiency of the proposed approach will now be presented for the example of the applicability area represented by the black dots in figure 13. The relevant applicability area can be reduced to a width of five regions, since the black dots appear only for longitude values between 23° and 28°.
Carrying the applicability area information as a polygon would require carrying four vertices. Assuming 4 bytes for latitude and 4 bytes for longitude means that 8 bytes are required per vertex; four vertices would thus result in 32 bytes .
Carrying the same applicability area information using the proposed run-length encoding in contrast requires only a total of 13 bytes, as can be seen from the
following table:
Figure imgf000044_0001
The above table is based on the assumption that 1-byte and 2-byte data fields are used. When considering exact bit counts instead, the data consumption would be even lower. Coded latitude and longitude of the corner point, for example, would then only require 13-bit and 14-bit fields, respectively.
The embodiments presented with reference to figures 13 and 14 only considered a transfer of information
indicating whether a set of data is valid or invalid in certain regions. However, the approach can be extended to the transmission of any discrete-area-dependent (i.e. region-based) discrete data (i.e. data that can be presented for example by integers) . Such an extension will now be described with reference to Figure 15 .
As an example consider an ionosphere (geomagnetic) storm over Europe that adversely affects a satellite signal based positioning. There are alternative ways to deal with such conditions. One is to try to
physically/statistically model the ionosphere delay under the storm conditions and to provide such models as GNSS assistance data to mobile devices. Such models allow for compensating the ionosphere delay from the GNSS
measurements. However, the dynamics of the storm may be so high (storm area moves rapidly and the delays
fluctuate rapidly) that it is not possible to model the delays. In this case, compensation via the models is not feasible. However, it may still be possible to model and estimate the areas affected by the storm roughly.
Figure 15 is again a diagram representing an exemplary grid in server 600. The grid might cover the whole globe, but for the purposes of illustration only a part of the grid, with latitude values of +30° to +70° and longitude values of -20° to +40°, is shown. The grid size is selected to be ten degree in each direction in this example. For each grid region, a tag is shown. The tags represent a storm situation over Europe The tags refer to National Oceanic and Atmospheric
Administration (NOAA) Geomagnetic Storm indices. Tag G5 represents an "extreme" storm, tag G4 represents a
"severe" storm and G3 represents a "strong" storm. Tag Gl representing a "minor" storm and tag G2 representing a "moderate" storm do not appear in the area. Storms represented by tags G3-G5 affect satellite navigation. Storms represented by tags Gl and G2 have negligible effect on satellite navigation. Figure 15 shows also an additional tag GO, which refers to a "region not being affected at all". Moreover, a tag "unknown" refers to a condition, in which the information on the geomagnetic conditions is not available for a given grid region. A run-length encoded list RLElist of the storm map of Figure 15 could now be determined to be, in Abstract Syntax Notation One (ASN.l) coding,
RLElist ::= SEQUENCE (1...65535) OF RLEelement
RLEelement ::= SEQUENCE {
Count INTEGER(0..255) ,
Type ENUMERATED {GO, Gl, G2, G3, G4, G5, unknown} }
In the RLEelement the field "Type" defines how the grid region is affected in the NOAA scale. In addition to GIGS scale, GO has been added to code that an "area is not affected" .
Thus, the resulting run-length encoded list for the subset of the grid depicted in Figure 15 would be:
{1,G3} ; {4rG4} ; {2,unknown} ; {1,G4} ; {2,G5j ; { 1 , G4 } ; {2,G3} ; {1,G4} ; {1,G5} ; {6,G4} ; {2,G3} ; {2, GO}
In this list, the respective first number indicates the number of subsequent tags of the same type and the respective second number indicates the tag. The subset of the grid is scanned to this end in the same order as indicated' in Figure 14.
It is to be understood that the full definition for the run-length encoding requires in addition to the RLElist the definition of the considered subset of the grid as well as the region size as described above with reference to Figure 14. In the example of Figure 15, the North-West corner would be { 60°, -20°} and the region size would be coded as the value "1" to indicate the ΙΟχΙΟ-degree grid. The area width in terms of regions would be "6" in the example of Figure 15.
In the case of such geomagnetic storm indications, the applicability time for the warning should be indicated too. This could be achieved with an indication that the storm map is valid for example from 12:00 UTC to 13:00 UTC. It would also be possible to provide the information on several successive maps to terminal 700, as illustrated in Fig 16.
The partial grid on the left hand side represents a storm map for 12:00-13:00 UTC; it is identical to the partial grid of Figure 15. The partial grid on the right hand side of Figure 16 represents the storm map for 13:00- 14:00 UTC. It is similar to the partial grid of Figure 15, but comprises different tags. The individual run- length encoded lists could then be given by
{lrG3} ; {4 ,G4 } ; {2.unknown) ; {l,G4j ; {2 rG5 } ; {lrG4} ; {2,G3} ; {1,G4} ; {l,G5j ; { 6, G4 } ; {2,G3} ; {2, GO] for the time of 12:00-13.00 UTC, and by
{3rG5} ; {1,G4} ; {2rG2} ; {2fG5} ; {2rG4} ; {2rG3} ; {3,G4} ; {6fG3} ; {3,G1} for the time of 13:00-14.00 UTC.
This type of information may not enable terminal 700 to compensate for the delays, but terminal 700 is made aware of the prevailing conditions and might alarm the user via user interface 704 that the position accuracy at the current location (corresponding to a particular grid region) may be worse than usually due to geomagnetic storm. The various G-values could be used such that in the case of a tag of G5 the position accuracy is
indicated to be "seriously compromised", in case of a tag of G4 the position is indicated to be "somewhat
compromised" and in the case of a tag of G3 the position accuracy is indicated to be "slightly compromised". The user might even be notified that there might be Auroras in the night sky due to the storm.
The NOAA G-scale is obviously not the only type of information that could be provided to terminal 700. The following summarizes a few possible exemplary data types that could be carried for similar purposes, that is, for notifying a terminal about ionosphere conditions:
A first type of data is the NOAA storm indication with enumeration types (Gl, G2, G3, G4 and G5 + GO and unknown), which has been presented above. NOAA
geomagnetic storm indices G3 to G5 affect satellite navigation .
A second type of data is a NOAA radio blackout with enumeration types (R4 and R5 + RO and unknown) . NOAA radio blackout indices R4 and R5 affect satellite navigation. In severe storm conditions, the ionosphere might not pass through satellite navigation signals at all .
A third type of data is the vertical total electron content (VTEC) with exemplary enumeration types {<50, 50 to 100, 100 to 150, 150 to 200, >200, unknown} . VTEC directly indicates the amount of the ionosphere delay. VTEC is expressed in terms of TECUs (TEC Units) . One TEC Unit corresponds to an electron density of 106 eVm2 corresponding to 0.16-meter delay at GPS LI frequency. Note that in order to find out how a given VTEC value affects the satellite signal, the VTEC in the given ionosphere pierce point (i.e. the point where the satellite signal penetrates the ionosphere) must be mapped to a Slant TEC value according to equation
Figure imgf000049_0001
where RE is the Earth Radius and hM the height of the maximum electron density in the ionosphere (400-500 km typically) . ε is the elevation of the space vehicle (SV) from the horizon. It can be seen that with ε = 90° and cos ( £ ) =0 , TEC=VTEC as it should be. Currently, almost real-time global VTEC data is available. This could be provided to a terminal as assistance data so that the terminal is aware of the prevailing ionosphere conditions in the region the terminal is in, and it can deduce, for example, that the satellite signals coming from a certain direction are most likely more severely delayed than from some other direction.
A fourth type of data is the k-index with enumeration types { kO, kl, k2, k3 , k4, k5, k6 , k7 , k8, k9 , unknown} . The k-index is a measure of geomagnetic activity.
Typically, k-indices are deduced retrospectively - that is, the behavior of the geomagnetic field is observed in 3-hour periods after which a respective k-value is deduced, k-values of 5 or greater indicate geomagnetic storms . k-indices are determined at various locations using magnetometers. The planetary k-index kP is the weighted average of these various local k-values.
Although the k-index is meant to be deduced in postprocessing (after each 3-hour period) , in principle it is also possible to evaluate the index in real time. This kind of real-time estimated local k-index data could also be provided to terminals so that they can estimate the level of geomagnetic/ionosphere activity.
Summarized, certain embodiments of the invention provide that applicability area information for a set of data is coded in a grid in a server. This may have the effect of enabling a particularly simple storage scheme at the server. Further, it may have the effect of enabling a particularly efficient lookup of sets of data that are applicable in a limited area. Other embodiments of the invention provide that applicability area information is coded using run-length encoding when transmitting the applicability area information for a set of data. This may have the effect of providing a very efficient transfer scheme even for complex-shaped applicability areas .
Figures 2, 4, 6, 8, 10 and 12 may also be understood to represent exemplary functional blocks of computer program codes for handling a grid based representation of an applicability area of a set of data.
Any presented connection in the described embodiments is to be understood in a way that the involved components are operationally coupled. Thus, the connections can be direct or indirect with any number or combination of intervening elements, and there may be merely a
functional relationship between the components. Further, as used in this text, the term ''circuitry' refers to any of the following:
(a) hardware-only circuit implementations (such as implementations in only analog and/or digital circuitry)
(b) combinations of circuits and software (and/or
firmware), such as: (i) to a combination of processor (s) or (ii) to portions of processor ( s ) / software (including digital signal processor ( s ) ) , software, and memory(ies) that work together to cause an apparatus, such as a mobile phone, to perform various functions) and
(c) to circuits, such as a microprocessor ( s ) or a portion of a microprocessor ( s ) , that require software or firmware for operation, even if the software or firmware is not physically present. This definition of ^circuitry' applies to all uses of this term in this text, including in any claims. As a further example, as used in this text, the term
^circuitry' also covers an implementation of merely a processor (or multiple processors) or portion of a processor and its (or their) accompanying software and/or firmware. The term ^circuitry' also covers, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone.
Any of the processors mentioned in this text could be a processor of any suitable type. Any processor may
comprise but is not limited to one or more
microprocessors, one or more processor (s) with
accompanying digital signal processor ( s ) , one or more processor (s) without accompanying digital signal
processor ( s ) , one or more special-purpose computer chips, one or more field-programmable gate arrays (FPGAS), one or more controllers, one or more application-specific integrated circuits (ASICS), or one or more computer(s). The relevant structure/hardware has been programmed in such a way to carry out the described function.
Any of the memories mentioned in this text could be implemented as a single memory or as a combination of a plurality of distinct memories, and may comprise for example a read-only memory, a random access memory, a flash memory or a hard disc drive memory etc. Moreover, any of the actions described or illustrated herein may be implemented using executable instructions in a general-purpose or special-purpose processor and stored on a computer-readable storage medium (e.g., disk, memory, or the like) to be executed by such a processor. References to x computer-readable storage medium' should be understood to encompass specialized circuits such as FPGAs, ASICs, signal processing devices, and other devices .
The functions illustrated by processor 601 in combination with memory 602 or the circuitry 609 can be viewed as means for receiving a set of data that is applicable in a particular applicability area; and means for causing a storage of a mapping of the particular applicability area to grid regions of a grid. The functions illustrated by processor 701 in combination with memory 702 or the circuitry 709 can be viewed as means for generating a request for data that is applicable at a location of a terminal, means for causing a transmission of the request, means for receiving a set of data along with an indication of grid regions of a grid to which an
applicability area of the set of data has been mapped, and means for evaluating the indication of grid regions when using the received set of data.
The program codes in memory 602 or memory 702,
respectively, can also be viewed as comprising such means in the form of functional modules.
It will be understood that all presented embodiments are only exemplary, and that any feature presented for a particular exemplary embodiment may be used with any aspect of the invention on its own or in combination with any feature presented for the same or another particular exemplary embodiment and/or in combination with any other feature not mentioned. It will further be understood that any feature presented for an exemplary embodiment in a particular category may also be used in a corresponding manner in an exemplary embodiment of any other category.

Claims

What is claimed is:
A method comprising at a server:
run-length encoding grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area; and
causing a transmission of the encoded information about the applicability area.
The method according to claim 1, wherein the run- length encoding comprises determining at least one of the following pieces of information:
an indication of a size of the grid regions of the grid;
a location indication for a subset of the grid; an indication of a width of a subset of the grid; run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid; and
run-length encoded data values that are associated to grid regions to which the applicability area has been mapped;
and wherein causing a transmission of the encoded information about the applicability area comprises causing a transmission of the determined pieces of information .
The method according to one of the preceding claims, wherein the grid is provided for at least one of:
a single set of data;
different sets of data of a same type; different sets of data of different types;
a single validity period;
different validity periods;
a single applicability area; and
different applicability areas.
The method according to one of the preceding claims, comprising as a preceding action:
receiving a set of data that is applicable in a particular applicability area; and
causing a storage of a mapping of the particular applicability area to grid regions of a grid.
The method according to one of the preceding claims, further comprising selecting the set of data by: receiving a request for data that is applicable a location of a terminal;
associating the location of the terminal to at least one grid region of a grid;
determining whether the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped; and
when this is the case, selecting the set of data
The method according to claim 5, wherein when the at least one grid region to which the location of the terminal is associated has been mapped to different sets of data, further comprising selecting one of: the set of data having the longest remaining validity time;
the set of data that has been mapped to the largest number of grid regions surrounding the at least one grid region to which the location of the terminal is associated;
the first set of data for which it is determined that the at least one grid region, to which the location of the terminal is associated, belongs to grid regions of the grid to which the applicability area of the set of data has been mapped; and
each of the different sets of data.
The method according to one of the preceding claims, wherein the set of data comprises assistance data for a satellite signal based positioning.
An apparatus comprising means for realizing the actions of any of claims 1 to 7.
The apparatus according to claim 8, wherein the apparatus is one of:
a chip; and
a server.
An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause a server at least to perform:
run-length encode grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area; and
cause a transmission of the encoded information about the applicability area. The apparatus according to claim 10, wherein the run- length encoding comprises determining at least one of the following pieces of information:
an indication of a size of the grid regions of the grid;
a location indication for a subset of the grid; an indication of a width of a subset of the grid; run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid; and
run-length encoded data values that are associated to grid regions to which the applicability area has been mapped;
and wherein causing a transmission of the encoded information about the applicability area comprises causing a transmission of the determined pieces of information .
The apparatus according to claim 10 or 11, wherein the grid is provided for at least one of:
a single set of data;
different sets of data of a same type;
different sets of data of different types;
a single validity period;
different validity periods;
a single applicability area; and
different applicability areas.
The apparatus according to one of claims 10 to 12, wherein the at least one memory and the computer program code configured to, with the at least one processor, further cause the server in a preceding action to: receive a set of data that is applicable in a particular applicability area; and
cause a storage of a mapping of the particular applicability area to grid regions of a grid.
The apparatus according to one of claims 10 to 13, wherein the at least one memory and the computer program code configured to, with the at least one processor, further cause the server to select the set of data by:
receive a request for data that is applicable at a location of a terminal;
associate the location of the terminal to at least one grid region of a grid;
determine whether the at least one grid region to which the location of the terminal is associated belongs to grid regions of the grid to which an applicability area of a set of data has been mapped; and
when this is the case, select the set of data.
The apparatus according to claim 14, wherein when the at least one grid region to which the location of the terminal is associated has been mapped to different sets of data, the at least one memory and the
computer program code configured to, with the at least one processor, further cause the server to select one of:
the set of data having the longest remaining validity time;
the set of data that has been mapped to the largest number of grid regions surrounding the at least one grid region to which the location of the terminal is associated; the first set of data for which it is determined that the at least one grid region, to which the location of the terminal is associated, belongs to grid regions of the grid to which the applicability area of the set of data has been mapped; and
each of the different sets of data.
16. The apparatus according to one of claims 10 to 15, wherein the set of data comprises assistance data for a satellite signal based positioning.
17. The apparatus according to one of claims 10 to 16, wherein the apparatus is one of:
a chip; and
a server.
A computer program code, the computer program code when executed by a processor causing a server to perform the actions of the method of any of claims to 7.
A computer readable storage medium in which computer program code is stored, the computer program code when executed by a processor causing a server to perform the following:
run-length encoding grid regions of a grid, to which an applicability area of a set of data has been mapped, to obtain encoded information about the applicability area; and
causing a transmission of the encoded information about the applicability area.
A method comprising at an apparatus receiving from a server encoded information about an applicability area of a set of data, wherein the encoded information has been obtained by run-length encoding grid regions of a grid, to which the
applicability area has been mapped;
run-length decoding the grid regions based on the encoded information about the applicability area; and evaluating the decoded grid regions when using the set of data.
The method according to claim 20, wherein the encoded information about the applicability area comprises at least one of the following pieces of information:
an indication of a size of the grid regions of the grid;
a location indication for a subset of the grid; an indication of a width of a subset of the grid; run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid; and
run-length encoded data values that are associated to grid regions to which the applicability area has been mapped.
An apparatus comprising means for realizing the actions of the method of one of claims 20 and 21.
The apparatus according to claim 22, wherein the apparatus is one of:
a chip; and
a terminal .
An apparatus comprising at least one processor and at least one memory including computer program code, the at least one memory and the computer program code configured to, with the at least one processor, cause the apparatus at least to perform:
receive from a server encoded information about an applicability area of a set of data, wherein the encoded information has been obtained by run-length encoding grid regions of a grid, to which the
applicability area has been mapped;
run-length decode the grid regions based on the encoded information about the applicability area; and evaluate the decoded grid regions when using the set of data.
The apparatus according to claim 24, wherein the information on run-length encoded grid regions comprises at least one of the following pieces of information :
an indication of a size of the grid regions of the grid;
a location indication for a subset of the grid; an indication of a width of a subset of the grid; run-length encoded information on the grid regions to which the applicability area has been mapped at least in a subset of the grid; and
run-length encoded data values that are associated to grid regions to which the applicability area has been mapped.
The apparatus according to claim 24 or 25, wherein the apparatus is one of:
a chip; and
a terminal.
27. A computer program code, the computer program code when executed by a processor causing an apparatus to perform the actions of the method of claim 20 or 21. 28. A computer readable storage medium in which computer program code is stored, the computer program code when executed by a processor causing an apparatus to perform the following:
receiving from a server encoded information about an applicability area of a set of data, wherein the encoded information has been obtained by run-length encoding grid regions of a grid, to which the
applicability area has been mapped;
run-length decoding the grid regions based on the encoded information about the applicability area; and evaluating the decoded grid regions when using the set of data.
29. A system comprising an apparatus according to one of claims 8 to 17 and an apparatus configured to receive and process the encoded information about the
applicability area.
PCT/IB2010/052518 2010-06-07 2010-06-07 Handling data with limited applicability area WO2011154769A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/052518 WO2011154769A1 (en) 2010-06-07 2010-06-07 Handling data with limited applicability area

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/IB2010/052518 WO2011154769A1 (en) 2010-06-07 2010-06-07 Handling data with limited applicability area

Publications (1)

Publication Number Publication Date
WO2011154769A1 true WO2011154769A1 (en) 2011-12-15

Family

ID=45097582

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IB2010/052518 WO2011154769A1 (en) 2010-06-07 2010-06-07 Handling data with limited applicability area

Country Status (1)

Country Link
WO (1) WO2011154769A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015034888A1 (en) * 2013-09-03 2015-03-12 Agco Corporation Automatic connection to gnss data sources
US9319065B2 (en) 2012-03-15 2016-04-19 Nokia Technologies Oy Encoding and decoding of data
US9462413B2 (en) 2014-03-14 2016-10-04 Qualcomm Incorporated Methods and apparatuses for user-based positioning and assistance data
CN116027357A (en) * 2023-03-30 2023-04-28 武汉大学 Grid correction method, device, equipment and storage medium based on atmosphere and terrain

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0987823A2 (en) * 1998-09-17 2000-03-22 Navigation Technologies Corporation Method and system for compressing geographic data
EP1662837A2 (en) * 2002-01-25 2006-05-31 Qualcomm Incorporated Method and system for storage and fast retrieval of digital terrain model elevations for use in positioning systems
US20090160703A1 (en) * 2005-09-05 2009-06-25 Peter James Duffett-Smith Assistance to a mobile sps receiver

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0987823A2 (en) * 1998-09-17 2000-03-22 Navigation Technologies Corporation Method and system for compressing geographic data
EP1662837A2 (en) * 2002-01-25 2006-05-31 Qualcomm Incorporated Method and system for storage and fast retrieval of digital terrain model elevations for use in positioning systems
US20090160703A1 (en) * 2005-09-05 2009-06-25 Peter James Duffett-Smith Assistance to a mobile sps receiver

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
THOMSON, M: "Global Navigation Satellite System (GNSS) Reference Information Protocol", 5 March 2010 (2010-03-05), Retrieved from the Internet <URL:http://tools.ietf.org/html/draft-thomson-geopriv-grip-01> [retrieved on 20110315] *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319065B2 (en) 2012-03-15 2016-04-19 Nokia Technologies Oy Encoding and decoding of data
WO2015034888A1 (en) * 2013-09-03 2015-03-12 Agco Corporation Automatic connection to gnss data sources
US9462413B2 (en) 2014-03-14 2016-10-04 Qualcomm Incorporated Methods and apparatuses for user-based positioning and assistance data
CN116027357A (en) * 2023-03-30 2023-04-28 武汉大学 Grid correction method, device, equipment and storage medium based on atmosphere and terrain

Similar Documents

Publication Publication Date Title
AU2004232832B2 (en) Correction of troposphere induced errors in global positioning systems
EP2046084B1 (en) Geographic tagging of network access points
US7664764B2 (en) Method and system for storage and fast retrieval of digital terrain model elevations for use in positioning systems
US6212392B1 (en) Method for determining if the location of a wireless communication device is within a specified area
US8660793B2 (en) Expediting reverse geocoding with a bounding region
CN1218191C (en) Method and system for using altitude information in satellite positioning system
US20150133167A1 (en) Techniques for efficient rf heat map representation
US10382890B1 (en) Cacheable geographic pages
CN105373559A (en) Geographic information acquisition method and geographic information acquisition system
CN103858495B (en) For the method and arrangement positioned in a wireless communication system
JP6684821B2 (en) Automotive Ad Hoc Real Time Kinematic Roving Network
JP2006109355A (en) Mobile communication terminal and location information utilizing method
WO2011154769A1 (en) Handling data with limited applicability area
CN117580054A (en) NTN cell construction method, device, equipment and medium based on use demand data
US7019693B2 (en) Estimating altitude of a communications device
CN113115254B (en) Unmanned aerial vehicle positioning method and server
US20150038175A1 (en) Automatic Location Address Translation and Less Accurate Location Technology Address to More Accurate Location Technology Address Translation
JP2018004434A (en) Positioning processing system, method, computer program, server device and user terminal
CN111050284A (en) Position saving and obtaining method and device based on emergency call
CN106643755A (en) Navigation map generation method based on closed region plane graph
KR20100127941A (en) Method and system for providing location information of communication terminal in network
KR20240046793A (en) Positioning method and apparatus, and device and storage medium
CN116224394A (en) Positioning updating method and device, electronic equipment and storage medium
CN113465571A (en) Antenna engineering parameter measuring method and device, electronic equipment and medium
JPWO2020090510A1 (en) Information processing equipment and methods, and programs

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10852807

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10852807

Country of ref document: EP

Kind code of ref document: A1