Terrain Analysis Background Aircraft frequently rely on terrain elevation data to help navigate in low visibility conditions, to reduce pilot workload, to help closely follow terrain at low altitude to avoid radar detection (sometimes called ground-hugging or terrain-following flight), and to plot a course to avoid extreme sudden altitude changes (e.g., flying around a mountain, rather than over it). Terrain elevation data is gathered through terrain-following radar, lidar, satellites, and existing terrain map elevation information. Elevation data is especially useful radar or communication services are not operating. Elevation data is typically broken down into a grid, where each grid cell represents a square physical area of uniform size. Because elevation varies within a cell, the highest elevation in the cell is usually used as the elevation value for that cell on the grid. To navigate using elevation data, it’s useful to compute locations of peaks (high points), valleys (low points), and flat areas (which might be at high or low elevations). To a specific location is a peak, we\'re interested in discovering whether that location is a local maximum. To do this, we must examine its eight adjacent locations: left, right, above, below, and the four diagonal neighbors. If the location we’re analyzing has a higher elevation than all eight surrounding locations, then the location is clearly a peak. We might choose to loosen our definition of a peak by saying, for example, that a location is a peak if more than five of the eight surrounding locations have a lower elevation. Similarly, to decide if a location is a valley, we determine if it\'s a local minimum by checking to see if all eight neighboring locations are higher than the location we’re analyzing. If all eight are higher, we clearly have a valley. Again, we might choose to loosen our valley definition to identify a valley if more than five surrounding locations are higher than the location we’re analyzing. Determining if a location is part of a relatively flat area (a plain for our purposes, but it might also be a plateau in the real world), we would again examine all eight neighboring locations. If they are all within a small tolerance in elevation, then we would declare the location to be part of a plain. Once again, we might choose to loosen our definition of a plain, so that a location surrounded by more than five locations that have a similar elevation is considered a plain. Your Assignment You will develop a C program that creates a two-dimensional array of doubles representing an elevation grid, populates the array it with elevation data read from an instructor-supplied binary data file, displays the elevation data numerically, analyzes the data in the array to find the peaks, valleys, and plains, and displays strings indicating where these peaks, valleys, and plains are. Terrain elevation values are all assumed to be expressed in meters. When defining your C functions in this pr.