Data structure for Falcon Heavy (and BFR)
See original GitHub issueSorry if you already debated this before, I was thinking what to expect about the 3 cores of Falcon Heavy.
For launches
now we should get something like:
{
"core_serial": "???",
"rocket": {
"rocket_id": "falcon_heavy",
"rocket_name": "Falcon Heavy",
"rocket_type": "FH1"
},
"land_success": null,
"landing_type": "ASDS",
"landing_vehicle": "OCISLY",
"reused": true,
"reuse": {
"core": false,
"side_core1": true,
"side_core2": true,
"fairings": false,
"capsule": true
}
}
There is a multiple core reuse
but not multiple core_serial
and landing data.
-
Option 1: Brand new properties
Following the reuse
naming and keeping backward compatibility one could simply add:
{
"core_serial": "B10xx",
+ "side_core1_serial": "B10yy",
+ "side_core2_serial": "B10zz",
"rocket": {
"rocket_id": "falcon_heavy",
"rocket_name": "Falcon Heavy",
"rocket_type": "FH1"
}
}
The same for landing data:
{
"land_success": null,
"landing_type": "ASDS",
"landing_vehicle": "OCISLY",
"land_side_core1_success": null,
"landing_side_core1_type": "RTLS",
"landing_side_core1_vehicle": "LZ-1",
"land_side_core2_success": null,
"landing_side_code2_type": "RTLS",
"landing_side_code2_vehicle": "LZ-2"
}
But feel bloated.
-
Option 2: Core properties can be array
{
"core_serial": [ "B10xx", "B10yy", "B10zz" ],
"land_success": [ null, null, null ],
"landing_type": [ "ASDS", "RTLS", "RTLS" ],
"landing_vehicle": [ "OCISLY", "LZ-1", "LZ-2" ]
}
Feel strange and can break things.
-
Option 3: Payloads-like solution
For multiple payloads
there is an array, so something similar for the first stage could be possible adding a rocket.cores
array:
{
"rocket": {
"rocket_id": "falcon_heavy",
"rocket_name": "Falcon Heavy",
"rocket_type": "FH1",
"cores": [
{
"core_serial": "B10xx",
"land_success": null,
"landing_type": "ASDS",
"landing_vehicle": "JRTI"
},
{
"core_serial": "B10yy",
"land_success": null,
"landing_type": "RTLS",
"landing_vehicle": "LZ-1"
},
{
"core_serial": "B10zz",
"land_success": null,
"landing_type": "RTLS",
"landing_vehicle": "LZ-2"
}
]
}
}
If there is no core_serial
, land_success
, landing_type
and landing_vehicle
(which for multiple core seems incorrect anyway) I should find them in rocket.cores
.
-
Future (BFR + ITS)
This question will arise again for BFR
and ITS
launches, where the latter is a second stage (not a payload) with his own serial
, reuse
, land_success
, landing_type
, landing_vehicle
(and maybe landing_planet
and his own payloads
array).
Looking at vehicles
endpoint and structure,
{
"id": "falcon_heavy",
"name": "Falcon Heavy",
"type": "rocket",
"stages": 2,
"boosters": 2,
"first_stage": {
"reusable": "true",
"engines": 27,
"cores": 3
},
"second_stage": {
"engines": 1,
"payloads": {
"option_1": "dragon",
"option_2": "composite fairing"
}
}
}
a launches
schema supporting more configurations could be:
Falcon Heavy
{
"rocket": {
"rocket_id": "falcon_heavy",
"rocket_name": "Falcon Heavy",
"first_stage": {
"cores": [
{
"core_serial": "B10xx",
"reuse": false,
"land_success": null,
"landing_type": "ASDS",
"landing_vehicle": "JRTI"
},
{
"core_serial": "B10yy",
"reuse": true,
"land_success": null,
"landing_type": "RTLS",
"landing_vehicle": "LZ-1"
},
{
"core_serial": "B10zz",
"reuse": true,
"land_success": null,
"landing_type": "RTLS",
"landing_vehicle": "LZ-2"
}
]
},
"second_stage": {
"payloads": [
{
"cap_serial": "zzzzz",
"payload_type": "Dragon 1.2",
"reuse": true,
"land_success": null,
"orbit": "TLI"
}
]
}
}
}
BFR + ITS
{
"rocket": {
"rocket_id": "bigfalconrocket",
"rocket_name": "Big Falcon Rocket",
"rocket_type": "BFR",
"first_stage": {
"cores": [
{
"core_serial": "xxxxx",
"reuse": true,
"land_success": null,
"landing_type": "RTLS",
"landing_vehicle": "LZ-1"
}
]
},
"second_stage": {
"second_stage_id": "its",
"second_stage_type": "ITS",
"second_stage_serial": "yyyyy",
"reuse": true,
"land_success": null,
"landing_type": "ASDS",
"landing_vehicle": "OCISLY",
"payloads": [
{
"payload_type": "Satellite",
"orbit": "LEO"
}
]
}
}
}
Issue Analytics
- State:
- Created 6 years ago
- Comments:10 (5 by maintainers)
Top GitHub Comments
This is likely the schema I’ll go with, and the reuse section order will correspond to the order of cores listed in the array.
payload_id
andorbit
😜"rocket_type": "FT"
we mean full thrust cores, or we wantFH
?NET
flag, if true launch date is intended “not early than”?