Computation of contour map using topological cases and classifier cases

A multi-layered grid approach for contour map generation on devices with limited processing power addresses inaccuracies and inefficiencies by calculating contour segments efficiently, ensuring precise representation of raster and classification data.

JP2025124593APending Publication Date: 2025-08-26THE BOEING CO
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2025012517
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-02-05
Filing Date
2025-01-29
Publication Date
2025-08-26

AI Technical Summary

Technical Problem

Existing methods for generating contour maps with classification data result in inaccuracies and computational inefficiencies, particularly on mobile devices with limited processing power, due to issues like gaps and ramps between contour lines and high time complexity.

Method used

A method involving a multi-layered grid approach where raster and classification data are combined to calculate contour segments, using topographical and classification instances to generate accurate contour maps efficiently by calculating contour segments for each cell in the grid, reducing computational complexity and avoiding artifacts.

Benefits of technology

The method generates accurate contour maps with reduced computational intensity, avoiding gaps and ramps, and is suitable for devices with limited processing power, ensuring efficient and precise representation of both raster and classification data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025124593000001_ABST
    Figure 2025124593000001_ABST
Patent Text Reader

Abstract

To provide a computing device including one or more processing devices that receive raster data and a method.SOLUTION: The processing devices obtain classifier grid data 30 including classification values 32 selected from among two or more classes 36 and for each of the classes, generate contour segments 60 that connect pairs of grid locations 24 included in raster data and that include computing respective topological cases 50 of cells 48 of a superimposed grid 46 and computing respective classifier cases 52 of a plurality of cells, thereby generating a contour map 66. The superimposed grid 46 includes a plurality of cells of the raster data that are associated with respective classification values. The contour segments are computed based on the topological cases and the classifier cases of the plurality of cells and are combined into a plurality of contours 64. The contour map is computed as a visual representation of the plurality of contours.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001]

[0001] This application relates to the calculation of contour maps. [Background technology]

[0002]

[0002] Contour maps are frequently used in user interfaces to display geographic and meteorological data. In a contour map, regions are displayed in a manner that distinguishes different ranges of a numerical quantity. Contour lines contained within a contour map indicate locations having the same value of that numerical quantity at one or more boundaries between ranges. The contour map accordingly categorizes the values ​​of the numerical quantity at various locations on a map into regions that may be easier for a user to identify and distinguish. One exemplary application of a contour map is the display of weather or terrain information for pilots and ground crews to view when planning, guiding, and operating an aircraft along its route. Summary of the Invention

[0003] According to one aspect of the present disclosure, a computing device is provided, including one or more processing devices configured to receive raster data including a plurality of raster data values. The one or more processing devices are further configured to obtain classification grid data including a plurality of classification values ​​selected from among two or more classes. The one or more processing devices are further configured to generate a contour map at least in part by generating, for each of the classes, a set of contour segments connecting respective pairs of grid locations included in the raster data. Generating the set of contour segments includes calculating a topographical instance for each of a plurality of cells of the multi-layered grid. The multi-layered grid includes a plurality of cells of the raster data associated with respective classification values ​​included in the classification grid data. Generating the set of contour segments further includes calculating a classification instance for each of a plurality of cells of the multi-layered grid. Generating the set of contour segments further includes calculating the contour segments based at least in part on the topographical instance and the classification instance for the plurality of cells. Generating the contour map further includes combining the contour segments into a plurality of contours. Generating the contour map further includes computing the contour map as a visual representation of the plurality of contour lines, and the one or more processing devices are further configured to output the contour map for display on a display device. [Brief explanation of the drawings]

[0004] [Figure 1] 1 illustrates schematically an exemplary air travel setting in which a contour map is generated, according to one exemplary embodiment. [Figure 2]

[0005] 2 illustrates a schematic representation of a computing device including one or more processing devices on which a contour map is calculated, according to the embodiment of FIG. 1; [Figure 3]

[0006] 3A and 3B schematically illustrate exemplary types of raster data and classified grid data that may be used to calculate a contour map in an embodiment where the contour map is a weather map, according to the embodiment of FIG. 2. [Figure 4]

[0007] 3 illustrates a schematic diagram of an exemplary multi-layer grid of raster data and classified grid data, according to the embodiment of FIG. 2; [Figure 5]

[0008] 3 illustrates a schematic diagram of a computing device when one or more processing devices calculate topographical instances and classification instances according to the embodiment of FIG. 2. [Figure 6]

[0009] 3 illustrates a schematic diagram of a computing device when one or more processing devices calculate contour line segments according to the embodiment of FIG. 2; [Figure 7]

[0010] 2 illustrates an exemplary contour map according to the embodiment of FIG. 1; [Figure 8A]

[0011] 2 shows a flowchart of a method in which a computing device may be used to generate and output a contour map, according to the embodiment of FIG. 1; [Figure 8B]

[0012] 8B illustrates further steps of the method of FIG. 8A that are performed in some embodiments when generating contour line segments. [Figure 9]

[0013] 3 shows a schematic diagram of an exemplary computing environment in which the computing device of FIG. 2 may be instantiated. DETAILED DESCRIPTION OF THE INVENTION

[0005]

[0014] In some contour maps, multiple types of data are displayed together. The bucketed values ​​in the contour lines in such a contour map can be raster (grid) data. For example, the values ​​contained in the raster data can correspond to pixels in an image. Classification data can be represented in the contour map in addition to the raster data. Classification data includes discrete values ​​that are also associated with locations on the map. For example, in a weather map, the raster data can indicate precipitation intensity, while the classification data can indicate precipitation type. When raster and classification data are displayed together in a contour map, the area bounded by the contour lines is further divided to represent different classification values. Thus, the contour map shows classified contour lines.

[0006]

[0015] In one previous approach to generating contour maps that also show classification data, raster data is masked by overlaying classification data. This masking generates multiple copies of a grid of raster data corresponding to different classification values. A contour-generating algorithm is then run separately on each of the masked raster datasets. However, this approach often results in gaps between the contours corresponding to different classification values. In addition, this approach can create contour "ramps" where different classification values ​​meet within a single contour level. Therefore, masking approaches tend to produce contour maps that inaccurately represent the underlying data.

[0007]

[0016] In another previous approach, contours are generated separately for raster data values ​​and classification values. Polygon clipping is then performed to clip multiple contours of the raster data based on the classification values. Unlike the raster grid masking approach, the polygon clipping approach generates accurate contours. However, the polygon clipping approach is computationally inefficient because it requires O(N 2 ) time complexity.

[0008]

[0017] Figure 1 schematically illustrates an exemplary air travel configuration 1 in which a contour map 66 is generated. In the example of Figure 1, the contour map 66 is generated on a server computing device 10A configured to execute a contour map generation program 13. Following generation of the contour map 66, the server computing device 10A is configured to transmit the contour map 66 over a network 11 to one or more client computing devices 10B. The one or more client computing devices 10B are configured to display the contour map 66 to one or more respective users.

[0009]

[0018] 1, a contour map 66 may be presented for pre-flight viewing. For example, client computing device 10B, which may be a mobile computing device such as a tablet computing device or a smartphone, may display contour map 66 to a pilot or other personnel to indicate current or forecasted weather conditions within the area through which aircraft 2 is scheduled to travel along planned route R.

