Niko's Project Corner

Satellite crash course

Description Minimizing and maximizing the odds of crashing to ground.
Languages Python
Tags Ap­plied math­emat­ics
Duration Spring 2021
Modified 10th May 2021

Since hear­ing the news of a fal­ing Chi­nese rocket booster Long March 5B and be­ing re­minded that Earth's sur­face is about 70% ocean, I got in­ter­ested on how the or­bital pa­ram­eters af­fect the odds of crash­ing to ocean vs. ground. I was nearly fin­ished with the pro­ject when I re­al­ized that Earth is ro­tat­ing un­der the satel­lite, thus in­val­idat­ing all the re­sults! This doesn't take or­bits' ec­cen­tric­ity into ac­count ei­ther, but I've heard that the ath­mo­spheric drag has a den­dency of re­duc­ing it to zero as the or­bit falls. Any­way, I found the var­ious "straight" paths around the globe in­ter­est­ing and de­cided to pub­lish these re­sults any­way. In con­clu­sion there are paths which spend only 9 % on top of land (in­clud­ing lakes) and 91% on top of ocean or up-to 57% on top of land and 43% on top of ocean.

At first I started look­ing for a ge­ograph­ical dataset for Python. I wound an ex­cel­lent ar­ti­cle from to­wards­data­sci­ which in­tro­duced me to "ETOPO1 Global Re­lief Model" pub­lished by NOAA. It con­sists of a 21601 × 10801 grid (→ 223 mil­lion dat­apoints) of Earth's sur­faces height in ref­er­ence to the sea level (mean­ing lakes above the sea level as clas­si­fied as dry land), hav­ing on av­er­age a mea­sure­ment on ev­ery 1.5 × 1.5 km2 area. We don't need this kind of precision and can start by dropping 99% of the data, leaving us with 2.3 million samples and each covering on average an area of 15 × 15 km2. However the dataset is uniformy sampled in latitude & longitude coordinates, which means that poles are more densely sampled than the equator. This doesn't matter on some applications, but when calculating the average time spent on top of ocean it is important to have an unbiased sample. This is easily fixed by dropping out samples in proption to 1 - cos(lat). This drops about 36% of data, leaving us with 1.5 million samples and each representing an area of 19 × 19 km2.

Figure 1: Pa­ram­eter­iza­tions of dif­fer­ent or­bits (lon & lat) with high­lighted lo­cal min­ima and max­ima. A satel­lite spends at min­imum 9% of its time on top of land and at max­imum 57%.

Once we have an uni­form sam­ple in lat & lon co­or­di­nates it is triv­ial to trans­form them to the unit sphere in 3D carte­sian co­or­di­nates. A great cir­cle is pa­ram­eter­ized by a 3D unit vec­tor, and it con­sists of points of which's co­or­di­nates dot pro­duct with the unit vec­tor is zero. Nat­urally we must al­low some tol­er­ance to this, for ex­am­ple a \pm 100 km thresh­old cor­re­sponds to the dot pro­duct's ab­so­lute value be­ing \le 100km / (2π * 6370km) → 0.00245. The eas­iest way of find­ing op­ti­mal great cir­cles (min­imiz­ing or max­imiz­ing the dry land) is to brute-force the re­sult on a search grid and find­ing lo­cal min­ima and max­ima. The re­sult of this is shown in Fig­ure 1 (I learned only af­ter­wards that this is called the Funk Trans­form). Again, an uni­form sam­pling in lat & lon co­or­di­nates is not uni­form in 3D space but it isn't as im­por­tant here as it is in the un­der­ly­ing ocean vs, ground data. We just need to be mind­ful that the pa­ram­eter space near the poles is over-sam­pled, and ap­ply a sec­ondary fil­ter to ig­nore near du­pli­cate great cir­cles. The sim­ilar­ity is mea­sured by the dot pro­duct of their unit vec­tors, and it ap­proaches one (be­ing the cosine of the an­gle be­tween them) when the vec­tors point to a sim­ilar di­rec­tion.

Figure 2: Some lo­cally op­ti­mal paths, ei­ther min­imiz­ing or max­imiz­ing the time spent on top of ocean.

Once the fil­ter­ing is done we can vi­su­al­ize most dis­tinct paths on a map as shown in Fi­ugre 2. This doesn't use any fancy map pro­jec­tion, so po­lar re­gions are ex­ag­ger­ated in size. It is in­ter­est­ing how many of the oeacn-max­imiz­ing paths hug the coastal line. Some zoomed re­gions are shown in Fig­ure 3, which also shows how po­lar re­gions are more sparsely sam­pled in lat & lon co­or­di­nates to make them uni­form in the carte­sian space.

Figure 3: Some lo­cally op­ti­mal paths in de­tail.

Related blog posts: