Hi everyone!
I suppose that the FOV of satellite sensor is a CircularFieldOfView, and use the code below to get footprint of a “IRIDIUM 33 DEB” satellite, then project the geo coordinates of satellite and its footprint in a map (“http://geojson.io/”), finally I get an odd shape, is this result reliable and explainable?
Thanks for your help!
// http://celestrak.com/NORAD/elements/iridium-33-debris.txt
// IRIDIUM 33 DEB
TLE tle = new TLE("1 45263U 98067RG 21335.84087988 .00103863 00000+0 61462-3 0 9998",
"2 45263 51.6329 192.2747 0007610 178.5415 181.5609 15.77243459101598");
// predict
final TLEPropagator propagator = TLEPropagator.selectExtrapolator(tle);
AbsoluteDate target = new AbsoluteDate(new Date(), TimeScalesFactory.getUTC());
SpacecraftState state = propagator.propagate(target);
Vector3D satPoint = state.getPVCoordinates().getPosition();
GeodeticPoint geoPoint = PredictorConstants.DEFAULT_EARTH_SHAPE.transform(satPoint, state.getFrame(), state.getDate());
System.out.println(geoPoint);
Transform inertToBody = state.getFrame().getTransformTo(PredictorConstants.DEFAULT_EARTH_FRAME, state.getDate());
Transform fovToBody = new Transform(state.getDate(),
state.toTransform().getInverse(),
inertToBody);
CircularFieldOfView cfov =
new CircularFieldOfView(Vector3D.PLUS_K, FastMath.toRadians(50.), 0.);
List<List<GeodeticPoint>> footprint =
cfov.getFootprint(fovToBody, (OneAxisEllipsoid) PredictorConstants.DEFAULT_EARTH_SHAPE, 0.1);
List<GeodeticPoint> list = footprint.get(0);
for (GeodeticPoint point : list) {
System.out.println("[" + FastMath.toDegrees(point.getLongitude()) + "," +
FastMath.toDegrees(point.getLatitude()) + "],");
}
json text:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [113.07182298326427,-12.342019568725561]
},
"properties": {
"name": "satellite"
}
},
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[117.6993800695659,-7.584567916175941],
[118.73805459190787,-6.97353416864909],
[120.05492415645402,-6.107675035594789],
[121.8844309122897,-4.784870910623522],
[124.9784026585672,-2.357233909213772],
[132.84712000327167,4.1518444877641585],
[132.89883965574288,4.090332696974968],
[132.86649944589735,4.128840039995505],
[132.75528577736083,4.26014433155005],
[132.56677028972135,4.47884427566922],
[132.299391501756,4.7809768894624565],
[131.9487054269734,5.163598743028034],
[131.507476019043,5.6243084824505845],
[130.9656697730183,6.160669918277297],
[130.31042796069687,6.769482502575947],
[129.5261174044207,7.445840850628113],
[128.59460902912434,8.181935064488604],
[127.49600128566449,8.96558510014482],
[126.21007836214771,9.778599855789986],
[124.7188276705155,10.595231051639535],
[123.01024888317153,11.381256164749528],
[121.08333974914787,12.094503028604695],
[118.95345149548903,12.68771956229346],
[116.65630098246292,13.114281276117733],
[114.24835554068747,13.336114273592477],
[111.80188930771804,13.33171288910553],
[109.39507706111522,13.101252933893594],
[107.10005540406158,12.666559890355073],
[104.97305714855631,12.065944499556316],
[103.04952760282453,11.346163331226471],
[101.3445627922306,10.554503635418557],
[99.85695348640962,9.733101421062262],
[98.57455031406091,8.916101230926083],
[97.47924450659295,8.129156082937072],
[96.55076534975454,7.3903611172501975],
[95.76918524067794,6.711809066294774],
[95.11636735402087,6.101235375931133],
[94.5766811534158,5.563484971320186],
[94.13727544016182,5.101711523990826],
[93.78812548382074,4.718316959705376],
[93.52200292117095,4.41568002234779],
[93.33446888644917,4.1967325585876205],
[93.2239635442791,4.065436890403054],
[93.19205616997674,4.027205133251739],
[93.24392657202394,4.089283131227428],
[101.14985442631179,-2.40978850714944],
[104.24289643988173,-4.8199832605888195],
[106.07389598964531,-6.134404155692671],
[107.39220888393274,-6.994737160364975],
[108.43207613507316,-7.601632361767556],
[109.30024413540099,-8.04568849719423],
[110.05511616791678,-8.375347366824144],
[110.73260619812541,-8.619095276813841],
[111.3568348584809,-8.794596767884917],
[111.94528768059466,-8.913007568027826],
[112.51161529455777,-8.981186168127632],
[113.0673329382344,-9.002860576034285],
[113.62299464286843,-8.979201679483088],
[114.18915230223664,-8.908995068056775],
[114.77731456796842,-8.788464740235154],
[115.40112050676281,-8.610694143972655],
[116.07803823118498,-8.36445101619402],
[116.83216401623169,-8.03196129789524]
]
},
"properties": {
"prop0": "value0",
"prop1": 0.0
}
},
{
"type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates": [
[
[100.0, 0.0],
[101.0, 0.0],
[101.0, 1.0],
[100.0, 1.0],
[100.0, 0.0]
]
]
},
"properties": {
"prop0": "value0",
"prop1": {
"this": "that"
}
}
}
]
}