[0010]

[0019] Contour map 66 may also or alternatively be presented for in-flight viewing on aircraft 2. In the embodiment of FIG. 1 , contour map 66 is displayed on one or more display devices of onboard computing device 10C located within cockpit 3 of aircraft 2. As shown, onboard computing device 10C may be a mobile computing device, such as a tablet computing device removably mounted within the cockpit (i.e., the same device as client computing device 10B carried by the pilot), or may be a computing device with a display integrated into the cockpit. This in-flight viewing may be performed in an offline or online manner. In some embodiments where online in-flight viewing is performed, contour map 66 may be updated during flight via network communication between the aircraft and server computing device 10A via uplink 15 connected to network 11. In some embodiments, uplink 15 communicates directly with onboard computing device 10C included within aircraft 2, while in other embodiments, uplink 15 communicates with aircraft 2 via satellite 17. In other embodiments, rather than receiving contour map update data from a server computing device 10A during flight, the contour map 66 displayed on the aircraft 2 may be updated locally during flight using weather data pre-loaded on the onboard computing device 10C received over the network 11 or collected from one or more sensors included within the aircraft 2.

[0011]

[0020] Additionally or alternatively, the contour map 66 may be displayed to personnel located at a ground station or a control tower. For example, a client computing device 10D located in an air traffic control tower 19 may be configured to receive the contour map 66 and display the contour map 66 to an air traffic controller.

[0012]

[0021] While the example of FIG. 1 shows a contour map 66 used in an air travel setting 1, the techniques described herein may additionally or alternatively be used in multiple other settings and fields. It will be appreciated that in the example of FIG. 1, the contour map generation program may run either on the server computing device 10A or on the client computing devices 10B, 10C, and 10D. While the problems described with respect to inaccuracies and computational inefficiencies of previous techniques exist on either the server or the client, these problems are particularly exacerbated on mobile computing devices, such as tablet computing devices, which generally have less processing power and lower amounts of memory than server computing devices.

[0013]

[0022] To address the shortcomings of existing techniques for generating contour maps with classification values, several devices and methods are provided. FIG. 2 schematically illustrates a computing device 10 including one or more processing devices 12. The computing device 10 may take several forms, including the server computing device 10A and client computing devices 10B, 10C, and 10D described above. The one or more processing devices 12 included in the computing device 10 are configured to execute a contour map generation program 13, as described in further detail below. The one or more processing devices 12 may include, for example, one or more processing units (CPUs), graphics processing units (GPUs), other hardware accelerators, and / or other types of processing devices. The computing device 10 illustrated in FIG. 2 further includes one or more memory devices 14. The one or more memory devices 14 may include, for example, one or more volatile memory devices and one or more non-volatile storage devices. As illustrated in FIG. 2, in some embodiments, the computing device 10 further includes one or more user input devices 16 and one or more display devices 18. In some embodiments, multiple other types of output devices are also included in computing device 10. Computing device 10 may be instantiated on a single physical computing device or may be distributed across multiple physical computing devices. In some embodiments, the computing processes described below are divided between a client computing device and one or more server computing devices.

[0014]

[0023] 2, one or more processing devices 12 are configured to receive raster data 20 including a plurality of raster data values ​​22. For example, the raster data values ​​22 may be pixel values ​​of an image. The raster data values ​​22 are associated with respective raster grid locations 24. Each raster grid location 24 may be expressed as a coordinate pair.

[0015]

[0024] The one or more server processing devices 12 are further configured to obtain classification grid data 30. The classification grid data 30 includes a plurality of classification values ​​32 selected from among two or more classes 36. The classification values ​​32 are associated with respective classification grid locations 34. Each classification grid location 34 may be expressed, for example, as a coordinate pair across the same grid used for the raster data 20.

[0016]

[0025] The one or more processing devices 12 are further configured to generate a contour map 66 onto which the raster data 20 and the classification grid data 30 are plotted. The process by which the one or more processing devices 12 calculate the contour map 66 is described in further detail below. The one or more processing devices 12 are further configured to output the contour map 66 for display on a display device 18. In some embodiments, the display device 18 on which the contour map 66 is displayed is located on a client computing device, while the contour map 66 is calculated on a server computing device.

[0017]

[0026] FIG. 3 illustrates exemplary types of raster data 20 and classification grid data 30 that may be used in embodiments where the contour map 66 is a weather map 66A. As shown in the embodiment of FIG. 3, the raster data 20 may be temperature data 20A, precipitation data 20B, wind speed data 20C, pressure data 20D, humidity data 20E, air quality data 20F, pollen data 20G, visibility data 20H, dew point data 20I, or wind chill data 20J. In other embodiments, other types of raster data 20 may be used to generate the weather map 66A. In the embodiment of FIG. 3, the classification grid data 30 is precipitation type data 30A, cloud cover data 30B, or advisory data 30C. In other embodiments, other types of classification grid data 30 may also be used.

[0018]

[0027] In some embodiments, the contour map 66 may be some type of map other than a weather map. For example, the raster data 20 used to generate the contour map 66 may represent elevation data. In such embodiments, the classification grid data 30 may represent classification values ​​32 in classes 36, such as land use types.

[0019]

[0028] Referring back to the embodiment of FIG. 2 , when calculating the contour map 66, the one or more processing devices 12 are configured to generate a set of contour segments 60 for each of the classes 36 represented in the classification grid data 30. The contour segments 60 are line segments included in the set of contour segments 62 that define the contour lines 64 of the contour map 66. The contour segments 60 connect each pair of raster grid locations 24 included in the raster data 20. The points connected by the contour segments 60 are located within the spatial extent of the grid in which the raster data values ​​22 are located, although in some embodiments, the points connected by the contour segments 60 may be located at intermediate locations that do not correspond to the exact locations of the raster data values ​​22. As shown in the embodiment of FIG. 2 , the one or more processing devices 12 are configured to calculate a plurality of contour levels 70 corresponding to buckets of the raster data values ​​22. The one or more processing devices 12 are further configured to calculate a respective set of contour segments 62 for each of the contour levels 70 .

[0020]

[0029] As a precursor to calculating the contour segments 60, the one or more processing devices 12 are configured to calculate reforepredicted classification grid data 40. To calculate the reforepredicted classification grid data 40, the one or more processing devices 12 are configured to sample interpolated values ​​of the classification grid data 40 at locations offset by half a pixel horizontally and half a pixel vertically from the classification grid locations 34. The resulting sampled classification grid has one fewer row and one fewer column than the grid on which the classification grid data 40 is located.

[0021]

[0030] The one or more processing devices 12 are further configured to calculate padded reforepredicted classification grid data 42 from the reforepredicted classification grid data 40. The padded reforepredicted classification grid data 42 is calculated by adding a padding value boundary 44 around the outside of the reforepredicted classification grid data 40. The padding value boundary 44 is a one pixel thick boundary of the padded classification value that is different from any of the classification values ​​32 contained within the classification grid data 30. Thus, the padded classification value is distinguishable from the classification values ​​32.

[0022]

[0031] The one or more processing devices 12 are further configured to calculate a multi-layer grid 46. The multi-layer grid 46 includes a plurality of cells 48 of the raster data 20 associated with each classification value 32 included in the classification grid data 30. The multi-layer grid 46 is calculated to overlay the padded reforedicted classification grid data 42 and the raster data 20.

