Estimating number of floors and floor labels in structure
By generating and leveraging the altitude envelope distribution of buildings, the challenge of determining the altitude of mobile devices in urban environments is solved, achieving accurate floor estimation and improving emergency response efficiency.
Patent Information
- Application Number
- CN202380056798.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-05-26
- Filing Date
- 2023-05-24
- Publication Date
- 2025-03-11
AI Technical Summary
In urban environments, especially within buildings, determining the exact elevation of a mobile device is challenging, resulting in delayed emergency response time or user-oriented error areas.
By selecting a constraint set of altitude envelope distribution for physical buildings, an elevation envelope distribution set is generated and using these distributions to determine the total elevation envelope distribution and absolute total elevation envelope distribution, thereby estimating the floor indicators of the building such as the number of floors and floor labels.
It realizes accurate estimation of building floor information without relying on expensive survey operations, improving the efficiency and accuracy of emergency response.
Smart Images

Figure CN119604743A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims priority to U.S. Provisional Patent Application No. 63 / 365,357, filed on May 26, 2022, the entire contents of which are incorporated herein by reference in their entirety for all purposes. Background Art
[0003] Determining the exact location of a mobile device (e.g., a smartphone operated by a user) within the environment can be quite challenging, especially when the mobile device is located in an urban environment where the location may exist above the terrain (e.g., within a building). An inaccurate estimate of the altitude of the mobile device can have life-or-death consequences for the user of the mobile device, as an inaccurate altitude estimate can delay emergency personnel response time as emergency personnel search for the user on multiple floors of a building. In less dire situations, an inaccurate altitude estimate can lead the user to the wrong area of the environment.
[0004] In practice, the estimated altitude of a mobile device is usually provided or shown relative to a reference frame. Typically, the altitude relative to the surface of the Earth is the height above the ellipsoid (HAE) or the height above the mean sea level (AMSL). However, these values may not be useful to end users because it assumes that the user can interpret the altitude value, which may or may not be intuitive.
[0005] Other methods of reporting elevation include: i) height above sea level, which is considered to be mean sea level and is determined by using the geoid (a model of the global mean sea level used to measure precise surface heights); ii) height above terrain (HAT) determined using a terrain database; and iii) number of floors, which is often most useful to the user, especially when inside a structure.
[0006] While the first two methods are readily available from geoid and terrain databases, respectively, the third method is not easily available because it relies on extensive and detailed building floor level databases that may have been constructed using time-consuming and expensive survey operations. Summary of the invention
[0007] In some embodiments, a method involves selecting an altitude envelope distribution constraint set for a physical building. Generating an altitude envelope distribution set for the physical building according to the altitude envelope distribution constraint set, each altitude envelope distribution including one or more first altitude envelopes, and each of the first altitude envelopes corresponding to a respective estimated number of floors of the physical building. Generating an aggregate altitude envelope distribution for the physical building using the altitude envelope distribution set and according to the altitude envelope distribution constraint set, the aggregate altitude envelope distribution including one or more second altitude envelopes, each of the one or more second altitude envelopes corresponding to a respective estimated number of floors of the physical building. Determining a reference altitude of the physical building, and determining an absolute aggregate altitude envelope distribution using the reference altitude and the aggregate altitude envelope distribution, the aggregate altitude envelope distribution including one or more third altitude envelopes, each of the third altitude envelopes corresponding to a respective estimated number of floors of the physical building.
[0008] In some embodiments, the system includes one or more servers operable to select an altitude envelope distribution constraint set for a physical building and generate an altitude envelope distribution set for the physical building according to the altitude envelope distribution constraint set. Each altitude envelope distribution includes one or more first altitude envelopes, each of the first altitude envelopes corresponding to a corresponding estimated number of floors of the physical building. A total altitude envelope distribution for the physical building is generated using the altitude envelope distribution set and according to the altitude envelope distribution constraint set, the total altitude envelope distribution including one or more second altitude envelopes, each of the one or more second altitude envelopes corresponding to a corresponding estimated number of floors of the physical building. A reference altitude of the physical building is determined, and an absolute total altitude envelope distribution is determined using the reference altitude and the total altitude envelope distribution, the total altitude envelope distribution including one or more third altitude envelopes, each of the one or more third altitude envelopes corresponding to a corresponding estimated number of floors of the physical building. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] Figure 1 A simplified operating environment for estimating a building floor number and / or floor label of a mobile device is shown in accordance with some embodiments.
[0010] Figure 2 According to some embodiments, Figure 1 Simplified example of a building model corresponding to the physical building in .
[0011] Figure 3 A table showing example altitude envelope ranges according to some implementations.
[0012] Figure 4A table showing example distributions of altitude envelope ranges according to some implementations.
[0013] Figure 5 A table showing example total altitude envelope values according to some implementations.
[0014] Figures 6 to 13 Shown is a graphical representation of an example total altitude envelope distribution in accordance with some implementations.
[0015] Fig.14 A simplified example of a portion of a process for determining a total altitude distribution is shown in accordance with some implementations.
[0016] Fig.15 is a simplified example of a portion of a process for estimating the number of floors of a building based on an estimated altitude, according to some implementations.
[0017] Fig.16 Shown is a graphical representation of an example absolute total altitude envelope distribution in accordance with some implementations.
[0018] Fig.17 A simplified example of a portion of a process for estimating the number of floors of a building based on an estimated altitude, according to some embodiments, is included.
[0019] Fig.18 Shown is a graphical representation of an example absolute total altitude envelope distribution in accordance with some implementations.
[0020] Fig.19 A simplified example of a portion of a process for estimating the number of floors of a building based on an estimated altitude, according to some embodiments, is included.
[0021] Fig. 20 Shown is a graphical representation of an example absolute total altitude envelope distribution in accordance with some implementations.
[0022] Fig.21 Included is a simplified example of a portion of a process for mapping floor numbers to floor labels in accordance with some implementations.
[0023] Fig. 22 A simplified example of a portion of a process for estimating the number of floors of a building based on an estimated altitude, according to some embodiments, is included.
[0024] Fig.23 A simplified top-down view of an operating environment is shown in accordance with some implementations.
[0025] Fig.24 According to some embodiments, Figure 1 A simplified implementation of a transmitter, mobile device, and server of the operating environment is shown. DETAILED DESCRIPTION
[0026] Disclosed herein is a method for estimating a floor indicator of a structure, such as a floor number and / or floor label, and "mapping" (i.e., logically associating or linking) the estimated floor indicator to a corresponding estimated altitude. Such structures include buildings, parking garages, monuments, and other structures. Such structures are referred to herein as "buildings," but the term should be understood as any structure having one or more floors. The mapped estimated building floor indicators can be added to a database for subsequent retrieval. Upon retrieval, the estimated building floor indicators can be used to convert the estimated altitude of a mobile device to an estimated floor number and / or floor label. For example, in the case of a user calling emergency services such as 911 from a high-rise office building, a floor indicator indicating the floor of the building where the user is located may be significantly more useful to first responders trying to contact the user than receiving the original estimated altitude value reported by the user's mobile device.
[0027] As disclosed herein, estimating floor indicators and mapping floor indicators to corresponding elevations is advantageously performed computationally, and does not require expensive building surveys to create such mapping values for each physical building. The estimated building floor indicators include an estimated building "floor number" and / or an estimated building "floor label." The floor numbers and floor labels are referred to as "estimated" because they can be largely determined computationally as opposed to being determined based on a physical survey of the building. However, in some embodiments, the mapped data may include crowdsourced data and survey data, so some of the mapped estimated building floor indicators may be mapped based on data provided by a user or surveyor. The selection of which floor indicator to use may come from the estimated value, the mapped value, or a combination of both.
[0028] As described herein, the layer label is distinguished from the number of layers. This distinction is made because the layer label observed by the user may not reflect the actual layer count (e.g., counting from the ground floor), and may vary from region to region and from morphology to morphology. For example, in the United States, the layer label "1st floor" corresponds to the ground level layer, and the layer label "2nd floor" corresponds to the first floor above the ground level. In other regions, the layer label "1st floor" corresponds to the first floor above the ground level layer, and "ground floor" corresponds to the ground level. For example, in the city of Montreal, Canada, the ground floor is marked as "RC", i.e. "Rez-de-Chausée", which is a phrase for the ground floor in French. In another example, although there is actually a 13th floor, the layer label "13th floor" is often omitted due to the stigma associated with the number 13. In yet another example, in some regions or cultures, although there are actually 4, 24, 34, 40 floors, etc., due to the stigma associated with the number 4, any floor label containing the number 4 will be omitted. The preceding article provides a few common examples, but is not an exhaustive list of all variations.
[0029] Figure 1 A simplified operating environment 100 for estimating the floor number and / or floor label of a mobile device according to some embodiments is shown. The operating environment includes a first building 190, a second building 191, mobile devices 120a-120e, a satellite 150, a network of ground transmitters 110a-110b, and a server 130. Also shown are positioning signals 153 from satellite 150, positioning signals 113a-113b from respective transmitters 110a-110b, altitude indicators altitude 1 to n+1, and communications and command signals associated with server 130.
[0030] As described above, building floor labels may vary from building to building. For example, building 190 includes labeled floors that are ordered from lowest to highest as "L1 Floor," "Ground Floor," "First Floor," and "Top Floor." In contrast, building 191 includes labeled floors that are ordered from lowest to highest as "Parking Garage," "First Floor," and "Second Floor." Thus, even though mobile device 120b and mobile device 120e are both located at altitude level Altitude 2, and even though mobile device 120b and mobile device 120e are both located at street level of their respective buildings, mobile device 120b is located on a building floor labeled "Ground Floor," while mobile device 120e is located on a building floor labeled "First Floor."
[0031] Each of the transmitters 110a-110b and the mobile devices 120a-120e may be located at different altitudes or depths relative to different terrain, which are located inside or outside various natural or artificial structures (e.g., buildings 190 / 191). Positioning signals 113a-113b and 153 are transmitted by the transmitters 110a-110b and satellite 150, respectively, and then received by the mobile device 120 using known transmission techniques. Although only two ground transmitters are shown for simplicity, it is understood that the network of ground transmitters 110a-110b may include far more than two transmitters. Similarly, although only one satellite is shown for simplicity, it is understood that satellite 150 may include far more than one satellite.
[0032] The transmitters 110a-110b may transmit the signals 113a-113b using one or more common multiplexing parameters using time slots, pseudo-random sequences, frequency offsets, or other methods as known in the art or disclosed herein. The mobile devices 120a-120e may take different forms, including mobile phones or other wireless communication devices, portable computers, navigation devices, tracking devices, receivers, or other suitable devices that can receive the signals 113a-113b and / or 153. Fig.24 1 and 12, and are discussed below. In particular, each transmitter 110a-110b and mobile device 120a-120e may include an atmospheric sensor (e.g., an atmospheric pressure, temperature, and / or humidity sensor, a weather station, etc.) for generating measurements of atmospheric conditions (e.g., atmospheric pressure and temperature) that are used to estimate the unknown altitude of the mobile device 120a-120e.
[0033] There are different methods for estimating the altitude of a mobile device. In a positioning system based on barometric pressure, the altitude can be calculated using measurements of pressure from a calibrated pressure sensor of the mobile device together with measurements of ambient pressure from a network of calibrated reference pressure sensors and measurements of ambient temperature from a network or other source. The estimate of the altitude of the mobile device (h mobile ) can be calculated by the mobile device, the server, or another machine that receives the required information as follows:
[0034]
[0035] Among them, P mobile is the estimated value of the pressure at the location of the mobile device by the pressure sensor of the mobile device; P sensorT is an estimate of the pressure at the location by the reference pressure sensor, which is accurate relative to the true pressure within a tolerable amount of pressure (e.g., less than 5 Pa); remote is an estimate of the temperature at the location of the reference pressure sensor or at a different location of the remote temperature sensor (e.g., in Kelvin), h sensor is the estimated altitude of the reference pressure sensor, which is within the expected altitude error (e.g., less than 1.0 m), and g corresponds to the acceleration due to gravity (e.g., -9.8 m / s 2 ), R is the gas constant, and M is the molar mass of air (such as dry air or other). In an alternative embodiment of Equation 1, as can be understood by a person of ordinary skill in the art, the negative sign (-) can be replaced by a positive sign (+) (e.g., g = 9.8 m / s 2 ). The estimate of the pressure at the location of the reference pressure sensor can be converted to an estimated reference horizontal pressure corresponding to the reference pressure sensor because it specifies the estimate of the pressure at the longitude and latitude of the reference pressure sensor, but the reference horizontal altitude may be different from the altitude of the reference pressure sensor. The reference horizontal pressure can be determined as follows:
[0036]
[0037] Where P sensor is the estimated value of the pressure at the location of the reference pressure sensor, P ref is the reference level pressure estimate, h ref is the reference horizontal altitude. The altitude of the mobile device h mobile It can be calculated using Equation 1, where h ref Replace with h sensor , P ref Replace with P sensor . Reference level altitude h ref can be any altitude, and is typically set to mean sea level (MSL). When two or more reference level pressure estimates are available, the reference level pressure estimates are combined into a single reference level pressure estimate (e.g., using an average, weighted average, or other suitable combination of the reference pressures), and the single reference level pressure estimate is used for the reference level pressure estimate P ref .
[0038] As disclosed herein, a building model corresponding to a physical building is computationally constructed from a single "stacked" floor. That is, the building model is "constructed" by computationally determining the vertical boundaries and / or offsets of each floor of the building model, and accumulating those vertical boundaries and / or offsets. The term "building floor" refers to the level of the building, not the actual surface on which a user will stand. The physical space that a user may occupy on a floor is referred to herein as the "elevation envelope", which is bounded by the lowest surface of the floor (i.e., the "ground" of the floor) and the ceiling of the floor, which is separated by the ground-to-ceiling partition.
[0039] The elevation envelope of a first layer is "stacked" above or below the elevation envelope of a second layer by logically and or arithmetically relating the first layer to the second layer with an appropriate intervening floor / ceiling spacing value ("bounding thickness"). The bounding thickness can be the thickness of the floor or the thickness of the ceiling, depending on the convention chosen. As a simple example, the building model height value of a building model with two stacked floors can be equal to the cumulative height of each floor. Alternatively, if the lowest floor is modeled as a basement, the building height value of a building model with two stacked floors can be just equal to the height of the topmost stacked floor.
[0040] In some embodiments, the elevation envelope of each floor of the building model is stacked on the lowest starting point of the building model or on the elevation envelope of another floor. In other embodiments, each floor of the building model is stacked below the highest starting point of the building model or below another floor. Each floor includes a vertical distance, referred to as the floor-to-floor spacing. The floor-to-floor spacing distance includes the floor's ground-to-ceiling spacing and the border thickness.
[0041] Figure 2 According to some embodiments, a physical building (e.g. Figure 1200 of simplified examples of building models 290a and 290b corresponding to the building 190 in FIG. 200. The first building model 290a includes floors 220a-220d, boundary thickness values 206a-206d, ground-to-ceiling spacing values 202a-202d, and floor-to-floor spacing values 204a-204d. The second building model 290b includes floors 220e-220h, boundary thickness values 206e-206h, ground-to-ceiling spacing values 202e-202h, and floor-to-floor spacing values 204e-204h. It is assumed that the floor marked as floor 0 is a basement floor. It is assumed that the ground of floor 220b marked as floor 1 of the building model 290a is vertically aligned with the upper surface of the terrain. In contrast, it is assumed that the ground of floor 220f marked as floor 1 in the building model 290b is offset from the upper surface of the terrain by the boundary thickness value 206e marked as boundary thickness '.
[0042] In some embodiments, the floor-to-floor spacing values are assumed to be uniform throughout the building model. In other embodiments, the floor-to-floor spacing values are assumed to be non-uniform in some or all portions of the building model. For example, the floor-to-floor spacing values may be larger for a subset of floors (e.g., when modeling a lobby of a hotel).
[0043] In some embodiments, the boundary thickness values are assumed to be uniform throughout the building model. In other embodiments, the boundary thickness values are assumed to be non-uniform in some or all portions of the building model. For example, the boundary thickness values may be larger for a subset of floors, such as when modeling a ceiling above a lobby, a floor below a large conference room, etc. The boundary thickness values at the top of the building model (also referred to as the roof thickness) (e.g., 206d and 206h) may also be larger than the boundary thickness values for the rest of the building model.
[0044] In some embodiments, generally less populated areas of a residence where people may actually be located are contemplated, such as attics or crawl spaces. Attics are generally located above the top floors of a building, but below the roof. Attics generally do not have a horizontal flat ceiling, and are bounded by the thickness of the floor / ceiling above the roof and top floors. Crawl spaces are small areas with little vertical clearance, generally located under buildings, and are used to run wiring, cables, pipes, etc.
[0045] In order to take attics into account when modeling physical buildings, in some embodiments, additional floors are added near the top of the estimated floors, and the maximum floor-to-ceiling spacing value is generally smaller. In some embodiments, if the building database provides statistics about the height of the building, such as the maximum height (corresponding to the top of the roof) or the minimum height (corresponding to the roof line or the lowest point of the roof), a difference exceeding a threshold (such as 2 meters) can be calculated. The calculated difference can then be used to determine whether the roof is likely to be sloped so that it can contain an attic space. This may be more typical for residences than for businesses. If the building database does not provide minimum and maximum values for the building height, the given height of the building can be the minimum / maximum value, or it can be some measure in between, such as the mean or median.
[0046] In some embodiments, if the building database provides only one height of the building, and it is not known whether the provided height corresponds to the maximum or minimum height of the building (i.e., the roof line), it can be inferred based on building morphology, architectural trends, building regulations (i.e., city rules), building information, or other information whether the provided height corresponds to the maximum or minimum height. For example, if according to the building database, the height of a certain building is 5m, the building can have two floors (2.5m per floor) and have a flat roof, or it can be a single-story house with a floor-to-ceiling interval of 3-3.5m and a loft of 1.5-2m. However, if the building is located in a suburb, such as San Jose, and it is known that the neighboring residences are all single-story, or the building regulations stipulate that only single-story residences can be used, etc., the height of 5m can be assumed to be the maximum height of the roof, rather than the roof line. On the contrary, if it is known that the neighboring residences have multiple floors, or it is known that the relevant building is an apartment complex, and its units mean multiple floors (i.e., unit 101, unit 201), the height of 5m can be assumed to be the roof line, and therefore a two-story building.
[0047] In order to account for crawl spaces when modeling physical buildings, in some embodiments, additional underground vertical spacing is added near the bottom of the estimated floor. For example, the additional underground vertical spacing is typically no more than 1m to model the crawl space when constructing the estimated number of floors. Such an embodiment can be based on architecture, using the details of the building's foundation to infer whether there is a crawl space (for example, a house on a concrete slab will most likely not have a crawl space). Other embodiments can use the building footprint to determine whether there is an attic or crawl space in a building. Other embodiments can be based on the market, and some markets such as New Orleans may not have underground features due to flood risk. Some markets may be dominated by peaked roofs (for snow protection), while other markets may be dominated by flat roofs, which can be used to infer whether an attic may exist.
[0048] Each floor of the building model is associated with one or more altitude envelopes. An altitude envelope is an altitude range bounded by an altitude envelope minimum and an altitude envelope maximum, and corresponds to the actual location that a user of a mobile device may be on each floor of the physical building, assuming they are not inside a floor or ceiling.
[0049] For a building model constructed with uniform floor-to-floor spacing values, assuming that counting starts at floor=1 and the ground is aligned with the terrain (i.e. floor 1 should have a minimum elevation envelope value of 0m), the elevation envelope range can be defined as follows:
[0050] Altitude envelope minimum = floor-to-floor spacing × (number of floors - 1) (Equation 3), and
[0051] Elevation envelope maximum = (floor to floor spacing x number of floors) - (boundary thickness) (Equation 4).
[0052] For building models constructed with non-uniform floor-to-floor spacing values, assuming that counting starts at floor number = 1, the elevation envelope range can generally be defined as follows:
[0053]
[0054] In this convention, the "story of interest" is the maximum number of floors considered, and the boundary thickness of a given floor is higher than the floor-to-ceiling spacing.
[0055] For building models constructed using uniform floor-to-floor spacing values, the ground layers of the physical buildings are not aligned with the terrain (e.g. Figure 2 As shown in the building model 290b in FIG. 1 , assuming that the counting starts at the number of floors = 1, the altitude envelope range can be defined as follows:
[0056] Elevation envelope minimum = (floor-to-floor spacing × (number of floors - 1) + (boundary thickness') (Equation 7),
[0057] as well as
[0058] Maximum altitude envelope = floor-to-floor spacing × number of floors (Equation 8),
[0059] where 'BoundaryThickness' is the boundary thickness value above the terrain (e.g. Figure 2 The boundary thickness value shown in 206e).
[0060] For building models constructed using non-uniform floor-to-floor spacing values, the ground layers of the physical building are not aligned with the terrain (e.g. Figure 2 As shown in the building model 290b in FIG. 1 , the counting starts at the number of floors = 1, and the altitude envelope range can be defined as follows:
[0061]
[0062] In this convention, the "layer of interest" is the maximum number of floors considered, the boundary thickness of a given floor is above the floor-to-ceiling spacing, and the boundary thickness' is the boundary thickness value above the terrain (e.g. Figure 2 The boundary thickness value in 206e).
[0063] According to some embodiments, Figure 3 An example table 300 of elevation envelope ranges determined for each floor of a four-story building model is shown. The values in table 300 are generated assuming a uniform 0.3m boundary thickness for the building model, a uniform 3m floor-to-floor spacing, and using equations 3 and 4, where the floor-to-floor spacing is equal to the 0.3m boundary thickness plus the 2.7m floor-to-ceiling spacing, and the ground surface of the lowest non-underground floor is aligned with the upper surface of the terrain. In practice, because the floor spacing may not be a constant value within a building or a common value across different buildings, in some embodiments, assuming a variety of possible floor-to-floor spacing values, these floor spacing values may be combined to calculate a total elevation envelope distribution. The total elevation envelope distribution is a series of elevation ranges ("elevation envelopes"), where each elevation range corresponds to an elevation associated with a particular floor of the physical building. A "distribution" in this sense is a representation of how the elevation envelope corresponds to consecutive numbers of floors of a building.
[0064] Due to the additive nature of the floor-to-floor spacing values, higher floors within a building model will have a wider range of possible elevation values than lower floors. Figure 4 The illustrated example table 400 shows two distributions, namely "Distribution 1" and "Distribution 2," of elevation envelope ranges for a four-story building model determined by calculations according to some embodiments. The elevation envelope minimum and elevation envelope maximum values for distribution 1 in table 400 are calculated using equations 3 and 4 using a uniform floor-to-ceiling spacing value of 2.2 m and a border thickness of 0.3 m (i.e., a floor-to-floor spacing value of 2.5 m). The values for distribution 2 are calculated using equations 3 and 4 using a uniform floor-to-ceiling spacing value of 2.7 m and a border thickness of 0.3 m (i.e., a floor-to-floor spacing value of 3 m).
[0065] Although only two elevation envelope distributions for the building model are shown in table 400, in some embodiments, elevation envelope distributions are created for a wide range of floor-to-floor spacing values. For example, a set of elevation envelope distributions can be created by generating an elevation envelope distribution for each floor-to-floor spacing value, starting with a minimum expected floor-to-ceiling spacing value (e.g., 2.5 m), and increasing the floor-to-floor spacing values by a uniform value (e.g., 0.1 m) until a maximum expected floor-to-floor spacing value (e.g., 4.5 m) is reached. The floor-to-floor spacing values can be increased by the uniform value as described, or can be increased by a non-uniform value. For example, in some embodiments, the floor-to-floor spacing values can be logarithmically spaced, have a repeating spacing, or can be weighted according to a particular spacing value. For example, in some embodiments, rather than increasing the floor-to-floor spacing values by a uniform value of 0.1 m until 4.5 m is reached, such as 2.5 m, 2.6 m, 2.7 m ... 4.5 m, the floor-to-floor spacing values are increased by an increasing rate, such as 2.5 m, 2.6 m, 2.8 m, 3.5 m ... 4.5 m. Alternatively, in some embodiments, the floor-to-floor spacing values are kept fixed for a plurality of distributions to provide a greater weight to the spacing values in the overall elevation envelope distribution, such as 2.5 m, 2.5 m, 2.5 m ... 4.5 m. In some embodiments, as described below, the set of elevation envelope distributions is then filtered to remove elevation envelope distributions that result in non-physical (e.g., physically impossible, unlikely, or impractical) floors or building models. In some embodiments, the distributions filtered out from the set of elevation envelope distributions do not contribute to the overall elevation envelope distribution. In other embodiments, the distributions selected from the set of altitude envelope distributions do not contribute fully to the total altitude envelope distribution (e.g., their contribution is weighted such that they contribute less to the total altitude envelope distribution than distributions not selected from the set of altitude envelope distributions). Any remaining altitude envelope distributions are then combined to create the total altitude envelope distribution.
[0066] In some implementations, the total elevation envelope distribution of the building model is created by determining a minimum total elevation envelope value and a maximum total elevation envelope value for each floor of the building model.
[0067] In other embodiments, each of the altitude envelopes (i.e., distribution 1, distribution 2, etc.) is determined as a probability distribution function (uniform distribution, Gaussian distribution / normal distribution, or other distribution), and when combined into an overall altitude envelope distribution, the overall altitude envelope distribution can be similar to a probability distribution whose peak corresponds to the peak of the weighted altitude envelope combination. For example, referring to the following description Figure 6If the weight of the 2.2 m floor-to-ceiling spacing value of the first elevation envelope distribution 602 is higher than the weight of the 2.7 m floor-to-ceiling spacing value of the second elevation envelope distribution, the overall elevation envelope distribution 606 may have a floor distribution that is more weighted toward the lower end (i.e., the level 1 range of 606 is more concentrated in 0-2.2 m rather than 2.2 m-2.7 m).
[0068] In another embodiment, the total altitude minimum value of a floor is the minimum altitude envelope minimum value of the altitude envelope in each altitude envelope distribution associated with the floor. Similarly, the total altitude maximum value of a floor is the maximum altitude envelope maximum value of the altitude envelope associated with the floor in each altitude envelope distribution.
[0069] Figure 5 The floor number lookup table 500 shows an example total altitude envelope distribution constructed according to this embodiment. As shown in the figure, in some embodiments, Figure 4 As shown in Table 400, the minimum value of the total elevation envelope of each floor is the minimum elevation envelope value of the floor in Distribution 1 or Distribution 2. Figure 4 As shown in Table 400, the total altitude envelope maximum value for each floor is the maximum altitude envelope value of that floor in Distribution 1 or Distribution 2. In other embodiments, the total altitude minimum value is within a percentage (e.g., 10%) of the altitude envelope minimum value of the altitude envelope associated with the number of floors of each altitude envelope distribution. Similarly, in such an embodiment, the total altitude maximum value is within a percentage (e.g., 10%) of the maximum altitude envelope maximum value of the altitude envelope associated with the number of floors of each altitude envelope distribution. In other embodiments, each altitude envelope is determined as a probability distribution function. Such a probability distribution function can be concentrated (reaching a peak) where there is significant overlap across altitude envelope distributions corresponding to different floor-to-floor spacing values, and the total altitude envelope distribution can be concentrated in areas where multiple altitude envelope distributions overlap. For example, in Figure 4 The total altitude envelope distribution may be a combination of Distribution 1 and Distribution 2, wherein the total altitude envelope distribution may be concentrated between 9m and 9.7m, less concentrated between 7.5m and 9m, and less concentrated between 9.7m and 11.7m.
[0070] According to some embodiments, Figure 6 An example graphical representation 600 of the elevation envelope distribution values of the table 400 and the resulting total elevation envelope distribution values of the floor number lookup table 500 is shown. The graph 600 includes a first elevation envelope distribution 602, a second elevation envelope distribution 604, boundary thicknesses 622a-622f, a total elevation envelope distribution 606, and a legend 610 of the number of floors including an elevation envelope range of floors 1-4, wherein each floor is designated by a unique fill pattern. The elevation envelope range of each floor in the first distribution 602 is the same as the elevation envelope range of each floor in the first distribution 602. Figure 4 The values of distribution 1 shown in table 400 of FIG. 604 correspond to the values of distribution 1 shown in table 400 of FIG. 604. Similarly, the altitude envelope range of each floor in the second distribution 604 corresponds to Figure 4 The boundary thicknesses 622a-622f are set to a fixed value of 0.3 m. As shown by the dashed lines, the minimum and maximum altitude envelope values are selected from the first altitude envelope distribution 602 and the second altitude envelope distribution 604 to create a total altitude envelope distribution 606.
[0071] As described herein, the values of the total altitude envelope distribution 606 are stored as a floor number lookup table for later retrieval. For example, when estimating the physical building in which the mobile device is located, the total altitude envelope distribution associated with the physical building, i.e., the floor number lookup table, can be retrieved. In some embodiments, if it is uncertain which physical building the mobile device is located in, multiple total altitude envelope distributions can be retrieved, each corresponding to a physical building in which the mobile device may be located. The retrieved total altitude envelope distributions can then be used to map the estimated altitude of the mobile device to the floor number and / or floor label of each physical building.
[0072] For example, based on Figure 5 The values of the floor number lookup table 500 shown can convert or "map" an estimated altitude of 7m to floor number 3. Since there can be overlapping altitude envelope areas, multiple floor numbers can also be selected. For example, an altitude of 8m can indicate floor number 3 or floor number 4, or floor number 3 (with an indicated 75% probability) or floor number 4 (with an indicated 25% probability), where the percentage reflects the confidence of the result. In some embodiments, the confidence of each result is derived based on the distance from the centroid of the floor number. The determination and aggregation of estimated floor numbers and their associated confidence will be further described below.
[0073] In some embodiments, the number of floors along with their respective ranges are pre-calculated once (as described in detail below) and then used to populate the database for subsequent lookups, with these values only being recalculated if the constraints change (the building is further constructed or demolished, database errors are identified and / or corrected, etc.).
[0074] According to some embodiments, Figure 7 Another example of a total elevation envelope distribution constructed using an elevation envelope distribution set is shown. In this example, a small boundary thickness is assumed. The number of basement floors / levels is not shown in the figure, but the method disclosed in this article is also applicable to buildings with single or multiple floors below the ground level. Figure 7 Included is a graph 700 showing a collection of altitude envelope distributions 702 , a total altitude envelope distribution 704 generated using the altitude envelope distributions 702 , and a legend 710 of floor numbers.
[0075] In the illustrated example, the altitude envelope distribution 702 includes individual altitude envelope distributions, each of which corresponds to a different floor-to-floor spacing value from 2.5 m to 4.5 m. In this example, no altitude envelope distribution constraints, described in detail below, are applied to the altitude envelope distribution 702. Therefore, higher levels in the total altitude envelope distribution 704 have increasingly wider altitude envelope ranges than lower levels. For example, level number 7 ("Level #7") in the total altitude envelope distribution 704 spans from approximately 17 meters to 32 meters. Such a wide span makes it unlikely that using values from the total altitude envelope distribution 704 as a floor number lookup table to generate an estimated level number using an estimated altitude will yield accurate or useful results.
[0076] In some cases, specific real information about the physical building can be obtained (e.g., from a data source such as a building database). Such information can include the actual number of floors in the building, the actual height of the building, etc. However, in many cases, only general regional information can be obtained (e.g., the maximum building height in a certain area, the maximum number of floors in a certain area, etc.). In any case without information about the physical building, it can be assumed that the floor number 1 as defined herein is on the ground, which means that the minimum value of the altitude envelope (Altitude Envelope Min) of the floor number 1 is 0m above the terrain, which may include any boundary thickness. However, compared to not assuming any constraints, some reasonable constraints can be assumed depending on the building form or building type, and used to generate a more accurate mapping between the estimated altitude of the mobile device and the estimated number of floors of the building. Such altitude envelope distribution constraints include the minimum building height, the maximum building height, the minimum floor height, the maximum floor height, the minimum number of floors, and the maximum number of floors. By using such constraints, a stricter altitude envelope distribution can be advantageously determined when modeling the physical building.
[0077] Depending on which elevation envelope distribution constraints are selected, four different total distributions can be determined, each with different qualities. These distributions can be determined by considering: 1) not using any constraints; 2) constraining the number of floors (which may or may not include the number of basement floors); 3) constraining the building height (which may or may not include the depth of the building into the ground); and 4) using both of the foregoing constraints. After the set of elevation envelope distribution constraints (if any) is selected, the selected constraints are optionally used in generating the elevation envelope distribution, and / or are optionally used to filter out any elevation envelope distributions that violate one or more of the constraints. In addition to such elevation envelope distribution constraints, the boundary thickness can also be estimated, or the boundary thickness can be determined based on measurement data.
[0078] For example, Figure 8As shown, when generating the altitude envelope distribution, the altitude envelope distribution constraint on the number of floors in the building can be used, and after the altitude envelope distribution is generated, the altitude envelope distribution constraint on the maximum building height can be applied to the altitude envelope distribution. Figure 8 A simplified graphical representation 800 of the altitude envelope distribution values and the resulting total altitude envelope distribution values according to some embodiments is shown. Graph 800 includes Figure 6 810 of a first elevation envelope distribution 602, a second elevation envelope distribution 604, boundary thicknesses 622a-622f, a third elevation envelope distribution 808, boundary thicknesses 822g-822i, a total elevation envelope distribution 606, and a number of floors. The third elevation envelope distribution 808 was generated using a floor-to-floor spacing value of 4m, and the boundary thicknesses 622a-622f and 822g-822i were set to a fixed value of 0.3m. The number of basement floors / levels is not shown, but the methods disclosed herein are equally applicable to buildings with single or multiple floors below ground level.
[0079] As described above, the altitude envelope distribution may be constrained by the minimum or maximum number of floors in the building. The maximum number of floors may be based on general information about the area where the physical building is located. In some embodiments, when the maximum number of floors is reached, the process for determining the altitude envelope of each floor of the building stops. In the illustrated example, when generating distributions 602, 604, and 808, an altitude envelope distribution constraint on the number of floors in the building (i.e., four) is used, and after generating distributions 602, 604, and 808, an altitude envelope distribution constraint on the maximum building height (i.e., 12m) is applied. Due to these constraints, the third altitude envelope distribution 808 has a non-physical floor (i.e., floor number 4). Floor number 4 in the third altitude envelope distribution 808 is considered a non-physical floor because its altitude envelope is only a little more than half a meter, and therefore, it is an unfeasible floor configuration for the building. Since distribution 808 has non-physical floors, altitude values are advantageously excluded from the distribution when determining the total altitude envelope distribution 606. If no building height constraints were applied to the distributions 602 , 604 , and 808 , the third altitude envelope distribution 808 would also contribute to the overall altitude envelope distribution 606 .
[0080] In some embodiments, selecting the altitude envelope distribution constraints includes a sub-step of validating the initially selected constraint set. When generating the altitude envelope distribution and / or before applying the constraints to the generated altitude envelope distribution, the altitude envelope distribution constraint set initially selected before use may be validated.
[0081] For example, considering the morphology of a given area (e.g., in a suburb, a building will not exceed a threshold such as 20 m), or considering the maximum building height of a given area (e.g., in Chicago, a building will not be higher than the tallest building in the area, such as the Willis Tower in Chicago), it is determined whether a given building height constraint is valid. In another example, considering the morphology of a given area (e.g., in a suburb, a building will not exceed 5 floors), or considering the maximum number of floors of a building for a region (e.g., the number of floors of a building will not exceed the tallest building in the area), it is determined whether a constraint on the number of floors of a building is valid.
[0082] In addition to validating individual elevation envelope distribution constraints in the initial constraint set, combinations of elevation envelope distribution constraints may also be validated. For example, some combinations of constraints may result in non-physical building models when specific floor-to-floor spacing values and / or floor-to-ceiling spacing values are assumed. For example, if an absolute minimum floor-to-floor spacing value of 2m is assumed (which is reasonable, assuming an upper bound on people's heights), the combination of a first elevation envelope distribution constraint requiring the building to have eight floors and a second elevation envelope distribution constraint requiring the building to be 10m tall will result in a non-physical building model, as each floor will only be 1.25m tall. In another example, if a maximum floor-to-floor spacing of 5m is assumed, a 100m building with 10 floors is a non-physical building, as the height of each resulting floor is only half of the proposed building height.
[0083] Several options are disclosed herein for handling individual elevation envelope distribution constraints or combinations of elevation envelope distribution constraints (“non-physical constraints”) for a particular building that fail validation. Each of these options can be performed collectively or individually, and include:
[0084] i) Remove building height constraints. This operation may be performed if it is determined that the building height constraints are wrong or infeasible for the area where the building is located (e.g., a 100m high suburban house is impossible, a skyscraper height exceeding the height of the world's tallest skyscraper is impossible, etc.);
[0085] ii) Remove the maximum number of floors constraint. This method can be used if the constraint on the number of floors of a building is determined to be wrong or infeasible for the area where the building is located (for example, a suburban house with 10 floors is impossible, and a skyscraper with more than 400 floors is impossible);
[0086] iii) Cancel both the number of floors constraint and the building height constraint. This method can be used if both the number of floors and the building height constraints are determined to be wrong or infeasible for the area where the building is located;
[0087] iv) Flag the building for offline verification and alert the user. Offline manual verification has the advantage of further strengthening and validating the building dataset; and / or
[0088] v) Warn the user and / or do nothing. This has the advantage of using minimal resources.
[0089] As an example of option (i) above, or the case where only one altitude envelope distribution constraint is initially selected, Fig. 9 An example of a total elevation envelope distribution constructed using only a constraint on the maximum number of floors in a building (e.g., because the building height constraint is removed or because the building height constraint is not available) according to some embodiments is shown. In this example, it is assumed that the boundary thickness is small and the lowest elevation of the elevation envelope for floor number 1 is aligned with a building height of 0m (i.e., the floors are stacked from the bottom up). Fig. 9 A graph 900 is included that shows an elevation envelope distribution set 902, a total elevation envelope distribution 904 generated using the elevation envelope distribution 902, and a legend of the number of floors 910. The number of basement floors / levels is not shown, but the method disclosed herein is equally applicable to buildings with single or multiple floors below ground level.
[0090] In the example shown, the elevation envelope distribution 902 includes individual elevation envelope distributions, each corresponding to a different floor-to-floor spacing value ranging from 2.5 m to 4.5 m. The distribution 902 is constructed considering the constraint that the building being modeled has a maximum of eight floors.
[0091] As an example of option (ii) above, or the case where only one altitude envelope distribution constraint is initially selected, Fig.10 An example of a total elevation envelope distribution constructed using only a constraint on maximum building height (eg, because a maximum number of floors constraint is removed or because a maximum number of floors is not available) is shown in accordance with some embodiments. Fig. 9 The example shown is similar, in which it is assumed that the boundary thickness is smaller and the lowest altitude of the elevation envelope of floor number 1 is aligned with the building height of 0m (ie the floors are stacked from bottom to top). Fig.10 A graph 1000 is included that shows a collection of elevation envelope distributions 1002, a total elevation envelope distribution 1004 generated using the elevation envelope distributions 1002, and a legend of the number of floors 1010. The number of basement floors / levels is not shown, but the method disclosed herein is equally applicable to buildings with single or multiple floors below ground level.
[0092] Distributions 1002 are initially constructed without a constraint on the maximum number of floors, and each distribution corresponds to a different floor-to-floor spacing value ranging from 2.5 m to 4.5 m. However, after a constraint of 20 m on the maximum building height is applied, a subset of distributions 1002 (illustrated as rectangles with dashed lines) are filtered out of the set of distributions 1002 because they result in non-physical floors at the top of the building (not shown). For example, the topmost floor of a building with a floor-to-ceiling spacing of less than 2.5 m is a non-physical floor. Therefore, the subset of distributions 1002 not represented by dashed lines is used to generate the total elevation envelope distribution 1004.
[0093] As an alternative to stacking floors computationally from the bottom up, floors may be computationally stacked from the roof of the building down. In such an embodiment, according to some embodiments, Fig.11 As shown, distributions with floor spacing that creates non-physical floors at the base of the building (e.g., ground floor floor-to-floor spacing less than 2.5 m) may be removed. In some embodiments, for buildings with basement floors, distributions that are computationally stacked from the roof of the building down may extend below ground level and are not removed based on non-physical constraints.
[0094] and Fig.10 In this example, the boundary thickness is assumed to be smaller. Fig.11 , the highest altitude of the elevation envelope of floor number 8 is aligned with the building height of 20 m (i.e., the floors are computationally stacked from top to bottom). Fig.11 Included is a graph 1100 showing a collection of elevation envelope distributions 1102, a total elevation envelope distribution 1104 generated using elevation envelope distributions 1102, and a legend of the number of floors 1110. The number of basement floors / levels is not shown, but the methods disclosed herein are equally applicable to buildings with single or multiple floors below ground level.
[0095] Distributions 1102 are initially constructed without a constraint on the maximum number of floors, and each distribution corresponds to a different floor-to-floor spacing value ranging from 2.5 m to 4.5 m. However, after a constraint of 20 m on the maximum building height is applied, a subset of distributions 1102 (illustrated as rectangles with dashed lines) are filtered out from the set of distributions 1102 because they result in non-physical floors (not shown) at the bottom of the building (e.g., the bottom floor with a floor-to-ceiling spacing less than 2.5 m). Therefore, the subset of distributions 1102 not represented by dashed lines is used to generate the total elevation envelope distribution 1104.
[0096] As described above, in some embodiments, two altitude envelope distribution constraints may be combined to reduce the number of possible altitude envelope distributions even more than the individual constraints. Fig.12 shows an example of a total elevation envelope distribution built using the elevation envelope distribution set when a maximum number of floors constraint and a maximum building height constraint are applied. Fig.10 Similar to that shown, in this example it is assumed that the boundary thickness is smaller and the lowest altitude of the elevation envelope of floor number 1 is aligned with the building height of 0 m (ie the floors are computationally stacked from bottom to top). Fig.12 Included is a graph 1200 showing a collection of elevation envelope distributions 1202, a total elevation envelope distribution 1204 generated using the elevation envelope distributions 1202, and a legend of the number of floors 1210. The number of basement floors / levels is not shown, but the methods disclosed herein are equally applicable to buildings with single or multiple floors below ground level.
[0097] Distributions 1202 are initially constructed using a constraint on the maximum number of floors (i.e., a maximum of 6 floors), and each distribution corresponds to a different floor-to-floor spacing value ranging from 2.5 m to 4.5 m. However, after applying a constraint on the maximum building height of 20 m, a subset of distributions 1202 (illustrated as rectangles with dashed lines) are filtered out from the set of distributions 1202 because they result in non-physical floors (not shown) at the top of the building (e.g., the top floor with a floor-to-ceiling spacing of less than 2.5 m). Therefore, the subset of distributions 1202 not represented by dashed lines is used to generate the total elevation envelope distribution 1204. As shown, Fig.11 Total elevation envelope distribution 1104, Fig.10 The total elevation envelope distribution of 1004, especially Fig. 9 The combination of the two altitude envelope distribution constraints (maximum number of floors and maximum building height) advantageously reduces the overlap between the altitude envelopes of the total altitude envelope distribution 1204 compared to the total altitude envelope distribution 904. Therefore, a building floor number lookup table using the total altitude envelope distribution 1204 will be more accurate than a building floor number lookup table using the total altitude envelope distribution 1104, 1004, or 904. Furthermore, a building floor number lookup table using the total altitude envelope distribution 1204 can be advantageously generated without an expensive survey of the associated physical building, while still providing an accurate estimated number of floors for the building based on the user's estimated altitude.
[0098] As an alternative to computationally stacking floors from bottom to top, as described above, floors may also be computationally stacked from the roof of the building downward, and floor spacing that creates non-physical floors at the bottom of the building (e.g., floor-to-floor spacing of the ground floor is less than 2.5 m) may be removed. Fig.13shows an example of a total elevation envelope distribution built using the elevation envelope distribution set when a maximum number of floors constraint and a maximum building height constraint are applied. Fig.11 Similar to that shown, in this example it is assumed that the boundary thickness is smaller and the maximum altitude of the altitude envelope of floor number 6 is aligned with the maximum building height of 20m (ie the floors are stacked from top to bottom). Fig.13 Included is a graph 1300 showing a set of elevation envelope distributions 1302, a total elevation envelope distribution 1304 generated using the elevation envelope distributions 1302, and a legend of the number of floors 1310. The number of basement floors / levels is not shown, but the methods disclosed herein are equally applicable to buildings with single or multiple floors below ground level.
[0099] Distributions 1302 are initially constructed using a constraint on the maximum number of floors (i.e., a maximum of 6 floors), and each distribution corresponds to a different floor-to-floor spacing value ranging from 2.5 m to 4.5 m. However, after applying a constraint on the maximum building height of 20 m, a subset of distributions 1302 (represented by dashed rectangles) are filtered out of the set of distributions 1302 because they result in non-physical floors (not shown) at the bottom of the building (e.g., the bottom floor where the floor-to-ceiling spacing is less than 2.5 m). Therefore, the subset of distributions 1302 not represented by dashed lines is used to generate the total elevation envelope distribution 1304. As shown, Fig.11 Total elevation envelope distribution 1104, Fig.10 The total elevation envelope distribution of 1004, especially Fig. 9 The combination of the two altitude envelope distribution constraints (maximum number of floors and maximum building height) advantageously reduces the overlap between the altitude envelopes of the total altitude envelope distribution 1304 compared to the total altitude envelope distribution 904. Therefore, the building floor number lookup table using the total altitude envelope distribution 1304 will be more accurate than the building floor lookup table using the total altitude envelope distribution 1104, 1004 or 904.
[0100] In some embodiments, the total altitude envelope distribution may include a combination of altitude envelope distributions generated using different techniques. For example, the bottom portion of the total altitude envelope distribution may include an altitude envelope distribution formed from bottom to top (e.g., as shown in FIG. Fig.12 ), and the top portion of the total altitude envelope distribution may include an altitude envelope distribution formed from top to bottom (e.g., as shown and described with reference to Fig.13) to further reduce the overlap of the elevation envelopes. For example, the upper half of the total envelope distribution may include the upper half of the total envelope distribution 1304 corresponding to the floor numbers 4-6, and the lower half of the elevation envelope distribution may include the lower half of the total elevation distribution 1204 corresponding to the floor numbers 1-3. In addition, if it is estimated or determined that the number of floors of the building is an odd number (which may be an input constraint, determined by other constraints, or using data retrieved from a building database), the middle floor of the building may be a combination of 1204 and 1304 at the middle floor, may be the minimum value taken from 1204 and the maximum value taken from 1304, may be the maximum value taken from 1304 and the minimum value taken from 1204, or some other combination.
[0101] According to some embodiments, Fig.14 A simplified example of a portion of a process 1400 for determining a total altitude distribution is shown. The specific steps, order of steps, and combinations of steps shown in the figure are for illustration and explanation purposes only. Other embodiments may implement different specific steps, order of steps, and combinations of steps to achieve similar functions or results. In some embodiments, each step of process 1400 is performed on a server (e.g., Figure 1 Server 130 in the system) and / or mobile device (e.g. Figure 1 The process for generating a mapping of estimated floor numbers of a building to estimated floor labels may be used independently of other processes disclosed herein.
[0102] At step 1402, for a physical building (e.g., such as Figure 5 As described above, such altitude envelope distribution constraints include minimum building height, maximum building height, minimum floor height, maximum floor height, minimum number of floors, and maximum number of floors. In some embodiments, the altitude envelope distribution constraint set includes one or more such constraints. In other embodiments, no constraints are used, and the constraint set is an empty set. In some embodiments, the server 130 selects or uses the altitude envelope distribution constraint set based on user-provided settings (such as configuration settings), availability of constraints from a database, quality of data in a related database (such as a building and / or terrain database), or provided design or tolerance standards. In other embodiments, the altitude envelope distribution constraint set is automatically selected or used by the server 130 based on an iterative process of trying various constraints to generate an optimized result (e.g., a total altitude envelope distribution with minimal overlap between altitude envelopes).
[0103] As described above, in some embodiments, step 1402 includes a substep of validating the initially selected set of constraints. For example, general information about the architectural form of the area where the physical building is located can be used to validate the initially selected set of constraints. As described above, such validation includes determining whether any constraints are infeasible given the architectural form of the area where the physical building is located.
[0104] At step 1404, an initial altitude envelope distribution set is generated, optionally using a first set of one or more of the selected altitude envelope distribution constraints to generate the initial altitude envelope distribution set. In a first embodiment, each altitude distribution includes one or more stacked altitude envelopes, each altitude envelope corresponding to a number of building floors of a physical building and separated from another altitude envelope or from an initial point by a floor-to-floor spacing value or a floor-to-ceiling spacing value plus a border thickness value. With respect to the first embodiment, each of the altitude envelope distributions in the set is determined using a different floor-to-floor spacing value or a floor-to-ceiling spacing value ranging from a minimum value (e.g., 2.5 m) to a maximum value (e.g., 4.5 m). For example, in Figure 8 , the set of elevation envelope distributions includes distributions 602, 604, and 808, where distribution 602 corresponds to a floor-to-floor spacing value of 2.5 m, distribution 604 corresponds to a floor-to-floor spacing value of 3 m, and distribution 808 corresponds to a floor-to-floor spacing value of 4 m. Figure 8 In the example shown, the first altitude envelope distribution constraint selected at step 1402 is a constraint on the maximum number of layers, which is equal to four layers. Therefore, each of the distributions 602, 604, and 808 is constructed so as to include only the maximum number of four layers.
[0105] In a second embodiment, an initial elevation envelope distribution set may be determined by stacking elevation envelopes with fixed floor-to-floor spacing values (e.g., 3m) until the height of the building is reached or exceeded. While this approach is simple, it may be sensitive to error accumulation, especially for higher floors.
[0106] In a third embodiment, the initial altitude envelope distribution set of a building can be determined by dividing the height of the building by the number of floors therein, provided that both values are known (e.g., from a building database). For example, an 8m two-story building may have: a ground floor, whose altitude envelope spans 0m to 4m from the bottom of the building; and a top floor, whose altitude envelope spans 4m to 8m. However, the altitude envelopes calculated in this way have clear boundaries, do not overlap with each other, and may not correctly characterize users close to the boundary values. In the given example, a user altitude of 4.001m will be assigned to the top floor of the building (whose altitude envelope spans 4m to 8m), without reflecting that the user is 0.001m away from the boundary of the ground floor.
[0107] Compared to the latter two embodiments, the first embodiment disclosed herein is advantageously capable of considering various floor spacing values and screening non-physical floor-to-floor spacing values (i.e., impossibly short floors based on human height) from the altitude envelope distribution. In addition, the first embodiment disclosed herein advantageously allows for non-uniform floor-to-floor spacing values. Compared to the latter two embodiments, the first embodiment disclosed herein advantageously allows for the generation of a buffer zone of a floor range (i.e., an overlapping floor range), which can be used to determine when the user's altitude can be reliably assigned to one or more adjacent floors other than a determined floor.
[0108] Referring to the previous example, having overlapping floor ranges (e.g., a ground floor of a building spanning from 0 to 4.25 m in altitude and a top floor of a building spanning from 3.75 to 8.25 m in altitude) advantageously improves floor number estimation compared to a simple method without overlap. For example, a user altitude of 4.001 m will be mapped as possibly being located on the ground floor or the top floor of a building, while a simple method can only assign the user location to the top floor. If the user altitude of 4.001 m is noisy and happens to fluctuate by a few millimeters, the user's floor number will jump back and forth between the ground floor and the top floor of the building, while some embodiments disclosed herein specify two overlapping floors. In addition, if the user's altitude also has a determined confidence / uncertainty of 4.5 m+ / -0.4 m, the overlapping portion of the user altitude range between 4.1 m and 4.9 m can indicate the ground floor or the top floor, while a simple method can still only indicate the top floor, resulting in a noisy floor number estimation and a poor user experience.
[0109] Return to Fig.14 At step 1406, the second one or more selected altitude envelope distribution constraints are applied to the altitude envelope distribution set to filter the altitude envelope distribution set. Figure 8 In the example shown, the second altitude envelope distribution constraint (i.e., selected in step 1402) is a constraint on a maximum building height equal to 20 m. Figure 8 In the example shown, because the constraint on maximum building height produces non-physical buildings for distribution 808, distribution 808 is filtered from the set of total elevation envelope distributions as described above and is not thereafter used to generate total elevation envelope distribution 606.
[0110] At step 1408, the remaining altitude envelope distribution set is used to determine the total altitude envelope distribution. In the event that the second one or more of the selected altitude envelope distribution constraints are not applied to the altitude envelope distribution set at step 1406, the remaining altitude envelope distribution set is the same as the initial altitude envelope distribution set generated at step 1404. Similarly, in the event that no constraints are selected, or if none of the initial constraints pass verification, the remaining altitude envelope distribution set is the same as the initial altitude envelope distribution set determined at step 1404.
[0111] At step 1410, an absolute total elevation envelope distribution is generated using the total elevation envelope distribution. In contrast to the elevation values of the total elevation envelope distribution relative to terrain, the elevation values of the absolute elevation envelope distribution are absolute elevation values relative to a reference system, such as the height above the ellipsoid, i.e., the height above the earth's ellipsoid. To generate the absolute total elevation envelope distribution, once the total elevation envelope distribution of the building is estimated, it is added to a reference elevation value of the lowest level, such as the height above the ellipsoid. The reference elevation value of the lowest level can be determined in a variety of ways, including:
[0112] a) query the terrain database within the building footprint and average the results across the building footprint. Alternatively, the minimum or maximum terrain or some other statistical measure may be used; and / or
[0113] b) query the terrain database outside the footprint of the building (out to some buffer, such as 10m) and average. This is helpful for terrain databases that may not adequately handle building removal in the modeling. Alternatively, the minimum or maximum terrain or some other statistical measure may be used. For a building located on a slope, with the lowest floor entrance located on the lowest part of the terrain, the minimum terrain might represent the elevation of the ground of the lowest floor; and / or
[0114] c) Query the building database (if available) to directly retrieve the reference elevation value of the lowest floor.
[0115] At step 1412, the absolute total altitude envelope distribution and optionally the (relative) total altitude envelope distribution are stored for immediate or later use. In some embodiments, the absolute total altitude envelope distribution is stored in a database as a floor number lookup table and is associated with a physical building (e.g., by address, building name or indicator and / or coordinates, or as part of a larger data structure). In addition, at step 1414, a mapping of estimated floor numbers to estimated floor labels is optionally generated. Details of step 1414 will be referred to below. Fig.21 Give a description.
[0116] As described below, the floor number lookup table can be used, for example, by a server and / or a mobile device to estimate which floor of a physical building a mobile device is located on by using the estimated altitude of the mobile device and the absolute total altitude envelope distribution. Thus, once the absolute floor number distribution of the building is known (i.e., has been generated or retrieved from a storage device), altitude data (e.g., from a mobile device) can be mapped to a floor number. The processes and techniques disclosed herein for i) determining a total altitude envelope distribution, ii) mapping the estimated altitude of the mobile device (and optional altitude uncertainty / confidence) to a floor number using the altitude envelope distribution, and iii) reporting the mapped floor number to an endpoint can be used in conjunction with each other or alone. That is, the total altitude envelope distribution determined using the techniques and processes disclosed herein can be used in conjunction with an alternative process (i.e., compared to the process disclosed herein) of mapping the estimated altitude of the mobile device (and optional altitude uncertainty / confidence) to a floor number using the altitude envelope distribution and / or an alternative process of reporting the mapped floor number to an endpoint. Likewise, the techniques and processes disclosed herein for mapping the estimated altitude of a mobile device (and optional altitude uncertainty / confidence) to a floor number using an altitude envelope distribution can be used with an alternative process for determining a total envelope distribution and / or an alternative process for reporting the mapped floor number to an endpoint. In addition, the techniques and processes disclosed herein for reporting the mapped floor number to an endpoint can be used with an alternative process for determining a total altitude envelope distribution and / or an alternative process for mapping the estimated altitude of a mobile device to a floor number using an altitude envelope distribution.
[0117] Fig.15 Included is a simplified example of a portion of process 1500 that can be used as Fig.14 The first embodiment of step 1412 of the process 1500 is used to estimate the number of floors of a building based on the estimated altitude of the mobile device using the absolute total altitude envelope distribution. The specific steps, order of steps, and combination of steps shown are for illustration and explanation purposes only. Other embodiments may implement different specific steps, order of steps, and combination of steps to achieve similar functions or results. In some embodiments, each step of the process 1500 is performed on a server (e.g., Figure 1 The process 1500 of estimating the number of building floors using the absolute total altitude envelope distribution based on the estimated altitude of the mobile device (and optional altitude uncertainty / confidence) can be combined with other processes disclosed herein or used alone.
[0118] Reference Fig.161600 depicts the steps of process 1500, which includes an absolute altitude envelope distribution 1606, a legend 1610, and estimated altitudes 1630a-1630b, according to some embodiments. In some scenarios, as described below, it may not be possible to determine in which building the mobile device is located. In such cases, in some embodiments, the steps of process 1500 are performed for each building in the list of possible buildings in which the mobile device may be located. In other embodiments, if the distributions of the buildings are similar, the distributions may be combined.
[0119] At step 1502, an estimated altitude of the mobile device is identified (e.g., 1630a or 1630b). As described above, the estimated altitude of the mobile device can be determined based on measurements of atmospheric pressure by a barometric sensor of the mobile device and / or using positioning signals received by the mobile device. In some cases, the estimated altitude can be an estimated altitude received from the mobile device at a server. In other cases, the estimated altitude can be obtained from a server or other source. In some embodiments, the entire altitude estimation process can be performed at the mobile device. At step 1504, for each layer number of the absolute altitude envelope distribution, if the estimated altitude is within the altitude envelope corresponding to the layer number, the layer number is added to the estimated layer number list. Refer to Fig.16 , if the estimated altitude from step 1502 is estimated altitude 1630a, then the estimated floor number list will only include floor number 4. However, if the estimated altitude from step 1502 is estimated altitude 1630b, then the estimated floor number list will include both floor number 4 and floor number 3 because, based on their overlap, estimated altitude 1630b is within both the altitude envelope corresponding to floor number 4 and the altitude envelope corresponding to floor number 3. At step 1506, the estimated floor number list is returned to an endpoint, such as a user of a mobile device, a first responder, a computer system, a server, and / or a device that initiated process 1500.
[0120] Fig.17 A simplified example of a portion of process 1700 that can be used as Fig.14 The second embodiment of step 1412 of the process 1700 is used to estimate the number of floors of a building based on the estimated altitude using the absolute total altitude envelope distribution. The specific steps, order of steps, and combination of steps shown are for illustration and explanation purposes only. Other embodiments may implement different specific steps, order of steps, and combination of steps to achieve similar functions or results. In some embodiments, each step of process 1700 is performed on a server (e.g., Figure 1The process 1700 of estimating the number of building floors using the absolute total altitude envelope distribution based on the estimated altitude of the mobile device (and optional altitude uncertainty / confidence) can be combined with other processes disclosed herein or used alone.
[0121] In some cases, as described below, it may not be possible to determine which building the mobile device is in. In this case, in some embodiments, the steps of process 1700 are performed for each building in the list of possible buildings in which the mobile device may be located.
[0122] The steps of process 1700 refer to Fig.18 18, which includes an absolute altitude envelope distribution 1806, a legend 1810, an estimated altitude 1830, a first vertical distance magnitude 1840, a second vertical distance magnitude 1842, and vertical central trends 1852a-1852d.
[0123] At step 1702, an estimated altitude of the mobile device is identified (e.g., 1830). In some cases, the estimated altitude can be an estimated altitude determined using the mobile device, which is located within a building, corresponding to an absolute altitude envelope distribution. In other cases, the estimated altitude can be an altitude value retrieved from a server or other source.
[0124] At step 1704, for each layer of the absolute altitude envelope distribution (e.g., 1806), the vertical central tendency of the altitude envelope corresponding to the layer is calculated (e.g., 1852a-1852d). In some embodiments, each vertical central tendency is the average or median of the corresponding altitude envelope. For example, in some embodiments, the vertical central tendency of the altitude envelope can be calculated as follows:
[0125]
[0126] At step 1706, the distance magnitude between the estimated altitude and the vertical central tendency is calculated for each altitude envelope of the absolute altitude envelope distribution. The distance magnitude (e.g., 1840, 1842) is calculated for an altitude envelope by determining the absolute value of the difference between the estimated altitude value (e.g., 1830) and the central tendency (e.g., 1852d, 1852c) of the altitude envelope.
[0127] At step 1708, for each layer number of the absolute altitude envelope distribution, the layer number is conditionally added to the estimated layer number list based on the distance magnitude of the altitude envelope for the layer number.
[0128] Conditionally adding a floor number to the estimated floor number list involves: adding the floor number to the estimated floor number list based on one or more specified conditions. If the condition is met, the floor number is added to the estimated floor number list. If the condition is not met, the floor number is not added to the estimated floor number list. For example, in some embodiments, if the distance amplitude is the minimum distance amplitude compared to the distance amplitudes corresponding to other floor numbers, the floor number is added to the estimated floor number list. In this case, all other floor numbers are excluded from the estimated floor number list. In other embodiments, if the corresponding distance amplitude of the floor number is less than a given threshold (e.g., 5m), the floor number is added to the estimated floor number list. In such an embodiment, all other floor numbers are excluded from the estimated floor number list. In other embodiments, all floors are added to the estimated floor number list, and the estimated floor number list is sorted according to the distance amplitude and the confidence mapped from the distance amplitude. In each of these embodiments, the estimated floor number list may also include a distance amplitude value corresponding to each of the estimated floors.
[0129] For example, refer to Fig.18 , if the estimated altitude from step 1702 is estimated altitude 1830, then the estimated floor number list may include only floor number 4 because distance magnitude 1840 is less than distance magnitude 1842. In other embodiments, if distance magnitude 1840 is less than a threshold and distance magnitude 1842 is greater than a threshold, then the estimated floor number list may include only floor number 4. In other embodiments, the estimated floor number list may include all floors, and they will be sorted from the smallest distance magnitude to the largest distance magnitude (i.e., floor number 4, floor number 3, floor number 2, and then floor number 1). At step 1710, the list of estimated floor numbers and / or floor labels is returned to the endpoint (e.g., to a server, a mobile device, and / or a device that initiated process 1700).
[0130] Fig.19 A simplified example of a portion of process 1900 that can be used as Fig.14 The third embodiment of step 1412 of the process 1900 is used to estimate the number of floors of a building based on the estimated altitude using the absolute total altitude envelope distribution. The specific steps, order of steps, and combination of steps shown are for illustration and explanation purposes only. Other embodiments may implement different specific steps, order of steps, and combination of steps to achieve similar functions or results. In some embodiments, each step of the process 1900 is performed on a server (e.g., Figure 1 The process 1900 of estimating the number of building floors using the absolute total altitude envelope distribution based on the estimated altitude of the mobile device (and optional altitude uncertainty / confidence) can be combined with other processes disclosed herein or used alone.
[0131] In some cases, as described below, it may not be possible to determine which building the mobile device is in. In this case, in some embodiments, the steps of process 1900 are performed for each building in the list of possible buildings in which the mobile device may be located. In some embodiments, if the distributions of buildings are similar, the distributions may be combined.
[0132] According to some embodiments, reference Fig. 20 The steps of process 1900 are depicted in an example graph 2000 including an absolute altitude envelope distribution 2006 , a legend 2010 , a first calculated altitude overlap value 2040 , a second calculated altitude overlap value 2042 , an estimated altitude 2030 , and a confidence interval 2031 .
[0133] At step 1902, estimated altitude data for the mobile device is identified (e.g., 2030). In some cases, the estimated altitude data includes an estimated altitude and an uncertainty / confidence interval corresponding to the estimated altitude, typically expressed as X+ / -Y m, although the interval may also be asymmetric (+Y m, -Z m). Fig. 20 As shown, estimated altitude data 2030 includes estimated altitude 2030 (which is represented by a dot) and corresponding confidence interval 2031 (which is represented by a whisker centered on the dot). In some embodiments, the estimated altitude data can be received from a mobile device. In other cases, the estimated altitude data can be retrieved from a server or other source.
[0134] The lower bound for the elevation data is calculated as follows: the estimated elevation confidence value is half of the estimated elevation confidence interval when the confidence interval is symmetric, or a fraction of the estimated elevation confidence interval when the confidence interval is asymmetric:
[0135] Lower bound = (estimated altitude) - (estimated altitude confidence value) (Equation 12), and the upper bound of the altitude data is calculated as follows:
[0136] Upper bound = (estimated altitude) + (estimated altitude confidence value) (Equation 13).
[0137] In some embodiments, the confidence interval or estimated altitude confidence value is determined or calculated as described in U.S. Patent No. 10,655,961 filed on May 19, 2020 and / or U.S. Patent Application No. 17 / 447,027 filed on September 7, 2021, both of which are incorporated herein in their entirety. In other embodiments, the confidence interval or estimated altitude confidence value has been calculated by another process. In other embodiments, the confidence interval or estimated altitude confidence value is a fixed value.
[0138] At step 1904, for each floor number of the absolute altitude envelope distribution, an altitude overlap value between the altitude data and the altitude envelope corresponding to the floor is calculated. In some embodiments, the altitude data described herein includes an estimated altitude value and optionally includes an altitude uncertainty / confidence value associated with the estimated altitude. The altitude overlap value for a given floor may include a vertical span (e.g., 5 m) or an overlap percentage (e.g., 10%), where the altitude range between the lower bound of Equation 12 and the upper bound of Equation 13 overlaps the altitude range between the minimum value and the maximum value of the altitude envelope for the floor. For example, in Fig. 20 , the confidence interval 2031 overlaps with the altitude envelope of floor number 4 by a first altitude overlap value 2040. Similarly, the confidence interval 2031 overlaps with the altitude envelope of floor number 3 by a second altitude overlap value 2042.
[0139] At step 1906, for each floor number of the absolute altitude envelope distribution, based on the calculated overlap value of the floor number, the floor number is added to the estimated floor number list. In some embodiments, if the calculated altitude overlap value of the floor number is the maximum calculated altitude overlap value compared to the calculated altitude overlap values corresponding to other floor numbers, the floor number is added to the estimated floor number list. In such an embodiment, all other floor numbers are excluded from the estimated floor number list. In other embodiments, if the calculated altitude overlap value corresponding to the floor number is greater than a given percentage threshold (e.g., 20%) or a distance range (e.g., 3m) measured relative to the altitude envelope range or the estimated altitude range of the mobile device, the floor number is added to the estimated floor number list. In such an embodiment, all other floors are excluded from the estimated floor number list. In other embodiments, all floors are added to the estimated floor number list, and the estimated floor number list is sorted by their corresponding calculated altitude overlap values. In each of these embodiments, the estimated floor number list may also include an associated confidence interval for the estimated altitude data. In addition, in each of these embodiments, the estimated number of floors list may also include an associated confidence interval or uncertainty for each floor number. At step 1908, the estimated number of floors list is returned to the endpoint (e.g., to the server, mobile device, and / or device that initiated process 1900).
[0140] Since the user's experience may be aligned only with the floor label (i.e., what is observed) rather than the actual number of floors, it may be necessary or desirable to convert the estimated number of floors into the corresponding estimated floor label. In some embodiments, a list of rules for removing and adding floor labels is first compiled. Such a list may be geography-specific, morphology-specific, or building-type-specific. For example, a rule list may specify that all buildings within a geofence in downtown San Francisco do not have "Floor 13". In another example, the list may specify that the "ground floor" of a building in a postal code in Montreal is the ground floor, and the 1st floor is directly above the ground floor. In another example, the rule list may specify that buildings above 10m in Beijing lack all floor labels with "4". In another example, the rule list may combine multiple rules. Such a rule list may be supplemented with specific exceptions, such as specific buildings that are known to follow different patterns or have predefined floor labeling schemes.
[0141] In some embodiments, different floors in a building may have mixed uses. For example, the north side of a building may include bedrooms and hallways, and the south side may include attic spaces. In such cases, the user's 2D location becomes important in determining floor labels.
[0142] Fig.21 A portion of process 2100 is shown. Fig.14 1414 to optionally generate a mapping of the estimated number of floors of a building to the estimated floor labels according to some embodiments. The specific steps, order of steps, and combinations of steps shown are for illustration and explanation purposes only. Other embodiments may implement different specific steps, order of steps, and combinations of steps to achieve similar functions or results. In some embodiments, each step of process 2100 is performed on a server (e.g., Figure 1 The process for generating a mapping of the estimated number of floors of a building to the estimated floor labels can be combined with other processes disclosed herein or used alone.
[0143] At step 2102, each estimated floor number of the absolute total elevation distribution of the building is mapped to an estimated floor label named the same (e.g., by a server). For example, floor number 1 is mapped to "floor number 1" or "first floor", floor number 2 is mapped to "floor number 2" or "second floor", and so on. The terms "map", "mapped", "mapping", and "translate" in this context refer to logically, descriptively, and / or programmatically associating one or more items (e.g., in a database, data set, or other data object) with one or more other items.
[0144] At step 2104, floor labels are marked or removed from the mapping based on regional and / or cultural criteria. For example, "13th floor", "4th floor", "39th floor" may be considered "unlucky" in some cultures. In some embodiments, step 2104 involves assembling, identifying or retrieving a list of rules (e.g., from a server), which may be specific to a region or include a building-to-building context. Such rules are similar to the above rules, such as there cannot be a "13th floor" in a building in San Francisco. Floor labels are then removed from the mapping based on these rules.
[0145] At step 2106 , it is determined whether there are a sufficient number of floor tags (ie, there is at least one available floor tag for each floor number). If it is determined that there are a sufficient number of floor tags, the process continues to step 2108 .
[0146] At step 2108, new floor labels are added to the mapping at the appropriate locations (e.g., "lobby," "mezzanine," "observatory") (e.g., by the server). In some embodiments, step 2108 involves assembling, identifying, or retrieving a list of rules, which may be region-specific or building-to-building contextual (which may come, for example, from the server). These rules are similar to those described above, e.g., buildings in Montreal may have a "ground floor." Floor labels are then added to the mapping based on these rules.
[0147] Then, at step 2110, the estimated floor numbers are aligned with the estimated floor labels, and the excess estimated floor labels are discarded (e.g., by the server). The excess number of floor labels is the inverse problem of the insufficient number of floor labels determined at step 2106. For example, if the estimated floor label "13th floor" is removed from the mapping, the estimated floor number 13 will be aligned with the floor label "14th floor".
[0148] Alternatively, if the building database includes all possible residential unit numbers, the format of such residential unit numbers can be interpreted as feasible floor labels. For example, if an apartment building group includes apartment numbers 101, 102, 201, and 202, the floor labels can use the first digit of the apartment number to establish floor labels 1 and 2 for such a group of buildings. Alternatively, if there is an additional source of floor labels (e.g., a list of elevator buttons for all elevator banks in the building, or a list of floors from a floor plan of the building), the server can use this information to establish the floor labels.
[0149] Because each region can have hundreds of physical buildings, and each building can have many possible permutations of floor labels, and because there are large data sets of regional and cultural rules to consider in addition to large data sets that may include known apartment numbers, elevator button information, etc., process 2100 is advantageously performed by one or more servers operable to access and manipulate large data sets.
[0150] If it is determined at step 2106 that the number of floor labels is less than the number of floor numbers, the process continues to step 2112, where the number of floor labels is incremented by one or more. The process then returns to step 2102 to reprocess using a larger feasible floor label buffer.
[0151] Fig. 22 A portion of process 2200 is shown, which may be performed according to some embodiments. Fig.14 The example implementation of step 1412 is shown in FIG. The specific steps, order of steps, and combinations of steps shown are for illustration and explanation purposes only. Other implementations may implement different specific steps, order of steps, and combinations of steps to achieve similar functions or results. In some implementations, each step of process 2200 is performed on a server (e.g., Figure 1 The system is executed at a server 130) and / or a mobile device.
[0152] According to some embodiments, a portion of process 2200 will refer to Fig.23 2300 is described. Graphic 2300 provides a simplified top-down view of the operating environment, which includes the centroid 2302 of the estimated position of the mobile device, the confidence 2304 of the estimated position forming the radius of the 2D (two-dimensional) confidence region 2306, the first building polygon 2308, the second building polygon 2310 and the third building polygon 2312. The building polygon is at least two-dimensional top-down outline of the physical building. The building polygon can be stored and retrieved from the building, terrain or topological data set, as known in the art. Overlapping areas 2320, 2321 and 2322 are also shown in the figure. Overlapping areas 2320, 2321 and 2322 are respectively defined by the overlapping parts of the respective building polygons in the area and the interior of the confidence region 2306.
[0153] In some embodiments, the 2D confidence region 2306 is a uniform density distribution (e.g., a normal distribution or other distribution). In other embodiments, the 2D confidence region 2306 follows a non-uniform distribution, such as a weighted distribution, i.e., a larger weight is placed near the centroid 2302 and a smaller weight is placed far from the centroid 2302. For a uniform distribution, two overlapping building coverage areas with the same overlap area (e.g., 10%) can have the same importance when classified according to which building the mobile device is most likely to be located in. However, in embodiments where the 2D confidence region 2306 follows a non-uniform distribution, an overlap area that is closer to the centroid 2302 can have a higher weight than an overlap area of similar size that is farther from the centroid 2302. The applied overlap area weight can be used when the overlap area is classified to determine which building the mobile device is most likely to be located in.
[0154] In the example shown, the first building polygon 2308 corresponds to a building located at "123 Main Street," or a building identified by a name or designator (e.g., "Empire State Building," "Building 1," "A1," etc.), which is 50 meters tall, has 17 floors, has a 2.5% overlap with the 2D confidence region 2306 at the overlap region 2320, and has a closest distance of 1.41 units to the centroid 2302. In other words, 2.5% of the 2D confidence region 2306 overlaps with the first building polygon 2308.
[0155] The second building polygon 2310 corresponds to the building located at "234 Main Street", which is 30 meters high, has 9 floors, has a 7.3% overlap area 2321 with the 2D confidence region 2306, and has a closest distance of 1 unit to the centroid 2302. In other words, 7.3% of the 2D confidence region 2306 overlaps with the second building polygon 2310.
[0156] The third building polygon 2312 corresponds to the building located at “345 Main Street”, which is 20 meters high, has 6 floors, has a 42.8% overlap area 2322 with the 2D confidence region 2306, and has a closest distance to the centroid 2302 of 0 units because the centroid is located within 2312. In other words, 42.8% of the 2D confidence region 2306 overlaps with the third building polygon 2312.
[0157] Return to Fig. 22, at step 2202, an estimated user location (e.g., located at the centroid 2302) and an estimated user altitude (i.e., a 3D (three-dimensional) estimated location) are determined. In some cases, the estimated user location and the estimated altitude may be determined using a mobile device (i.e., a device carried by the user), and reference may be made to the estimated location and / or estimated altitude of the mobile device. In other cases, the estimated user location and the estimated altitude may be values retrieved from a server or other data source. As described above, in some embodiments, the 2D location of the mobile device may be determined using a positioning signal received at the mobile device. The altitude of the mobile device may be determined using a similar positioning signal and / or based on atmospheric pressure measurements made using a barometric pressure sensor of the mobile device.
[0158] At step 2204, one or more physical buildings corresponding to the estimated user location are identified. For an estimated 3D position (e.g., a cylindrical volume or ellipsoid, etc. that includes all 3D uncertainties), all building polygons that overlap with the 2D confidence region (e.g., 2306) of the estimated location are included in a set of potential buildings in which the user device may be located. For example, Fig.23 As shown, 2D confidence region 2306 overlaps with building polygons 2308, 2310, and 2312. Therefore, the initial set of potential buildings includes buildings corresponding to building polygons 2308, 2310, and 2312. In some embodiments, potential buildings can be removed from the set if their heights do not overlap with the estimated altitude of the estimated location. For example, if the estimated altitude of the user device is 100m, any building with a height less than 100m (or less than 100m and some buffer to account for rounding, altitude uncertainty, and building database uncertainty) will be removed from the set of potential buildings (e.g., if the user is estimated to be near the top of the Empire State Building, and has a 2D uncertainty of 400m, the user is unlikely to be in other buildings and therefore can infer a better 2D uncertainty than that provided). Reference Fig.23 , since the centroid 2302 is close to the third building polygon 2312, "345 Main Street" may be the closest building and will be classified as the first in the returned list of possible buildings and their respective floor estimates. However, if the elevation value of the estimated location at the centroid 2302 is outside the feasible floor range of 345 Main Street, the building can be removed from the application programming interface (API) response listing potential buildings.
[0159] In some embodiments, if the number of remaining buildings in the set of potential buildings is equal to zero, there are several options, including any combination of: not returning an estimated number of floors to the user, alerting the user that no corresponding buildings were detected in the area of the estimated location, and / or using an estimated number of floors "base case." The estimated number of floors base case assumes that there are no constraints on building heights or number of floors, and uses process 2200 to convert the height above the ellipsoid or height above the terrain associated with the estimated location into an estimated number of floors and an estimated number of floors confidence, but alerts the user that no buildings were detected.
[0160] In some implementations, if the number of remaining buildings in the set of potential buildings is equal to one, the height above the ellipse or the height above the terrain associated with the estimated location is converted to an estimated number of floors and an estimated number of floor confidences using process 2200 .
[0161] In some embodiments, if the number of remaining buildings in the potential building set is greater than 1, then for each building in the potential building set, the height above the ellipse or the height above the terrain associated with the estimated location is converted to an estimated number of floors and a confidence level for the estimated number of floors using process 2200. In some embodiments, the estimated number of floors for each building is listed separately but returned to the user in the order of possible buildings. In some embodiments, the most likely building can be estimated by calculating a distance metric between the centroid (e.g., 2302) and each building polygon and classifying by that metric. In such an embodiment, the metric is the average distance, the median distance, or the overlap of a 2D confidence region (e.g., 2306) with the building polygon. In other embodiments, potential buildings can be classified according to the percentage of overlap with the 2D confidence region (e.g., 2306).
[0162] In other embodiments, the metric is a measure of overlap area, and buildings may be classified by the area of building polygons that overlap the user's 2D confidence region rather than by percentage. In other embodiments, the metric is an overlap ratio, and buildings may be classified by the overlap ratio of overlapping building polygons to the user's 2D confidence region. The overlap ratio is calculated by dividing the overlap area by the total area of the building polygons. Thus, a very small building polygon that completely overlaps the user's 2D confidence region will be classified before a very large building that partially overlaps the user's 2D confidence region.
[0163] In other embodiments, only buildings in the collection may be included, or "outdoors" may be included as an option if there is significant overlap with outdoors (ie, no significant overlap with buildings).
[0164] Come back and see Fig. 22At step 2206, an absolute total elevation envelope distribution corresponding to each potential building in the set is identified. In some embodiments, the absolute total elevation envelope distribution is retrieved from a server or database that stores the absolute total elevation envelope distribution, as described in step 1412 of process 1400. At step 2208, for each building in the set of potential buildings, a list of estimated number of floors is determined using the estimated elevation of the building and the absolute total elevation envelope distribution. In some embodiments, a reference number is used in addition to or instead of estimating the number of floors. Fig.21 The mapping of estimated floor numbers to estimated floor labels is used to determine estimated floor labels.
[0165] At step 2210, after the set of potential buildings is assembled and the associated estimated number of floors (with ranges) is calculated for each building in the set, the estimated number of floors can be reported or returned to an endpoint (e.g., a user, a mobile device, a server, or a device that initiated process 2200). In some embodiments, the estimated number of floors is returned to the endpoint via an application programming interface (API). The techniques and processes disclosed herein for generating the content of an API response returned to an endpoint can be used in conjunction with or alone with other processes disclosed herein.
[0166] In some implementations, the general form of the API response may be estimated number of floors = {{ADDRESS0, FLOORRANGE0, STATUS0}, {ADDRESS1, FLOORRANGE1, STATUS1}, ...}. For example, if the user's height above terrain is equal to (26+ / -3) meters, and the user's location overlaps with three buildings, such as Fig.23 As shown, a building that is too short (i.e., 345 Main Street) can be excluded from the set of potential buildings, and the remaining buildings can be classified according to the distance to the user's centroid, for example, estimated number of floors = {{"234 Main Street", "8+ / -1", ""}, {"123 Main Street", "10+ / -2", ""}}. In some embodiments, the distance to the user's centroid is returned as part of the API response. In some embodiments, the distance to the user's centroid is returned as part of the API response, and the results are classified by the receiving system.
[0167] In other embodiments, the floor representation may also be defined as a floor range, for example, estimated floor number = {{"234 Main Street", "7, 8, 9", ""}, {"123 Main Street", "8, 9, 10, 11", ""}}. Alternatively, the floor representation may be defined with an asymmetric error, for example, estimated floor number = {{"234 Main Street", "8+ / -1", ""}, {"123 Main Street", "10+ / -2", ""}}.
[0168] In other embodiments, low-rise buildings may be included in the API response, but their status will be marked, for example, estimated number of floors = {{"345 Main Street","","low-rise building"}, {"234 Main Street","8+ / -1",""}, {"123 Main Street","10+1-2",""}}.
[0169] In some other embodiments, since the outdoor part is the largest overlapping part, the outdoor part can be included in the API response, for example, estimated number of floors = {{"outdoor","",""},{"234 Main Street","8+ / -1",""},{"123 Main Street","10+1 / -2",""}}.
[0170] In other embodiments, floor representation can be defined using confidence percentages, for example, estimated floor number = {{"234 Main Street","8(80%), 7(10%), 9(10%)",""}, {"123 Main Street","10(60%), 9(10%), 8(10%), 11(20%)",""}}.
[0171] In other embodiments, floors or address representations may be arranged by confidence percentage without disclosing the individual confidences, for example, estimated floor number = {{"234 Main Street","8,7,9",""}, {"123 Main Street","10,9,8,11",""}}.
[0172] In other embodiments, the floor representation can be the floor with the highest confidence / most likely floor (public or non-public confidence), followed by a range of floors (public or non-public confidence), for example, estimated floor number = {{"234 Main Street","8(80%),[8(80%),7(10%),9(10%)]",""}, {"123 Main Street","10(60%),[10(60%),9(10%),8(10%),11(20%)],""}}, estimated floor number = {{"234 Main Street","8,[8,7,9],""}, {"123 Main Street","10,[10,9,8,11]",""}}.
[0173] In other embodiments, floor representations may be defined using confidence percentages, but only the floor with the highest confidence value for each building is returned, for example, estimated floor number = {{"234 Main Street","8(80%)",""}, {"123 Main Street","10(60%)",""}}.
[0174] In other embodiments, address representations may be defined using percentage confidence as well as absolute confidence values, e.g., estimated floor number = {{"234 Main Street (50%)","8+ / -1",""}, {"123 Main Street (30%)","10+ / -2",""}}.
[0175] In other embodiments, if there is additional information about uninhabited buildings, this information can be removed from the API interface response, or a warning can be issued to the user. For example, if 234 Main Street is an abandoned building, for example, estimated number of floors = {{"123 Main Street", "10+ / -2", ""}}, or estimated number of floors = {{"234 Main Street", "8+ / -1", "uninhabited"}, {"123 Main Street", "10+ / -2", ""}}.
[0176] In other embodiments, if additional information is available about floor numbers of restricted or restricted areas (e.g., unmanned server rooms), these floor numbers can be removed from the API response. For example, if 234 Main Street has floor 8 as a server room, then, estimatedFloorNumber = {{"234 Main Street", "7, 9", ""}, {"123 Main Street", "10+ / -2", ""}}.
[0177] In other embodiments, building representations may be defined using confidence percentages, but only buildings with the highest confidence values are returned, e.g., estimatedNumber of Floors = {{"234 Main Street (60%)", "8+ / -1", ""}.
[0178] In other embodiments, floor representation and building representation can be defined using confidence percentages, but only the building with the highest confidence value and the floor with the highest confidence value are returned, for example, estimated floor number = {{"234 Main Street (60%)", "8 (80%)", ""}.
[0179] With respect to process 1400 and other processes described herein, since each geographic region may have hundreds or even thousands of physical buildings, and each building may have many possible permutations of the number of floors and floor labels, and in addition to considering a large data set that may include known apartment numbers, elevator button information, etc., a large data set of regional and cultural rules is also considered, the processes disclosed herein are advantageously performed by one or more mobile devices and / or servers rather than manually. This is because such mobile devices can be operated to measure physical atmospheric effects and send data representing these measurements to one or more servers, which can be operated to access and operate on large data sets. For example, selecting an altitude envelope distribution constraint, verifying the altitude envelope distribution constraint, constructing a range for the altitude envelope distribution, applying the altitude envelope distribution constraint to the altitude envelope distribution, generating a resulting total altitude envelope distribution, and generating an absolute total altitude envelope distribution may be repeated hundreds or even thousands of times for a region. Furthermore, thousands of regions may be considered if not hundreds. Because the processes disclosed herein are advantageously performed by a mobile device and / or server, data sets providing estimated elevation to estimated floor number and / or floor label mappings for any number of areas can advantageously be created quickly and at low cost, compared to manual processes involving surveying buildings and / or manually retrieving and manually creating such mappings.
[0180] In some embodiments, if desired, the total floor distribution for each number of floors can be selectively selected to strengthen the constraints on the distribution of individual floors. In some embodiments, floor-to-floor spacing, floor-to-ceiling spacing, and border thickness do need to be uniform throughout the building. In some embodiments, similar techniques can be used to map underground floors (i.e., basement floors), although building depth (similar to building height) may not be well documented or easily estimated, and the number of basement floors may not be well documented or easily estimated. In this case, some assumptions can be made about ventilation and building foundations to limit the number of floors below ground and / or building depth. In addition, in some embodiments, assumptions can be made directly about the number of floors below ground and / or depth. For example, an assumption can be that the number of floors below ground in a building does not exceed five floors and the depth does not exceed 20m, or the number of floors below ground does not exceed five floors and the total depth does not exceed 20m. Other assumptions can also be made about building depth and the number of floors below ground based on the geographical area where the building is located.
[0181] Since the floors of a building can be reasonably assumed to be level (or flat), while the terrain is not necessarily level, in some embodiments, it is preferred to directly use the absolute total elevation envelope distribution of the building, rather than the terrain height value of the mobile device, to convert the ellipsoidal height altitude value of the mobile device to the estimated number of floors described below. For example, in a building built on sloping terrain, one side of the building has a low-rise portion located underground, and when a user walks horizontally around the floors of the building without changing floors, the ellipsoidal height value is not expected to change much. However, if the underlying terrain database indicates that it is a sloping terrain (that has been excavated for building construction), the terrain height value of the mobile device may change. Therefore, the terrain height may not be as stable as the ellipsoidal height, and may inadvertently cause errors in the estimated number of floors reported.
[0182] As described above, the estimated altitude data of the mobile device can be measured in a variety of ways, such as height above ellipsoid (HAE), mean sea level (MSL), height above terrain (HAT), etc. If the building database includes data measured / represented in height relative to the ground (i.e., HAT), that is, the building database provides the total altitude envelope distribution of different floors / number of floors, the estimated altitude data of the mobile device needs to be converted into HAT through processes known in the art when necessary. In addition, if the building database includes data measured / represented in absolute height (i.e., HAE or MSL), that is, the building database provides the absolute total altitude envelope distribution of different floors / number of floors, the estimated altitude data of the mobile device will need to be converted into HAE or MSL through processes known in the art as needed. However, due to the above-mentioned constraints on the direct use of HAT, caution is required.
[0183] Any method (also referred to as a "process" or "method") described or otherwise implemented by the disclosure herein may be implemented by a hardware component (e.g., a machine), a software module (e.g., stored in a machine-readable medium), or a combination thereof. In particular, any method described or otherwise implemented by the disclosure herein may be implemented by any specific and tangible system described herein. As an example, a machine may include one or more computing devices, processors, controllers, integrated circuits, chips, systems on chips, servers, programmable logic devices, field programmable gate arrays, electronic devices, dedicated circuit systems, and / or other suitable devices described herein or otherwise known in the art. One or more non-transitory machine-readable media including program instructions are contemplated herein, which, when executed by one or more machines, cause the one or more machines to perform or implement operations including the steps of any method described herein. As used herein, machine-readable media includes all forms of machine-readable media that can be patented under the laws of the jurisdiction in which this application is filed (including, but not limited to, one or more non-volatile or volatile storage media, removable or non-removable media, integrated circuit media, magnetic storage media, optical storage media, or any other storage media, including RAM, ROM and EEPROM), but does not include machine-readable media that cannot be patented under the laws of the jurisdiction in which this application is filed (e.g., transient propagation signals). The methods disclosed herein provide a set of rules for execution. Also contemplated herein are systems for implementing any of the methods described herein that include one or more machines and one or more non-transitory machine-readable media. Also contemplated herein are one or more machines that perform or implement, or are configured to, operable to, or suitable for performing or implementing operations that include the steps of any of the methods described herein. Each method described herein that is not prior art represents a specific set of rules in a processing flow that provides a significant advantage in the field of characterizing the confidence of height above terrain. The method steps described herein may be order-independent and may be performed in parallel or in an order different from the order described, if it is possible to do so. As will be appreciated by one of ordinary skill in the art, the different method steps described herein may be combined to form any number of methods. Any method step or feature disclosed herein may be omitted from the claims for any reason. In order to avoid blurring the concepts of the present disclosure, certain known structures and devices are not shown in the accompanying drawings. When two things are "coupled" to each other, those two things may be directly connected together, or separated by one or more intervening objects. In the absence of a line or intervening object connecting two particular things, unless otherwise stated, the coupling of those things is contemplated in at least one embodiment.In the case where the output end of one thing and the input end of another thing are coupled to each other, even if the information passes through one or more intervening objects, the information sent from the output end is received by the input end in the form of its output or a modified version thereof. Unless otherwise specified, any known communication path and protocol can be used to send the information disclosed herein (e.g., data, commands, signals, bits, symbols, chips, etc.). The words "include", "comprise", "contain", "have", etc. should be interpreted as inclusive meanings (i.e., not limited to), rather than exclusive meanings (i.e., only consisting of them). Unless otherwise specified, words using singular or plural numbers also include plural or singular numbers, respectively. Unless otherwise specified, the words "or" and "and" used in the specific embodiments cover any and all items in the list. The words "some", "any" and "at least one" refer to one or more. The terms "may" or "can" are used herein to indicate examples, rather than requirements-for example, things that may perform or can perform operations, or may have or can have characteristics do not need to perform the operation or have the characteristics in each embodiment, but in at least one embodiment, the thing performs the operation or has the characteristics. Unless alternative methods are described, access to data from a data source may be achieved using known techniques (e.g., a requesting component requests data from a source via a query or other known method, the source searches for and locates the data, and the source collects the data and sends it to the requesting component, or other known techniques).
[0184] Fig.24 Components of a transmitter 2401, a mobile device 2402, and a server 2403 are shown according to some embodiments. Examples of communication paths are shown by arrows between the components.
[0185] As an example, in Fig.24In the embodiment, each transmitter 2401 may include: a mobile device interface 11 for exchanging information with a mobile device (e.g., an antenna and RF front-end components known in the art or otherwise disclosed herein); one or more processors 12; a memory / data source 13 for providing storage and retrieval of information and / or program instructions; (one or more) atmospheric sensors 14 for measuring environmental conditions at or near the transmitter (e.g., pressure, temperature, humidity, other); a server interface 15 for exchanging information with a server (e.g., antenna, network interface, or other); and any other components known to those of ordinary skill in the art. The memory / data source 13 may include a memory storing software modules with executable instructions, and the processor 12 may perform different actions by executing instructions from the modules, including: (i) performing some or all of the methods described herein or other methods that are understood by those of ordinary skill in the art to be executable at the transmitter; (ii) generating a positioning signal for transmission using a selected time, frequency, code, and / or phase; (iii) processing signals received from a mobile device or other source; or (iv) other processing required for the operations described in the present disclosure. The signals generated and transmitted by the transmitter may carry various information that, once determined by the mobile device or server, may identify: the transmitter; the location of the transmitter; environmental conditions at or near the transmitter; and / or other information known in the art. The atmospheric sensor(s) 14 may be integrated with the transmitter, or separate from the transmitter and co-located with or located near the transmitter (e.g., within a threshold distance amount).
[0186] As an example, in Fig.24In the embodiment of the present invention, the mobile device 2402 may include: a transmitter interface 21 for exchanging information with a transmitter (e.g., an antenna and RF front-end components known in the art or otherwise disclosed herein); one or more processors 22; a memory / data source 23 for providing storage and retrieval of information and / or program instructions; (one or more) atmospheric sensors 24 (e.g., barometers and temperature sensors) for measuring environmental conditions at the mobile device (e.g., pressure, temperature, other); (one or more) other sensors 25 (e.g., inertial sensors for measuring movement and orientation); a user interface 26 (e.g., display, keyboard, microphone, speaker, other) for allowing a user to provide input and receive output; another interface 27 (e.g., antenna, network interface, or other) for exchanging information with a server or other device external to the mobile device; and any other components known to those of ordinary skill in the art. A GNSS interface and processing unit (not shown) is contemplated, which may be integrated with other components (e.g., interface 21 and processor 22) or a separate antenna, RF front end, and processor dedicated to receiving and processing GNSS signaling. The memory / data source 23 may include a memory storing software modules with executable instructions, and the processor 22 may perform different operations by executing the instructions in the modules, including: (i) executing part or all of the methods described herein or understood by a person of ordinary skill in the art to be executable on a mobile device; (ii) estimating the altitude of the mobile device based on pressure measurements from the mobile device and the transmitter, temperature measurements from the transmitter or other sources, and any other information required for the calculation; (iii) processing received signals to determine location information (e.g., arrival or travel time of the signal; pseudo-range between the mobile device and the transmitter; transmitter atmospheric conditions; transmitter and / or location or other transmitter information); (iv) using the location information to calculate an estimated position of the mobile device; (v) determining movement based on measurements from an inertial sensor of the mobile device; (vi) GNSS signal processing; or (vii) other processing required for the operations described in the present disclosure.
[0187] As an example, in Fig.24In the example, the server 2403 may include: a mobile device interface 31 for exchanging information with a mobile device (e.g., an antenna, a network interface, or other); one or more processors 32; a memory / data source 33 for providing storage and retrieval of information and / or program instructions; a transmitter interface 34 for exchanging information with a transmitter (e.g., an antenna, a network interface, or other); and any other components known to those of ordinary skill in the art. The memory / data source 33 may include a memory storing a software module with executable instructions, and the processor 32 may perform different operations by executing the instructions in the module, including: (i) performing some or all of the methods described herein or understood by those of ordinary skill in the art to be performed on the server; (ii) estimating the altitude of the mobile device; (iii) calculating the estimated location of the mobile device; or (iv) other processing required for the operations described in the present disclosure. The steps performed by the server as described herein may also be performed on other machines remote from the mobile device, including computers of the enterprise or any other suitable machine.
[0188] Certain aspects disclosed herein relate to estimating the location of a mobile device—for example, where the location is expressed in terms of: latitude, longitude, and / or altitude coordinates; x-, y-, and / or z-coordinates; angular coordinates; or other representations. The location of a mobile device may be estimated using various techniques, including trilateration, which is the process of using geometry to estimate the location of a mobile device using the distances traveled by different "positioning" (or "ranging") signals received by the mobile device from different beacons (e.g., terrestrial transmitters and / or satellites). If location information, such as the transmission time and reception time of a positioning signal from a beacon, is known, the difference between these times multiplied by the speed of light will provide an estimate of the distance traveled by the positioning signal from the beacon to the mobile device. Different estimated distances corresponding to different positioning signals from different beacons can be used together with location information, such as the locations of those beacons, to estimate the location of the mobile device. Positioning systems and methods for estimating the position (in latitude, longitude, and / or altitude) of a mobile device based on positioning signals from beacons (e.g., transmitters and / or satellites) and / or atmospheric measurements are described in commonly assigned U.S. Patent No. 8,130,141, issued on March 6, 2012, and U.S. Patent No. 9,057,606, issued on June 16, 2015. Note that the term "positioning system" can refer to satellite systems (e.g., Global Navigation Satellite Systems (GNSS), such as GPS, GLONASS, Galileo, and Compass / Beidou), ground-based transmitter systems, and hybrid satellite / ground systems.
Claims
1. A method comprising: Select the elevation envelope distribution constraint set for the physical building; generating an altitude envelope distribution set for the physical building according to the altitude envelope distribution constraint set, each altitude envelope distribution comprising one or more first altitude envelopes, each of the first altitude envelopes corresponding to a respective estimated number of floors of the physical building; generating a total altitude envelope distribution for the physical building using the altitude envelope distribution set and in accordance with the altitude envelope distribution constraint set, the total altitude envelope distribution comprising one or more second altitude envelopes, each of the one or more second altitude envelopes corresponding to a respective estimated number of floors of the physical building; determining a reference elevation of the physical structure; as well as An absolute total altitude envelope distribution is determined using the reference altitude and the total altitude envelope distribution, the total altitude envelope distribution comprising one or more third altitude envelopes, each of the third altitude envelopes corresponding to a respective estimated number of floors of the physical building.
2. The method according to claim 1, wherein: Generating an altitude envelope distribution set for the physical building according to the altitude envelope distribution constraint set includes: generating an initial altitude envelope distribution set using the first altitude envelope distribution constraint; Using a second altitude envelope distribution constraint to filter the initial altitude envelope distribution set; and Any remaining altitude envelope distribution of the initial altitude envelope distribution set after the screening is used as the altitude envelope distribution set.
3. The method according to claim 2, wherein: The first altitude envelope distribution constraint is a maximum number of floors; and The second altitude envelope distribution constraint is the maximum building height.
4. The method according to claim 2, wherein: The initial altitude envelope distribution set includes a plurality of altitude envelope distributions; and Each of the altitude envelope distributions includes a minimum altitude value and a maximum altitude value associated with each layer number of the altitude envelope distribution.
5. The method according to claim 1, wherein: The altitude envelope distribution constraint set is selected from a constraint list, which includes a minimum building height, a maximum building height, a minimum floor height, a maximum floor height, a minimum number of floors, and a maximum number of floors.
6. The method according to claim 5, wherein: Selecting the set of altitude envelope distribution constraints includes validating initially selected sets of altitude envelope distribution constraints individually and in combination based on the morphology of the area including the physical building.
7. The method according to claim 1, further comprising: identifying an estimated altitude of the mobile device; For each layer number of the absolute total altitude envelope distribution, when it is determined that the estimated altitude is within the altitude envelope corresponding to the layer number, adding the layer number to the estimated layer number list; as well as The estimated layer number list is returned to the endpoint.
8. The method according to claim 1, further comprising: identifying an estimated altitude of the mobile device; For each layer of the absolute total altitude envelope distribution, calculating the vertical central trend of the altitude envelope corresponding to the layer; For each layer of the absolute total altitude envelope distribution, calculating the distance amplitude between the estimated altitude and the vertical central trend corresponding to the layer; For each layer of the absolute total altitude envelope distribution, conditionally adding the layer to the estimated layer list based on the distance magnitude for the layer; as well as The estimated layer number list is returned to the endpoint.
9. The method according to claim 8, wherein: Conditionally adding a ply to the list of estimated plies based on the magnitude of the distance to that ply includes: If the distance magnitude corresponding to the layer number is the minimum distance magnitude compared with the distance magnitudes corresponding to other layers, the layer number is added to the estimated layer number list.
10. The method according to claim 8, wherein: Conditionally adding a ply to the list of estimated plies based on the magnitude of the distance to that ply includes: If the corresponding distance magnitude of the layer number is smaller than a given threshold, the layer number is added to the estimated layer number list.
11. The method according to claim 8, wherein: Conditionally adding a ply to the list of estimated plies based on the magnitude of the distance to that ply includes: All feasible levels are added to the estimated level list, which is sorted by their corresponding distance magnitudes.
12. The method according to claim 1, further comprising: identifying estimated altitude data for a mobile device; For each layer of the absolute total altitude envelope distribution, calculating an altitude overlap value using the estimated altitude data and the altitude envelope corresponding to the layer; for each level of the absolute total altitude envelope distribution, conditionally adding the level to an estimated level list based on a calculated altitude overlap value for the level; as well as The estimated layer number list is returned to the endpoint.
13. The method according to claim 12, wherein: Conditionally adding the level to the estimated level list based on a calculated altitude overlap value for the level includes: If the calculated altitude overlap value for the level is the largest calculated altitude overlap value compared to the calculated altitude overlap values corresponding to other levels, the level is added to the estimated level list.
14. The method according to claim 12, wherein: Conditionally adding the level to the estimated level list based on a calculated altitude overlap value for the level includes: If the corresponding calculated altitude overlap value of the level is greater than a given percentage threshold, the level is added to the estimated level list.
15. The method according to claim 12, wherein: Conditionally adding the level to the estimated level list based on a calculated altitude overlap value for the level includes: All feasible levels are added to the estimated level list, which is sorted by their corresponding calculated altitude overlap values.
16. The method according to claim 1, further comprising: mapping each estimated number of floors of the physical building to a similarly named estimated floor label; removing estimated layer labels from the map based on one or both of regional and cultural criteria; adding additional estimation layer labels to the map; as well as The estimated layer numbers are aligned with the estimated layer labels.
17. The method according to claim 1, further comprising: identifying an estimated location of a mobile device and an estimated altitude of the mobile device; identifying one or more physical buildings corresponding to the estimated location of the mobile device; identifying, for each of the one or more physical buildings, a corresponding absolute total elevation envelope distribution associated with the building; determining, for each of the one or more physical buildings, a list of estimated floors using the estimated altitude of the mobile device and a corresponding absolute total altitude envelope distribution associated with the building; as well as For each of the one or more physical buildings, the estimated number of floors list is returned to an endpoint.
18. The method according to claim 1, wherein: The reference altitude is the altitude of the ground layer of the physical building and is determined by: i) querying the altitude of a terrain database within the footprint of the physical building and averaging the altitudes across the footprint of the physical building, or ii) retrieving the altitude of the ground layer of the physical building from a building database.
19. The method according to claim 1, wherein: The reference altitude is the altitude of the ground floor of the physical building and is determined by querying a terrain database for altitudes outside the footprint of the physical building and averaging the altitudes.
20. A system comprising one or more servers operable to: Select the elevation envelope distribution constraint set for the physical building; generating an altitude envelope distribution set for the physical building according to the altitude envelope distribution constraint set, each altitude envelope distribution comprising one or more first altitude envelopes, each of the first altitude envelopes corresponding to a respective estimated number of floors of the physical building; generating a total altitude envelope distribution for the physical building using the altitude envelope distribution set and in accordance with the altitude envelope distribution constraint set, the total altitude envelope distribution comprising one or more second altitude envelopes, each of the one or more second altitude envelopes corresponding to a respective estimated number of floors of the physical building; determining a reference elevation of the physical structure; as well as An absolute total altitude envelope distribution is determined using the reference altitude and the total altitude envelope distribution, the total altitude envelope distribution comprising one or more third altitude envelopes, each of the one or more third altitude envelopes corresponding to a respective estimated number of floors of the physical building.
Citation Information
Patent Citations
Systems and methods for determining an altitude error value associated with an estimated altitude of a mobile device
US10655961B2
Determination of Altitude Uncertainty Including Temperature Lapse Rate
US20230075640A1
Wide area positioning system
US8130141B2
Wide area positioning system
US9057606B2