TECHNIQUES FOR PROVIDING SITUATIONAL AWARENESS

Method and systems for situational awareness are disclosed. An example method includes receiving a first set of sensor data from a plurality of internal data sources that describes geospatial locations of objects within an airspace. The method also includes receiving event data from an external data source over a network describing publicly available information affecting the airspace. The method also includes receiving a second set of sensor data from another external data source operated by a user that describes the geospatial location of a user-operated object. The method also includes generating object metadata based on the first and second sets of sensor data and the event data. The method also includes streaming at least a subset of the object metadata to the computing device of the user. The object metadata is processed to generate a real-time three-dimensional rendering of the airspace, including the objects and the user-operated object.

TECHNICAL FIELD

Aspects and implementations of the present disclosure relate to a situational awareness system and, in particular, to system for tracking a wide variety of sensor data and event data affecting an airspace.

BACKGROUND

Unmanned Aerial Vehicles (UAVs), sometimes referred to as drones, have come to provide a wide variety of services in an efficient, cost-effective manner. For example, UAVs have been used for applications such as disaster response, inspection of infrastructure assets (e.g., pipelines, broadcast towers, transmission lines), collection of geographic information and aerial imagery for mapping and geographical surveys, environmental monitoring, surveillance, product delivery, and many others. UAVs may be piloted remotely and may also have varying levels of autonomy. For example, UAVs may be programmed to follow pre-programmed flight paths or to select a flight path partly in response to sensor data. During flight operations, UAV operators have a responsibility to ensure that their UAVs are not interfering with national airspace and not going to cause an incident with other aircraft.

DETAILED DESCRIPTION

Aspects and implementations of the present disclosure are directed to techniques for implementing a situational awareness system for improving flight safety. As explained above, UAV operators have a responsibility to ensure that their UAVs are not interfering with national airspace and not going to cause an incident with other aircraft. Monitoring aircraft flight data can help to improve awareness of the potential hazards within a given airspace. However, existing systems provide limited information, which may not fully represent the conditions within an airspace. Accordingly, over-reliance on such systems may provide a false sense of safety since there may be hazards within an airspace that are not represented.

The present disclosure described an improved situational awareness system that combines a wide variety of sensor data and event data affecting an airspace. The system is configured to collect data from a variety of sources, including internal data sources operated by the service provider and external data sources operated by customers and other third-party data services. These external data sources may include UAVs, UAV simulators, radar platforms, weather data services, flight tracking systems, and others.

Telemetry and other data collected by the situational awareness system may be formatted according to a set of uniform formatting rules to generate object metadata representing all (or nearly all) of the aerial objects known to be present within a monitored volume of airspace. In some embodiments, the object metadata may also include ground objects such as building and towers, for example. The object metadata, or a subset thereof, may then be streamed to users and used to generate a three-dimensional (3D) visual display of the airspace overlayed on a 3D map of the underlying geography that shows the surface topology and may also include grounds structures such a buildings and towers. The visual display may be dynamic and interactive, enabling the user to manipulate the field of view and viewing direction to obtain a visual perspective most helpful the user. Information about each object, such as object type, object identifier, altitude, speed, Global Positioning System (GPS) coordinates, and others, may also be displayed textually or symbolically and may be toggled on or off by the user. Objects in the visual display may be represented by two-dimensional (2D) icons or 3D models. Various object types may be visually represented by a different type of 2D icon or 3D model, some or all of which may be configured to provide a sense of realism that allows to user to intuitively distinguish the various types of objects and information being displayed.

The situational awareness system may be hosted by a Web server that collects and processes the data to generate the visual display. Authorized users may access the system to provide additional data and/or receive the object metadata. The visual display may be generated at the user computing device within a Web browser or a specialized situational awareness application.

The techniques described herein improve the functioning of a computer system by providing an improved data collection infrastructure that is able collect a wide variety of data from disparate sources and process the data to provide a uniform representation that can be delivered to the computing devices of end users. This enables the situational awareness system to generate an information-rich 3D visual representation of an airspace that captures all of the aerial and ground objects that the user needs to be aware of to conduct flight operations in a safe and effective manner. The situational awareness system100described herein can also be used as a training tool to help pilots understand situational awareness and learn how to provide oversight over an operation.