[0023]

[0032] One example of a multi-layered grid 46 is shown in Figure 4. The raster data values ​​22 are located at integer x and y coordinate values, while the classification values ​​contained in the padded classification grid data 42 are located at x and y coordinate values ​​that are half offset from the integer values. Thus, the raster data values ​​22 have raster grid positions 24 that correspond to the corners of the cells 48, and the classification values ​​32 are located in the centers of the cells 48. In the example of Figure 4, the classification values ​​32 are equal to 0, 1, 2, or 3, respectively, where 0 is the padding classification value.

[0024]

[0033] As described in more detail below, the one or more processing devices 12 are configured to iterate over multiple cells 48 when a contour segment 60 is calculated. In the example of FIG. 4, a current cell 48A is highlighted along with its neighboring cells 48B. A global coordinate system is defined for the multi-layered grid 46. In this global coordinate system, the exemplary current cell 48A shown in FIG. 4 has an upper left corner at x and y coordinates (0, 1), an upper right corner at coordinates (1, 1), a lower left corner at coordinates (0, 2), and a lower right corner at coordinates (1, 2). The current cell 48A has a corresponding classification value of 1. Neighboring cells 48B surround the current cell 48A along its top, left, right, and bottom edges.

[0025]

[0034] Referring back to the embodiment of FIG. 2 , generating the set of contour segments 62 includes calculating a topographic instance 50 for each cell 48 of the multi-layered grid 46. Calculating the topographic instance 50 is illustrated in the embodiment of FIG. 5 . As shown in FIG. 5 , each topographic instance 50 indicates which, if any, of the raster data values ​​22 contained within the cell 48 are greater than the current contour level 70. The topographic instance 50 value is determined for a given contour level 70 as follows: First, a topographic instance value is assigned to each corner of the cell 48. In some embodiments, the upper left corner has a topographic instance value of 1, the upper right corner has a topographic instance value of 2, the lower left corner has a topographic instance value of 4, and the lower right corner has a topographic instance value of 8. For each corner, if the raster data value 22 corresponding to that point is greater than the contour level 70, the one or more processing devices 12 are configured to add the topographic instance value for that corner to the sum for that cell 48 that specifies the topographic instance 50. The resulting topographic instance value is a value between 0 (no raster data values ​​22 greater than the contour level 70) and 15 (all four raster data values ​​22 greater than the contour level 70), each uniquely specifying a respective topographic instance 50.

[0026]

[0035] The one or more processing devices 12 are further configured to calculate a classification instance 52 for each of the cells 48 of the multi-tiered grid 46. Figure 5 shows the computing device 10 of Figure 2 in more detail as the one or more processing devices 12 calculate the classification instance 52 for the cell 48 according to one embodiment. For each of the cells 48 of the multi-tiered grid 46, the corresponding classification instance 52 indicates which of the classification values ​​72 of multiple neighboring cells is equal to the classification value 32 of the cell 48. Thus, the classification instance 50 may be a set of four Boolean flags associated with the cell 48.

[0027]

[0036] FIG. 6 illustrates the computing device 10 in more detail when one or more processing devices 12 are configured to calculate contour segments 60. In the example of FIG. 6, the set of contour segments 62 includes a plurality of interior contour segments 60A and a plurality of edge segments 60B. The interior contour segments 60A are disposed within each cell 48 of the multi-layered grid 46. The edge segments 60B are disposed along a cell boundary 82 of each cell 48 of the multi-layered grid 46. The cell boundary 82 of the cell 48 includes two horizontal boundary lines 82A and two vertical boundary lines 82B.

[0028]

[0037] 6, the one or more processing devices 12 are configured to calculate a plurality of intersection points 80 between each contour segment 60 and a horizontal or vertical boundary line 82A or 82B of the corresponding cell 48. These intersection points occur at interpolated points located along the horizontal and vertical boundary lines 82A and 82B.

[0029]

[0038] In the following description of intersection points 80, a local coordinate system is defined, where the upper left-hand corner of the current cell 48A is designated as (0,0), the upper right-hand corner is designated as (0,1), the lower left-hand corner is designated as (1,0), and the lower right-hand corner is designated as (1,1). In this example, for cells 48 that are not the upper left-most cell 48 of the multi-layered grid 46, the local coordinate system differs from the global coordinate system described above. These corners are labeled UL, UR, LL, and LR, respectively. Figure 4 further illustrates the locations of points UL, UR, LL, and LR for an exemplary current cell 48A.

[0030]

[0039] 6 , the one or more processing devices 12 are further configured to calculate, for each cell 48, an interior intersection 80 of the contour segment 60A with a cell boundary line 82 based on the raster grid values ​​at the cell's corners UL, UR, LL, and LR. An interpolated top point is defined as a point along the segment connecting points UL and UR, whose x-coordinate is determined as a value between 0 and 1 by interpolating the contour level 70 between the raster values ​​UL and UR, and whose y-coordinate is equal to 0. An interpolated bottom point is defined as a point along the segment connecting points LL and LR, whose x-coordinate is determined as a value between 0 and 1 by interpolating the contour level 70 between the raster values ​​LL and LR, and whose y-coordinate is equal to 1. An interpolated left point is defined as a point along the segment connecting points UL and LL, whose x-coordinate is determined as a value between 0 and 1 by interpolating the contour level 70 between the raster values ​​UL and LL. The interpolated right point is defined as the point along the segment connecting points UR and LR, whose x coordinate is equal to 1 and whose y coordinate is determined as a value between 0 and 1 by interpolating the contour level 70 between raster values ​​UR and LR. Examples of top, bottom, left, and right points are also shown in the example of FIG.

[0031]

[0040] 6 , the one or more processing devices 12 are further configured to calculate, for each cell 48, an interior contour segment 60A based at least in part on the intersection point 80 calculated for that cell 48. In addition, the interior contour segment 60A is calculated based at least in part on the topographical instance 50. The one or more processing devices 12 are further configured to calculate a plurality of edge segments 60B based at least in part on the topographical instance 50 and the classification instance 52. Pseudocode for the calculation of the interior contour segments 60A and edge segments 60B for each topographical instance 50 is provided below.

[0032]

[0041] In topographic case 0, the cell has no interior contour segments.

[0033]

[0042] In topographic case 1, add contour segments from the top to the left (upper left grid value is greater than the contour level). If the left neighbor is different, add a contour segment from the left to the UL. If the upper neighbors are different, add a contour segment from the UL to the top.

[0034]

[0043] In topographic case 2, add contour segments from the right to the top (upper right grid value is greater than the contour level). If the upper neighbors are different, add a contour segment from the top to the UR. If the right neighbors are different, add a contour segment from the UR to the right.

[0035]

[0044] In topographic case 3, add contour segments from right to left (upper left and upper right grid values ​​greater than the contour level). If the left neighbor is different, add a contour segment from the left to the UL. If the upper neighbors are different, add a contour segment from UL to UR. If the right neighbors are different, add a contour segment from the UR to the right.

[0036]

[0045] In topographic case 4, add contour segments from the left down (lower left grid value is greater than the contour level). If the lower neighbors are different, add a contour segment from the bottom to LL. If the left neighbor is different, add a contour segment from LL to the left.

[0037]

[0046] In topographic case 5, add contour segments from top to bottom (upper left and lower left grid values ​​are greater than the contour level). If the lower neighbors are different, add a contour segment from the bottom to LL. If the left neighbors are different, add a contour segment from LL to UL. If the upper neighbors are different, add a contour segment from the UL to the top.

[0038]

[0047] In topographic case 6 (upper right and lower left grid values ​​are greater than the contour levels), this is one of two "saddle cases" and there are two potential ways to generate contours for this case: the corners on either side can be connected or left separate. If the contour lines form a diagonal line across the cell, add a contour line segment from the left to the top. If the upper neighbors are different, add a contour segment from the top to the UR. If the right neighbors are different, add a contour segment from the UR to the right. Add a contour segment from the right to the bottom. If the lower neighbors are different, add a contour segment from the bottom to LL. If the left neighbor is different, add a contour segment from LL to the left. Otherwise, if the contours at both corners remain separated, add a contour segment from the right to the top. If the upper neighbors are different, add a contour segment from the top to the UR. If the right neighbors are different, add a contour segment from the UR to the right. Then, add contour segments from the left to the bottom. If the lower neighbors are different, add a contour segment from the bottom to LL. If the left neighbor is different, add a contour segment from LL to the left.

[0039]

[0048] In topographic case 7, (upper left, upper right, and lower left grid values ​​are greater than the contour level), add contour segments from right to bottom. If the lower neighbors are different, add a contour segment from the bottom to LL. If the left neighbors are different, add a contour segment from LL to UL. If the upper neighbors are different, add a contour segment from UL to UR. If the right neighbors are different, add a contour segment from the UR to the right.

[0040]

[0049] In topographical case 8, (lower right grid value is greater than the contour level) add contour segments from bottom to right. If the right neighbors are different, add a contour segment from the right to the LR. If the lower neighbors are different, add a contour segment from LR to the bottom.

[0041]

[0050] In topographical Case 9 (upper left and lower right grid values ​​are greater than the contour levels), this is the other of the two "saddle cases" and there are two potential ways to generate contours for this case: the corners on either side can be connected or left separate. If the contour lines form a diagonal line across the cell, add a contour line segment from the top to the right. If the right neighbors are different, add a contour segment from the right to the LR. If the lower neighbors are different, add a contour segment from LR to the bottom. Add a contour segment from the bottom to the left. If the left neighbor is different, add a contour segment from the left to the UL. If the upper neighbors are different, add a contour segment from the UL to the top. Otherwise, if the contours at both corners remain separated, add a contour segment from the top to the left. If the left neighbor is different, add a contour segment from the left to the UL. If the upper neighbors are different, add a contour segment from the UL to the top. Then add contour segments from the bottom to the right. If the right neighbors are different, add a contour segment from the right to the LR. If the lower neighbors are different, add a contour segment from LR to the bottom.

[0042]

[0051] In the topographic case 10, (upper right and lower right grid values ​​are greater than the contour level), add contour segments from bottom to top. If the upper neighbors are different, add a contour segment from the top to the UR. If the right neighbors are different, add a contour segment from UR to LR. If the lower neighbors are different, add a contour segment from LR to the bottom.

[0043]

[0052] In topographic case 11, (upper left, upper right, and lower right grid values ​​are greater than the contour level), add contour segments from bottom to left. If the left neighbor is different, add a contour segment from the left to the UL. If the upper neighbors are different, add a contour segment from UL to UR. If the right neighbors are different, add a contour segment from UR to LR. If the lower neighbors are different, add a contour segment from LR to the bottom.

[0044]

[0053] In topographic case 12, (lower left and lower right grid values ​​are greater than the contour level) add contour segments from left to right. If the right neighbors are different, add a contour segment from the right to the LR. If the lower neighbors are different, add a contour segment from LR to LL. If the left neighbor is different, add a contour segment from LL to the left.

[0045]

[0054] In topographic case 13, (upper left, lower left, and lower right grid values ​​are greater than the contour level) add contour segments from top to right. If the right neighbors are different, add a contour segment from the right to the LR. If the lower neighbors are different, add a contour segment from LR to LL. If the left neighbors are different, add a contour segment from LL to UL. If the upper neighbors are different, add a contour segment from the UL to the top.

[0046]

[0055] In topographic case 14, add contour segments from left to top (upper right, lower left, and lower right grid values ​​are greater than the contour level). If the upper neighbors are different, add a contour segment from the top to the UR. If the right neighbors are different, add a contour segment from UR to LR. If the lower neighbors are different, add a contour segment from LR to LL. If the left neighbor is different, add a contour segment from LL to the left.

[0047]

[0056] In topographical case 15 (all four grid values ​​are greater than the contour level). If the upper neighbors are different, add a contour segment from UL to UR. If the right neighbors are different, add a contour segment from UR to LR. If the lower neighbors are different, add a contour segment from LR to LL. If the left neighbors are different, add a contour segment from LL to UL.

[0048]

[0057] As described in the pseudocode above, by referencing the topographical example 50 and classification example 52 for each cell 48 in the multi-layered grid 46, the one or more processing devices 12 are configured to calculate each of the contour segments 60 included in a set of contour segments 62. The set of contour segments 62 is specific to a contour level 70 of a plurality of contour levels 70 and specific to a class 36 of a plurality of classes 36 from which the classification value 32 is selected. The one or more processing devices 12 are configured to calculate a respective set of contour segments 62 for each class 36. For each unique combination of contour level 70 and class 36, the one or more processing devices 12 are configured to calculate a respective topographical example 50 and classification example 52 for the cell 48 of the multi-layered grid 46, and are further configured to calculate the set of contour segments 62 for that class 36 based at least in part on the topographical example 50 and classification example 52 using the techniques described above.

[0049]

[0058] 2 , the one or more processing devices 12 are further configured to combine the contour segments 60 into a plurality of contour lines 64. The contour segments 60 are combined into the contour lines 64 by joining the contour segments 60 end-to-end. The one or more processing devices 12 are further configured to compute a contour map 66 as a visual representation of the plurality of contour lines 64.

[0050]

[0059] After computing contour map 66, one or more processing devices 12 are further configured to output contour map 66 for display on display device 18. Display device 18 may be located within the same physical computing device as one or more processing devices 12 configured to compute contour map 66, or alternatively, may be located within a different physical computing device. In some embodiments, contour map 66 is computed at a server computing device and transmitted to a client computing device that includes display device 18.

[0051]

[0060] Figure 7 shows an example contour map 66. The example contour map 66 of Figure 7 is a weather map, where classes 36 indicate precipitation types (snow, rain, or a mixture of snow and rain) and contour lines 64 indicate precipitation amounts. The contour map 66 illustrates the classes 36 associated with the contour lines 64 in a visually distinguishable manner by using different types of shading to indicate various precipitation types (dotted lines for snow, dashed lines for rain, and an alternating sequence of dotted and dashed lines for a mixture of snow and rain). The example contour map 66 also uses thicker lines to indicate boundaries between regions having different precipitation types.

[0052]

[0061] In the example of FIG. 7 , the contour map 66 visually represents the contour lines 64 as closed polygons. The multiple closed polygons shown in FIG. 7 include polygons that are closed within the contour map 66 as well as polygons that extend to the edge of the contour map 66, thus forming closed polygons with boundaries that include both the contour lines 64 and the map edge. In other examples, contour lines 64 that intersect with the map edge may instead be displayed as open contour lines. In some examples, regions within the various contour lines 64 associated with classes 36 are displayed with visually distinguishing features other than contour lines, such as different shading or labels for each contour level. Thus, both the various classes 36 and the various contour lines 64 within these classes 36 are displayed in the contour map 66 in a visually distinguishable manner.

[0053]

[0062] FIG. 8A shows a flowchart of a method 100 in which a computing device is used to generate and output a contour map. The method 100 of FIG. 8A may be executed on the computing device 10 of FIG. 2. In step 102, the method 100 includes receiving raster data including a plurality of raster data values. The raster data values ​​are each associated with a respective raster grid location. In step 104, the method 100 further includes obtaining classification grid data including a plurality of classification values ​​selected from among two or more classes. The classification values ​​are associated with each classification grid location.

[0054]

[0063] In some embodiments, the contour map generated using method 100 is a weather map. In such embodiments, the raster data may be temperature data, precipitation data, wind speed data, pressure data, humidity data, air quality data, pollen data, visibility data, dew point data, or wind chill data. Additionally, the classification grid data may be precipitation type data, cloud cover data, or advisory data. Other types of weather data may also be used as raster data or classification grid data.

[0055]

[0064] Method 100 further includes generating a contour map in step 106. Steps 108, 110, 112, 114, 116, and 118 are performed when the contour map is generated in step 106. In step 108, for each of the classes from which the classification values ​​are selected, generating the contour map includes generating a set of contour line segments connecting respective pairs of grid locations contained within the raster data.

[0056]

[0065] In some embodiments, for each of the classes, two or more respective sets of contour segments may be generated in step 108. In such embodiments, the two or more sets of contour segments generated correspond to different contour levels of the raster data values. Thus, the multiple sets of contour segments are generated in corresponding iterations associated with the classification of the raster data values.

[0057]

[0066] In some examples, one or more of the sets of contour segments may be empty. For example, a set of contour segments may be empty when there is no overlap between a given classification class and the area where the raster data is at the lowest required contour level. As another example, a set of contour segments may be empty when the raster data does not contain values ​​greater than the lowest required contour level, for example, when the raster data shows precipitation data over a mapped area where no precipitation is occurring.

[0058]

[0067] Generating contour segments in step 108 includes calculating a topographic instance for each of a plurality of cells of the multi-layered grid in step 110. For each cell of the multi-layered grid, the corresponding topographic instance indicates which of the raster data values ​​contained in the cell are greater than the current contour level for which contour segments are being generated in the current iteration.

[0059]

[0068] The multi-layer grid includes a plurality of cells of raster data associated with respective classification values ​​included in the classification grid data. According to some embodiments, within the multi-layer grid, the classification grid data is offset from the raster data by half a pixel along both the horizontal and vertical axes. In some such embodiments, the multi-layer grid is a 2x2 cell of raster data values. The raster data values ​​are associated with classification values ​​included in the classification grid data. In some embodiments, padding value boundaries are added to the classification grid data before calculating the multi-layer grid. In some embodiments where padding value boundaries are added, the padding value boundaries include classification values ​​that are different from those of two or more classes of the classification grid data, thereby distinguishing the padding values ​​from other classification values.

[0060]

[0069] Generating the contour line segments in step 108 further includes calculating a classification case for each of the cells of the multi-layered grid in step 112. For each cell of the multi-layered grid, the corresponding classification case indicates which of a plurality of neighboring cells' classification values ​​equals the cell's classification value. The neighboring cells' classification values ​​are the classification values ​​of the cells above, below, left, and right of the current cell.

[0061]

[0070] Step 108 further includes calculating contour segments based at least in part on the topographical and classification instances of the plurality of cells in step 114. As described below, calculating contour segments for a contour level includes calculating interior contour segments and / or edge segments that represent the boundaries of the contour level.

[0062]

[0071] Generating the contour map in step 106 further includes combining the contour segments into a plurality of contours in step 116. For each contour level calculated for each class, the contour segments included in the corresponding set of contour segments calculated in step 108 are combined by connecting the contour segments end to end.

[0063]

[0072] Generating the contour map in step 106 further includes computing the contour map as a visual representation of the plurality of contour lines in step 118. In some embodiments, the contour map visually represents the contour lines as closed polygons. The contour map also indicates two or more classes associated with the contour lines in a visually distinguishable manner. Thus, both the various classes and the contour levels within those classes are represented in the contour map.

[0064]

[0073] At step 120, method 100 further includes outputting the contour map for display on a display device. The display device may be included within the same computing device on which the contour map is calculated. Alternatively, the display device may be included within a different computing device, such as a client computing device.

[0065]

[0074] 8B illustrates further steps of method 100 that are performed in some embodiments when generating contour segments in step 108. In step 122, step 108 further includes calculating a plurality of interior contour segments disposed within each cell of the multi-layered grid based at least in part on the topographical case. In some embodiments, calculating the interior contour segments in step 122 includes calculating a plurality of intersection points between each contour segment and horizontal or vertical boundary lines of corresponding cells in step 124. In some such embodiments, calculating the interior contour segments further includes calculating the interior contour segments in step 126 based at least in part on the intersection points.

[0066]

[0075] In some embodiments, step 108 further includes calculating, in step 128, a plurality of edge segments disposed along horizontal or vertical boundaries of each cell of the multi-layered grid. The edge segments are calculated based at least in part on the topographical instance and the classification instance. Thus, for each class, interior contour segments and / or edge segments are calculated for each of a plurality of contour levels.

[0067]

[0076] Using the above-described devices and methods, contour maps representing raster data and classification grid data are generated. The contour maps are generated in a manner that avoids artifacts that arise when masking is used, such as gaps and ramps between contour lines associated with different classes. In addition, the contour maps are generated using techniques that are less computationally intensive than polygon clipping. Thus, the contour maps are calculated in a computationally efficient manner while maintaining accuracy.

[0068]

[0077] The methods and processes described herein may be coupled to the computing system of one or more computing devices. In particular, such methods and processes may be implemented as computer application programs or services, application programming interfaces (APIs), libraries, and / or other computer program products.

[0069]

[0078] 9 schematically illustrates one non-limiting embodiment of a computing system 200 that may implement one or more of the methods and processes described above. Computing system 200 is illustrated in simplified form. Computing system 200 may embody computing system 10 described above and shown in FIG. 2. Components of computing system 200 may be included within one or more personal computers, server computers, tablet computers, home entertainment computers, network computing devices, video game devices, mobile computing devices, mobile communication devices (e.g., smartphones), and / or other computing devices, as well as wearable computing devices such as smart watches and head-worn augmented reality devices.

[0070]

[0079] Computing system 200 includes a logical processor 202, a volatile memory 204, and a non-volatile storage device 206. Computing system 200 may optionally further include a display subsystem 208, an input subsystem 210, a communication subsystem 212, and / or other components not shown in FIG.

[0071]

[0080] Logical processor 202 includes one or more physical devices configured to execute instructions. For example, a logical processor may be configured to execute instructions. The instructions may be part of one or more applications, programs, routines, libraries, objects, components, data structures, or other logical constructs. Such instructions may be implemented to perform a task, implement a data type, transform the state of one or more components, achieve a technical effect, or otherwise arrive at a desired result.

