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 }