FIG.1is a block diagram that illustrates a system architecture of a situational awareness system in accordance with embodiments of the present disclosure. While various devices, interfaces, and logic with particular functionality are shown, it should be understood that the situational awareness system100can include any number of devices, components, interfaces, and logic for facilitating the functions described herein.

The situational awareness system100may be at least partly implemented in computing system102which may be a server (e.g. Web server), a collection of servers, a distributed computing cluster that serves as a cloud computing platform, and others. The computing system102may include processing devices104, memory106, and storage108, among other components. The processing device104may include one or more processors of any suitable type, including complex instruction set computing (CISC) microprocessors, reduced instruction set computing (RISC) microprocessors, very long instruction word (VLIW) microprocessors, application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), digital signal processor (DSPs), and others. The memory106is configured as a working memory for storing programming instructions and data used by the processing devices104and may include volatile memory devices such as random-access memory (RAM), non-volatile memory devices such as solid-state memory. The storage108may be used to store long term data (e.g., user data) and to store computer programming instructions that direct the actions of the processing devices104. Computer programming may be loaded from storage108into the memory106for execution by the processing devices104and may be one or more hard disk drives, solid state drives, a Redundant Array of Independent Disks (RAID) system, an array of network attached storage (NAS) devices, and others.

As shown inFIG.1, some of the communication and computing functions of the computing system102are shown as a specific arrangement of software modules hosted by various components of the computing system. However, it will be appreciated that the specific embodiment shown inFIG.1is for convenience in describing features of the system and that the computing system102may be organized with any suitable structure and any suitable division or combination of programming tasks between modules and components.

The computing system102may include a Web server110that enables a user device112to submit requests for Web content (e.g., Web pages or other resources) via the HyperText Transfer Protocol (HTTP) and/or HTTP secure (HTTPS). The user device112may be any suitable electronic device (e.g., desktop computer, laptop computer, smart phone, etc.) that can access the Web server through a network114.

The network114may be a public network (e.g., the internet), a private network (e.g., a local area network (LAN) or wide area network (WAN)), or a combination thereof. In one embodiment, the network114may include a wired or a wireless infrastructure, which may be provided by one or more wireless communications systems, such as a WiFi router connected with the network114and/or a wireless carrier system such as 4G or 5G that can be implemented using various data processing equipment, communication towers (e.g. cell towers), etc. In some embodiments, the network114may be an L3 network.

The computing system102may include a message handler116and/or a gateway Application Programming Interface (API)118. The message handler116and the gateway API118may both include data ingestion services for receiving data from the various data sources120-128through a backend network. Although not explicitly depicted, it will be appreciated that the backend network may be the same as, or similar to, the network114. Data collected from the data sources120-128is delivered to the situational awareness application130for processing.

The data sources120-128may include internal data sources and external data sources. Examples of internal data sources include a UAS simulator120, internal UASs122, and/or internal radar platforms124. Examples of external data sources include external UAS devices126and external data services128. The data services128may be third-party sources of publicly available information such as weather data, aircraft flight information, additional radar information, and others. Data collected through measurement by electronic devices may be collectively referred to as sensor data, and may include data such as radar data, position coordinates (latitude, longitude, altitude, etc), compass heading, battery life, air pressure, windspeed, temperature, etc. Event data may include any information or activity reported by individuals or organizations that may be relevant to an airspace, including publicly available information such as flight tracking information, current weather conditions, future weather forecasts, and others.

The data collected by the computing system102may be received by the message handler116. The message handler116stores the received messages to a message queue and routes messages from the queue to the situational awareness application130. The message handler116may be any suitable message-oriented communication infrastructure and may use a publish-subscribe mechanism for receiving data from the data sources120-128and routing data to the situational awareness application130. In such embodiments, the data sources120-128are configured as data publishers that post messages to the message handler116, which may also be referred to as a message broker or event bus. The message handler116stores the messages and then forwards the messages from storage to the subscribers, in this case the situational awareness application130.

