当前位置:文档之家› 卫星坐标计算

卫星坐标计算

N[30] = "SV accuracy"; N[31] = "SV health"; N[32] = "TGD"; N[33] = "IODC Issue of Data";
N[34] = "Transmission time of message";
for (int i = 0; i < arrs.Length; i++)
N[22] = "i0"; N[23] = "Crc"; N[24] = "omega"; N[25] = "omega-spot";
N[26] = "IDOT"; N[27] = "Codes on L2 channel"; N[28] = "GPS Week"; N[29] = "L2 P data flag";
{
ListViewItem li = new ListViewItem();
li.Text = (i + 1).ToString();
li.SubItems.Add(N[i]);
li.SubItems.Add(arrs[i]);
listView1.Items.Add(li);
M[i] = double.Parse(arrs[i]);
string myinfo = readnavigation.ReadToEnd();
readnavigation.Close();
//把卫星广播星历里的D改为e,以便后续计算
string myinfor = myinfo;
myinfor = myinfor.Replace("D", "e");
//把数据分开读入到一个数组中存储
string[] N = new string[arrs.Length];
N[0] = "PRN"; N[1] = "Yer"; N[2] = "Mon"; N[3] = "day"; N[4] = "H"; N[5] = "M"; N[6] = "sec"; N[7] = "a0"; N[8] = "a1"; N[9] = "a2";
string[] split = new string[] { " " };
string[] arrs = myinfor.Split(split, StringSplitOptions.RemoveEmptyEntries);
double[] M = new double[arrs.Length];
StreamReader readnavigation = new StreamReader(filename, Encoding.Default);
string myinfo = readnavigation.ReadToEnd();
readnavigation.Close();
//把卫星广播星历里的D改为e,以便后续计算
N[22] = "i0"; N[23] = "Crc"; N[24] = "omega"; N[25] = "omega-spot";
N[26] = "IDOT"; N[27] = "Codes on L2 channel"; N[28] = "GPS Week"; N[29] = "L2 P data flag";
N[30] = "SV accuracy"; N[31] = "SV health"; N[32] = "TGD"; N[33] = "IODC Issue of Data";
N[34] = "Transmission time of message";
for (int i = 0; i < arrs.Length; i++)
listView1.Columns.Add("星历参数", 80, HorizontalAlignment.Center);
listView1.Columns.Add("参数值", 130, HorizontalAlignment.Center);
listView1.GridLines = true;
listView2.Columns.Add("历元", 55, HorizontalAlignment.Center);
listView2.Columns.Add("X", 115, HorizontalAlignment.Center);
listView2.Columns.Add("Y", 115, HorizontalAlignment.Center);
Ek = Mk + M[15] * Math.Sin(Ek0);
} while (Math.Abs(Ek - Ek0) > 1e-15);
Vk = Math.Atan((Math.Sqrt(1 - Math.Pow(M[15], 2)) * Math.Sin(Ek)) / (Math.Cos(Ek) - M[15]));
string myinfor = myinfo;
myinfor = myinfor.Replace("D", "e");
//把数据分开读入到一个数组中存储
string[] split = new string[] { " " };
string[] arrs = myinfor.Split(split, StringSplitOptions.RemoveEmptyEntries);
namespace20080754
{
public partial class Form1 : Form
{
private string stFilePath = string.Empty;
public Form1()
{
Initialolumns.Add("序号", 40, HorizontalAlignment.Center);
:GPS周开始时刻的升交点经度;
十一:卫星在地固坐标系的空间直角坐标为:
=R(- )(R(- )
R(- ),(R(- )为旋转矩阵,将其代入展开后得:
;
;
具体过程:
一:原始资料(卫星导航文件)
二:进行必要的界面设计:
三:编写代码:
using System;
using System.Collections.Generic;
N[10] = "IODE"; N[11] = "Crs"; N[12] = "delta-n"; N[13] = "M0";
N[14] = "Cuc"; N[15] = "e"; N[16] = "Cus"; N[17] = "sqrt(a)";
N[18] = "t0e"; N[19] = "Cic"; N[20] = "omega0"; N[21] = "Cis";
{
ListViewItem li = new ListViewItem();
li.Text = (i + 1).ToString();
li.SubItems.Add(N[i]);
li.SubItems.Add(arrs[i]);
listView1.Items.Add(li);
M[i] = double.Parse(arrs[i]);
using ponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
listView1.Items.Clear();
//读取相对路径
string str1 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
string filename = str1 + "GPS卫星导航文件.txt ";
//读取卫星广播星历文件
N[10] = "IODE"; N[11] = "Crs"; N[12] = "delta-n"; N[13] = "M0";
N[14] = "Cuc"; N[15] = "e"; N[16] = "Cus"; N[17] = "sqrt(a)";
N[18] = "t0e"; N[19] = "Cic"; N[20] = "omega0"; N[21] = "Cis";
GPS
卫星坐标计算
班级:08测绘一班
姓名:浦绍佼
学号:20080754
实验目的:
根据导航文件求出卫星坐标。
相关主题