Advanced Lambda Example
Here's a more sophisticated lambda that performs statistical analysis:
def statistical_analysis_lambda(context, voxel_reader, voxel_writer):
grades = []
volumes = []
for voxel in voxel_reader:
grade = voxel.properties.get('grade',0.0)
if grade > 0: # Only include non-zero grades
grades.append(grade)
volumes.append(voxel.size)
if not grades:
return {'error':'No valid grade values found'}
# Calculate statistics
total_volume = sum(volumes)
weighted_average_grade = sum(g * v for g, v in zip(grades, volumes)) / total_volume
return {
'total_volume': total_volume,
'voxel_count':len(grades),
'average_grade':sum(grades) / len(grades),
'weighted_average_grade': weighted_average_grade,
'min_grade': min(grades),
'max_grade': max(grades)
}