Practical Optimization Algorithms In The Data Assimilation Of Large-Scale Systems With Non-Linear And Non-Smooth Observation Operators