001 /*
002 * $Id: AbstractSatellite.java,v 1.6 2012/02/19 17:35:39 davep Exp $
003 *
004 * This file is part of McIDAS-V
005 *
006 * Copyright 2007-2012
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
031 package edu.wisc.ssec.mcidasv.data.adde.sgp4;
032
033 import java.awt.Color;
034 import java.io.Serializable;
035 //import jsattrak.utilities.TLE;
036 //import name.gano.worldwind.modelloader.WWModel3D_new;
037
038 /**
039 *
040 * @author sgano
041 */
042 public 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 }