## Appendix A Pseudo Codes  
### Pseudo Code of Interval Data Preprocessor  
```
1:\(V_{ij}\) (Set of visible time windows of every target and satellite)
2:Set of time intervals by satellite \(j\), \(T_{j}\), Connection information, \(C\)
3:\(C\leftarrow\) initialize zero value list \(\triangleright\) List for interval connections
4:\(\tau^{o}_{ijk}\gets 20\)\(\triangleright\) Observation duration time
5:\(n_{l}\gets 0\)\(\triangleright\) Current Interval number
6:\(\tau^{S}_{j}\gets 10\)\(\triangleright\) Gap time
7:\(c_{stop}\gets 0\)\(\triangleright\) Interval Set division count
8:\(n_{stop}\gets 10\)\(\triangleright\) limit for stop iteration
9:\(l_{max}\leftarrow(V_{lj}.\tau^{e}_{lj}-V_{lj}.\tau^{s}_{11})//\tau^{o}_{ijk}\)\(\triangleright\) maximum number of \(T_{j}\)
10:\(T_{j}\leftarrow\) the size is same with \(l_{max}\)\(\triangleright\) Initialize list for total Interval
11:\(\tau^{base}\gets V_{lj}.\tau^{s}_{ijk}\)\(\triangleright\) Base time set to start time of first target
12:for\(l\gets 1\) to \(T_{j}\)do
13:\(si\leftarrow\) initialize empty list \(\triangleright\) Initialize list for single Interval
14:for\(v_{ijk}\) in \(V_{lj}\)do
15:if\(\tau^{s}_{ijk}\leq\tau^{base}+\tau^{o}_{ijk}\cdot j\)and\(\tau^{e}_{ijk}\geq\tau^{base}+\tau^{g}_{j}+\tau^{o}_{ijk}\cdot j\)then
16:\(si.\text{append}(v_{ijk})\)
17:else
18:\(c_{stop}\gets c_{stop}+1\)
19:endif
20:if\(c_{stop}\geq n_{stop}\)then
21:\(c_{stop}\gets 0\)
22:if not\(si\) is empty then
23:\(t_{jl}.\text{append}(si)\)
24:endif
25:\(si\leftarrow\) initialize empty list \(\triangleright\) Reset single interval
26:endif
27:endfor
28:if not\(si\) is empty then
29: append\(si\) to \(t_{jl}\)
30:endif
31:endfor
32:for each pair of interval \((l,l+1)\) in \(T_{j}\)do
33:for each \(v_{ijk}\) in \(t_{jl+1}\)do
34:\(\alpha_{1}\gets t_{jl}.v_{ijk}.azimuth\)\(\triangleright\) Azimuth of target in \(l\) interval
35:\(\alpha_{2}\gets t_{jl+1}.v_{ijk}.azimuth\)\(\triangleright\) Azimuth of target in \(l+1\) interval
36:if\(\text{abs}(\alpha_{1}-\alpha_{2})\leq 50\)then
37:\(C[v_{j1},v_{j2}]\gets 1\)
38:endif
39:endfor
40:endfor
41:return\(T_{j}\), \(C\)
```  
**Algorithm A1** Interval Data Preprocessor```
**Algorithm A2** MDP Algorithm for Optimized Imaging Schedule
```
1:Set of time intervals by satellite \(j\), \(T_{j}\), Connection information \(C\), Set of visible time windows, \(V_{ij}\), Duty time \(d_{j}\)
2:Optimized imaging schedule with MDP, \(MDP\_result\)
3:\(l\gets 0\)\(\triangleright\) Current Interval number
4:\(MDP\_result\leftarrow\) initialize empty list
5:\(MDP\_result\leftarrow\) MDP\((T_{j},C,V_{ij},d_{j},l,MDP\_result)\)
6:Sort \(MDP\_result\) by profit in descending order
7:return\(MDP\_result[first]\) (the schedule with the highest profit)
8:function\(\text{MDP}(T_{j},C,V_{ij},d_{j},n_{l},MDP\_result)\)
9:if\(l=\text{len}(T_{j})\) or \(l=d_{j}\)then
10:for each \(v_{ijk}\) in \(t_{jl}\)do
11:\(MDP\_result_{schedule}\gets v_{ijk}\)
12:\(MDP\_result_{profit}\gets v_{ijk}.profit\)
13:endfor
14:else
15:\(MDP\_result\leftarrow\text{MDP}(T_{j},C,V_{ij},d_{j},l+1,MDP\_result)\)
16:for each \(n,v_{ijk}\) in \(MDP\_result\)do
17:for each \(v_{ijk}\) in \(t_{jl}\)do
18:if\(C[MDP\_result[n]_{schedule}[last].v_{ijk},t_{jl}.v_{ijk}]=1\)then
19:\(schedule\leftarrow\) append \(t_{jl}.v_{ijk}\) to \(MDP\_result[n]_{schedule}\)
20:\(profit\gets MDP\_result[n]_{profit}+t_{jl}.v_{ijk}.profit\)
21: append schedule, \(profit\) to \(MDP\_result\)
22:endif
23:endfor
24:endfor
25:endfor
26:return\(MDP\_result\)
27:endfunction ```
**Algorithm A2** MDP Algorithm for Optimized Imaging Schedule

### Pseudo Code of Greedy Algorithm
```
1:Set of time intervals by satellite \(j\), \(T_{j}\), Connection information \(C\), Set of visible time windows, \(V_{ij}\), Duty time \(d_{j}\)
2:Optimized imaging schedule with Greedy, \(GR\_result\)
3:\(n_{l}\gets 0\)\(\triangleright\) Current Interval number
4:\(GR\_result\leftarrow\) initialize empty list
5:\(schedule\leftarrow\) initialize empty list
6:\(profit\gets 0\)\(\triangleright\) Initialize profit for \(GR\_result\)
7:\(target_{last}\gets null\)\(\triangleright\) Initialize target marker
8:for\(l=1\) to len\((T_{j})\)do
9:if\(l=1\)then
10: Sort \(t_{jl}\) by profit in descending order
11:\(v_{ijk}\leftarrow\) target in \(t_{jl}[first]\)
12:\(append\)\(v_{ijk}\) to
13:\(profit\gets profit+v_{ijk}.profit\)
14:\(target_{last}\gets v_{ijk}\)
15:else
16:\(C_{target}\leftarrow\) initialize empty list
17:for each \(v_{ijk}\) in \(t_{jl}\)do
18:\(C_{target}\leftarrow\) initialize empty list
19:for each \(v_{ijk}\) in \(t_{jl}\)do
20:\(C_{target}\leftarrow\) initialize empty list
21:\(C_{target}\leftarrow\) initialize empty list
22:for each \(v_{ijk}\) in \(t