Skip to main content

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) 
  }