[0072]

[0081] A logical processor may include one or more physical processors configured to execute software instructions. Additionally or alternatively, a logical processor may include one or more hardware logic circuits or firmware devices configured to execute hardware-implemented logic or firmware instructions. The processors of processing circuitry 202 may be single-core or multi-core, and instructions executed by the processors may be sequential, parallel, and / or distributed. Individual components of the logic subsystem may optionally be distributed across two or more separate devices. These devices may be remotely located and / or configured for coordinated processing. Aspects of the logic subsystem may be virtualized and executed by remotely accessible networked computing devices configured as a cloud computing configuration. In such cases, these virtualized aspects execute on various physical logical processors on various different machines.

[0073]

[0082] Non-volatile storage device 206 includes one or more physical devices configured to hold instructions executable by a logical processor to implement the methods and processes described herein. When such methods and processes are implemented, the state of non-volatile storage device 206 may be transformed, for example, to hold various data.

[0074]

[0083] The non-volatile storage device 206 may include removable and / or internal physical devices. The non-volatile storage device 206 may include optical, semiconductor, and / or magnetic memory, or other mass storage device technologies. The non-volatile storage device 206 may include non-volatile, dynamic, static, read / write, serial access, position-addressable, file-addressable, and / or content-addressable devices. The non-volatile storage device 206 is configured to retain instructions even when power to the non-volatile storage device 206 is interrupted.

[0075]

[0084] Volatile memory 204 may include physical devices including random access memory. Volatile memory 204 is typically utilized by logical processor 202 to temporarily store information during the processing of software instructions. It will be appreciated that volatile memory 204 is typically not configured to continue to store multiple instructions when power to volatile memory 204 is interrupted.

[0076]

[0085] The logic processor 202, volatile memory 204, and non-volatile storage device 206 may be integrated together into one or more hardware logic components, which may include, for example, a field programmable gate array (FPGA), a program specific integrated circuit / application specific integrated circuit (PASIC / ASIC), a program specific standard product / application specific standard product (PSSP / ASSP), a system on a chip (SOC), and a complex programmable logic device (CPLD).

[0077]

[0086] The terms “module,” “program,” and “engine” may be used to describe an aspect of computing system 200 that is typically implemented in software by a processor to perform a particular function using portions of volatile memory, where the function includes a transformation that specifically configures the processor to perform the function. Thus, a module, program, or engine may be instantiated via logical processor 202 using portions of volatile memory 204 to execute instructions held by non-volatile storage device 206. It will be understood that different modules, programs, and / or engines may be instantiated from the same application, service, code block, object, library, routine, API, function, etc. Likewise, the same module, program, and / or engine may be instantiated by different applications, services, code blocks, objects, routines, APIs, functions, etc. The terms “module,” “program,” and “engine” may encompass individual or groups of executable files, data files, libraries, drivers, scripts, database records, etc.

[0078]

[0087] When included, display subsystem 208 can be used to present a visual representation of the data maintained by non-volatile storage device 206. This visual representation may take the form of a graphical user interface (GUI). As described herein, methods and processes change the data maintained by the non-volatile storage device, thus transforming the state of the non-volatile storage device, and the state of display subsystem 208 may likewise be transformed to visually represent the changes in the underlying data. Display subsystem 208 may include one or more display devices utilizing virtually any type of technology. Such display devices may be combined with logic processor 202, volatile memory 204, and / or non-volatile storage device 206 in a shared enclosure, or such display devices may be peripheral display devices.

[0079]

[0088] When included, input subsystem 210 may include or interact with one or more user input devices, such as a keyboard, mouse, touchscreen, camera, or microphone.

[0080]

[0089] When included, communications subsystem 212 may be configured to communicatively couple the various computing devices described herein with each other and / or with other devices. Communications subsystem 212 may include wired and / or wireless communication devices compatible with one or more various communications protocols. By way of non-limiting examples, communications subsystem may be configured for communication over wired or wireless local or wide area networks, broadband cellular networks, etc. In some embodiments, communications subsystem may enable computing system 200 to send and / or receive messages to and from other devices over a network, such as the Internet.

[0081]

[0090] Furthermore, the present disclosure includes multiple configurations according to the following clauses.

[0082]

[0091] Article 1. A computing device comprising one or more processing devices, the one or more processing devices receiving raster data comprising a plurality of raster data values; obtaining classification grid data comprising a plurality of classification values ​​selected from among two or more classes; generating a contour map, the contour map generating, for each of the classes, a set of contour line segments connecting respective pairs of grid locations included in the raster data, the generating of the set of contour line segments calculating a topographical instance for each of a plurality of cells of a multi-layered grid, the multi-layered grid being associated with each classification value included in the classification grid data. generating a set of contour segments, the set comprising: computing a topographical instance including a plurality of cells of the raster data labeled with the topographical instance; computing a classification instance for each of the plurality of cells of the multi-layered grid; and computing the contour segments based at least in part on the topographical instance and the classification instance for the plurality of cells; combining the contour segments into a plurality of contour lines; and computing the contour map as a visual representation of the plurality of contour lines; and outputting the contour map for display on a display device.

[0083]

[0092] Article 2. The computing device described in clause 1, wherein within the multi-layered grid, the classification grid data is offset by half a pixel from the raster data along both the horizontal and vertical axes, and each of the multiple cells of the multi-layered grid is a 2x2 cell of raster data values.

[0084]

[0093] Article 3. The computing device of clause 2, wherein for each of the classes, the one or more processing devices are configured to generate two or more respective sets of contour segments, the two or more sets of contour segments corresponding to different contour levels of the raster data values.

[0085]

[0094] Article 4. The computing device of clause 3, wherein for each of the plurality of cells of the multi-layered grid, the corresponding topographical instance indicates which of the raster data values ​​contained within the cell are greater than the current contour level.

[0086]

[0095] Article 5. 5. A computing device as described in any one of clauses 2 to 4, wherein for each of the plurality of cells of the multi-layered grid, the corresponding classification case indicates which of a plurality of neighboring cells' classification values ​​is equal to the classification value of the cell.

[0087]

[0096] Article 6. The computing device described in clause 5, wherein the one or more processing devices are configured to calculate the contour segments at least in part by calculating a plurality of interior contour segments located within each cell of the multi-layered grid based at least in part on the topographical example, and calculating a plurality of edge segments located along horizontal or vertical boundary lines of each cell of the multi-layered grid based at least in part on the topographical example and the classification example.

[0088]

[0097] Article 7. The computing device of clause 6, wherein the one or more processing devices are further configured to: calculate a plurality of intersection points between each contour segment and the horizontal or vertical boundary lines of corresponding cells; and calculate the plurality of internal contour segments based at least in part on the plurality of intersection points.

[0089]

[0098] Article 8. 8. The computing device of any one of clauses 2 to 7, wherein the one or more processing devices are further configured to add padding value boundaries to the classification grid data before calculating the multi-layer grid.

[0090]

[0099] Article 9. 9. A computing device as described in any one of clauses 1 to 8, wherein the contour map visually represents the plurality of contour lines as closed polygons, and the contour map indicates the two or more classes associated with the plurality of contour lines in a visually distinguishable manner.

[0091]

[0100] Article 10. 10. The computing device of any one of clauses 1 to 9, wherein the contour map is a weather map, the raster data is temperature data, precipitation data, wind speed data, pressure data, humidity data, air quality data, pollen data, visibility data, dew point data, or wind chill data, and the classification grid data is precipitation type data, cloud cover data, or advisory data.

[0092]

[0101] Article 11. 1. A method for use in a computing device, the method comprising: receiving raster data comprising a plurality of raster data values; obtaining classification grid data comprising a plurality of classification values ​​selected from among two or more classes; generating a contour map, wherein for each of the classes, a set of contour line segments connecting respective pairs of grid locations included in the raster data are generated; and generating the set of contour line segments comprises calculating a topographic instance for each of a plurality of cells of a multi-layered grid, the multi-layered grid connecting each pair of classification values ​​included in the classification grid data. generating a set of contour segments including computing a topographical instance including a plurality of cells of the raster data associated with a class value; computing a classification instance for each of the plurality of cells of the multi-layered grid; and computing the contour segments based at least in part on the topographical instance and the classification instances for the plurality of cells; combining the contour segments into a plurality of contour lines; and computing the contour map as a visual representation of the plurality of contour lines; and outputting the contour map for display on a display device.

[0093]

[0102] Article 12. 12. The method of claim 11, wherein within the multi-layered grid, the classification grid data is offset by half a pixel from the raster data along both the horizontal and vertical axes, and each of the plurality of cells of the multi-layered grid is a 2x2 cell of raster data values.

[0094]

[0103] Article 13. 13. The method of claim 12, further comprising generating, for each of the classes, two or more respective sets of contour segments, the two or more sets of contour segments corresponding to different contour levels of the raster data values.

[0095]

[0104] Article 14. 14. The method of claim 13, wherein for each of the plurality of cells of the multi-layered grid, the corresponding topographical instance indicates which of the raster data values ​​contained within the cell are greater than the current contour level.

[0096]

[0105] Article 15. 15. The method of any one of clauses 12 to 14, wherein for each of the plurality of cells of the multi-layered grid, the corresponding classification case indicates which of a plurality of neighboring cells' classification values ​​is equal to the classification value of the cell.

[0097]

[0106] Article 16. 16. The method of claim 15, wherein calculating the contour segments includes calculating a plurality of interior contours located within each cell of the multi-layered grid based at least in part on the topographical example, and calculating a plurality of edge segments located along horizontal or vertical boundaries of each cell of the multi-layered grid based at least in part on the topographical example and the classification example.

[0098]

[0107] Article 17. 17. The method of claim 16, further comprising: calculating a plurality of intersection points between each contour segment and the horizontal or vertical boundary lines of corresponding cells; and calculating the plurality of interior contour segments based at least in part on the plurality of intersection points.

[0099]

[0108] Article 18. 18. The method of any one of clauses 12 to 17, further comprising adding padding value boundaries to the classification grid data before calculating the multi-layer grid.

[0100]

[0109] Article 19. 19. The method of any one of clauses 11 to 18, wherein the contour map visually represents the plurality of contour lines as closed polygons, and the contour map indicates the two or more classes associated with the plurality of contour lines in a visually distinguishable manner.

[0101]

[0110] Article 20. a computing device including one or more processing devices, the one or more processing devices receiving raster data including a plurality of raster data values; obtaining classification grid data including a plurality of classification values ​​selected from among two or more classes; generating a contour map, the computing device adding a border of padding values ​​to the classification grid data before computing a multi-layer grid; computing the multi-layer grid, the classification grid data being offset from the raster data by half a pixel along both a horizontal axis and a vertical axis, the multi-layer grid including a plurality of cells of the raster data associated with each classification value included in the classification grid data, each of the cells of the multi-layer grid being a 2x2 cell of raster data values; and generating, for each of the classes, a set of contour line segments connecting respective pairs of grid locations included in the raster data, the generating the set of contour line segments. 12. A computing device configured to: calculate a topographical instance for each of a plurality of cells of a multi-layered grid, the multi-layered grid including a plurality of cells of the raster data associated with respective classification values ​​of the cells included in the classification grid data; calculating a topographical instance for each of the plurality of cells of the multi-layered grid at least in part by: calculating, for each of the plurality of cells, which of a plurality of classification values ​​of a plurality of neighboring cells is equal to the classification value of the cell; generating a set of contour line segments including calculating the contour line segments at least in part based on the topographical instance and the classification instances of the plurality of cells; combining the contour line segments into a plurality of contour lines; and calculating the contour line map as a visual representation of the plurality of contour lines; and outputting the contour line map for display on a display device.

[0102]

[0111] As used herein, "and / or" is defined as inclusive or ∨ according to the truth table below. TIFF2025124593000002.tif66170

[0103]

[0112] It will be understood that the configurations and / or approaches described herein are exemplary in nature, and that these specific embodiments or examples should not be considered limiting, as numerous variations are possible. A particular routine or method described herein may represent one or more of any number of processing schemes. As such, various operations illustrated and / or described may be performed in the order illustrated and / or described, in other orders, concurrently, or omitted. Similarly, the order of processes described above may be changed.

[0104]

[0113] The subject matter of the present disclosure includes all novel and non-obvious combinations and subcombinations of the various processes, systems, and configurations, as well as other features, functions, operations, and / or properties disclosed herein, and any and all equivalents thereof. [Explanation of symbols]

[0105] Bottom point Left Point LL Corner LR corner R Planned Route Right Point Top Point UL Corner UR corner 1. Air Travel Settings 2 aircraft 3. Cockpit 10. Computing Devices 10A Server Computing Devices 10B Client Computing Devices 10C-equipped computing device 10D Client Computing Device 11 Network 12 Processing Device 13 Contour Map Generation Program 14 Memory Devices 15 Uplink 16 Input Devices 17 Satellite 18 Display Devices 19 Air Traffic Control Tower 20 Raster Data 20A Temperature Data 20B Precipitation Data 20C Wind Speed ​​Data 20D Pressure Data 20E Humidity Data 20F Air Quality Data 20G pollen data 20H visibility data 20I Dew Point Data 20J Wind Chill Data 22 Raster Data Values 24 raster grid positions 30 Classification grid data 30A Precipitation Type Data 30B Cloud Cover Data 30C Recommendation Data 32 Classification Values 34 Classification Grid Positions 36 classes 40 Re-predicted classification grid data 42 Padded reforecast classification grid data 44 padding value border 46 Multi-layered grid 48 cells 48A Current Cell 48B Neighboring Cell 50 Geomorphological Examples 52 Classification examples 60 contour segments 60A Interior Contour Segments 60B Edge Segment Set of 62 contour segments 64 contour lines 66 Contour Map 66A Weather Map 70 Contour Levels 72 Classification values ​​of neighboring cells 80 intersection 82 Cell Borders 82A horizontal border 82B Vertical Border 100 ways 102 steps 104 steps 106 steps 108 steps 110 steps 112 steps 114 steps 116 steps 118 steps 120 steps 122 steps 124 steps 126 steps 128 steps 200 Computing Systems 202 Processing circuit 204 Volatile Memory 206 Non-volatile storage devices 208 Display Subsystem 210 Input Subsystem 212 Communication Subsystem

Claims

1. A computing device (10) comprising one or more processing devices (12), the one or more processing devices (12) comprising: receiving raster data (20) comprising a plurality of raster data values ​​(22); obtaining classification grid data (30) including a plurality of classification values ​​(32) selected from among two or more classes (36); generating a contour map (66), generating, for each of the classes, a set (62) of contour line segments (60) connecting respective pairs of grid locations (24) contained within the raster data, wherein generating the set of contour line segments comprises: calculating a topographical instance (50) for each of a plurality of cells (48) of a multi-layered grid (46), the multi-layered grid including a plurality of cells of the raster data associated with each classification value included in the classification grid data; calculating a classification instance (52) for each of the plurality of cells of the multi-layered grid; and generating a set of contour segments (62) including calculating the contour segments based at least in part on the topographical instances and the classification instances of the plurality of cells; combining the contour line segments into a plurality of contour lines (64); and computing said contour map as a visual representation of said plurality of contour lines; generating a contour map (66) at least in part by outputting the contour map for display on a display device (18).

2. Within the multi-layered grid, the classification grid data is offset from the raster data by half a pixel along both the horizontal and vertical axes; The computing device of claim 1 , wherein each of the plurality of cells of the multi-layered grid is a 2×2 cell of raster data values.

3. for each of the classes, the one or more processing devices are configured to generate two or more respective sets of contour line segments; The computing device of claim 2 , wherein the two or more sets of contour segments correspond to different contour levels (70) of the raster data values.

4. 4. The computing device of claim 3, wherein for each of the plurality of cells of the multi-layered grid, the corresponding topographical instance indicates which of the raster data values ​​contained within the cell are greater than a current contour level.

5. 3. The computing device of claim 2, wherein for each of the plurality of cells of the multi-tiered grid, the corresponding classification case indicates which of a plurality of neighboring cells' classification values ​​(72) is equal to the classification value of the cell.

6. the one or more processing devices, calculating a plurality of interior contour segments (60A) located within each cell of the multi-layered grid based at least in part on the topographical case; and calculating a plurality of edge segments (60B) located along horizontal or vertical boundaries (82A, 82B) of each cell of the multi-layered grid based at least in part on the topographical instance and the classification instance; The computing device of claim 5 , configured to calculate the contour line segments at least in part by:

7. the one or more processing devices, calculating a plurality of intersection points (80) between each contour segment and the horizontal or vertical boundary lines of a corresponding plurality of cells; and The computing device of claim 6 , further configured to: calculate the plurality of interior contour line segments based at least in part on the plurality of intersection points.

8. 3. The computing device of claim 2, wherein the one or more processing devices are further configured to add padding value boundaries (44) to the classification grid data before calculating the multi-tiered grid.

9. the contour map visually represents the plurality of contour lines as closed polygons; The computing device of claim 1 , wherein the contour map illustrates the two or more classes associated with the plurality of contour lines in a visually distinguishable manner.

10. the contour map is a weather map (66A); the raster data is temperature data (20A), precipitation data (20B), wind speed data (20C), pressure data (20D), humidity data (20E), air quality data (20F), pollen data (20G), visibility data (20H), dew point data (20I), or wind chill data (20J); The computing device of claim 1 , wherein the classification grid data is precipitation type data (30A), cloud cover data (30B), or advisory data (30C).

11. A method (100) for use in a computing device, comprising: receiving raster data (102) including a plurality of raster data values; obtaining classification grid data (104) including a plurality of classification values ​​selected from among two or more classes; generating a contour map (106), generating (108) for each of the classes a set of contour line segments connecting respective pairs of grid locations contained within the raster data, wherein generating the set of contour line segments comprises: Calculating (110) a topographical instance for each of a plurality of cells of a multi-layered grid, the multi-layered grid including a plurality of cells of the raster data associated with each classification value included in the classification grid data; Computing (112) classification instances for each of the cells of the multi-layered grid; and generating a set of contour line segments (108), including calculating the contour line segments (114) based at least in part on the topographical instance and the classification instance of the plurality of cells; Combining the contour line segments into a plurality of contour lines (116); and Computing (118) the contour map as a visual representation of the plurality of contour lines; generating a contour map (106) at least in part by outputting (120) the contour map for display on a display device.

12. Within the multi-layered grid, the classification grid data is offset from the raster data by half a pixel along both the horizontal and vertical axes; 12. The method of claim 1, wherein each of the plurality of cells of the multi-layered grid is a 2x2 cell of raster data values.

13. 13. The method of claim 12, further comprising generating, for each of the classes, two or more respective sets of contour segments, the two or more sets of contour segments corresponding to different contour levels of the raster data values.

14. 14. The method of claim 13, wherein for each of the plurality of cells of the multi-layered grid, the corresponding topographic instance indicates which of the raster data values ​​contained within the cell are greater than a current contour level.

15. The method of claim 12 , wherein for each of the plurality of cells of the multi-tiered grid, the corresponding classification case indicates which of a plurality of neighboring cells' classification values ​​are equal to the classification value of the cell.

16. Calculating the contour segments comprises: calculating (122) a plurality of interior contour line segments located within each cell of the multi-layered grid based at least in part on the topographical example; and 16. The method of claim 15, comprising calculating (128) a plurality of edge segments located along horizontal or vertical boundaries of each cell of the multi-layered grid based at least in part on the topographical instance and the classification instance.

17. calculating (124) a plurality of intersection points between each contour segment and the horizontal or vertical boundary lines of the corresponding plurality of cells; and The method of claim 16, further comprising calculating (126) the plurality of interior contour line segments based at least in part on the plurality of intersection points.

18. The method of claim 12 , further comprising adding a padding value boundary to the classification grid data before calculating the multi-tiered grid.

19. the contour map visually represents the plurality of contour lines as closed polygons; The method of claim 11 , wherein the contour map illustrates the two or more classes associated with the plurality of contour lines in a visually distinguishable manner.

20. A computing device (10) comprising one or more processing devices (12), the one or more processing devices (12) comprising: receiving raster data (20) comprising a plurality of raster data values ​​(22); obtaining classification grid data (30) including a plurality of classification values ​​(32) selected from among two or more classes (36); adding padding value boundaries (44) to the classification grid data before calculating the multi-layered grid (46); generating a contour map (66), calculating the multi-layer grid, wherein the classification grid data is offset from the raster data by half a pixel along both a horizontal axis and a vertical axis, the multi-layer grid including a plurality of cells (48) of the raster data associated with respective classification values ​​included in the classification grid data, each of the cells of the multi-layer grid being a 2x2 cell of raster data values; generating, for each of the classes, a set (62) of contour line segments (60) connecting respective pairs of grid locations (24) contained within the raster data, wherein generating the set of contour line segments comprises: calculating a topographical instance (50) for each of a plurality of cells of the multi-layered grid; calculating, for each of the plurality of cells, which of a plurality of neighboring cell classification values ​​(72) is equal to the classification value of the cell; and generating a set of contour segments (62) including calculating the contour segments based at least in part on the topographical instances and the classification instances of the plurality of cells; combining the contour line segments into a plurality of contour lines (64); and computing said contour map as a visual representation of said plurality of contour lines; generating a contour map (66) at least in part by outputting the contour map for display on a display device (18).