• 大小: 8KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-09
  • 语言: Java
  • 标签: GPS  星历  卫星位置  

资源简介

由卫星星历计算卫星在坐标中的位置,用java写的,先读入文件,然后赋值,然后计算出坐标,基本准确

资源截图

代码片段和文件信息

package com.gps.data;

import java.io.IOException;
import java.util.List;

public class Computesite {
private double af0;
private double af1;
private double af2;
private double aode;
private double Crs;
private double dn;
private double M0;
private double Cuc;
private double e;
private double Cus;
private double EA;
private double toe;
private double Cic;
private double Ω0;
private double Cis;
private double i0;
private double Crc;
private double ω;
private double Ω;
private double i;
private double cflgl2;
private double weekno;
private double pflgl2;
private double svacc;
private double svhlth;
private double tgd;
private double aodc;
private double ttm;

public static void main(String[] args) throws IOException {
Computesite mygps = new Computesite();
Data mydata = new Data();
List coordinate = mydata.getData();
for (int i = 0; i < coordinate.size(); i++) {
double temp = Double.valueOf(coordinate.get(i).replace(“D“ “E“));
switch (i) {
case 0:
mygps.af0 = temp;
case 1:
mygps.af1 = temp;
case 2:
mygps.af2 = temp;
case 3:
mygps.aode = temp;
case 4:
mygps.Crs = temp;
case 5:
mygps.dn = temp;
case 6:
mygps.M0 = temp;
case 7:
mygps.Cuc = temp;
case 8:
mygps.e = temp;
case 9:
mygps.Cus = temp;
case 10:
mygps.EA = temp;
case 11:
mygps.toe = temp;
case 12:
mygps.Cic = temp;
case 13:
mygps.Ω0 = temp;
case 14:
mygps.Cis = temp;
case 15:
mygps.i0 = temp;
case 16:
mygps.Crc = temp;
case 17:
mygps.ω = temp;
case 18:
mygps.Ω = temp;
case 19:
mygps.i = temp;
case 20:
mygps.cflgl2 = temp;
case 21:
mygps.weekno = temp;
case 22:
mygps.pflgl2 = temp;
case 23:
mygps.svacc = temp;
case 24:
mygps.svhlth = temp;
case 25:
mygps.tgd = temp;
case 26:
mygps.aodc = temp;
case 27:
mygps.ttm = temp;

}

}
double u=3.986005E+14;
double n0=Math.sqrt(u)/(mygps.EA*mygps.EA*mygps.EA);
double n=n0+mygps.dn; //计算卫星运动平均角速度
//计算归化时间
double tk=6*60*60;
//卫星平近点角
double Mk=mygps.M0+n*tk;
System.out.println(“卫星平近点角为:“+Mk);
double Ek0=Mk;
double Ek1=Mk+mygps.e*Math.sin(Ek0);
double Ek2=Mk+mygps.e*Math.sin(Ek1);
double Ek=Ek2;
 Ek=Mk+mygps.e*Math.sin(Ek);      /* 计算偏近点角 */
System.out.println(“偏近点角:“+Ek); 
double x1=(Math.cos(Ek)-mygps.e)/(1-mygps.e*Math.cos(Ek));
double x2=(Math.sqrt(1-(mygps.e*mygps.e))*Math.sin(Ek))/(1-mygps.e*Math.cos(Ek));
double Vk=Math.atan(x2/x1); 
        System.out.println(“真近点角是:“+Vk);
       double Φk=Vk+mygps.ω;
       System.out.println(“升交距角是:“+Φk);
      double du=mygps.Cuc*Math.cos(2*Φk)+mygps.Cus*Math.sin(2*Φk);
       double dr=mygps.Crc*Math.cos(2*Φk)+mygps.Crs*Math.sin(2*Φk);
     double  di=mygps.Cic*Math.cos(2*Φk)+mygps.Cis*Math.sin(2*Φk);
     

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2012-03-22 13:28  Mygps\.classpath

     文件        381  2012-03-22 13:28  Mygps\.project

     文件        629  2012-03-22 13:28  Mygps\.settings\org.eclipse.jdt.core.prefs

     文件       4099  2012-03-28 22:34  Mygps\bin\com\gps\data\Computesite.class

     文件       3565  2012-03-28 22:34  Mygps\bin\com\gps\data\Data.class

     文件       3973  2012-03-23 15:46  Mygps\src\com\gps\data\Computesite.java

     文件       3114  2012-03-25 18:04  Mygps\src\com\gps\data\Data.java

     目录          0  2012-03-28 22:34  Mygps\bin\com\gps\data

     目录          0  2012-03-22 13:42  Mygps\src\com\gps\data

     目录          0  2012-03-28 22:34  Mygps\bin\com\gps

     目录          0  2012-03-22 13:28  Mygps\src\com\gps

     目录          0  2012-03-28 22:34  Mygps\bin\com

     目录          0  2012-03-22 13:28  Mygps\src\com

     目录          0  2012-03-22 13:28  Mygps\.settings

     目录          0  2012-03-28 22:34  Mygps\bin

     目录          0  2012-03-22 13:28  Mygps\src

     目录          0  2012-03-22 13:28  Mygps

----------- ---------  ---------- -----  ----

                16062                    17


评论

共有 条评论