In some embodiments, the internal data sources operated by the provider of the situational awareness service (e.g., UAS simulator120, internal UAS122, radar platforms124) may be configured to provide data directly to the message handler116. Accordingly, each internal data source may be configured to post messages to the message handler116. The internal data sources may also include a translator that is configured to translate the sensed data into a message format that is compatible with the message handler116and the situational awareness application130.

In some embodiments, one or more external data sources (e.g., external UAS126, external data services128) may also be configured to provide data to computing system102directly to the message handler116. However, this could involve several iterations of communication and coordination between the situation awareness service provider and the external data source to ensure that the external data source is authorized and otherwise able to publish data to the message handler116, which could be cumbersome. To solve this problem, data from external data sources such as the external UAS126and external data services128may be received through the gateway API118. The gateway API118may be configured to receive data in accordance with an API specification that may be accessed through the Web server110independently, i.e., without involvement of the situational awareness service provider. The API specification informs external data sources regarding any communication protocols or data formats used by the gateway API118for ingesting data. In this way, the gateway API118provides a simpler technique that enables the external data sources to provide various types of data in a format compatible with the situational awareness application130.

Data received by the gateway API118from external data sources may be published to the message handler116and added to the data queue maintained by the message handler116. In this way, external data received through the gateway API118is combined with the internal data received from internal data sources in a way that is transparent to the situation awareness application130.

The gateway API118may also provide user authentication services, which may be used for authenticating external data sources and allowing them to push data to the message queue maintained by the message handler116. The gateway API118may also provide user authentication services for user devices112to allow user devices112to communicate with the Web server110for receiving situational awareness data. To provide user authentication services, the gateway API118may be configured to receive user credentials (e.g., username, password, etc.) and compare those credentials against data stored to a database132. It will be appreciated that the gateway API118may include additional subcomponents that are not depicted inFIG.1. For example, the gateway API118may include several code modules and/or separate APIs that are coordinated to provide the functions described herein. For example, although the gateway API118is shown as a single component, it will be appreciated that different functions (e.g., data ingestion, user authentication) may be handled by individual APIs which are collectively referred to herein as the gateway API118.

The internal UAS122refers to UAS systems operated by the service provider. The service provider may conduct UAS operations for any number of reasons, including scientific research, infrastructure inspection, security monitoring, flight training, and many others. Any number of internal UASs122may be communicatively coupled to the system, some or all of which may be operated independently or involved in a joint operation. The data reported by the UASs122may be include telemetry and volume data. Telemetry data refers to sensor data related to any of an object's measurable characteristics. For example, the telemetry data may include GPS coordinates, speed, altitude, aircraft orientation or attitude, battery life, and others. Volume data refers to a spatial volume in which an aircraft is planning to operate. The volume data may be specified by the UAS operator and may be expressed as a flight path plus buffer information that describes a volume around the flight path in which the UAS operator plans to exercise freedom of movement. The internal UAS122data source may also include a ground control station, which may be in communication with one or more UASs. Communications between the UAS and the ground control station may be conducted using any suitable protocol, including Micro Air Vehicle Link (MAVlink) and others. The ground control station may include a translator that translates telemetry and volume data into the messaging format used by the message handler116.

The UAS simulator120generates simulated geospatial information (e.g., simulated telemetry data and/or volume data) representing a simulated object within the airspace. The UAS simulator120may be processing hardware or a combination of hardware and software residing on a laptop computer or other computing device. Such simulated data may be useful for conducting training exercises, testing the system's software, and testing various aspects of the system's operation and performance, for example.

The radar platforms124may be ground based installations that use radio waves to determine the distance (range), angle (azimuth), and radial velocity of objects relative to the site. Some radar platforms124may be mobile and may be moved to different geographical locations depending on coverage needs. Each radar platform124may include processing and communication resources that enable it to translate the radar signals into messages that contain radar data, e.g., radar imaging data, related to the location of objects detected by the radar platform124. The radar platform124may also include processing and communication resources that enable it to communicate radar configuration data, such as the location coordinates of the radar platform, operating frequency, sweep frequency, alignment, and others.

