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 }