| Algorithm 2 Changing satellite for VDOP improvement (n = 6) | |
| 1: void function changing satellite(azimuth_satellites, elevation_satellites) | |
| 2: nz = 3; | |
| 3: nu = 3; | |
| 4: sat_me = find satellite of minimum elevation(elevation_satellites); | |
| 5: sat_zenith = select satellite of high elevation(nz, azimuth_satellites); | |
| 6: vec_s = generate vector of satellites(azimuth_satellites, elevation_satellites); | |
| 7: vec_rp = generate vector of regular polygon(nu, sat_me); | |
| 8: sat_uniform = select satellite of nearest regular polygon vector(vec_s, vec_rp); | |
| 9: sat_selec = merge zenith and uniform satellites(sat_zenith, sat_uniform); | |
| 10: case_selec = check case of selected satellite(sat_selec); | |
| 11: if case_selec == 4 | |
| 12: sat_case8 = change satellite from case 4 to case 8; | |
| 13: sat_case3 = change satellite from case 4 to case 3; | |
| 14: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case8, sat_case3); | |
| 15: end | |
| 16: if case_selec == 8 | |
| 17: sat_case7 = change satellite from case 8 to case 7; | |
| 18: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case7); | |
| 19: end | |
| 20: if case_selec == 3 | |
| 21: sat_case7 = change satellite from case 3 to case 7; | |
| 22: sat_case2 = change satellite from case 3 to case 2; | |
| 23: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case7, sat_case2); | |
| 24: end | |
| 25: if case_selec == 5 | |
| 26: sat_case6 = change satellite from case 5 to case 6; | |
| 27: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case6); | |
| 28: end | |
| 29: if case_selec == 7 | |
| 30: sat_case6 = change satellite from case 7 to case 6; | |
| 31: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case6); | |
| 32: end | |
| 33: if case_selec == 2 | |
| 34: sat_case6 = change satellite from case 2 to case 6; | |
| 35: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case6); | |
| 36: end | |
| 37: if case_selec == 6 | |
| 38: sat_case1 = change satellite from case 6 to case 1; | |
| 39: [case_selec, sat_selec] = compare case(case_selec, sat_selec, sat_case1); | |
| 40: end | |
| 41: return sat_selec, case_selec | |
| 42: end function changing satellite | |
| 43: | |
| 44: void function compare case(case_selec, sat_selec, sat_caseA, sat_caseB, …) | |
| 45: flag_case = compare minimum VDOP(sat_selec, sat_caseA, sat_caseB, …); | |
| 46: switch flag_case | |
| 47: case case_selec | |
| 48: return sat_selec, case_selec | |
| 49: case A | |
| 50: sat_selec = sat_caseA; | |
| 51: case_selec = A; | |
| 52: return sat_selec, case_selec | |
| 53: case B | |
| 54: … | |
| 55: end | |
| 56: end function case selection | |