Advertisement
ja1l

Random111

Jun 16th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.88 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. # +----------------------------------------------------------------------------------------------+
  3. # | r01.AA.BB           |                              KSP Staging, Mass & Elevation Chronograph |
  4. # |                     | Y1=Elev.km, V1=Vspd.km/s, T/V=Burn.secs, Runtime=secs, Drag=f, GravG=f |
  5. # | J <j@ja1l.net>      | M1=Loaded.kgs, M2=LoadedTotalkgs, U1=Unloaded.kgs U2=UnloadedTotal.kgs |
  6. # +-----+--------+------+------+------+---------+-------+-------+-----+-----+-----+-----+--------+
  7. # |  ID |  Class |   Y1 /   V1 | Burn | Runtime | DragA |  GrvG |  M1 |  M2 |  U1 |  U2 |  Elev. |
  8. # +-----+--------+------+------+------+---------+-------+-------+-----+-----+-----+-----+--------+
  9. # |   1 |    SRB |    8 / 0.10 |   80 |       0 |  1.00 |  9.80 |  90 |   0 |  55 |   0 |      8 |
  10. # |   2 |    SRB |   16 / 0.17 |   95 |     175 |  0.80 |  9.75 |  80 |  90 |  50 |  55 |     24 |
  11. # |   3 |    SRB |   24 / 0.27 |   90 |     265 |  0.60 |  9.70 |  60 | 170 |  20 | 105 |     48 |
  12. # |   4 | HYBRID |   36 / 0.34 |   50 |     315 |  0.40 |  9.65 |  60 | 230 |  20 | 125 |     84 |
  13. # |   5 |    LOX |   64 / 1.20 |   50 |     365 |  0.20 |  9.60 |  60 |  15 |  20 | 145 |    148 |
  14. # |   6 |    LOX |  256 / 1.80 |  140 |     505 |  0.00 |  9.55 | 240 |  80 |   - | 165 |    404 |
  15. # |   7 |   NULL | 3.5K /    0 |    0 |       0 |  0.00 |  4.09 |   - |   - |   - |   - |    404 |
  16. # |   8 |   NULL | 3.5M /    0 |    0 |       0 |  0.00 |  4.09 |   - |   - |   - |   - |    404 |
  17. # +-----+--------+------+------+------+---------+-------+-------+-----+-----+-----+-----+--------+
  18. # | MARS    |      0.36 AU) =              54,600,000 km (              33,900,000 mi )          |
  19. # | SUN     |      1.00 AU) =             150,000,000 km (              93,000,000 mi )          |
  20. # | PLUTO   |     50.00 AU) =           7,500,000,000 km (           4,670,000,000 mi )          |
  21. # | 1 LY    |  63333.00 AU) =       9,500,000,000,000 km (       6,000,000,000,000 mi )          |
  22. # | ACENT-A |      4.37 LY) =      41,486,281,650,000 km (      25,778,380,290,354 mi )          |
  23. # | GAL-CEN | 26,490.00 LY) = 251,655,000,000,000,000 km ( 156,371,167,382,486,272 mi )          |
  24. # +----------------------------------------------------------------------------------------------+
  25. # |                                                                  Escape Velocity (km/h, mph) |
  26. # +----------------------------------------------------------------------------------------------+
  27. # | Earth                             # ASL =  11.19 km/s (6.95 mi/s) (40,270 km/h (25,020 mph)) |
  28. # +----------------------------------------------------------------------------------------------+
  29. G=9.80665; # Gravity ASL
  30. V=6371.01; # Radius of Earth (km^2)
  31. ELEV_KM=(10 20 30 50 70 100 300 500 2642 10568 82850 100000 500000); # Target Elev.'s (km)
  32. function get_layer() {                                               # Find Layer by Elev.
  33.     R=0;  # Default Return
  34.     Y=$1; # Elevation (km)
  35.     A0N="Undefined";
  36.     A1N="Troposphere";  A1S=0;   A1E=12;
  37.     A2N="Stratosphere"; A2S=12;  A2E=50;
  38.     A3N="Mesosphere";   A3S=50;  A3E=80;
  39.     A4N="Thermosphere"; A4S=80;  A4E=700;
  40.     A5N="Exosphere";    A5S=700; A5E=10000;
  41.     if [ $Y -ge $A1S ]   && [ $Y -le $A1E ]; then R=$A1N;
  42.     elif [ $Y -ge $A2S ] && [ $Y -le $A2E ]; then R=$A2N;
  43.     elif [ $Y -ge $A3S ] && [ $Y -le $A3E ]; then R=$A3N;
  44.     elif [ $Y -ge $A4S ] && [ $Y -le $A4E ]; then R=$A4N;
  45.     elif [ $Y -ge $A5S ] && [ $Y -le $A5E ]; then R=$A5N;
  46.     else R=$A0N; fi; echo "$R";
  47. };
  48. # Gravity at Elevation (Earth Factor)
  49. printf 'Layers:\n'; C=0;
  50. for Y1 in ${ELEV_KM[@]}; do
  51.     if [ $C1 -gt 0 && $C1 -lt 10 ]; then N=" ${C1}"; else N=$C1; fi;
  52.     G1=`echo "$G*(($V/($V+$Y1)))^2"|bc -l`; GL=`get_layer $Y1`;
  53.     printf 'ID: %s, Name: %s, Elevation: %d km, Gravity: %.2f\n' "$N" "$GL" "$Y1" "$G1";
  54.     C1=$((C1+1));
  55. done;
  56. # Test Number
  57. Y1=5500; printf 'Elevation: %d km, Layer: %s\n' "$Y1" `get_layer $Y1`;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement