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