|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnsidc.spheres.Sphere
nsidc.spheres.Orbit
Orbit class - Provide services and information relating to an orbit.
This orbit model isn't anything fancy. We just draw a great circle and rotate the sphere under it. As such it works fairly well for satellites in a circular orbit with forward, nadir, or backward looking sensors. For satellites with elliptical orbits and/or side viewing sensors you'll need something fancier.
This class assumes a spherical earth.
This class assumes orbits start and end at the equator on the ascending pass.
Sphere,
Scene| Field Summary | |
double |
declination
The declination of the orbit in decimal degrees West of North. |
double |
eq_swath_width
Swath width at the equator in (scaled) Km. |
double |
eq_swath_width_deg
Swath width at the equator in degrees. |
double |
eq_swath_width_rad
Swath width at the equator in radians. |
double |
inflection_lat
Absolute value of highest/lowest lat achieved by nadir in decimal degrees. |
double |
inflection_max_lat
Max latitude of the swath edge at the inflection point. |
double |
inflection_min_lat
Min latitude of the swath edge at the inflection point. |
float |
maxCoverageLat
Absolute value of latitude above/below which no orbits have coverage. |
double |
period
Orbital period in decimal minutes. |
boolean |
pole_to_pole
Boolean to indicate if this starts/ends at the south pole or the equator |
protected double |
ROTATION_RATE
rotation of the earth in radians/minute |
float |
totalCoverageLat
Absolute value of latitude above/below which all orbits have coverage. |
| Fields inherited from class nsidc.spheres.Sphere |
radius, Re_km |
| Constructor Summary | |
protected |
Orbit()
Empty constructor - do not use. |
|
Orbit(double given_declination,
double given_period,
double given_eq_swath_width)
Construct and initialize an orbit. |
|
Orbit(float given_declination,
float given_period,
float given_eq_swath_width)
Construct and initialize an orbit. |
|
Orbit(java.lang.String given_declination,
java.lang.String given_period,
java.lang.String given_eq_swath_width)
Construct and initialize an orbit. |
| Method Summary | |
float |
circularLat(double lat,
boolean asc)
|
float |
circularLat(float lat,
boolean asc)
|
float |
directedLonDistance(float lon1,
float lon2)
|
LonRange[] |
getAreaCrossingRange(double[] lat,
double[] lon,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given spherical polygon. |
LonRange[] |
getAreaCrossingRange(float[] lat,
float[] lon,
boolean ascending)
|
LonRange[] |
getAreaCrossingRange(LatLonBoundingBox llbox,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given Lat/Lon Bounding Box. |
LonRange[] |
getAreaCrossingRange(Point[] points,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given spherical polygon. |
LonRange[] |
getAreaCrossingRange(SphericalPolygon spolygon,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given spherical polygon. |
(package private) void |
getCrossSwathEdges(float lat,
float lon,
float[] edge_lat,
float[] edge_lon,
boolean ascending)
Get the cross track edge points of the swath with nadir at the given point. |
boolean |
getLonSwathEdges(float lat,
float lon,
boolean ascending,
float[] edgeLon)
Get the swath edge points at the given latitude. |
float |
getNodalCrossing(double lat,
double lon,
boolean ascending,
boolean adjust)
|
float |
getNodalCrossing(float lat,
float lon,
boolean ascending,
boolean adjust)
Get the ascending nodal crossing of the orbit with nadir passing through the given point. |
LonRange |
getPointCrossingRange(float lat,
float lon,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given point. |
LonRange |
getPointCrossingRange(Point point,
boolean ascending)
Get the range of ascending nodal crossings for orbits that cover the given point. |
float |
lonDistance(float lon1,
float lon2)
Misc. |
float |
shortestLonDistance(float lon1,
float lon2)
|
float |
standardLat(double lat)
|
protected void |
systemLog(java.lang.String msg)
Log diagnostic messages |
protected void |
systemLog(java.lang.String msg,
int level)
Log diagnostic messages |
java.lang.String |
toString()
|
| Methods inherited from class nsidc.spheres.Sphere |
degrees, degrees, getRadius, normalize, normalize, radians, radians, scalarTripleProductTest, setRadius |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
public double declination
public double period
public double eq_swath_width
public double eq_swath_width_rad
public double eq_swath_width_deg
public double inflection_lat
public double inflection_max_lat
public double inflection_min_lat
public float maxCoverageLat
public float totalCoverageLat
public boolean pole_to_pole
protected final double ROTATION_RATE
| Constructor Detail |
protected Orbit()
public Orbit(java.lang.String given_declination,
java.lang.String given_period,
java.lang.String given_eq_swath_width)
public Orbit(float given_declination,
float given_period,
float given_eq_swath_width)
public Orbit(double given_declination,
double given_period,
double given_eq_swath_width)
| Method Detail |
public float getNodalCrossing(float lat,
float lon,
boolean ascending,
boolean adjust)
lat - Latitude of the given point in degrees.lon - Longitude of the given point in degrees.ascending - if true find the orbit with nadir passing
through the given point on the ascending pass.adjust - if true adjust for the rotation of the Earth.
public float getNodalCrossing(double lat,
double lon,
boolean ascending,
boolean adjust)
public boolean getLonSwathEdges(float lat,
float lon,
boolean ascending,
float[] edgeLon)
lat - Latitude of the given point in degrees.lon - Longitude of the given point in degrees.ascending - If true find edges for the orbit with nadir
passing through the given point on the ascending pass.
public LonRange[] getAreaCrossingRange(SphericalPolygon spolygon,
boolean ascending)
spolygon - spherical polygon to get coverage for.ascending - If true find the orbits that cover the given point
on the ascending pass.
public LonRange[] getAreaCrossingRange(LatLonBoundingBox llbox,
boolean ascending)
llbox - lat/lon bounding box to get coverage for.ascending - If true find the orbits that cover the given point
on the ascending pass.
public LonRange[] getAreaCrossingRange(float[] lat,
float[] lon,
boolean ascending)
public LonRange[] getAreaCrossingRange(double[] lat,
double[] lon,
boolean ascending)
ascending - If true find the orbits that cover the given point
on the ascending pass.
public LonRange[] getAreaCrossingRange(Point[] points,
boolean ascending)
ascending - If true find the orbits that cover the given point
on the ascending pass.
public LonRange getPointCrossingRange(Point point,
boolean ascending)
point - - The given point.ascending - - If true find the orbits that cover the
given point on the ascending pass.
Else find the orbits that cover the given point
on the descending pass.
public LonRange getPointCrossingRange(float lat,
float lon,
boolean ascending)
lat - Latitude of the given point in degrees.lon - Longitude of the given point in degrees.ascending - If true find the orbits that cover the
given point on the ascending pass.
Else find the orbits that cover the given point
on the descending pass.
void getCrossSwathEdges(float lat,
float lon,
float[] edge_lat,
float[] edge_lon,
boolean ascending)
lat - Latitude of the given point in degrees.lon - Longitude of the given point in degrees.ascending - If true find edges for the orbit with nadir
passing through the given point on the ascending pass.
Notes:
'right' and 'left' are from the satellites perspective.
If any of the edge location pointers are NULL this procedure will only calculate the nadir longitude.
This routine assumes the orbit is a great circle and does not correct for nodal regression. Consequently values for orbits other than sun-syncronous will be in error.
public float lonDistance(float lon1,
float lon2)
public float directedLonDistance(float lon1,
float lon2)
public float shortestLonDistance(float lon1,
float lon2)
public float circularLat(float lat,
boolean asc)
public float circularLat(double lat,
boolean asc)
public float standardLat(double lat)
public java.lang.String toString()
protected void systemLog(java.lang.String msg,
int level)
systemLog in class Spheremsg - Message to log.level - Debug sensitivity.protected void systemLog(java.lang.String msg)
Sphere
systemLog in class Spheremsg - Message to log.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||