This commit is contained in:
Kilian Hofmann 2024-05-04 23:55:23 +02:00
parent 34555f18c6
commit 0d8fb8939e
5 changed files with 715 additions and 458 deletions

28
Format description.md Normal file
View File

@ -0,0 +1,28 @@
# Format for CRZ PERF tables
Columns delimited with ;
First column is altitude
Second column is FF per engine in kg/hr
- Column contains values for weights ranging from 140t to 290t in 10t increments
- Delimited with ,
Third column is IAS
- If single value, apply to all weights
- If multiple values, apply to respective weights (delimited with ,)
-
Fourth column is MACH
- If single value, apply to all weights
- If multiple values, apply to respective weights (delimited with ,)
# Format for ECON tables
2d matrix of mach values
One file per altitude
First index is FL
- Must be of 140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, or 290
Second index is CI
- Must be in range [0, 999]

View File

@ -1,49 +0,0 @@
Columns delimited with ;
First column is altitude
Second column is FF per engine in kg/hr
Column contains values for weights ranging from 140t to 290t in 10t increments
Delimited with ,
Third column is IAS
If single value, apply to all weights
If multiple values, apply to respective weights (delimited with ,)
Fourth column is MACH
If single value, apply to all weights
If multiple values, apply to respective weights (delimited with ,)
Parser in Python
split() -> split string into array at given delimiter
strip() -> remove whitespaces at start and end of string
matrix = {}
def parseFile(file):
weights = [140, 150, 160, 170, 180, 190, 200, 210, 220, 230, 240, 250, 260, 270, 280, 290]
matrix = {}
file = open(file, 'r')
lines = file.readlines()
count = 0
for line in lines:
count += 1
if count == 1:
continue
fields = line.split(";")
alt = int(fields[0]) / 100
ff = [int(item.strip()) for item in fields[1].split(",")]
ias = [int(item.strip()) for item in fields[2].split(",")]
mach = [float(item.strip()) for item in fields[3].split(",")]
inner = {}
for i in range(len(ff)):
_ias = ias[i] if len(ias) > 1 else ias[0]
_mach = mach[i] if len(mach) > 1 else mach[0]
inner[weights[i]] = (ff[i], _ias, _mach)
matrix[alt] = inner
return matrix
matrix["LRC"] = parseFile("LRC.data")
matrix[82] = parseFile(".82.data")
matrix[83] = parseFile(".83.data")
matrix[84] = parseFile(".84.data")

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.