Automatic scaling of F layer from ionograms


  • Ziwei Chen,

    Corresponding author
    1. Key Laboratory of High Power Microwave and Electromagnetic Radiation, Institute of Electronics, Chinese Academy of Science, Beijing, China
    2. Haystack Observatory, Massachusetts Institute of Technology, Westford, Massachusetts, USA
    • National Satellite Meteorological Center, China Meteorological Administration, Beijing, China
    Search for more papers by this author
  • Shun Wang,

    1. Key Laboratory of High Power Microwave and Electromagnetic Radiation, Institute of Electronics, Chinese Academy of Science, Beijing, China
    Search for more papers by this author
  • Shunrong Zhang,

    1. Haystack Observatory, Massachusetts Institute of Technology, Westford, Massachusetts, USA
    Search for more papers by this author
  • Guangyou Fang,

    1. Key Laboratory of High Power Microwave and Electromagnetic Radiation, Institute of Electronics, Chinese Academy of Science, Beijing, China
    Search for more papers by this author
  • Jinsong Wang

    1. National Satellite Meteorological Center, China Meteorological Administration, Beijing, China
    Search for more papers by this author

Corresponding author: Z. Chen, Haystack Observatory, Massachusetts Institute of Technology, Westford, MA 01886, USA. (


[1] The correct automatic scaling of ionograms is one of the fundamental first steps to obtain ionospheric information. In this paper, new algorithms are proposed to scale F layer traces and separate ordinary ray and extraordinary ray traces from ionograms automatically. The method is mainly based on mathematical morphology, graph theory, and the echo characteristics of the ionosphere. Digital ionogram data from the Chinese Academy of Sciences Digital Ionosonde, installed at Dulan (36°17′N, 98°5′E), were used to demonstrate the data processing procedures.

1 Introduction

[2] The ionosphere is an essential part of the near-Earth space environment, and it affects directly the propagation of radio waves. Ionograms generated by various ionosondes contain important information on the ionosphere. Ionogram scaling is a time-consuming and laborious task; therefore, automatic scaling procedures, widely used for handling digital ionograms, have been developed in the past [Fox and Blundell, 1989; Ding et al., 2007; Scotto and Pezzopane, 2007; Pezzopane and Scotto, 2007, 2008]. Even though considerable progress has been made in the recent years, the reliability and accuracy of the automatically scaled data have remained a challenge.

[3] The most widely known automatic scaling system is ARTIST (Automatic Real Time Ionogram Scaling with True Height Analysis), developed at the Center for Atmospheric Research, University of Massachusetts Lowell [Huang and Reinisch, 1982; Reinisch and Huang, 1982, 1983; Galkin et al., 1996; Galkin and Reinisch, 2008]. It is based on neural networks and a hyperbolic trace fitting method and needs polarization information to identify the radio wave modes. In this paper, we provide a new method which is proposed to scale F layer traces of ionograms and to separate the O-mode and X-mode echoes automatically. Our approach is based on image processing methods and does not need polarization information, and in this way, it seems a general approach.

[4] In this paper, we scale the ionograms in three steps. The first step is noise reduction preprocessing to obtain a clean ionogram, the second step is to extract layer traces from the ionogram, and the last step is to identify the characteristics of each layer. In our previous research [Chen et al., 2011, 2012; Z. Chen et al., Ionograms denoising via curvelet transform, submitted to Advances in Space Research, 2012], we have developed methods to perform the first step in eliminating noise in an ionogram. Therefore, this paper will provide only a brief description of the first step and will focus on the next two steps. The algorithm proposed here is based on mathematical morphology and graph theory. The performance of this algorithm is tested by data from an ionosonde, the Chinese Academy of Sciences Digital Ionosonde (CAS-DIS) installed at Dulan (36°17′N, 98°5′E).

[5] This paper is organized as follows. In section 2, the experimental data collected by CAS-DIS are described. Section 3 illustrates the algorithm, including the three steps mentioned above. Section 4 gives the results of this algorithm and discusses its performance.

2 Description of CAS-DIS and the Experimental Data

[6] The experimental data were collected by CAS-DIS developed by the CAS Institute of Electronics. CAS-DIS is a fully digitized vertical incidence ionosonde which operates between 1 MHz and 30 MHz, and the virtual height range of detection is from 90 km to 990 km with a resolution of 5 km. The transmitted signal of CAS-DIS may be chosen from either a Barker code or a complementary code mode. In this paper, an 8 bit complementary code is selected. In this system, coherent Doppler integration and phase-coded pulse compression are used to improve the signal-to-noise ratio. The specifications of CAS-DIS are shown in Table 1.

Table 1. CAS-DIS Specifications
Frequency range1–30 MHz
Virtual height range90 km–990 km
Distance resolution5 km
Transmitted power600 W (maximum peak)
Frequency point number500 (maximum)
Code type16 bit complementary, 13 bit Barker
Analog to digital converter sampling rate60 MHz
Receiver sensitivity−120 dBm at 150 kHz
AntennaDelta antenna

[7] The experimental data used in this paper were collected on 12 July 2011 at Dulan by CAS-DIS. The ionosonde installed in Dulan implemented the swept-frequency detection from 1 to 11 MHz with 20 kHz steps to detect the ionosphere. A sample ionogram of CAS-DIS is shown in Figure 1.

Figure 1.

A sample ionogram obtained by CAS-DIS at Dulan. The ionogram was recorded on 12 July 2011 at 12:51 local time.

3 The Proposed Algorithms

3.1 Preprocessing of Ionograms

[8] Generally, ionograms are always contaminated by different kinds of noises, such as radio frequency interference (RFI) from other emissions, Gaussian noise, and impulsive noise. Ionograms denoising techniques include phase-coded pulse compression, coherent Doppler integration [Haines and Reinisch, 1993], different types of windows [Barlett et al., 1994], size-contrast filter [Theera-Umpon, 2004], median filtering, and edge detection [Bovik et al., 1987].

[9] In CAS-DIS, several methods are adopted to eliminate the noise in the ionograms. Radio frequency interference mitigation and filters [Chen et al., 2011, 2012] are used to eliminate radio frequency interference (RFI) and other noises, respectively. Curvelet transform denoising [Starck et al., 2002; Candes et al., 2006], a popular algorithm in the digital image processing domain, is also used to preserve the traces clearly while noise is effectively reduced (Chen et al., submitted manuscript, 2012). Curvelet transform is a multiscale pyramid with many directions and positions at each scale. It can provide almost optimal sparse representations of objects with edges. Unlike general digital signal processing methods, our curvelet transform denoising uses as a basis the characteristics of layer traces in ionograms. Examples of ionograms with and without denoising can be seen in Figure 2.

Figure 2.

Comparison of ionograms with and without denoising. (a) Ionogram before preprocessing. (b) Ionogram after preprocessing. The ionogram was recorded at 09:51 local time on 12 July 2011.

3.2 Trace Extraction From the Ionogram

3.2.1 The F Layer Traces Extraction Based on Mathematical Morphology and Graph Theory

[10] After these denoising operations, the ionogram is clear enough and ready now for trace extraction. To do so, an algorithm based on mathematical morphology and graph theory is proposed. The ionogram is regarded as a two-dimensional image with frequency, height, and signal amplitude information included. The specific processing steps are as follows. Step 1

[11] The input ionogram is converted into a binary image. From the preprocessed ionogram, it is observed that the trace becomes discontinuous after the removal of the RFI, especially when the RFI is intense. In order to ensure the continuity and integrity of the extracted traces, dilation operation, a morphological operation, is applied. The dilation uses a structuring element for expanding the shapes in the input image, and it can connect the areas separated by spaces smaller than the size of a structuring element [Serra, 1982; Gonzalez and Woods, 1992]. Therefore, given a binary image, suppose X is the set of coordinates that define the starting image and K is the set of coordinates that define the structuring element. Let Kx denote the translation of K so that its origin is at x. Then the dilation of X by K is defined by the set of all points x such that the intersection of Kx with X is nonempty. Here the structuring element is of the size of 3 × 3 pixels, determined somewhat arbitrarily, but this dimension has been proved to work well with the type of ionogram traces that we are dealing with. This operation will bridge some gaps in the traces and simultaneously smooth the traces. However, sometimes, this operation cannot connect all the gaps, especially gaps appearing at high frequency. So repeating the dilation operation may be needed, and this will be addressed in step 3. The effect of dilation using this structuring element for several times on segments of an ionogram is shown in Figure 7b, where there exist gaps on the original trace, and these gaps are completely filled after dilation. Figure 3 shows the ionogram with full traces after dilation.

Figure 3.

Ionogram after dilation. Step 2

[12] From Figure 3, it is observed that there is still some noise in the ionogram which appears as isolated small echoes. In order to remove such noise, we then perform connected-component labeling. This algorithmic application of graph theory can effectively detect connected regions and extract objects with specific features from a binary image. The labeling operator works by scanning the input image pixel by pixel and groups its pixels into components based on pixel connectivity. Once all groups are determined, each pixel is labeled with a number according to the component it is assigned to. The connected pixels share a common number.

[13] As a result, the ionogram is then divided into different groups with their own specific labels. A diagram of the labeled image can be seen in Figure 4. We can see that each pixel on the ionogram is labeled by a number; the number 0 represents the background, and nonzero numbers represent different isolated trace groups.

Figure 4.

Diagram of a part of the labeled ionogram, where zeros represent the background and nonzero numbers represent different isolated groups.

[14] Since each layer of the ionosphere spreads in a specific virtual height range, for instance, the E layer is limited in the range of 90 km–150 km and the F layer extends from 150 km to over 500 km, it is possible to identify the ionospheric region a trace belongs to on the basis of the area and position of an isolated group. A bounding box [Freeman and Shapira, 1975] is utilized to estimate an approximate layer location of an object in question. It is the smallest rectangle which fully encloses the object (i.e., the group of connected pixels, hereafter termed as the pixel group) and subjects to the constraint that the edges of the box are parallel to the coordinate axes. In this paper, the positions and areas of each pixel group are determined by calculating the positions and areas of the bounding boxes of each pixel group.

[15] To do so, we define the bounding box in the following manner.

[16] Suppose p(x,y) is a point belonging to an isolated group P, where p1(xmax,y1), p2(xmin,y2), p3(x1,ymax), and p4(x2,ymin) are the four vertexes of P; A is the area; and pc(xc,yc) represents the center of the bounding box of P. Figure 5 shows an example of the F region trace pixel group and the corresponding bounding box. The black trace represents the pixel group P.

Figure 5.

Diagram of a bounding box.

[17] Thus, the area of the bounding box of P can be easily calculated by

display math(1)

and the coordinate of the center pc(xc,yc) is given by

display math

[18] For each isolated pixel group, these parameters will be calculated and will be used next to determine the layer traces and remove the noise from those small isolated traces. Taking the F layer as an example, we may perform the next two steps. (1) Remove the pixel groups whose centers are below 200 km or above 600 km. (2) Remove those “very small” pixel groups which are considered as noises. Here noises appear as isolated “small” pixel groups. They are small because their corresponding bounding box has a smaller area compared to that of the F layer trace bounding box. An appropriate area threshold is needed to reject the noise and preserve the F layer region traces.

[19] Similarly, we can obtain the region of the E layer trace. The E layer trace comes from a single ionospheric layer and so is relatively simpler. We now concentrate on the F layer. Step 3

[20] After further noise reduction and trace zoning as described in step 2, we can operate the trace dilation again. This is necessary because the dilation in step 1 may be not sufficient to fill in large trace gaps which cause trace pieces to be isolated from the main trace such that the entire F region trace may consist of multiple pixel groups and that the uniform 3 × 3 pixel structuring element may not be universally appropriate throughout the entire traces. Toward the critical frequency of the F2 layer, for instance, the trace is a vertical extension, and a 3 × 3 pixel structuring element is not suitable for this situation. So it is advisable to divide the extended bounding box, covering the entire F region traces with possibly multiple pixel groups, into two parts and dilate them with a different structuring element. The two parts are the preceding two thirds of the region and the remaining part. We then dilate them by a 3 × 3 structuring element and a 3 × 1 structuring element, respectively. This extended bounding box contains neither noise nor the E region data, so it is easy to separate the traces in question into two parts. This will lead to a complete set of the F region traces. Step 4

[21] Based on the revised ionogram obtained previously, we repeat step 2 for relabeling traces and isolating the gap-free pixel group with the largest area (i.e., the largest bounding box). Step 5

[22] This largest pixel group undergoes another mathematical morphology operation—erosion. Unlike dilation, which allows objects to expand, filling in small gaps and connecting disjoint objects, erosion shrinks objects by eroding their boundaries. This is a necessary preparation to reduce the width of traces for the subsequent thinning procedure. Similar to the dilation definition, the erosion of X by K is the set of all points x such that Kx is a subset of X. As in dilation, a 3 × 3 pixel structuring element is applied in the erosion operation. The effect of erosion using this structuring element for several times on segments of an ionogram is shown in Figure 7c, where we can see that the trace shrinks after erosion. Figure 6 demonstrates the resulting F layer traces after erosion. It is worth noting that up to now, the secondary echoes from the E layer still stay as a connecting part of the entire F layer traces.

Figure 6.

Ionogram after erosion. Step 6

[23] In the last step, we apply a thinning operation to track the F layer traces with single pixel-wide thin curves. This thinning algorithm is also a morphological operation that is used to remove selected foreground pixels from binary images. It preserves the topology (extent and connectivity) of the original region while throwing away most of the original foreground pixels. The thinning operation is calculated by translating the origin of the structuring element to each possible pixel position in the image and, at each such position, comparing it with the underlying image pixels. If the foreground and background pixels in the structuring element exactly match the foreground and background pixels in the image, then the image pixel underneath the origin of the structuring element is set to background (zero). Otherwise, it is left unchanged. The effect of thinning on segments of an ionogram is shown in Figure 7d, where the trace turns into a single pixel-wide thin curve. Figure 8 shows the resulting thin curves.

Figure 7.

Effect of each morphology operator on segments of an ionogram. (a) Original segments of the ionogram. (b) Effect of dilation. (c) Effect of erosion. (d) Effect of thinning.

Figure 8.

Ionogram after thinning.

[24] To illustrate the whole procedure clearly, a flowchart of the F layer extraction is shown in Figure 9.

Figure 9.

Flowchart of the F layer trace extraction.

3.2.2 Trace Segmentation and the Corresponding Segments Extraction

[25] After the trace of the F layer is obtained by using a series of image processing methods, the following work is to distinguish the O-mode trace from the X-mode trace and identify the important parameters from the ionogram automatically. Thus, we need to cut the trace at the intersection points and determine the wave polarization for each piece.

[26] Since the trace has been reduced to a single pixel-wide line, it is clear that each point on the trace has only two connected points among the eight surrounding pixels (see Figure 11c), with exceptions at the intersection points and endpoints on the traces. Accordingly, these three types of exceptional points may be found by scanning the image via the 3 × 3 pixel structuring element, which is also utilized in the erosion and dilation operations.

[27] According to the characteristics of the trace, we have proposed an algorithm to find the intersection points, the endpoints, and the intermediate points which is performed in much the same way as other morphological operators, by translating the origin of the structuring element to all points in the image and then comparing the structuring element with the underlying image pixels to identify different types of points. We may denote foreground pixels using ones and background pixels using zeros. Figure 10 shows a 3 × 3 pixel structuring element, where A is the origin of the structuring element and B–I are points around A that can be either foreground or background, which may be set to either ones or zeros.

  1. [28] Intersection point. If A is one and there are more than three ones among B–I, which means there are more than three points around A that are foreground, then we consider A as an intersection point and record its position. Figure 11a shows a segment of an ionogram which contains an intersection point. Setting the intersection points found in this way to background (zero), we can break the continuous traces into several parts (Figure 12). We denote these parts as {L1,L2, …,Ln}, where n is the number of separated segments.

  2. [29] Endpoints. If A is one and there is only one point among B–I, which means there is only one point around A that is foreground, then A is identified as an endpoint. A segment of the ionogram which contains an endpoint is shown in Figure 11b. The result of this identification process can be seen in Figure 12, where all endpoints are marked in red.

  3. [30] Intermediate points. Since the trace is a single pixel-wide line, intermediate points on the trace can only have two connected points among the eight surrounding pixels within the 3 × 3 structuring element. A segment of the ionogram which contains an intermediate point is shown in Figure 11c.

Figure 10.

Diagram of a 3 × 3 structuring element.

Figure 11.

Diagrams of different points in an ionogram. (a) Diagram of an intersection point. (b) Diagram of an endpoint. (c) Diagram of an intermediate point.

Figure 12.

Trace split at all intersection points and endpoints identification.

[31] We assume that A is a point set which consists of endpoints {A1,A2, …,A2n − 1,A2n}, where (A1,A2) represents the pair of endpoints which decide the segment L1, (A3,A4) represents the pair of endpoints which decide the segment L2, and so on. Then we can follow these following procedures to locate the trace segment, taking segment L1 as an example.

  1. [32] Find the point next to A1. This point can be located by scanning the eight points around A1 and searching for the only point which belongs to the foreground. The point is then saved as P1.

  2. [33] Find the point next to P1. Since there are two points belonging to the foreground that connect with P1, the one which is different from A1 is then saved as P2.

  3. [34] Replace P1 by P2 and A1 by P1 and repeat the operation at the second step; then, we can get P3. P4, P5, …, Pm can be obtained via a similar operation, where Pm is the last intermediate point on L1. The process stops while finding the other endpoint A2 of L1.

We perform the same procedure to determine other segments Li.The result can be seen in Figure 13.

Figure 13.

Critical parameters identification from the extracted trace.

3.3 Polarization Traces Separation and Identification of Critical Parameters

[35] After obtaining the segments of the F layer traces, we proceed to identify the important ionospheric parameters, which are the critical frequencies foF1, foF2, and so on.

[36] The Earth's magnetic field causes a radio wave incident on the bottom of the ionosphere to be divided into two waves of different polarizations, the ordinary (O) and extraordinary (X) waves, which are reflected independently in the ionosphere. Since the conditions of reflection are different, each component produces its own virtual height h ' (f) pattern. These h ' (f) curves are similar but displaced in frequency, with the extraordinary ray having the critical frequency fx higher than the ordinary one fo, which means the critical frequencies fxF2 > foF2 and fxF1 > foF1. The fxF2 is the extraordinary wave critical frequency of the highest stratification in the F region; therefore, we consider that fxF2 is approximate to the frequency of the endpoint which has the largest x coordinate on the trace of the F2 layer of the extraordinary wave. In order to identify all the critical frequencies, it is necessary to locate the vertexes to enclose both modes for both F1 and F2 traces. The specific steps are described as follows.

  1. [37] Locate the highest point of each segment and save them as a point set {v1,v2, …,vn}, where vi represents the position of the point i, and the highest point is defined as the one which has the largest y coordinate. If there are two or more points having the same height, then the one with the largest x coordinate is selected.

  2. [38] Sort the array {v1,v2, …,vn} by height and find the first four points inline image. As we mentioned above, the x coordinates of these four points are close to the critical frequencies.

  3. [39] Sort the array inline image by frequency, and then, it is easy to identify the four critical frequencies based on their characteristics, where fxF2 > foF2 > fxF1 > foF1.

[40] The result of the four vertexes on the F layer trace is shown in Figure 13.

[41] We follow a similar procedure to determine the minimum virtual heights or the valley points on the ionogram, defined here as the lowest points on the segments, but not the endpoints. Given the frequencies of the two valley points, it is easy to know the polarization of a given segment, because the point with lower frequency (see u1 in Figure 13) is on the segment that belongs to the O-mode trace and the point with higher frequency (see u2 in Figure 13) is on the segment that belongs to the X-mode trace.

[42] At the intersection where the O and X waves meet, we may use the characteristic virtual height gradient information to separate them, because the O-mode trace always has a gradient very different from that of the X-mode trace at the crossing point. Figure 14 presents the final product for the polarization identification with different modes indicated by different colors.

Figure 14.

Mode separation of the ionogram.

[43] From the figure above, we notice that the secondary reflecting echoes from the E layer, which connect to the lower part of the F layer traces, are lost. This is due to the fact that any crosses near the lower end of the F layer echoes are not defined as meaningful characteristic points that should be traced for the F layer scaling. Our procedures seem to be able to remove these troublesome secondary echoes which are of no importance for the F region but can be useful for the E layer scaling.

3.4 Revision of the Extracted Trace and Trace Fitting

3.4.1 Revision of the Extracted Trace

[44] The mathematical morphological operations, such as dilation, erosion, and thinning, can alter the width of the traces on the order of a few pixels, such that the thin single-pixel line does not follow the exact edge of the traces. This causes a small systematical bias primarily in virtual height and slightly in frequency according to the standard procedure for ionogram interpretation and reduction, which defines the critical frequency of a layer as the frequency at which the virtual height becomes effectively infinite and the minimum virtual height as the height at which the trace is horizontal [Piggott and Rawer, 1978]. This bias may be compensated by adjustments based on a comparison between traces derived before and after the thinning operation. Due to the characteristics of the echoes from the ionosphere, the largest bias is near those valley points u1 and u2.

3.4.2 Trace Fitting

[45] A final trace fitting to a smooth curve is needed for the following reasons. Our current thinning procedure may sometimes turn a simple four-way intersection (for O and X waves) into two unrealistic intersections, each with three branches of traces (Figure 13). This is perhaps due to the nonuniform widths of the traces at the intersection. These two intersections are separated by typically 5–15 pixels (or 0.05–0.15 MHz). Also, the thinning operation arrives at single-pixel curves which do not have infinitive frequency-virtual height resolution and sometimes exhibit large steps. Besides, some unexpected inflections appear on both the O-mode trace and the X-mode trace at the overlaps, and these can cause bad points on the traces. To solve these problems, we utilize cubic B-spline functions [Eilers and Marx, 1996] to fit the traces.

[46] A spline is a sufficiently smooth polynomial function that is piecewise defined and possesses a high degree of smoothness at the places where the polynomial pieces connect (knots), and the B-spline is a spline function that has minimal support with respect to a given degree, smoothness, and domain partition. The formulation of a cubic B-spline curve is written as

display math(2)

where Si is the ith B-spline segment, P is the set of control points, and segments i and k are the local control point indexes. A set of control points would be inline image, where wi is the weight, pulling the curve toward control Pi as it increases or moving the curve away as it decreases. In this algorithm, we give low weight to the points on or around the overlaps (the two unrealistic intersections mentioned earlier) and give high weight to the other points. The result of curve fitting is shown in Figure 15, which shows a comparison of these final traces with the original ionogram. We can see our whole procedure has produced smooth and continuous F region traces, successfully separated by polarization, that match quite well with the original ionogram.

Figure 15.

Fitting trace (a) overlapped the extracted trace and (b) overlapped the original ionogram. The green line and the red line represent the fitting traces of the O mode and X mode, respectively, and the blue line in Figure 15a is the original extracted trace.

4 Preliminary Test of This Method

[47] To test the performance of our procedures, we processed 110 ionograms obtained from the CAS-DIS installed at Dulan for the month of July 2011 and compared these autoscaling results to the manual scaling ones. The quality of our autoscaling is assessed for the following three categories of ionograms.

  1. [48] There are no obvious deviations between the automatically extracted trace and the manually extracted one for “good” ionograms with reasonably weak noise and fair trace continuity. Out of the 110 ionograms, 79 cases are registered. Among these cases, 87% of autoscaled foF2 (corresponding to 69 ionograms) has an error within ±0.2 MHz and 92% of autoscaled foF2 has an error within ±0.5 MHz. Errors in fxF2 are slightly larger than those in foF2. Among these 79 good ionograms, 59 ionograms contain an identifiable F1 layer. The foF1 errors are ±0.2 MHz for 85% out of the 59 ionograms.

  2. [49] Autoscaling cannot produce meaningful results for ionograms contaminated by severe noises, heavily spreading echoes, and fluctuating traces which may impose significant difficulty for manual scaling but may still be scaled by experienced personnel. We encountered 26 such cases. The severe noise issue is very much associated to the ionosonde performance, and the geophysical signatures shown as spreading or fluctuating traces (caused by, for instance, spread F and TIDs) call for more intelligent treatments of peculiar traces. These additional treatments, beyond the core of our current procedures dealing with regular traces in a general way, are still under development and will be implemented as dedicated application libraries in the future.

  3. [50] Autoscaling cannot be performed for incomplete traces or no identifiable traces which make it entirely impossible for manual scaling. These are for five ionograms.

5 Conclusions

[51] Automatic scaling of ionograms is an essential task toward understanding the ionosphere. In this paper, a new algorithm is proposed to scale ionogram traces and separate the two polarization modes automatically. Such types of algorithm have not been publicly documented in the open literature.

[52] We have described the methods of trace extraction, critical parameters identification, and polarization traces separation, especially aimed at the F layer trace. Mathematical morphology, graph theory, and the characteristics of the ionosphere are the bases of the proposed algorithm. This means this algorithm does not need any polarization information and can be applied to a variety of ionograms. It is also sufficiently fast to be executed for real-time application.

[53] The proposed procedures may be the core part of a software system for routine and practical applications. This system will then determine the type of ionograms and decide on the right procedures. These procedures themselves are of general purpose, and they will be augmented with more specific algorithms to deal with special cases such as spread F, sporadic E, TIDs, and secondary echoes. Indeed, there will be tremendous testing work to be done in the future.


[54] This work was supported by the National High Technology Research and Development Program of China (863 Program 2011AA040202) and the National Natural Science Foundation of China (grant 40976114). Ziwei Chen was also sponsored by the China Scholarship Council and supported by the MIT Haystack Observatory for a yearlong overseas visit. Research and observations at the MIT Haystack Observatory in the upper atmospheric science were sponsored under a cooperative agreement between the National Science Foundation of the U.S. and the Massachusetts Institute of Technology (MIT). Anthea Coster read the manuscript and provided valuable comments and suggestions.