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