001/*
002 * $Id: AbstractSatellite.java,v 1.5 2011/03/24 16:06:33 davep Exp $
003 *
004 * This file is part of McIDAS-V
005 *
006 * Copyright 2007-2011
007 * Space Science and Engineering Center (SSEC)
008 * University of Wisconsin - Madison
009 * 1225 W. Dayton Street, Madison, WI 53706, USA
010 * https://www.ssec.wisc.edu/mcidas
011 * 
012 * All Rights Reserved
013 * 
014 * McIDAS-V is built on Unidata's IDV and SSEC's VisAD libraries, and
015 * some McIDAS-V source code is based on IDV and VisAD source code.  
016 * 
017 * McIDAS-V is free software; you can redistribute it and/or modify
018 * it under the terms of the GNU Lesser Public License as published by
019 * the Free Software Foundation; either version 3 of the License, or
020 * (at your option) any later version.
021 * 
022 * McIDAS-V is distributed in the hope that it will be useful,
023 * but WITHOUT ANY WARRANTY; without even the implied warranty of
024 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
025 * GNU Lesser Public License for more details.
026 * 
027 * You should have received a copy of the GNU Lesser Public License
028 * along with this program.  If not, see http://www.gnu.org/licenses.
029 */
030
031package edu.wisc.ssec.mcidasv.data.adde.sgp4;
032
033import java.awt.Color;
034import java.io.Serializable;
035//import jsattrak.utilities.TLE;
036//import name.gano.worldwind.modelloader.WWModel3D_new;
037
038/**
039 *
040 * @author sgano
041 */
042public abstract class AbstractSatellite implements Serializable
043{
044
045    /**
046     * Calculate J2K position of this sat at a given JulDateTime (doesn't save the time) - can be useful for event searches or optimization
047     * @param julDate - julian date
048     * @return j2k position of satellite in meters
049     */
050//    public abstract double[] calculateJ2KPositionFromUT(double julDate);
051
052    /**
053     * Calculate TEME of date position of this sat at a given JulDateTime (doesn't save the time) - can be useful for event searches or optimization
054     * @param julDate - julian date
055     * @return j2k position of satellite in meters
056     */
057/*
058    public abstract double[] calculateTemePositionFromUT(double julDate);
059
060    public abstract double getAltitude();
061
062    public abstract double getCurrentJulDate();
063
064    public abstract int getGrnTrkPointsPerPeriod();
065
066    public abstract boolean getGroundTrackIni();
067
068    public abstract double getGroundTrackLagPeriodMultiplier();
069
070    public abstract double getGroundTrackLeadPeriodMultiplier();
071
072    public abstract double[] getGroundTrackLlaLagPt(int index);
073
074    public abstract double[] getGroundTrackLlaLeadPt(int index);
075
076    public abstract double[] getGroundTrackXyzLagPt(int index);
077
078    public abstract double[] getGroundTrackXyzLeadPt(int index);
079
080    public abstract double[] getJ2000Position();
081
082    public abstract double[] getJ2000Velocity();
083
084    public abstract double[] getKeplarianElements();
085
086    public abstract double[] getLLA();
087*/
088    public abstract double getLatitude();
089
090    public abstract double getLongitude();
091
092    public abstract double getAltitude();
093/*
094    public abstract double[][] getTemePosLag();
095
096    public abstract double[][] getTemePosLead();
097
098    public abstract String getName();
099
100    public abstract int getNumGroundTrackLagPts();
101
102    public abstract int getNumGroundTrackLeadPts();
103
104    public abstract int getNumPtsFootPrint();
105
106    public abstract double getPeriod();
107
108    public abstract boolean getPlot2D();
109
110    public abstract boolean getPlot2DFootPrint();
111*/
112    public abstract double[] getTEMEPos();
113/*
114    public abstract Color getSatColor();
115
116    public abstract double getSatTleEpochJulDate();
117
118    public abstract boolean getShowGroundTrack();
119
120    public abstract double[] getTimeLag();
121
122    public abstract double[] getTimeLead();
123
124    public abstract double getTleAgeDays();
125
126    public abstract double getTleEpochJD();
127
128    public abstract boolean isFillFootPrint();
129
130    public abstract boolean isShow3D();
131
132    public abstract boolean isShow3DFootprint();
133
134    public abstract boolean isShow3DName();
135
136    public abstract boolean isShow3DOrbitTrace();
137
138    public abstract boolean isShow3DOrbitTraceECI();
139
140    public abstract boolean isShowGroundTrack3d();
141
142    public abstract boolean isShowName2D();
143
144    public abstract void propogate2JulDate(double julDate);
145
146    public abstract void setFillFootPrint(boolean fillFootPrint);
147
148    public abstract void setGrnTrkPointsPerPeriod(int grnTrkPointsPerPeriod);
149
150    public abstract void setGroundTrackIni2False();
151
152    public abstract void setGroundTrackLagPeriodMultiplier(double groundTrackLagPeriodMultiplier);
153
154    public abstract void setGroundTrackLeadPeriodMultiplier(double groundTrackLeadPeriodMultiplier);
155
156    public abstract void setNumPtsFootPrint(int numPtsFootPrint);
157
158    public abstract void setPlot2DFootPrint(boolean plot2DFootPrint);
159
160    public abstract void setPlot2d(boolean plot2d);
161
162    public abstract void setSatColor(Color satColor);
163
164    public abstract void setShow3D(boolean show3D);
165
166    public abstract void setShow3DFootprint(boolean show3DFootprint);
167
168    public abstract void setShow3DName(boolean show3DName);
169
170    public abstract void setShow3DOrbitTrace(boolean show3DOrbitTrace);
171
172    public abstract void setShow3DOrbitTraceECI(boolean show3DOrbitTraceECI);
173
174    public abstract void setShowGroundTrack(boolean showGrndTrk);
175
176    public abstract void setShowGroundTrack3d(boolean showGroundTrack3d);
177
178    public abstract void setShowName2D(boolean showName2D);
179
180    public abstract void updateTleData(TLE newTLE);
181    
182    public abstract boolean isUse3dModel();
183    
184    public abstract void setUse3dModel(boolean use3dModel);
185    
186    public abstract String getThreeDModelPath();
187    
188    public abstract void setThreeDModelPath(String path);
189    
190    //public abstract WWModel3D_new getThreeDModel();
191    
192    public abstract double[] getTEMEVelocity();
193    
194    public abstract double getThreeDModelSizeFactor();
195    
196    public abstract void setThreeDModelSizeFactor(double modelSizeFactor);
197*/
198
199}