def update(self, particles, weights, *args, **kwargs):
    """
    Update the plot given a new set of particles, weights, 
    and possibly estimates

    :param particles: new particle locations. Should be of 
        size (n_particles x 3)
    :param weights: new particle weights. Should be numpy vector of 
        length 'n_particles'

    All other arguments arguments are passed to FilterHemispherePlot.update()
    """
    self._update_particle_locs(particles)
    self._update_particle_weights(weights)
    FilterHemispherePlot.update(self, *args, **kwargs)