As shown inFIG.1, the radar platforms124are shown as being coupled to both the gateway API118and the message handler116. This depiction is to underscore that any of the data sources120-128may be configured to communicate with message handler116, the gateway API118, or both. For example, one radar platform124may send data to the computing system102through the message handler116, while another radar platform124may send data to the computing system102through the gateway API118. Additionally, a specific radar platform124may be configured to send data to both the message handler116and the gateway API118.

The external UAS126refers to UASs that are not operated by the service provider. As with the internal UAS122, the external UAS126is configured to provide telemetry and volume data to the situational awareness application130during flight operations. The external UAS126may be substantially similar to the internal UAS122with the exception that it communicates through the gateway API118rather than directly through the message handler116. Allowing external UASs126to provide data to the computing system102enables the formation of a more complete characterization of the airspace. In some cases, the external UAS operators will also be consumers of the situational awareness data provided by the situational awareness application130through the Web server110. In some embodiments, external UAS operators may be requested or required to provide telemetry and/or volume data for their external UAS126flight operations as a condition for being able to access the situational awareness application130.

The external data services128may be any service or system configured to provide additional data to the computing system102for improving situational awareness. The data provided by the external data services128may be referred to herein as event data. However, it will be appreciated that such event data may, in some cases, be ultimately derived from sensors such as radar installations, aircraft tracking sensors, and the like. In some embodiments, the external data services128may include a third-party service that provides flight tracking data describing geospatial locations of crewed aircraft within the airspace. For example, the external data services128may include an air traffic surveillance system that reports flight data such as Automatic Dependent Surveillance-Broadcast (ADS-B) data. ADS-B is a technology whereby aircraft determine their position via satellite navigation or other sensors and periodically broadcasts their position for tracking purposes. Another external data service128may be a Vessel Traffic Services (VTS) system that uses an Automatic Identification System (AIS) to receive data from transceivers on marine vessels in a similar manner that ADS-B is used for aircraft.

The external data services128may also include a third-party service that provides weather information, including current weather conditions and weather forecasts. An example of an external data services128that provides weather information is the national weather service. The weather data received from the national weather service may include live radar, future radar forecasts, weather alerts, current or future precipitation data, current or future wind speed, etc.

It will be appreciated that any suitable type of useful information may be provided through the external data services128, including additional radar information, and others. The external data services128may include data translators that configure the data in accordance with the format specified by the gateway API118. In some embodiments, one or more data translators may be maintained and operated by the situational awareness service provider rather that the external data services128.

All of the various data received from the various data sources may be published by the message handler116to the situational awareness application130. The situational awareness application130is configured to combine the received data relevant for a particular airspace into a single comprehensive 3D visual rendering, which can be delivered (e.g., streamed) to user devices112via the Web server110.

In some embodiments, the data delivered to the user devices112may be in the form of a stream of object metadata, which may be formatted using JavaScript Object Notation (JSON). The object metadata received at the user device112may be visually rendered by a user application134, which may be a Web browser, for example. The user device112may also include a display for displaying information and graphics to the user. In some embodiments, the display may be a touch sensitive display that can receive user input instructions through a graphical user interface, for example. The user input may be used by the user application134to alter the visual appearance of the displayed airspace (e.g., viewing position, viewing angle) or the type of data being displayed. In some cases, user input sent from the user device112to the situational awareness application130may be used to filter the object metadata provided to the user device112. Although embodiments of the present technique describe streaming object metadata to the user devices112, additional techniques may be used to deliver the visual rendering of the airspace. For example, in some embodiments, the data delivered to the user devices112may be in the form of an encoded video stream, which may be encoded using any suitable video file format such as H.264, H.265, and others.

Data collected by the computing system102may also be time stamped and stored to the database132. In this way, the database132can serve as a repository of historical information that can be retrieved to provide a comprehensive view of the airspace at a specified day and time in the past. Such information may be useful for training, forensic analysis, and other applications. Historical information may also be used to generate a breadcrumb trail for aircraft, which is a graphical element that shows an aircraft's previous locations as it is being tracked.

