The present invention relates to the notification of users of mobile applications and/or geospatial web-enabled technology, in real-time to near real-time, to their proximity to environmental hazards or events of interest based upon satellite derived geospatial data products—providing environmental intelligence to users.
A large percentage of the population today gets its short-term weather and environmental information via a personal computing device, including but not limited to forecast on their phone, or a portable computing device like an iPad or a laptop. After all, it doesn't get any easier. The utility of many of these applications has been criticized based on how the data that the applications is provided and used to warn of upcoming events. For example, ground networks for lightning provide primarily a point-based observation of lightning flashes. Since, lightning can and does travel many miles from its point of origin (these flashes can also come to ground) the ground network data is limited in the assessment of the spatial extent of the flash. Another example, being when an application or news outlet warns of a wildfire, it can be very challenging for the public to understand if they are in harm's way based on their current location and the location of the wildfire.
Shortcomings of the prior art are overcome and additional advantages are provided through the provision of a method to provide geospatially aware user notifications to users utilizing satellite derived geospatial products to provide the geospatially aware user notifications. The method includes: obtaining, by one or more processors, via a satellite sensor which continuously observes an Earth scene, one or more a geospatial products, wherein each geospatial product comprises a satellite derived event; associating, by the one or more processors, each of the one or more geospatial products with a location defined by a reference on a coordinate system; contemporaneously with obtaining the geospatial products, determining, by the one or more processors, based on a token obtained by the one or more processors from a client device, a current location of the client device, wherein the current location is defined by a given reference on the coordinate system; generating, by the one or more processors, based on the current location and the location associated with each of the one or more geospatial products, proximity values, wherein each proximity value indicates a proximity of the current location to a geospatial product of the one or more geospatial products; determining, by the one or more processors, if any of the proximity values are within one or more predefined proximity thresholds, wherein the proximity thresholds are stored on a memory device communicatively couples to the one or more processors; based on determining that at least one of the proximity thresholds is met or exceeded by at least one proximity value of the proximity values, generating a notification for the client device comprising an alert regarding the one or more geospatial products associated with the at least one proximity value; transmitting, by the one or more processors, the alert to the client device; and generating, by the one or more processors, an instant alert in a graphical user interface on the client device, wherein the instant alert visually disrupts any application displaying on the client device.
Shortcomings of the prior art are also overcome and additional advantages are provided through the provision of a system to provide geospatially aware user notifications to users utilizing satellite derived geospatial products to provide the geospatially aware user notifications. The system includes: one or more processors in communication with the memory; program instructions executable by the one or more processors via the memory to perform a method, the method comprising: obtaining, by the one or more processors, via a satellite sensor which continuously observes an Earth scene, one or more a geospatial products, wherein each geospatial product comprises a satellite derived event; associating, by the one or more processors, each of the one or more geospatial products with a location defined by a reference on a coordinate system; contemporaneously with obtaining the geospatial products, determining, by the one or more processors, based on a token obtained by the one or more processors from a client device, a current location of the client device, wherein the current location is defined by a given reference on the coordinate system; generating, by the one or more processors, based on the current location and the location associated with each of the one or more geospatial products, proximity values, wherein each proximity value indicates a proximity of the current location to a geospatial product of the one or more geospatial products; determining, by the one or more processors, if any of the proximity values are within one or more predefined proximity thresholds, wherein the proximity thresholds are stored on a memory device communicatively couples to the one or more processors; based on determining that at least one of the proximity thresholds is met or exceeded by at least one proximity value of the proximity values, generating a notification for the client device comprising an alert regarding the one or more geospatial products associated with the at least one proximity value; transmitting, by the one or more processors, the alert to the client device; and generating, by the one or more processors, an instant alert in a graphical user interface on the client device, wherein the instant alert visually disrupts any application displaying on the client device.
Systems and methods relating to one or more aspects of the technique are also described and may be claimed herein. Further, services relating to one or more aspects of the technique are also described and may be claimed herein.
Additional features are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention.
One or more aspects of the present invention are particularly pointed out and distinctly claimed as examples in the claims at the conclusion of the specification. The foregoing and objects, features, and advantages of one or more aspects of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawing.
Aspects of the present invention and certain features, advantages, and details thereof, are explained more fully below with reference to the non-limiting examples illustrated in the accompanying drawings. Descriptions of well-known materials, fabrication tools, processing techniques, etc., are omitted so as not to unnecessarily obscure the invention in detail. It should be understood, however, that the detailed description and the specific examples, while indicating aspects of the invention, are given by way of illustration only, and not by way of limitation. Various substitutions, modifications, additions, and/or arrangements, within the spirit and/or scope of the underlying inventive concepts will be apparent to those skilled in the art from this disclosure.
The terms software and program code are used interchangeably throughout this application and can refer to logic executed by both hardware and software. Components of the system that can be utilized to execute aspects of embodiments of the present invention may include specialized hardware, including but not limited to, an FPGA and a GPU (graphics professor unit). Additionally, items denoted as processors may include hardware and/or software processors or other processing means, including but not limited to a software defined radio and/or custom hardware.
As discussed above and understood by one of skill in the art, program code, as referred to throughout this application, includes both software and hardware. For example, program code in certain embodiments of the present invention includes fixed function hardware, while other embodiments utilized a software-based implementation of the functionality described. Certain embodiments combine both types of program code. One example of program code includes a program/utility, having a set (at least one) of program modules, stored in a memory.
As understood by one of skill in the art, for simplicity of illustration, a mobile application is illustrated in certain of the figures, but any geospatially aware web-enabled device could be used in place of mobile application for the described examples or in concert with the mobile application, as could any equivalent device known to one of skill in the art.
Embodiments of the present invention include a computer-implemented method, a computer program product, and a computer system where program code executing on at least one processors utilizes satellite derived geospatial product(s) (i.e., an observation that can be related to a given point(s) or region(s) on the Earth—such as the location of a lightning flash or wildfire) combined with Geographic Information System (GIS)/Geospatial Database frameworks and/or platforms to facilitate user proximity calculations to satellite events and based on these calculations, sends notifications to users in real-time to near real-time (e.g., via push notification, text message, and/or in mobile application alerts, also referred to as user notifications). Program code in embodiments of the present invention notifies users (e.g., on web-enabled computing devices) based on a current location of a user and proximity of the user to a given event indicated by the satellite data (e.g., lightning events, fires, air quality, and other hazards). Satellite-based notification systems represent improvements over systems with alerts based on ground networks for many reasons discussed herein. However, using the example of lightning discussed above, satellite based total lighting observations measure lightning flashes very differently than ground networks (light emitted through a cloud by a lighting flash) and thus, by utilizing the different measures, embodiments of the present invention offer a new capability to observe the spatial extent of the lightning flashes and better notify users of potential risk.
Embodiments of the present invention are inextricably linked to computing. The weather data provided by the program code in embodiments of the present invention, as explained and illustrated herein, are reliant upon communications between various computing devices and satellite derived geospatial products combined with Geographic Information System (GIS)/Geospatial Database frameworks. Through this communication and utilization of data, program code can provide real-time or near real-time alerts to users, who can avoid hazards based on the timing of these alerts. The computing framework of embodiments of the present invention enables the immediacy of the alerts as well as provides the data that is utilized to determine, by the program code, that an alert should be provided. Additionally, embodiments of the present invention include aspects that are additional elements that are a practical application; the purpose of embodiments of the present invention is to provide more accurate alerts given the shortcomings of weather alerts and weather data that is provided to individuals, via applications, that are based on data from ground networks. Embodiments of the present invention provide alerts based on satellite derived geospatial products. In order to provide accurate alerts within timing that is useful to a user, as explained herein, the hardware and software of embodiments of the present invention is configured to accommodate the timing and accuracy requirements of the user. For example, as explained herein, certain embodiments of the present invention include a server-side computing architecture to provide a higher reliability of notifications in specific use cases, including but not limited to, when the user is not actively using the user interface generated by the program code on the user's computer device (e.g., the screen is sleeping or the user is actively using a different application on the device such that the application is being run in the background). The server-side architecture enables access to data from which the program code generates alerts more frequently than the native devices provide, making the notification system more reliable, for example, by retaining a user's last known location (e.g., as a token). Without the server-side notification system, the device itself could only pull location information at intervals, which would slow the ability of the program code to alert the user to imminent weather events.
Embodiments of the present invention represent a practical application because as discussed herein, program code executing on one or more processors in some embodiments of the present invention determines that a user location (user device location) is within given proximity criterion (e.g., a specified distance away from a given satellite derived product/event) and based on this determination, the program code provides the user with a web-enabled notification that alerts the user of an event/hazard. The program code in embodiments of the present invention enables a real-time to near real-time notification to a user within the proximity of a given satellite derived product/event, which can be referred to as environmental intelligence. The end user can be a single or multiple geospatially enabled web device with or without a human observer in the loop. The utilization of aspects of some embodiments of the present invention by outdoor enthusiasts (in a non-limiting manner) practical applications of aspects of some embodiments of the present invention. For example, outdoor enthusiasts such as mariners in boats can utilize aspects of some embodiments of the present invention to receive timely alerts to lightning events in a given proximity to their locations (especially in cases where users are in a potential lightning-risk area and are unaware of the danger—as lightning can strike 10+ miles from a storm). Similarly, satellite derived fire detection products are critical to inform decision makers of possible wildfires in remote and urban areas. Providing geospatially aware notifications (environmental intelligence) to outdoor enthusiast users directly in proximity to these events can significantly contribute (positively) to the users' situational awareness, safety, and decision making.
Embodiments of the present invention provide significant advantages over existing mobile weather applications at least because the utilization of satellite data in place of data from ground networks (as is common to existing weather applications) eliminates certain limitations of the ground networks which in turn, limit the efficacy of the existing mobile weather applications. Many of the alert systems established today are via ground instrument networks. Satellite derived products combined with mobile applications and/or geospatial web-enabled technology offer a new mechanism to notify users of environmental hazards or other events of interest in their proximity in real-time to near real-time. At a basic level, satellite data is of the planet (both land and sea) while ground networks are more limited due to the logistics of deployment. For example, while lighting ground network data is passive electrical and radio frequency observations, satellite derived total lightning data provides new and unique monitoring capabilities over both land and ocean. For example, total lightning flashes observed from a geostationary orbit provide a new capability to observe lightning similar to how a human observer would from view if the human were in space. This type of visibility to environmental hazards is not possible with data from ground networks. Thus, satellite data provides a new and unique source of environmental intelligence data that is persistent and reliable. Aspects of embodiments of the present invention therefore provide improved situational awareness, which in certain situations, can save lives. For example, the program code in embodiments of the present invention can provide warnings based on satellite derived lightning detection risk-areas and hotspots, which provides the users within predefined proximities of these events/areas/risks, with an early warning of possible wildfires. In some instances, such as wildfires, these events may be reported to local officials from human observers, satellite derived observations, and in some cases limited point-based ground sensors. Often wildfires (for example) are reported to a community via news outlets, but the exact wildfire location(s) can be challenging to convey to the public, especially in the early stages of an event. By providing a notification based on a user's location and the user's proximity to an event, program code in embodiments of the present invention provides actionable intelligence to ensure safety and understanding a better understanding of situational awareness. Satellite data can be critical in these early stages of wildfire development as they can observe hotspots (location, intensity, and most importantly spatial extent) in real-time. In contrast, ground networks for lightning provide primarily a point-based observation of lightning flashes. Since, lightning can and does travel many miles from its point of origin (these flashes can also come to ground) the ground network data is limited in the assessment of the spatial extent of the flash. Thus, satellite based total lighting observations measuring lightning flashes very differently than ground networks (light emitted through a cloud by a lighting flash) and offers a new capability to observe the spatial extent of the lightning flashes and better notify users of potential risk. Thus, the data flow of the system and the unique combination of real-time to near real-time satellite derived products, web-enabled mobile applications and technology, and geospatial databases and geospatial data processing, enables the program code in embodiments of the present invention to inform users of possible environmental hazards or other predefined satellite derived events of interest.
Based on the location(s) of the one or more geospatial products on the reference coordinate system and the current location of the user as defined by the reference coordinate system, the program code determines a proximity of the user (i.e., the user's current location) to the (derived) geospatial products (events of interest) (140). In various embodiments of the present invention, the user can configure, through a GUI, a proximity to a given derived product within which the user would like to be alerted. In some embodiments of the present invention, proximities are predefined. Thus, the program code determines, based on one or more predefined proximity values, if each of the one or more geospatial products are within relevant predefined proximity values (150). Based on determining that the current location of the user is within a relevant predefined proximity value from at least one geospatial product of the one or more geospatial products, the program code transmits a notification to the user in the GUI of the computing device (160). In some embodiments of the present invention, the program code generates the GUI, as the program code could be executing in the background on the computing device and based on determining that an alert should be transmitted, the program code activates the GUI such that it is no longer running as a background application and becomes a foreground application executing on the computing device of the user.
As discussed above, two practical applications for embodiments of the present invention are for warning users that they are within a given (problematic) proximity of a lightning strike and/or a wildfire. Thus, as illustrated in
Referring to
In the embodiment illustrated in
Based on the end user location and the satellite data product event location(s) (i.e., the locations of the one or more geospatial product(s)), the program code of the software program calculates a proximity of the end user location to the locations of the one or more satellite derived products/events of interest (240). The program code determines whether predefined proximity conditions are met by the distances between the end user location and the locations of each of the one or more geospatial product(s) (250). Based on determining that the end user's location is within the predefined proximity conditions (e.g., a given proximity criterion that is a specified distance away from a given satellite derived product/event) (260), the program code generates a notification and transmits the notification (e.g., alert) to the mobile device/application and/or web-enabled geospatial technology (270). The transmission of this alert can include the program code generating an interface on the mobile device/application and/or web-enabled geospatial technology to provide a real-time to near real-time notification to the end user. The notification alerts the end user that the end user is in the predefined proximity of a given satellite derived product/event. The program code thus provides the end user with environmental intelligence.
Referring to
The program code obtains geospatial products (events) from an event API 610, which obtains this data from sensors comprising a satellite. One satellite from which data can be obtained by the program code, via the event API 610, is GOES-16.
When the program code executing on the server 620 determines that one or more geospatial products (satellite derived events) are within a predefined proximity of a last known location of the user, the program code notifies the user of this issue (635), as illustrated in
Returning, to
Embodiments of the present invention include a computer-implemented method, a computer program product, and a computer system, where program code executing on one or more servers obtains, via a satellite sensor which continuously observes an Earth scene, one or more a geospatial products, where each geospatial product comprises a satellite derived event. The program code associates each of the one or more geospatial products with a location defined by a reference on a coordinate system. The program code, contemporaneously with obtaining the geospatial products, determines, based on a token obtained by the one or more processors from a client device, a current location of the client device, where the current location is defined by a given reference on the coordinate system. The program code generates, based on the current location and the location associated with each of the one or more geospatial products, proximity values, where each proximity value indicates a proximity of the current location to a geospatial product of the one or more geospatial products. The program code determines if any of the proximity values are within one or more predefined proximity thresholds, wherein the proximity thresholds are stored on a memory device communicatively couples to the one or more processors executing the program code. Based on determining that at least one of the proximity thresholds is met or exceeded by at least one proximity value of the proximity values, the program code generates a notification for the client device comprising an alert regarding the one or more geospatial products associated with the at least one proximity value. The program code transmits the alert to the client device and generates an instant alert in a graphical user interface on the client device, where the instant alert visually disrupts any application displaying on the client device (including a screensaver on a locked screen).
In some embodiments of the present invention, the program code obtains, from the client device, the token. Obtaining the token can include: the program code establishing a connection between the client device and one or more servers comprising the one or more processors, the program code receiving, periodically, from the client device, via the connection, location data comprising a current location of the client device, and the program code storing the token in the memory device.
In some embodiments of the present invention, the client device obtains the location data comprising the current location of the client device from location services executing on the client device, where the location services obtain the location based on the passage of an event selected from the group consisting of: passage of a set interval and movement of the client device beyond a given distance.
In some embodiments of the present invention, the program code obtaining, via the satellite sensor, the one or more geospatial products, further comprises: the program code connecting to an application programming interface in communication with the satellite sensor, where the application programming interface converts observational data collected by the satellite sensor based on continuously observing the Earth scene, to the one or more geospatial products, the program code requesting, from the application programming interface, the one or more geospatial products, and the program code, based on the requesting, obtaining, the one or more geospatial products.
In some embodiments of the present invention, the program code transmitting the alert to the client device comprises the program code utilizing a middleware system or service to provide the alert to the client device, the middleware system or service selected from the group consisting of: a messaging service, a push notification service, and an operating system. The middleware system or service can include the operating system and the operating system can be executing on the client device.
In some embodiments of the present invention, the proximity thresholds are configured by a user through the graphical user interface on the client device.
In some embodiments of the present invention, the one or more geospatial products are selected from the group consisting of: lightning and a hotspot.
In some embodiments of the present invention, the program code determining the current location of the client device further comprises the program code continuously obtaining the token from the client via one or more servers comprising the one or more processors, at regular intervals. The passage of the event can be a longer time period than an interval of the regular intervals.
Referring now to
In computing node 10 there is a computer system/server 12, which is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, and/or configurations that may be suitable for use with computer system/server 12 include, but are not limited to, personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices, and the like.
Computer system/server 12 may be described in the general context of computer system-executable instructions, such as program modules, being executed by a computer system. Generally, program modules may include routines, programs, objects, components, logic, data structures, and so on that perform particular tasks or implement particular abstract data types. Computer system/server 12 may be practiced in distributed cloud computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media including memory storage devices.
The components of computer system/server 12, which can be a cloud computing node, may include, but are not limited to, one or more processors or processing units 16, a system memory 28, and a bus 18 that couples various system components including system memory 28 to processor 16.
Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12, and it includes both volatile and non-volatile media, removable and non-removable media.
System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.
Program/utility 40, having a set (at least one) of program modules 42, may be stored in memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system/server 12; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system/server 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archival storage systems, etc.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprise” (and any form of comprise, such as “comprises” and “comprising”), “have” (and any form of have, such as “has” and “having”), “include” (and any form of include, such as “includes” and “including”), and “contain” (and any form contain, such as “contains” and “containing”) are open-ended linking verbs. As a result, a method or device that “comprises”, “has”, “includes” or “contains” one or more steps or elements possesses those one or more steps or elements, but is not limited to possessing only those one or more steps or elements. Likewise, a step of a method or an element of a device that “comprises”, “has”, “includes” or “contains” one or more features possesses those one or more features, but is not limited to possessing only those one or more features. Furthermore, a device or structure that is configured in a certain way is configured in at least that way, but may also be configured in ways that are not listed.
Number | Date | Country | |
---|---|---|---|
62773702 | Nov 2018 | US |