Patent Publication Number: US-2023154338-A1

Title: Tool to facilitate customer generated chart databases for use with a certified avionics system

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     The present application claims the benefit under 35 U.S.C. § 119(e) of U.S. Provisional Application Ser. No. 63/278,576 filed Nov. 12, 2021, entitled SYSTEMS AND METHODS FOR GENERATION, SELECTION, AND DISPLAY OF MAP-BASED CHART DATABASES FOR USE WITH CERTIFIED AVIONICS SYSTEMS, naming Jeff M. Henry, Kyle R. Peters, Todd E. Miller, Jason L. Wong, Reed A. Kovach, and Srinath Nandakumar as inventors, which is incorporated herein by reference in the entirety. 
    
    
     BACKGROUND 
     Digital flight charts (i.e., aeronautical charts) are usually provided by third-party vendors in a format such as PDF and must be converted to an appropriate graphical format for use in flight displays. 
     SUMMARY 
     A system of flight chart conversion is disclosed in accordance with one or more illustrative embodiments of the present disclosure. In one illustrative embodiment, the system comprises a host computing device including one or more processers configured to execute program instructions causing the one or more processors to: convert one or more flight chart files to one or more scalable vector graphics (SVG) flight chart files defined in extensible markup language (XML), wherein each of the SVG flight chart file(s) is associated with respective metadata defined in XML; preprocess each of the SVG flight chart file(s), wherein preprocessing each of the SVS flight chart file(s) includes at least: removing filled shapes overlapping navigational paths, detecting font characters, and replacing the font characters with font character references; convert the SVG flight chart file(s) to one or more flight charts defined in one or more sets of aircraft display hardware directives, wherein each of the flight chart(s) is associated with the respective metadata; compress the flight chart(s) and the respective metadata; and combine the flight chart(s) and the respective metadata into a flight chart database. 
     A method of flight chart conversion is disclosed in accordance with one or more illustrative embodiments of the present disclosure. In one illustrative embodiment, the method comprises, using a host computing device, converting one or more portable flight chart files to one or more scalable vector graphics (SVG) flight chart files defined in extensible markup language (XML), wherein each of the SVG flight chart file(s) is associated with respective metadata defined in XML; preprocessing each of the SVG flight chart file(s), wherein preprocessing each of the SVS chart file(s) includes at least: removing filled shapes overlapping navigational paths, detecting font characters, and replacing the font characters with font character references; converting the SVG flight chart file(s) to one or more flight charts defined in one or more sets of aircraft display hardware directives, wherein each of the flight chart(s) is associated with the respective metadata; compressing each of the flight chart(s) and the respective metadata; and combining the flight chart(s) and the respective metadata into a flight chart database. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not necessarily restrictive of the invention as claimed. The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate embodiments of the invention and together with the general description, serve to explain the principles of the invention. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The numerous advantages of the disclosure may be better understood by those skilled in the art by reference to the accompanying figures in which: 
         FIGS.  1  and  2    are block diagrams illustrating the method steps of a flight chart conversion system, in accordance with one or more embodiments of the present disclosure. 
         FIG.  3    is a block diagram of a flight chart conversion system, in accordance with one or more embodiments of the present disclosure. 
         FIG.  4    is a flowchart illustrating a flight chart conversion method, in accordance with one or more embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Before explaining at least one embodiment of the inventive concepts disclosed herein in detail, it is to be understood that the inventive concepts are not limited in their application to the details of construction and the arrangement of the components or steps or methodologies set forth in the following description or illustrated in the drawings. In the following detailed description of embodiments of the present disclosure, numerous specific details are set forth in order to provide a more thorough understanding of the inventive concepts. However, it will be apparent to one of ordinary skill in the art having the benefit of the present disclosure that the inventive concepts disclosed herein may be practiced without these specific details. In other instances, well-known features may not be described in detail to avoid unnecessarily complicating the present disclosure. The inventive concepts disclosed herein are capable of other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting. 
     As used herein a letter following a reference numeral is intended to reference an embodiment of the feature or element that may be similar, but not necessarily identical, to a previously described element or feature bearing the same reference numeral (e.g., 1, 1a, 1b). Such shorthand notations are used for purposes of convenience only, and should not be construed to limit the inventive concepts disclosed herein in any way unless expressly stated to the contrary. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present). In addition, use of the “a” or “an” are employed to describe elements and components of embodiments of the present inventive concepts. This is done merely for convenience and to give a general sense of the inventive concepts, and “a” and “an” are intended to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise. 
     Finally, as used herein any reference to “one embodiment” or “some embodiments” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the inventive concepts disclosed herein. The appearances of the phrase “in some embodiments” in various places in the specification are not necessarily all referring to the same embodiment, and embodiments of the inventive concepts disclosed may include one or more of the features expressly described or inherently present herein, or any combination or sub-combination of two or more such features, along with any other features which may not necessarily be expressly described or inherently present in the present disclosure. 
     Aeronautical charts (flight charts) are used by pilots to navigate aircraft during departing and landing phases (e.g., using terminal flight charts) and during en-route phases (e.g., using en-route flight charts). Using flight charts and other tools, pilots are able to determine position of the aircraft, safe altitudes for the aircraft, optimal routes to a destination, navigation aids, alternative landing areas in case of an in-flight emergency, and other useful information such as radio frequencies and airspace boundaries. Specific charts are used for each phase of a flight and may vary from a map of a particular airport facility to an overview of the instrument routes covering an entire continent (e.g., global navigation charts). 
     Electronic chart data is conventionally defined in a digital file format such as portable data format (PDF) by flight chart vendors. Vendors that provide flight charts (e.g., to aircraft system manufacturers, airline pilots, etc.) in the PDF format provide the chart files at a lower cost than competitors. Flight chart users must convert the PDF flight charts to a format usable by aircraft computing devices (which are often limited in processing and memory capacity). Thus, it is desirable to provide a system that processes and converts flight charts such that aircraft computing devices can easily and efficiently retrieve flight chart data. 
     Embodiments of the present disclosure are directed to a flight chart conversion system that converts flight chart files to a condensed set of hardware directives that may be directly loaded onto aircraft computing devices. The converted flight charts are generated using software tools executed on a host computing device (e.g., a ground-based computing device that is not on the aircraft, such as a personal computer). The converted flight charts are then presented on an aircraft display using a flight chart application (executed using an aircraft computing device). 
     Flight chart files (graphical images of terminal and en-route charts) are processed on the host computing device into a set of binary images (e.g., images defined using 32-bit aircraft display hardware directives). The aircraft display hardware directives can then be quickly and easily displayed to a pilot. The aircraft display hardware directives may decrease loading times and conserve processing and memory resources. Flight chart metadata may also be generated to enable facile pilot selection and data lookup, and a configuration file may customize the chart conversion process for particular flight displays. 
       FIGS.  1  and  2    are block diagrams illustrating the method steps of a flight chart conversion system  100 , in accordance with one or more embodiments of the present disclosure. The method steps of the flight conversion system  100  may be stored as program instructions (e.g., software modules) in a memory of one of more computing devices. A chart processing module  108  may be executed off-line  210  (e.g., not on an aircraft) using a host computing device to generate a flight chart database  110  (e.g., converted flight chart data) from one or more flight chart files  104 . The flight chart database  110  may then be stored on a memory of an aircraft computing device and displayed to a pilot at run-time  220  (e.g., when the pilot operates an aircraft). 
     For example,  FIG.  3    shows the flight conversion system  100  including a host computing device  300 . Additionally,  FIG.  3    shows an aircraft computing device  400  configured to display flight charts using the flight chart database  110  (e.g., after the conversion of the flight chart files  104  to the flight chart database  110 ). 
     The host computing device  300  and the aircraft computing device  400  may be controllers (e.g., computers), each respectively including one or more processors  310 ,  410  and a memory  320 ,  420 . For the purposes of the present disclosure, the term “processor” or “processing element” may be broadly defined to encompass any device having one or more processing or logic elements, for example, one or more central processing units (CPUs), one or more graphics processing units (GPUs), one or more micro-processor devices, one or more application specific integrated circuit (ASIC) devices, one or more field programmable gate arrays (FPGAs), or one or more digital signal processors (DSPs), etc. In this sense, the one or more processors  310 ,  410  may include any device configured to execute algorithms and/or instructions (e.g., program instructions stored in memory), and may be configured to perform the method steps described in the present disclosure (for example, the method steps described with respect to  FIGS.  1  and  2   ). The memories  320 ,  420  may include any storage medium known in the art suitable for storing program instructions executable by the associated processors  310 ,  410 . For example, the memory mediums  320 ,  420  may include, but are not limited to, a read-only memory (ROM), a random-access memory (RAM), a magnetic or optical memory device (e.g., hard disk), a magnetic tape, a solid-state drive, and the like. 
     The host computing device  300  may be, for example, a personal computer (PC), a laptop, a smartphone, a tablet, a server, a mainframe, etc. In some embodiments, the host computing device may operate using a Microsoft® Windows® operating system, an Apple® macOS® operating system, a Linux-based operating system, etc. In some embodiments, the host computing device may comprise a plurality of computing devices (e.g., a cloud-based system). It is noted that the host computing device  300  may be a ground-based computing device (e.g., not a part of an aircraft). 
     The aircraft computing device(s)  400  may comprise one or more avionics embedded systems (e.g., an avionics suite), and may include a flight management system (FMS) computing device, a communications computing device, a navigation computing device, a flight display computing device, a flight control computing device, a fuel management computing device, a collision-avoidance computing device, a weather computing device, etc. It is noted that the host computing device  300  may have substantially greater processing and memory resources than the aircraft computing device(s)  400 , and that it may be advantageous to implement the chart processing module  108  using the host computing device  300 . For example, the flight chart files  104  required for a typical aircraft flight may have a size of 40 GB or more, whereas the memory  420  of the aircraft computing device  400  may have only 4 GB allocated to flight charts. 
     Referring back to  FIG.  1   , flight chart metadata  102 , flight chart files  104 , and a configuration file  106  may be input into the chart processing module  108  to generate a flight chart database  110 . The metadata  102 , flight chart files  104 , and configuration file  106  may be stored on the memory  320  of the host computing device  300 . 
     The flight chart file(s)  104  may be any industry standard flight chart file that includes text. In some embodiments, the flight chart files  104  may be portable data format (PDF) flight chart files, comma-separated values (CSV) flight chart files, or scalable vector graphics (SVG) flight chart files. The flight chart files  104  may be images representing terminal flight charts, en-route flight charts, nautical charts, world aeronautical charts, sectional charts, airport diagram charts, etc. The images may show topographical features such as terrain elevations, ground features identifiable from altitude (rivers, dams, bridges, buildings, airports, beacons, landmarks, etc.), and information related to airspace classes, ground-based navigation aids, radio frequencies, longitude and latitude, navigation waypoints, navigation routes, airways, taxiways, runways etc. 
     Each of the flight chart files  104  may be associated with respective flight chart metadata  102 , which may include flight chart name (e.g., “Omaha Eppley Airfield”), flight chart type (e.g., terminal, en-route, world aeronautical, etc.), flight chart geographical location (e.g., Omaha, Nebr.), etc. 
     The metadata  102  may be defined in Extensible Markup Language (XML). XML is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The characters making up an XML document may be divided into markup and content, and may be distinguished by the application of syntactic rules. XML strings that constitute markup may begin with the character “&lt;” and end with “&gt;”, or begin with the character “&amp;” and end with “;”. Strings of characters that are not markup are content. An XML tag may be a markup construct that begins with “&lt;” and ends with “&gt;”. Three types of XML tags include: start-tag, such as &lt;section&gt;; end-tag, such as &lt;/section&gt;; and empty-element tag, such as &lt;line-break /&gt;. An XML element may be a logical document component that either begins with a start-tag and ends with a matching end-tag or includes only an empty-element tag. The characters between the start-tag and end-tag, if any, are the element&#39;s content, and may include markup and other elements, which are called child elements. An example is &lt;greeting&gt;Hello, world!&lt;/greeting&gt;. Another is &lt;line-break /&gt;. An XML attribute is a markup construct consisting of a name—value pair that exists within a start-tag or empty-element tag. An example is &lt;flight_chart name=“Omaha Eppley Airfield” type=“terminal” location=“Omaha, Nebr.”/&gt;, where the names of the attributes are “name”, “type”, and “location” and their values are “Omaha Eppley Airfield”, “terminal”, and “Omaha, Nebr.” respectively. An XML attribute may have a single value and each attribute may appear once in each element. 
     The configuration file  106  may be used to define the type of aircraft display configured to display converted flight charts. For example, each type of aircraft display may have a respective resolution (e.g., 1920×1080), pixel density (e.g., 94 pixel per inch), aspect ratio (e.g., 16:9), and screen size (e.g., 22 inches diagonally) that differs from other types of aircraft displays. The configuration file  106  may also define input and output directories, version numbers, control data (e.g., an option to save temporary files), spatial modulation patterns of the aircraft display, and selection criteria (e.g., such that a pilot can search for a flight chart using a region name, a runway length, etc.). In some embodiments, the configuration file  106  is defined in XML. It is noted that the metadata  102  and the configuration file  106  may be defined in other data formats (for example, JavaScript Object Notation [JSON]). 
     Referring now to  FIG.  2   , a block diagram illustrating the method steps of the chart processing module  108  is shown. The chart processing module  108  may be stored in the memory  320  of the host computing device  300  and executed by the processor  310  of the host computing device  300 . The chart processing module  108  may be substantially similar or substantially identical to the Electronic Chart Application Tool Suite developed by Collins Aerospace (Cedar Rapids, Iowa). The chart processing module  108  may include a plurality of submodules including an extraction module  108   a , a preprocessing module  108   b , a conversion module  108   c , a compression module  108   d , and a combination module  108   e.    
     The extraction module  108   a  may be configured to convert the flight chart file(s)  104  to one or more scalable vector graphics (SVG) flight chart files defined in XML. In some embodiments, the SVG flight chart file(s) may be generated by converting PDF flight chart file(s)  104  or CSV flight chart file(s)  104 . In some embodiments, the flight chart file(s)  104  may be SVG flight chart files, and the extraction module  108   a  may convert the original SVG flight chart file(s)  104  to SVG flight chart files having different tags. 
     SVG is a vector image format for two-dimensional graphics. Since the SVG flight chart file(s) are defined as XML text files, the SVG flight chart file(s) can be searched, compressed, and scaled in size without loss of quality. Each of the SVG flight chart file(s) may be associated with respective metadata  102  defined in XML (for example, in an element including a start-tag &lt;metadata&gt; and an end-tag &lt;/metadata&gt;). 
     The preprocessing module  108   b  may be configured to preprocess the SVG flight chart file(s). Preprocessing the SVG flight chart file(s) may entail simplifying the SVG flight chart file(s) to improve the readability of flight chart(s) stored in the flight chart database  110 , and to conserve the processing and memory resources of the aircraft computing device(s)  400  that access the flight chart database  110 . 
     For example, the preprocessing module  108   b  may be configured to remove filled shapes overlapping navigational paths, fixes, and landmarks (to reduce clutter in the images), detect font characters and replace the font characters with font character references (so that all of the flight charts use the same font references when drawing characters which conserves memory capacity since the same font characters are not duplicated for each chart), associate charts with geographic references (e.g., airports, structures, landmarks, etc.), reduce the size of chart elements (to further conserve memory capacity), remove chart elements that are not visible (e.g., removing hidden chart elements to conserve memory capacity), detect repeating patterns (to further conserve memory capacity), and convert chart elements common to all of the flight charts to subroutines (to further conserve memory capacity). 
     The conversion module  108   c  may be configured to convert the SVG flight chart file(s) to one or more flight charts defined in one or more sets of aircraft display hardware directives. Each of the set(s) of aircraft display hardware directives is associated with the respective metadata  102 . The aircraft display hardware directives may have a 32 bit form with 8 bits allocated to an opcode (e.g., that specifies a graphic operation to be performed, such as DRAW, MOVE, SETCOLOR) and 24 bits allocated to pixel data and pixel address (e.g., color of pixel(s), location of pixel(s), etc.). 
     The compression module  108   d  may be configured to compress each of the flight chart(s) and the respective metadata  102  (using a data compression algorithm). In this way, the compressed flight chart(s) use fewer bits than the original form, thus further conserving processing and memory resources of the computing devices  400 . The compression may be either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancy (no information is lost in lossless compression). Lossy compression reduces bits by removing unnecessary or less important information. 
     The combination module  108   e  may combine the flight chart(s) and the respective metadata  102  into a flight chart database  110  (converted chart data). The flight chart database  110  may then be loaded onto the memory  420  of the of the aircraft computing device(s)  400  via, for example, a satellite, cellular, or WiFi internet connection, a USB flash drive, a controller pilot data link (CPDL), etc. 
     After the flight chart database  110  is loaded onto the aircraft computing device(s)  400 , a list of flight charts may populate the aircraft display  116 , and the pilot or user of the aircraft may then highlight and select a flight chart to present on the aircraft display  116 . The flight chart database  110  may be searchable using the respective associated metadata  102  of the flight chart. For example, the user of the aircraft may search for the name of the flight chart or the name of a geographic reference or chart element associated with the flight chart (e.g., by typing into a search bar presented on the aircraft display  116  using a keyboard or touchscreen). 
     The selected flight chart may then be passed to a chart application module  112 . The chart application module  112  may render an image based on the selected flight chart using a graphics engine (GE) module. In some embodiments, the chart application module  112  may be substantially similar or substantially identical to the Electronic Charts Application (ECA) developed by Collins Aerospace (Cedar Rapids, Iowa), and the graphics engine module may be substantially similar or substantially identical to the Collins Graphics Engine developed by Collins Aerospace (Cedar Rapids, Iowa). 
     The set(s) of aircraft display hardware directives (associated with the selected flight chart) may be passed to a graphics server module  114  to be presented on one or more aircraft displays  116 . The graphics server module  114  may be the interface (e.g., Cockpit Display System [CDS]) between the chart application module  112  and the aircraft display(s)  116 . The graphics server module  114  may be an ARINC 661 Graphics Server (AGS) that uses a Display List Data Widget to pass the set of aircraft display hardware directives to the aircraft display(s)  116 . ARINC 661 may define communication between the graphics server module  114  and the chart application module  112  (i.e., an avionics computing standard). The graphics server module  114  manages one or more Definition Files (DFs) for the chart application module  112 . The DFs specify the GUI definition associated with the chart application module  112  including one or more layers. A layer (also named User Application Layer Definition or UALD) is a GUI container for widgets, and a widget is the basic building block of the GUI (e.g., Containers, Lists, ScrollPanes, Buttons, Menus, Labels, EditBoxes, etc.). 
       FIG.  4    is a flowchart illustrating a flight chart conversion method  500 , in accordance with one or more embodiments of the present disclosure. The flight conversion method may be implemented by the flight conversion system  100  described with respect to  FIGS.  1 - 3   . 
     At step  510 , flight chart file(s) are converted to SVG flight chart file(s) defined in XML. Each of the SVG flight chart file(s) may be associated with respective metadata defined in XML. At step  520 , the SVG flight chart file(s) may be preprocessed by simplifying the SVG flight chart file(s) to improve the readability of flight charts, and to conserve the processing and memory resources of aircraft computing device(s) that utilize the flight charts. At step  530 , each of the SVG flight chart file(s) may be converted to flight chart(s) defined in set(s) of aircraft display hardware directives. Each of the flight chart(s) is associated with the respective metadata. The aircraft display hardware directives may have a 32 bit form with 8 bits allocated to an opcode and 24 bits allocated to pixel data and pixel address. At step  540 , each of the flight chart(s) and respective metadata may be compressed (e.g., using a data compression algorithm). At step  550 , the flight chart(s) and the respective metadata may be combined into a flight chart database (e.g., converted chart data). The flight chart database may then be loaded onto the memory of the of the aircraft computing device(s). 
     It is believed that the present disclosure and many of its attendant advantages will be understood by the foregoing description, and it will be apparent that various changes may be made in the form, construction, and arrangement of the components without departing from the disclosed subject matter or without sacrificing all of its material advantages. The form described is merely explanatory, and it is the intention of the following claims to encompass and include such changes. Furthermore, it is to be understood that the invention is defined by the appended claims.