In numerical weather prediction, forecasts are generated by solving initial value problems. Forecast errors are caused by model error (deviation of the model from the true atmospheric dynamics) and errors in the initial conditions. The focus of this talk is to study the behavior of the forecast error due to errors in the initial conditions and to develop efficient schemes that reduce this error, including an ensemble Kalman filter that can handle asynchronous observations. Finally, we also introduce a non-Gaussian filter into our efficient framework.