summaryrefslogtreecommitdiffstats
path: root/org/madore/ephem/Test2.java
blob: e578719554fc2df9d8928ee6ea03ba17f7fea21c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
package org.madore.ephem;

import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public final class Test2 {

    public static void main(String[] args) {
	Comput.SumPoisson2Terms corr = ZonalTides.getFunc(ZonalTides.Variable.DUT1);
	try {
	    // http://data.iers.org/products/214/14443/orig/eopc04_08_IAU2000.62-now
	    FileInputStream str = new FileInputStream("/tmp/eopc04_08_IAU2000.62-now");
	    BufferedReader in = new BufferedReader(new InputStreamReader(str, "utf-8"));
	    String s;
	    while ( ( s = in.readLine() ) != null ) {
		String[] fields = s.split("\\s+");
		if ( fields.length<1 || ! fields[0].matches("\\d{4}") )
		    continue;
		int mjd = Integer.parseInt(fields[3]);
		double utcOffset = Time.utcOffset(mjd, 0);
		double t = Ephem.fromJd((utcOffset+32.184)/86400. + mjd + 2400000.5);
		double v = corr.v(t) * 1.e-4;
		double ut1Offset = Double.parseDouble(fields[6]);
		double off = ut1Offset - utcOffset;
		System.out.format("%d\t%.7f\t%.7f\t%.7f\n", mjd, off, v, off-v);
	    }
	} catch ( Exception e ) {
	    throw new RuntimeException(e);
	}
    }

}