330 likes | 517 Views
Interfaces EO data with Atmospheric and Land Surface Model: Progress report. Liang Feng , Paul Palmer . Project Tasks. Reference OSSE system High-resolution model CO:CO2 ratios. Observing System Simulation Experiment Tool. I. Progress overview.
E N D
Interfaces EO data with Atmospheric and Land Surface Model: Progress report Liang Feng, Paul Palmer
Project Tasks • Reference OSSE system • High-resolution model • CO:CO2 ratios
Observing System Simulation Experiment Tool I. Progress overview Overall Aim:Developing a reference OSSE simulation for community researchers to evaluate impacts of space-borne atmospheric composition measurements on surface flux estimates. Outputs: A. OSSE framework with flexible modules and libraries. Status: Revised and ready for beta-test. B. One complete example OSSE systemfor 1)simulating OCO-like XCO2 observations; and 2) estimating regional CO2 fluxes by assimilating XCO2 observations using an Ensemble Kalman Filter (EnKF). Status: close to be finished . C. Detailed documents. Status: beta version due in Dec, 2012. D. Visualization Tools. Status: to be started.
Today we will focus on: II. OSSE framework. III. Example OSSE system
II. OSSE framework • Data flow and directory structure • Main modules • Styles
Surface flux Ensemble CTM Ensemble forecasts (3-D fields) Obs operator Model Obs Ensemble Observation Simulation EnKF assimilation Flux Forecasts CTM Forecast (3-D concentrations) Prior + error Posteriori + error Obs operator Obs +random errors ETKF
Model world: Object, process, measurements, and estimates. Disk IO Atmosphere Transport Flux model inventory Met files Surface flux Top-down estimate Observation Measure
We have hence constructed a directory structure for OSSE toolsas: etkf atmosphere surface_flux observation ctm instrument lib
Main modules 1. etkf
4. observation 5. ctm
Styles 1. Simple, short and stable Only use stable python features and well-established packages 2. Object - and task –orientation. Example: ctm_field_c.py: class ctm_field: #members obj_id:<integer>: id of the class instance. name:<string>: name of the tracer unit: <string>: unit of the data grid: <ctm_grid_c>: grid. data:<array>: gridded data id:<integer>: id of the tracer. category: <string>: category of the tracer group: <string>: tracer group time_tag: <string>: time step for the data __attr_dict:<dictonary>: dictionary of the attribute # functions (12 in total) defget_profiles(self, lon_lst, lat_lst, time_lst=None):
3. Easy to use For example: by writing less than 30 lines, we can use class region_map to generate a complicated map for estimating regional fluxes at different spatial resolutions.
4. Easy to change/expand Example: In ctm_world_c.py, efforts have been made to minimizethe efforts needed to communicate with user’s CTM via disk files. The user now can read their model input/outputs by overriding member function read_ctm_to_fields in class ctm_world, or by overriding the interface module ctm_file_read_m.py.
III. Example OSSE system Aim: use modules in OSSE framework to build a complete OSSE system for OCO-like measurements (Feng et al, 2009). The system uses GEOS-Chem(which is, however, not part of the delivered package) as the chemistry transport model.
1) Observation simulation 2) Data Assimilation Flux Forecasts (climatology) (+Perturbations) Surface CO2 Ensemble GEOS-Chem GEOS-Chem forecast Ensemble forecasts Prior + error Posterior + error Obs operator Obs operator Obs ETKF Model Obs Ensemble
Observation Simulation module • Surface Fluxes • We use CO2 flux climatology as ‘the true fluxes’. • We provide interfaces to store them into binary files for GEOS-Chem CTM to read. • Chemistry Transport Model • Functions in ctm_restart_c.py and ctm_config_c.py are changed (overridden) to generate input.geos and restart files for GEOS-Chem forward simulations.
C. Sampling • We override IO interfaces so that we can use class ctm_world to read and sample 3D model fields along the satellite orbits. • We used cloud and aerosol climatology files and the default algorithmas the inputs to screen cloud and aerosols. • D. Vertical integration/conversion • A standard module is used to convert model vertical profiles to satellite retrievals, by applying the averaged kernels read from pre-calculated tables for OCO-like instrument.
1) Sampled along Aqua orbits GEOS-Chem transport model: Biosphere (CASA), Biomass (GFED), Fossil (+Bio) fuel (ODIAC), Ocean (Takahashi) Example: Simulating OCO XCO2 1-day 3) Averaging kernels applied 2) Scenes with cloud or AOD > 0.3 removed Glint mode Pressure [hPa] Jan Averaging kernels
Data Assimilation Module (Ensemble Kalman Filter) • Top-down Optimal surface flux estimation model gain observation Priori Posteriori x: regional surface fluxes yobs: measurements of atmospheric concentrations. H: Jacobian (CTM model). K=PfHT(HPfHT+R)-1– Kalman gain matrix. Pf: a priori uncertainty matrix R: observation error matrix
Key features: • (Feng et al., 2009 ; 2011) • Represent a-priori uncertainties by an ensemble of flux perturbations. • )T • Use a lag windows to limit computational costs. • Any emission will only be constrained by observations within a following limited time period. After that period, it is considered to be well-known. • Project the ensemble of perturbations together with prior estimates into the observation space using CTM. • Use Ensemble Transform Kalman Filter (ETKF) to determine posterior fluxes, and the associated uncertainties from digesting observations. • Ensemble Approach
A. State vector and ensemble representation of its uncertainties Surface fluxes Prior estimates of surface fluxes Basis functions for pulse-like flux perturbations, :coefficients to be estimated: State vector: ,, , …,]; Perturbations:, ,, …,] Error covariance: Full or partial representation: , ,, …,],
We use region_map_c.py to define 144 global regions. • We use gen_region_pb_flux_m.py to generate BFs from • biosphericGPP map and the multi-layer map for the 144 regions.
B. Ensemble forecasts • We override IO functions in pb_flux_c.py to generate the ensemble of flux perturbations according to the defined basis functions and pre-defined uncertainties, and save them in GEOS-Chem bpch2 format. • We also override functions in ctm_config_c.py, and ctm_restart_c.py to support the GEOS-Chem tagged runs for projecting flux perturbation ensemble to the ensemble of atmospheric tracer concentrations. • C. Projection of ensemble forecasts to the observation space. • GEOS-Chem outputs are sampled by ctm_world_c.py with over-ridden IO functions.
D. Inversion algorithm:EnsembleTransform Kalman Filter (ETKF) • A posteriori and the associated uncertainties are simultaneously calculated using SVD (or sparse-matrix LU) technique. • +R]-1 • T • TTT=[1+-1 • Corresponding updates are made to the ensemble of model 3D concentrations to retain the contributions of fluxes outside the assimilation (time) windows(Feng et al, 2009)
Algorithm validation: Comparison with the LSCE 4d-var system. In the comparison experiments, we have assimilated the same ACOS-GOSAT B210 XCO2 retrievals (real data) over 2009 and 2010, by using 2 different approaches: EnKF (UoE) and 4d-var (LSCE) (Feng et al, 2013).
VI. Summary • OSSE system will be issued for beta test soon. • Whole package, including detailed documents will be delivered in next march.
We are about two weeks behind the internal deadline, but months ahead the project schedule. INTERNAL DEADLINES1) Deliver revised code and documentation to Paul end of November 2012. This is before the Reading meeting. I will check the code and documentation. Return to LF a week later.2) Circulate to Silvia, Annemarie, and Siegfried the week of the 10th December 2012. Start beta testing.3) End of beta testing period at the end of January 2013.4) Debug, edit, package, and produce online material by the week of the 21st February 2013.5) Final edits and release the end of February.