public static ISO19030RESULT CalcAverageData(List <ISO19030RESULT> iso19030resultList) { var result = new ISO19030RESULT(); result.PV = iso19030resultList.Average(d => d.PV); result.SPEED_VG = iso19030resultList.Average(d => d.SPEED_VG); result.SPEED_LW = iso19030resultList.Average(d => d.SPEED_LW); result.SHAFT_POWER = iso19030resultList.Average(d => d.SHAFT_POWER); result.SHAFT_REV = iso19030resultList.Average(d => d.SHAFT_REV); result.DRAFT_FORE = iso19030resultList.Average(d => d.DRAFT_FORE); result.DRAFT_AFT = iso19030resultList.Average(d => d.DRAFT_AFT); return(result); }
public static List <ISO19030RESULT> CreateResultData(List <ISO19030File> sailingData, List <double[]> powerToSpeedTable) { int index = 0; var iso19030resultList = new List <ISO19030RESULT>(); foreach (var item in sailingData) { if (item.VALID_CHAUVENT == true && item.VALID_VALIDATION == true && item.VALID_REFCONDITION == true) { try { var iso19030result = new ISO19030RESULT(); var speedLwMeter = item.SPEED_VG * 0.5144; var Rw = windResistance.data.raa[index] / 1000 * speedLwMeter / 0.98; var correctPower = item.ME1_SHAFT_POWER - (windResistance.data.raa[index] / 1000 * speedLwMeter) / 0.98; var powerToSpeedEquation = powerToSpeedTable[(int)((Math.Truncate(((item.DRAFT_FORE + item.DRAFT_AFT) * 0.5 + 5) * 10)) - Math.Truncate((ballastValues.DRAFT_FORE + ballastValues.DRAFT_AFT) * 0.5 * 10))]; // Draft (Ballast) Fore, Draft (Ballast) Aft iso19030result.SPEED_VG = item.SPEED_VG; iso19030result.SPEED_LW = item.SPEED_LW; iso19030result.SHAFT_POWER = item.ME1_SHAFT_POWER; iso19030result.SHAFT_REV = item.ME1_RPM_SHAFT; iso19030result.DRAFT_FORE = item.DRAFT_FORE; iso19030result.DRAFT_AFT = item.DRAFT_AFT; iso19030result.CORRECT_POWER = correctPower; //Calculate Performance iso19030result.PV = DataFunctions.PVcalculator(powerToSpeedEquation, correctPower, item.SPEED_LW); iso19030result.PPV = DataFunctions.PPVcalculator(powerToSpeedEquation, correctPower, item.SPEED_LW); iso19030resultList.Add(iso19030result); } catch { Filters.FILTER_TOTAL_COUNT++; } } index++; } return(iso19030resultList); }