## 2 Methods
### A modified K-Means Clustering Algorithm  
As shown in Figure 2, the third step is to allocate the beam spots by the proposed clustering algorithm. The following are the inputs of the clustering algorithm:  
1. Number of beams \(k\). 2. Number of objects \(n\), which have line-of-sight propagation with the GEO data relay satellite as shown in Figure 2.
1. Tolerable variance range of object number in each beam. In an ideal case, the objects in each beam should be equal. In reality, a variance in the number of objects per beam is tolerable. In this study, minimum number \(N_{BL}\) of objects in a single beam should be guaranteed. The process of the proposed clustering algorithm is as follows. Step 1. Initializing the beam centers. The center coordinate of each beam \(\mu_{j}\) can be distributed randomly within the FOV or initialized according to specific requirements. In this study, we initialized the beam centers with a random sequence. Step 2. Calculating the Euclidean distance. The Euclidean distance between the objects and the center of each beam are calculated as follows. \[M_{ij}=\|x_{i}-\mu_{j}\|\ (i=1,\ 2,\ldots n;\ j=1,\ 2,\ldots k)\] (1) Step 3. Sorting of distances. The distance matrix \(M\) is sorted twice by row and column, respectively, to obtain the ranked matrices \(A\) and \(B\) as follows. \[A_{ij}=arg(j=arg\ sort(M_{i}.))B_{ij}=arg\big{(}i=arg\ sort\big{(}M_{j}\big{)} \big{)}\] (2) Step 4. Normalizing and weighting. Matrices \(A\) and \(B\) are normalized and weighted to obtain the determination matrix \(D\) as follows. When \(\alpha\) is equal to 1, the determination distance matrix \(D\) degenerates to the standard K-means algorithm determination matrix. \[D_{ij}=\alpha\cdot\frac{A_{ij}}{k}+(1-\alpha)\cdot\frac{B_{ij}}{n}\] (3) Step 5. Setting boundary of parameter. Figure 5: Characteristics of the object distribution in FOV of GEO data relay satellite with 0.5\({}^{\circ}\) spot beams: (**a**) LEO satellite occupation of spot beams. The number in the center of each cell indicates the transient LEO satellites in the coverage of a certain beam. The blue dash line sketches the contour of Earth’s surface; (**b**) statistics of the cell occupation. A specific value of \(\beta\) is chosen to determine the minimum number \(N_{BL}\) of objects in a single beam as follows. \[N_{BL}=\left\lfloor\beta\cdot\left\lfloor\frac{n}{k}\right\rfloor\right\rfloor\ \ \ (0 \leq\beta\leq 1) \tag{4}\]  
Step 6. Clustering of objects. A set \(E=\{1,\ 2,\ \dots,\ n\}\) is initialized to keep a record of the objects to be clustered. For each beam, we choose the \(N_{BL}\) smallest objects in \(D_{\cdot j}\) that is also available in set \(E\). We update its cluster index \(c_{i}\) to be \(j\), and subtract the allocated objects from set \(E\). The remaining unallocated objects are allocated according to the determination distance matrix as follows. \[c_{i}=arg\ \underset{j}{min}\big{(}D_{ij}\big{)} \tag{5}\]  
Step 7. Updating the beam center. The coordinates of the beam centers are updated as follows. \[\mu_{j}=\frac{\sum_{i=1}^{n}1\{c_{i}=j\}x_{i}}{\sum_{i=1}^{n}1\{c_{i}=j\}} \tag{6}\]  
Step 8. Repeating Step 2 to Step 7. The process from Step 2 to Step 7 is repeated until the allocation of objects to the beams is no longer changing, or it reaches the preset maximum number of iterations. Compared with the conventional K-means, the main difference of the proposed algorithm is the modification of the determination matrix. The proposed determination matrix is based on the sorted matrix of the Euclidean distance by row and column, respectively. To indicate clearly the distinctive ranking process of Equation (2), we raise an example with 6 objects and 3 cluster centroids and assume the initial distance as the following. \[M=\left( \begin{array}{cccc}0.5&0.8&0.6\\ 1.1&0.5&1.6\\ 0.7&0.3&1.0\\ 0.6&0.7&0.8\\ 0.8&0.6&0.4\\ 1.2&0.4&1.5\\ \end{array} \right) \tag{7}\]  
The matrix \(M\) is sorted by row to obtain matrix \(A\) as follows. \[A=\left( \begin{array}{cccc}1&3&2\\ 2&1&3\\ 2&1&3\\ 1&2&3\\ 3&2&1\\ 2&1&3\\ \end{array}