It will be appreciated that various alterations may be made to the system100and that some components may be omitted or added without departing from the scope of the disclosure. For example, the specific connections between components or grouping of components may be different than what is depicted inFIG.1.

FIG.2is a block diagram of a situational awareness application in accordance with embodiments of the present disclosure. The situational awareness application130may be implemented as software operating in any suitable computing device or combination of computing devices, including the computing system102ofFIG.1.

As shown inFIG.2, data consumed by the situational awareness application130is received through a data queue200, which may be maintained by the message handler116(FIG.1). As described above in relation toFIG.1, the data queue200may receive sensor and/or event data216from a variety of internal and external data sources. In some embodiments, the data queue200may be part of a topic-based publish-subscribe system, in which case the data queue200may represent a single topic to which the situational awareness application130is a subscriber. Other arrangements are also possible. For example, each data source120-128(FIG.1) may represent a different topic or each type of data may be represented as a different topic.

As described in relation toFIG.1, the sensor and event data216may include radar data202(e.g., from radar platforms124and/or other data sources such as external data services128), flight simulation data204(e.g., from UAS simulator120), external UAS data206(from external UAS126), and internal UAS data208(from internal UAS122). The sensor and event data216may also include various types of data from one or more additional external data services128, such as ADS-B data210, AIS data212, and weather data214. Various other types of data may also be included in or added to the system, depending on the design considerations of a particular implementation. The sensor data represents measurements performed using electronic sensors included in the various data sources along with identifying information that identifies the source of the information. The event data may include other types of data that are not measured such as future weather forecasts, planned flight tracks, etc. Different types of sensor data and/or event data may be structured or formatted differently depending on the type of data being provided.

In some embodiments, the situational awareness application130includes authentication services220and authorization services222that control access to the situational awareness application130as described in relation toFIG.1. Authentication and authorization may be employed differently, depending on whether the user is an internal user, such as an employee or administrator of the situational awareness service provider, or a paying customer, for example.

The situational awareness application130may include an object metadata generator230that receives the sensor and event data216from the data queue200and generates structured object metadata232that represents the visual objects to be included in the 3D rendering generated by the graphics generator250. The object metadata232may be structured according to a consistent, unified formatting standard that applies to all visual objects. In other words, the object metadata generator230interprets the varying types of sensor and event data, each of which may be formatted in different ways depending on the type of information being conveyed, and generates a standardized, homogenous object representation that can be more easily processed by the graphics generator250.

The object metadata232may include a plurality of objects, each of which may be structured as a set of attribute-value pairs. Each object may include one or more unique object identifiers. For example, each object may include an object identifier that uniquely identified the object with the situational awareness application130. Some objects may also include an additional unique identifier that has real world significance, such as a Federal Aviation Administration (FAA) aircraft number, drone registration number, and others.

