Particle filtering for applications in data assimilation