Data assimilation with particle filters