The object metadata232may also include information regarding the object type, such the type of aircraft (e.g., airplane, helicopter, drone, etc.), aircraft make and model, type of ground-based or maritime vehicle, vehicle make and model, etc. The object type may also identify the object as a stationary ground object such a radar installation (e.g., radar platform124, or other type of infrastructure, including communication towers, building, bridges, pipelines.

The object information also includes position data (e.g., latitude, longitude, and altitude) that can be used to place the object within the visual rendering, and attitude data (e.g., compass heading, pitch, yaw, etc.) that can be used to orient the object relative to the environment. The object information can also include additional sensor information related to the status or operating conditions of the object (e.g., battery life, fuel reserves, etc.) or measurements performed by the object (e.g., speed, temperature, weather conditions, etc.)

The object metadata232may also identify an object as a weather-related object or event. For example, the object metadata may include a mapping of cloud cover, precipitation, windspeed, etc., which may represent current measured weather conditions or future forecast weather conditions. The object metadata232may also identify a planned flight track of an object and volume data that identifies a buffer zone around the planned flight path.

The object metadata232or a subset thereof may be sent (e.g., streamed) to the user device112. The particular subset of object metadata may be determined at least in part based on layer settings226, which may be used to indicate types of objects (e.g., layers) that the user wishes to view. For example, the user may want to view only aerial objects, as opposed to ground-based objects such as radar platforms, or the user may not want to view weather related data. If the user turns off a layer, the situational awareness application130can stop streaming object metadata related to the layer and conserve network resources.

The particular subset of object metadata to be streamed to the user may be determined at least in part based on a user selected geographical area or airspace volume. For example, the user may select a particular geographical area and/or range of altitudes as a region of interest. If a region of interest is selected, the situational awareness application130can stop streaming objects that are not located within the selected region of interest. The user settings224may be a set of stored parameters that represent user preferences and/or a previous settings selected by the user as it relates to factors such as layer settings226, region of interest, viewing position and angle, etc.

The user device112may maintain a persistent duplex connection to the Web server, for example, by holding two HTTP connections open at the same time. This enables the situational awareness application130to stream data to the user device112while also receiving user input234. This allows the user to manipulate the visual rendering by changing region of interest, the viewing position and viewing angle, turning layers on or off, etc.

The user device112may include a graphics generator250that generates the 3D visual rendering based on the object metadata and other data such as the user's selected viewing position and viewing angle, for example. The graphics generator250may be implemented in a Web browser and may include programming downloaded from the Web server110(FIG.1) such as Java script programs and/or libraries.

In some embodiments, icons240and models242may be received from the situational awareness application130. Icons240and models242may be used as markers for the displayed objects and may be customized based on object type. Icons240may be 2D object image or symbol that can that be specified for certain object types. The 3D models242provide a more realistic 3D image that can be oriented within the visual rendering to represent the orientation (e.g., heading, etc.) of an object and to provide a more intuitive, information-rich representation of objects, especially aerial objects.

The object metadata232sent to the user device112may include object location and details246and track location and details248. The object location and details246describes objects to be added to the display and may include aerial objects such as UAVs and ground objects such as radar installations. The objects may be associated with an icon204or a 3D model242that the graphics generator250uses to represent the objects. The track location and details248describes flight track and volume information to be added to the display. The track location and details248may be related to information received from particular objects (e.g., a specific UAV or other aircraft) or from a flight tracking service such as ADS-B210or AIS212.

The user device112may also maintain a continuous record of the object locations that it receives during a user session. Previous object locations may be displayed as track breadcrumbs244that trail behind the object's current location.

During a user session, the user can interact with the display generated by the graphics generator to change the informational content. For example, the user can change the airspace volume to be displayed by selecting a particular geographical area within the display and/or choose the specific types of information (e.g., layers) to be displayed. Some user selections may generate user input234that is sent to the situational awareness application130, which processes the user input to determine the object metadata232to be sent to the user device112. In some cases, the user input234may result in the situation awareness application130sending a subset of the available object metadata. For example, if the user input indicates that the user does not want to display weather data214, the situational awareness application130can stop streaming weather-related object metadata to the user device112.

Some user interactions may generate user input that is processed by the graphics generator without being sent to the situational awareness application130. For example, the user can change the viewing position and/or angle by, for example, clicking and dragging on the display and/or entering specific viewing angle and positions coordinates (latitude, longitude, and altitude). The graphics generator250can render the object metadata in accordance with the user's selections. Additionally, the user may also select a specific object to obtain additional information about that object. For example, if the user clicks on one of the displayed icons or 3D models, the graphics generator250may generate a pop-up box that provides a listing of the object metadata pertaining to that object, such as object identifiers, object type, position coordinates, and the like.

FIG.3is a process flow diagram for a method of operating a situation awareness system in accordance with embodiments of the present disclosure. The method300may be performed by any suitable combination of processing logic, which may include hardware (e.g., circuitry, dedicated logic, programmable logic, a processor, a processing device, a central processing unit (CPU), a system-on-chip (SoC), etc.), software (e.g., instructions running/executing on a processing device), firmware (e.g., microcode), etc. In some embodiments, the method300may be performed by the situation awareness application130which may reside on the computing system102shown inFIG.1. The method may begin at block302.

At block302, a first set of sensor data is received from a plurality of internal data sources. The first set of sensor data describes geospatial locations (e.g., latitude, longitude, altitude) of objects within an airspace and can also include other telemetry and volume data for the objects. The plurality of internal data sources may include at least one aerial data source coupled to at least one of the objects within the airspace and configured to report its own geospatial location. The plurality of internal data sources may also include at least one ground-based data source that uses radar to remotely detect the objects within the airspace. The first set of sensor data may be received through the message handler116.

At block304, event data is received from an external data source over a network. The event data describes publicly available information affecting the airspace, such as aircraft tracking data and flight plans (e.g., ADS-B data), weather information, and others. The external data source may be an external data services128that provides data through the gateway API128.

At block306, a second set of sensor data is received from another external data source operated by a user, wherein the second set of sensor data describes an additional geospatial location of a user-operated object within the airspace. For example, the second set of sensor data may describe the geospatial location a UAV or other aircraft operated by a subscriber to the situational awareness system. The second set of sensor data may be received through the gateway API118and can also include other telemetry and volume data for the user-operated object.

At block308, object metadata is generated based on the first set of sensor data, the second set of sensor data, and the event data. The object metadata data may include a plurality of object representations, each of which may be a structured data object. For example, each data object may be structured as a plurality of key-value pairs that describe the properties a particular object or event effecting the airspace.

At block310, a streaming request is received from a computing device of the user over a network. The streaming request may be received by a Web server through an API, such as the gateway API218. The streaming request may include a description of a geographical area to be monitored, in which case, the object metadata may be filtered to the subset of the object metadata that affects the geographical area. The streaming request may be received from the operator of the user-operated object described in relation to block306. However, it will be appreciated that subscribers to the situational awareness service may use the service without providing sensor data to the system.

At block312, at least a subset of the object metadata is streamed to the computing device of the user responsive to the streaming request. The subset of object metadata may be filtered out of the full set of available object metadata based on user input, such as a description of the region of interest or a description of particular object types (e.g., layers) of interest.

At block314, the subset of the object metadata is processed to generate, on a visual display of the computing device, a real-time 3D rendering of the airspace, including the objects and the user-operated object. In some embodiments, the processing is performed by the browser that resides on the user's computing device in accordance with programming (e.g., Javascript) provided by the situational awareness system.

It will be appreciated that embodiments of the method300may include additional blocks not shown inFIG.3and that some of the blocks shown inFIG.3may be omitted. Additionally, the processes associated with blocks302through314may be performed in a different order than what is shown inFIG.3.

The example computer system400includes a processing device402, a user interface display413, a main memory404(e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM), a static memory406(e.g., flash memory, static random access memory (SRAM), etc.), and a data storage device418, which communicate with each other via a bus430. Any of the signals provided over various buses described herein may be time multiplexed with other signals and provided over one or more common buses. Additionally, the interconnection between circuit components or blocks may be shown as buses or as single signal lines. Each of the buses may alternatively be one or more single signal lines and each of the single signal lines may alternatively be buses.

The data storage device418may include a non-transitory machine-readable storage medium428, on which is stored one or more set of instructions422(e.g., software) embodying any one or more of the processes described herein, including processes performed by the situational awareness application130. The instructions422may also reside, completely or at least partially, within the main memory404or within the processing device402during execution thereof by the computer system400, the main memory404and the processing device402also constituting machine-readable storage media. The instructions422may further be transmitted or received over a network420via the network interface device408.

Embodiments of the claimed subject matter include, but are not limited to, various operations described herein. These operations may be performed by hardware components, software, firmware, or a combination thereof. Although the operations of the methods herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in a different order or so that certain operation may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be in an intermittent or alternating manner.

The above description of illustrated implementations of the invention, including what is described in the Abstract, is not intended to be exhaustive or to limit the invention to the precise forms disclosed. While specific implementations of, and examples for, the invention are described herein for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. Any aspect or design described herein as an example is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the word “example” is intended to present concepts in a concrete fashion. In addition, the articles “a” and “an” as used in this application and the appended claims should generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment” or “one embodiment” or “an implementation” or “one implementation” throughout is not intended to mean the same embodiment or implementation unless described as such. Furthermore, the terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.