processMultiple<Parameter extends Enum> function
Map<Parameter, WeatherParameterData> ?
processMultiple<Parameter extends Enum>(
- VariablesWithTime? data,
- Parameter? converter()
Implementation
Map<Parameter, WeatherParameterData>? processMultiple<Parameter extends Enum>(
VariablesWithTime? data,
Parameter? Function(VariableWithValues) converter,
) {
if (data == null) return null;
List<VariableWithValues>? variables = data.variables;
if (variables == null) return null;
DateTime startTime = DateTime.fromMillisecondsSinceEpoch(data.time * 1000);
DateTime endTime = DateTime.fromMillisecondsSinceEpoch(data.timeEnd * 1000);
Duration interval = Duration(seconds: data.interval);
List<DateTime> timestamps = [
for (DateTime time = startTime;
time.isBefore(endTime);
time = time.add(interval))
time
];
return Map.fromEntries(variables.map((v) {
Parameter? variable = converter(v);
if (variable == null) return null;
List<double>? values = v.values;
if (values == null || values.nonNulls.isEmpty) return null;
return MapEntry(
variable,
WeatherParameterData._(
unit: unitsMap[v.unit],
data: {
for (int i = 0; i < timestamps.length && i < values.length; i++)
timestamps[i]: values[i]
},
),
);
}).nonNulls);
}