An example embodiment of the present invention relates to determining a subset of weather stations from a plurality of weather stations to estimate the weather at a first location; and more particularly, to evaluating the best subset of weather stations that is likely to provide the most accurate estimate of weather at a first location.
Weather stations may be used to gather information regarding weather-related information at geographically dispersed locations, such that the weather information may be used for historical trend data, current weather reporting, and future weather prediction. Weather stations may include various sensors to gather weather-related information and report an abundance of weather attributes, such as temperature, humidity, barometric pressure, visibility, precipitation, wind speed, wind direction, etc. Weather stations traditionally have included stationary apparatus that included various types of specifically configured sensors to gather weather-related data. These traditional weather stations are conventionally located at airports, military bases, remote outposts, etc. However, mobile technology and the development of smaller, portable sensors capable of gathering weather-related data has resulted in many mobile devices, traditionally not used as weather stations, to function as weather stations. This enables crowd-sourcing of weather-related information. Control systems may request and/or receive weather information from a weather station at a known location for use in providing weather reports and weather forecasts.
One drawback of using location-based weather data from weather stations is that the weather data may only approximate the weather at a location in which a user is interested. Further, the ubiquity of weather stations may result in an abundance of weather-related information, much of which may not be material to the desired weather information.
A method, apparatus, and computer program product are provided in accordance with an example embodiment for selecting a combination of a subset of weather stations from among a plurality of weather stations for estimating the weather at a specific location. According to an example embodiment, methods may include: receiving an indication of a plurality of weather stations within a predefined area, where the predefined area includes a first location; determining, for each of the plurality of weather stations, a distance of the weather station from the first location; calculating, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location; calculating, for each of the different combinations of subsets of the plurality of weather stations, an average location relative to the first location; and selecting a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location for use in conjunction with at least one of subsequent weather updates, mapping, or navigation.
According to some embodiments, the predefined area may be defined by a predefined radius extending from the first location. Calculating, for the plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location may include calculating, for each combination of a predefined number of weather stations of the plurality of weather stations, an average distance of the weather stations for each combination. A location of a weather station relative to the first location may be determined by converting a latitude and longitude of the weather station to local Cartesian coordinates with the first location being the origin, and summing the values of the Cartesian coordinates for the weather station.
Determining a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location may include: applying a first weight to the average distance of each combination of subsets of the plurality of weather stations from the first location to obtain a weighted average distance for each combination; applying a second weight to the average location of each combination of the subsets of the plurality of weather stations relative to the first location to obtain a weighted average location for each combination; summing, for each combination, the weighted average distance and the weighted average location; determining if any of the combinations of subsets of the plurality of weather stations meet a predefined criteria; and selecting a combination of subset of the plurality of weather stations that meets the predefined criteria.
According to some embodiments, the combinations of subsets may include each combination of three weather stations from the plurality of weather stations. In response to determining that none of the combinations of three weather stations of the plurality of weather stations meet the predefined criteria, the method may include: calculating, for each combination of four weather stations of the plurality of weather stations, an average distance of the weather stations from the first location; calculating, for each combination of four weather stations of the plurality of weather stations, an average location relative to the first location; applying a first weight to the average distance of each combination of four weather stations from the first location to obtain a weighted average distance for each combination of four weather stations; applying a second weight to the average location of each combination of four weather stations relative to the first location to obtain a weighted average location for each combination of four weather stations; summing, for each combination of four weather stations, the weighted average distance and the weighted average location; determining if any of the combination of four weather stations meet a predefined criteria; and selecting a combination of four weather stations that meets the predefined criteria.
Embodiments of the present invention may include an apparatus having at least one processor and at least one memory including computer program code. The at least one memory and computer program code may be configured to, with the processor, cause the apparatus to at least: receive an indication of a plurality of weather stations within a predefined area, where the predefined area includes a first location; determine, for each of the plurality of weather stations, a distance of the weather station from the first location; calculate, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location; calculate, for each of the different combinations of subsets of the plurality of weather stations, an average location relative to the first location; and select a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location for use in conjunction with at least one of subsequent weather updates, mapping, or navigation. The predefined area may be defined by a predefined radius extending from the first location.
Causing the apparatus to calculate, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location may include causing the apparatus to calculate, for each combination of a predefined number of weather stations of the plurality of weather stations, an average distance of the weather stations of each combination. A location of a weather station relative to the first location may be determined by causing the apparatus to convert a latitude and longitude of the weather station to local Cartesian coordinates with the first location being the origin, and summing values of the Cartesian coordinates for the weather station.
According to some embodiments, causing the apparatus to determine a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location may include causing the apparatus to: apply a first weight to the average distance of each combination of subsets of the plurality of weather stations from the first location to obtain a weighted average distance for each combination; apply a second weight to the average location of each combination of subsets of the plurality of weather stations relative to the first location to obtain a weighted average location for each combination; sum, for each combination, the weighted average distance and the weighted average location; determine if any of the combination of subsets of the plurality of subsets of weather stations meets a predefined criteria; and select a combination of subsets of the plurality of weather stations that meets the predefined criteria. The combination of subsets includes each combination of three weather stations from the plurality of weather stations.
In response to the apparatus determining that none of the combinations of three weather stations of the plurality of weather stations meet the predefined criteria, the apparatus may be caused to: calculate, for each combination of four weather stations of the plurality of weather stations, an average distance of the weather stations from the first location; calculate, for each combination of four weather stations from the plurality of weather stations, an average location relative to the first location; apply a first weight to the average distance of each combination of four weather stations from the first location to obtain a weighted average distance for each combination of four weather stations; apply a second weight to the average location of each combination of four weather stations relative to the first location to obtain a weighted average location for each combination of four weather stations; sum, for each combination of four weather stations, the weighted average distance and the weighted average location; determine if any of the combination of four weather stations meet a predefined criteria; and select a combination of four weather stations that meets the predefined criteria.
Embodiments of the present invention may provide a computer program product having at least one non-transitory computer-readable storage medium having computer-executable program code portions stored therein. The computer-executable program code portions comprising program code instructions configured to: receive an indication of a plurality of weather stations within a predefined area, where the predefined area comprises a first location; determine, for each of the plurality of weather stations, a distance of the weather station from the first location; Calculate, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location; calculate, for each of the different combinations of subset of the plurality of weather stations, an average location relative to the first location; and select a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location for use in conjunction with at least one of subsequent weather updates, mapping, or navigation.
The program code instructions configured to calculate, for a plurality of different combinations of subsets of the plurality of weather stations, an average distance of the weather stations of each of the plurality of different combinations from the first location comprises program code instructions configured to calculate, for each combination of a predefined number of weather stations of the plurality of weather stations, an average distance of the weather stations of each combination. A location of a weather station relative to the first location may be determined by program code instructions configured to: convert a latitude and a longitude of the weather station to local Cartesian coordinates with the first location being the origin, and summing values of the Cartesian coordinates for the weather station.
According to some embodiments, the program code instructions configured to determine a combination of a subset of the plurality of weather stations based on the average distance for the combination relative to the first location and the average location for the combination relative to the first location may include program code instructions configured to: apply a first weight to the average distance of each combination of subsets of the plurality of weather stations from the first location to obtain a weighted average distance for each combination; apply a second weight to the average location of each combination of subsets of the plurality of weather stations relative to the first location to obtain a weighted average location for each combination; sum, for each combination, the weighted average distance and the weighted average location; determine if any of the combination of subsets of the plurality of weather stations meet a predefined criteria; and select a combination of subsets of the plurality of weather stations that meets the predefined criteria.
The combination of subsets may include each combination of three weather stations from the plurality of weather stations. In response to the program code instructions determining that none of the combinations of three weather stations of the plurality of weather stations meet the predefined criteria, the computer program product may further include program code instructions configured to: calculate, for each combination of four weather stations of the plurality of weather stations, an average distance of the weather stations from the first location; calculate, for each combination of four weather stations of the plurality of weather stations, an average location relative to the first location; apply a first weight to the average distance of each combination of four weather stations from the first location to obtain a weighted average distance for each combination of four weather stations; apply a second weight to the average location of each combination of four weather stations relative to the first location to obtain a weighted average location for each combination of four weather stations; sum, for each combination of four weather stations, the weighted average distance and the weighted average location; determine if any of the combinations of four weather stations meet a predefined criteria; and select a combination of four weather stations that meets the predefined criteria.
Having thus described example embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Some embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all, embodiments of the invention are shown. Indeed, various embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout. As used herein, the terms “data,” “content,” “information,” and similar terms may be used interchangeably to refer to data capable of being transmitted, received and/or stored in accordance with embodiments of the present invention. Thus, use of any such terms should not be taken to limit the spirit and scope of embodiments of the present invention.
Additionally, as used herein, the term ‘circuitry’ refers to (a) hardware-only circuit implementations (for example, implementations in analog circuitry and/or digital circuitry); (b) combinations of circuits and computer program product(s) comprising software and/or firmware instructions stored on one or more computer readable memories that work together to cause an apparatus to perform one or more functions described herein; and (c) circuits, such as, for example, a microprocessor(s) or a portion of a microprocessor(s), that require software or firmware for operation even if the software or firmware is not physically present. This definition of ‘circuitry’ applies to all uses of this term herein, including in any claims. As a further example, as used herein, the term ‘circuitry’ also includes an implementation comprising one or more processors and/or portion(s) thereof and accompanying software and/or firmware. As another example, the term ‘circuitry’ as used herein also includes, for example, a baseband integrated circuit or applications processor integrated circuit for a mobile phone or a similar integrated circuit in a server, a cellular network device, other network device, and/or other computing device.
As defined herein, a “computer-readable storage medium,” which refers to a non-transitory physical storage medium (for example, volatile or non-volatile memory device), can be differentiated from a “computer-readable transmission medium,” which refers to an electromagnetic signal.
A method, apparatus, and computer program product are provided herein in accordance with an example embodiment for selecting the minimum number of weather stations to provide an estimation of weather for a given location.
The mobile device 114 may include a mobile computing device such as a laptop computer, tablet computer, mobile phone, smart phone, navigation unit, personal data assistant, watch, camera, or the like. Server 104 may be one or more fixed or mobile computing devices. The mobile device 114 may be configured to access the server 104 through, for example, a weather application, such that the mobile device 114 may access the weather station information via the network 112 directly, or via the server 104 functioning as an intermediary.
An example embodiment of a mobile device 114 may be embodied in an apparatus as illustrated in
As noted above, the apparatus 200 may be embodied by mobile device 114. However, in some embodiments, the apparatus may be embodied as a chip or chip set. In other words, the apparatus may comprise one or more physical packages (for example, chips) including materials, components and/or wires on a structural assembly (for example, a baseboard). The structural assembly may provide physical strength, conservation of size, and/or limitation of electrical interaction for component circuitry included thereon. The apparatus may therefore, in some cases, be configured to implement an example embodiment of the present invention on a single “system on a chip.” As such, in some cases, a chip or chipset may constitute a means for performing one or more operations for providing the functionalities described herein.
The processor 202 may be embodied in a number of different ways. For example, the processor may be embodied as one or more of various hardware processing means such as a coprocessor, a microprocessor, a controller, a digital signal processor (DSP), a processing element with or without an accompanying DSP, or various other processing circuitry including integrated circuits such as, for example, an ASIC (application specific integrated circuit), an FPGA (field programmable gate array), a microcontroller unit (MCU), a hardware accelerator, a special-purpose computer chip, or the like. As such, in some embodiments, the processor may include one or more processing cores configured to perform independently. A multi-core processor may enable multiprocessing within a single physical package. Additionally or alternatively, the processor may include one or more processors configured in tandem via the bus to enable independent execution of instructions, pipelining and/or multithreading.
In an example embodiment, the processor 202 may be configured to execute instructions stored in the memory device 204 or otherwise accessible to the processor. Alternatively or additionally, the processor may be configured to execute hard coded functionality. As such, whether configured by hardware or software methods, or by a combination thereof, the processor may represent an entity (for example, physically embodied in circuitry) capable of performing operations according to an embodiment of the present invention while configured accordingly. Thus, for example, when the processor is embodied as an ASIC, FPGA or the like, the processor may be specifically configured hardware for conducting the operations described herein. Alternatively, as another example, when the processor is embodied as an executor of software instructions, the instructions may specifically configure the processor to perform the algorithms and/or operations described herein when the instructions are executed. However, in some cases, the processor may be a processor specific device (for example, a mobile terminal or a fixed computing device) configured to employ an embodiment of the present invention by further configuration of the processor by instructions for performing the algorithms and/or operations described herein. The processor may include, among other things, a clock, an arithmetic logic unit (ALU) and logic gates configured to support operation of the processor.
The apparatus 200 of an example embodiment may also include a communication interface 206 that may be any means such as a device or circuitry embodied in either hardware or a combination of hardware and software that is configured to receive and/or transmit data to/from a communications device in communication with the apparatus, such as to facilitate communications with one or more user equipment 104 or the like. In this regard, the communication interface may include, for example, an antenna (or multiple antennae) and supporting hardware and/or software for enabling communications with a wireless communication network. Additionally or alternatively, the communication interface may include the circuitry for interacting with the antenna(s) to cause transmission of signals via the antenna(s) or to handle receipt of signals received via the antenna(s). In some environments, the communication interface may alternatively or also support wired communication. As such, for example, the communication interface may include a communication modem and/or other hardware and/or software for supporting communication via cable, digital subscriber line (DSL), universal serial bus (USB) or other mechanisms.
The apparatus 200 may also include a user interface 208 that may in turn be in communication with the processor 202 to provide output to the user and, in some embodiments, to receive an indication of a user input. As such, the user interface may include a display and, in some embodiments, may also include a keyboard, a mouse, a joystick, a touch screen, touch areas, soft keys, one or more microphones, a plurality of speakers, or other input/output mechanisms. In one embodiment, the processor may comprise user interface circuitry configured to control at least some functions of one or more user interface elements such as a display and, in some embodiments, a plurality of speakers, a ringer, one or more microphones and/or the like. The processor and/or user interface circuitry comprising the processor may be configured to control one or more functions of one or more user interface elements through computer program instructions (for example, software and/or firmware) stored on a memory accessible to the processor (for example, memory device 204, and/or the like).
According to embodiments described herein, a weather station apparatus 300 may be a static weather station. For example, the location of the weather station apparatus 300 may be fixed and unchanging. Such weather stations may be located at an airport, city center, or other such point-of-interest, for example. Weather station apparatuses may optionally be mobile, such as a weather station apparatus mounted to a vehicle (e.g., a storm-chasing vehicle), or as a mobile station that may be temporarily placed at specific locations (e.g., on a field for a sporting event). Further, as sensor technology has advanced and costs have decreased, many mobile devices, such as a smart phone or mobile computing device, may be capable of functioning as a weather station providing some or all of the weather related information traditionally gathered at fixed weather stations. As such, according to some embodiments, a mobile weather station apparatus 300 may include a smart phone or mobile computing device. Weather station apparatuses may include a location sensor (e.g., GPS sensor), particularly when the weather station apparatus is mobile, for determining and providing the weather station location information indicative of the location of the weather station apparatus. A fixed-location weather station apparatus 300 may optionally include a location sensor, but may optionally have the station location stored therein for reporting as needed or as requested. Optionally, fixed-location weather stations may have unique identifications, where a database, such as memory 204 of apparatus 200, may store the fixed location associated with the unique identification of a weather station.
Example embodiments of the present invention may be provided to establish a weather estimate for a specific location. In particular, based on the relative position of a plurality of weather stations with respect to the location, a weather estimate is generated based on a selection of a subset of the plurality of weather stations. The weather estimate generated based on the selected subset of weather stations, and may be used for a variety of purposes, such as in weather updates to a user, mapping of weather estimates, or navigation (e.g., avoiding certain weather conditions). A user, such as a user of mobile device 114 of
While example embodiments described herein refer generally to a “weather estimate” for a location, the weather estimate may be past, present, or future predicted weather for the location. Historical weather-related sensor readings from the weather stations of a selected combination of weather stations may be used to determine or estimate the weather at a point of time in the past at the location. Similarly, the historical information collected by the selected combination of weather stations may be used as trend information to determine what the weather will be like at a point in time in the future. The combination of weather stations may also be used to determine an estimate of the current weather at the given location, such that methods described herein can be used in any such implementation.
A location for which a weather estimate is requested may have dozens, hundreds, or even thousands of weather stations within the predefined distance of the location. Conventionally, information from each of these weather stations may be used to provide the estimate of the weather at the location. However, this requires substantial computational time and resources. If the number of weather stations within a predefined distance of a location is relatively high, the processing time and memory consumption may introduce latency in the weather estimate for the location, and the weather estimate may not be accurate for the specific location, particularly when weather across the predefined area varies. Provided herein is a method, apparatus, and computer program product to evaluate the available weather stations within a predefined distance of a location and select the minimum number of weather stations with a well-defined geometric layout relative to the location. Embodiments described herein ensure that the subset of weather stations selected provide a weather estimate for the given location that is both more accurate and more efficiently determined relative to conventional methods.
Accordingly, blocks of the flowcharts support combinations of means for performing the specified functions and combinations of operations for performing the specified functions for performing the specified functions. It will also be understood that one or more blocks of the flowcharts, and combinations of blocks in the flowcharts, can be implemented by special purpose hardware-based computer systems which perform the specified functions, or combinations of special purpose hardware and computer instructions.
In order to select a subset of the plurality of weather stations within a predefined distance of a given location, an algorithm has been developed to ensure the weather stations selected provide an efficient and accurate estimate of the weather.
A minimum number of stations may be selected at 520, where every combination of that minimum number of stations out of the plurality of stations identified within the area is identified. For example, if there are 10 weather stations WS-A through WS-J, and the minimum number of weather stations is identified as three, the combinations may include: (WS-A, WS-B, WS-C); (WS-A, WS-B, WS-D); (WS-A, WS-B, WS-E) . . . (WS-H, WS-I, WS-J), or 120 different combinations. The combinations are without regard for the order in which the weather stations are combined as the order has no effect on the result. For each different combination established at 520, an average distance is calculated at 525 between the location for which the weather estimate is sought and the distances to the weather stations of that combination. At 530, an average station location is computed between the weather stations of each combination and the location at which the weather estimate is sought. This calculation may be performed to establish a numerical estimation of the geometric layout of the weather stations around the location. For each combination, the geographic coordinates for each weather station (e.g., in latitude and longitude) may be converted to local Cartesian coordinates (x and y) with the location for which the weather estimate is sought being the origin of the Cartesian coordinates (x=0 and y=0). The summation of the weather stations x- and y-coordinates divided by the number of stations provides the average weather station location. Table 1 below illustrates a portion of the different combinations of weather stations (WS-A through WS-J) including their average distance from the location at which the weather estimate has been requested.
For each combination, a first weight is applied to the average distance of the set of weather stations, and a second weight is applied to the average location of the combination, as shown at 535. The two weights are user configurable and may sum to one. The weights are user configurable in order to emphasize the more important characteristics desired of the selected weather stations, such as whether average distance is more critical, or if average location is more critical. If it is desired for the location at which the weather estimate is requested to be well surrounded (e.g., geometrically or geographically) by weather stations, then the second weight, applied to the average location, would be greater than the first weight, applied to the average distance. Conversely, if it is desired to prioritize proximity of weather stations to the location at which the weather estimate is requested over geometric dispersion, the first weight may be greater than the second weight. The calculation is performed, for each weather station combination, according to the following equation, applied at 540 of the flowchart of
Combination Score=(Weight 1)×(Average distance)+(Weight 2)×(Average location)
The weighted function to produce the combination score for each combination of weather stations may be compared against a predefined value. The predefined value may be based on a quality measure, such that a combination score greater than the predefined value may be of poorer quality than is desirable. A combination score that is below a predefined value may be considered of sufficient quality to provide an accurate estimate of the weather at the location. This comparison to the predefined value is performed at 545 of the flowchart of
According to an example embodiment, an implementation of the selection of a minimum number of weather stations to provide an accurate weather estimate for a given location may ensure that the selected subset of weather stations geometrically surrounds the device or the location of the device for which an estimation of weather is to be provided. This geometric surrounding helps ensure that the estimated weather is not skewed away from the location to a location, which may be proximate to the specified location, but may have a substantially different weather estimate.
At decision block 545, if the weighted average sum of 540 is above the predefined value, the minimum number of stations is increased. For example, at 520, if the minimum number of weather stations is initially set to three stations, in response to the weighted average sum being above the predefined value, the minimum number of weather stations is increased to four stations at 550 before returning to operation 520. This increase in the number of minimum stations enables the potential for greater geographic dispersion and can potentially reduce the average distance to the selected weather stations, such that the likelihood of finding a combination of weather stations for which the weighted average sum is below the predefined value at 545. In response to the weighted average sum being below the predefined value at 545, a combination of weather stations is selected at 555 for the generation of a weather estimate for the location.
According to some embodiments, multiple combinations of weather stations may have weighted average sum below the predefined value. This may particularly be the case in a location where weather stations are prevalent and ubiquitous. In such an embodiment, the combination with the lowest weighted average sum may be selected for use in generating the weather estimate at the location.
The method illustrated in the flowchart of
Once a combination of weather stations has been selected for generating an estimate of the weather at the location, a weather estimation algorithm may be selected to provide the weather estimation to a user.
In an example embodiment, an apparatus for performing the methods of
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the inventions are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, although the foregoing descriptions and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be appreciated that different combinations of elements and/or functions may be provided by alternative embodiments without departing from the scope of the appended claims. In this regard, for example, different combinations of elements and/or functions than those explicitly described above are also contemplated as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
Number | Name | Date | Kind |
---|---|---|---|
7406382 | Brulle-Drews | Jul 2008 | B2 |
8060308 | Breed | Nov 2011 | B2 |
8154398 | Rolf | Apr 2012 | B2 |
8314730 | Musiak et al. | Nov 2012 | B1 |
8589389 | Bisdikian et al. | Nov 2013 | B2 |
8607154 | Watts | Dec 2013 | B2 |
8610566 | Sznaider et al. | Dec 2013 | B2 |
8832121 | Smith et al. | Sep 2014 | B2 |
20050222752 | Sokola | Oct 2005 | A1 |
20080168339 | Hudson et al. | Jul 2008 | A1 |
20140358441 | Hale et al. | Dec 2014 | A1 |
20160092615 | Stenneth | Mar 2016 | A1 |
20160242098 | Tsukamoto | Aug 2016 | A1 |
Number | Date | Country |
---|---|---|
WO 03000513 | Jan 2003 | WO |
Entry |
---|
Interpolation of Observed Weather—Agri4castWiki [online] [retrieved Jun. 10, 2016]. Retrieved from the Internet: <URL: http://marswiki.jrc.ec.europa.eu/agri4castwiki/index.php/Interpolation—of—observed—weather>. 8 pages. |
In re: Stenneth; U.S. Appl. titled Selecting a Weather Estimation Algorithm and Providing a Weather Estimate; U.S. Appl. No. 15/077,507, filed Mar. 22, 2016. |