ReFRACtor
FullPhysics::ReferenceVmrApriori Class Reference

Creates a VMR profile for a gas using a set of dated reference VMRs with a known latitude. More...

#include <reference_vmr_apriori.h>

+ Inheritance diagram for FullPhysics::ReferenceVmrApriori:
+ Collaboration diagram for FullPhysics::ReferenceVmrApriori:

Public Member Functions

 ReferenceVmrApriori (const blitz::Array< double, 1 > &Model_pressure, const blitz::Array< double, 1 > &Model_altitude, const blitz::Array< double, 1 > &Model_temperature, const blitz::Array< double, 1 > &Ref_altitude, const double Ref_latitude, const Time &Ref_time, const double Ref_tropopause_altitude, const double Obs_latitude, const Time &Obs_time)
 
const double age_of_air (const double altitude) const
 Computes the Age of Air at particular location (Altitude, Latitude) relative to the surface at 50N, where Age=0. More...
 
const blitz::Array< double, 1 > apply_latitude_gradient (const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
 Modifies the vmr profiles to account for the difference in latitude between the observation latitude and the reference latitude. More...
 
const blitz::Array< double, 1 > apply_seasonal_cycle (const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
 

Modifies the a priori vmr profile to account for the season of the observation/model. More...

 
const blitz::Array< double, 1 > apply_secular_trend (const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
 

Modifies the a priori profiles on a gas-by-gas basis to account for the difference in time between the observation/model and the reference vmrs. More...

 
const blitz::Array< double, 1 > apriori_vmr (const blitz::Array< double, 1 > &vmr, const std::string &gas_name) const
 

Creates the a priori VMR using the various transformation methods of the class. More...

 
const blitz::Array< double, 1 > effective_altitude () const
 Computes an altitude grid for resampling that takes into account a difference in the tropopause altitude for the target from the model. More...
 
DoubleWithUnit model_tropopause_altitude () const
 Calculate the tropopause altitude for the model data used to initalize the class. More...
 
void print (std::ostream &Os) const
 
std::string print_to_string () const
 Print to string. More...
 
const blitz::Array< double, 1 > resample_to_model_grid (const blitz::Array< double, 1 > &vmr) const
 Resamples a VMR to the effective model altitude grid that accounts for the difference in tropopause altitudes. More...
 

Detailed Description

Creates a VMR profile for a gas using a set of dated reference VMRs with a known latitude.

These VMRs are then modified as so:

  1. Resampled to effective altitudes
  2. Latitude gradient applied
  3. Secular trends applied
  4. Season cycle applied

This class is based on the TCCON 2014 release of gsetup. As per those techniques, values are interpolated based on altitudes.

NOTE: Inputs are expected to be in increasing altitude decreasing pressure order.

Make sure gas names are capatilized.

Definition at line 27 of file reference_vmr_apriori.h.

Constructor & Destructor Documentation

◆ ReferenceVmrApriori()

ReferenceVmrApriori::ReferenceVmrApriori ( const blitz::Array< double, 1 > &  Model_pressure,
const blitz::Array< double, 1 > &  Model_altitude,
const blitz::Array< double, 1 > &  Model_temperature,
const blitz::Array< double, 1 > &  Ref_altitude,
const double  Ref_latitude,
const Time Ref_time,
const double  Ref_tropopause_altitude,
const double  Obs_latitude,
const Time Obs_time 
)

Definition at line 78 of file reference_vmr_apriori.cc.

Member Function Documentation

◆ age_of_air()

const double ReferenceVmrApriori::age_of_air ( const double  altitude) const

Computes the Age of Air at particular location (Altitude, Latitude) relative to the surface at 50N, where Age=0.

Definition at line 206 of file reference_vmr_apriori.cc.

◆ apply_latitude_gradient()

const blitz::Array< double, 1 > ReferenceVmrApriori::apply_latitude_gradient ( const blitz::Array< double, 1 > &  vmr,
const std::string &  gas_name 
) const

Modifies the vmr profiles to account for the difference in latitude between the observation latitude and the reference latitude.

In the middle stratosphere, gas distributions are assumed symmetrical about equator. At the surface, gas distributions are assumed anti-symmetric about equator. At intermediate altitudes the profiles are interpolated between these limiting behaviors.

Definition at line 251 of file reference_vmr_apriori.cc.

◆ apply_seasonal_cycle()

const blitz::Array< double, 1 > ReferenceVmrApriori::apply_seasonal_cycle ( const blitz::Array< double, 1 > &  vmr,
const std::string &  gas_name 
) const


Modifies the a priori vmr profile to account for the season of the observation/model.


Definition at line 309 of file reference_vmr_apriori.cc.

◆ apply_secular_trend()

const blitz::Array< double, 1 > ReferenceVmrApriori::apply_secular_trend ( const blitz::Array< double, 1 > &  vmr,
const std::string &  gas_name 
) const


Modifies the a priori profiles on a gas-by-gas basis to account for the difference in time between the observation/model and the reference vmrs.

This includes the secular trend but not the seasonal cycle.

Definition at line 279 of file reference_vmr_apriori.cc.

◆ apriori_vmr()

const blitz::Array< double, 1 > ReferenceVmrApriori::apriori_vmr ( const blitz::Array< double, 1 > &  vmr,
const std::string &  gas_name 
) const


Creates the a priori VMR using the various transformation methods of the class.


Definition at line 353 of file reference_vmr_apriori.cc.

◆ effective_altitude()

const blitz::Array< double, 1 > ReferenceVmrApriori::effective_altitude ( ) const

Computes an altitude grid for resampling that takes into account a difference in the tropopause altitude for the target from the model.

Definition at line 173 of file reference_vmr_apriori.cc.

◆ model_tropopause_altitude()

DoubleWithUnit ReferenceVmrApriori::model_tropopause_altitude ( ) const

Calculate the tropopause altitude for the model data used to initalize the class.

Which is the first instance where the lapse rate exceeds -2K/km

Definition at line 100 of file reference_vmr_apriori.cc.

◆ print()

void FullPhysics::ReferenceVmrApriori::print ( std::ostream &  Os) const
inline

Definition at line 51 of file reference_vmr_apriori.h.

◆ print_to_string()

std::string FullPhysics::Printable< ReferenceVmrApriori >::print_to_string ( ) const
inlineinherited

Print to string.

This is primarily useful for SWIG wrappers to this class, e.g. a to_s method in ruby.

Definition at line 31 of file printable.h.

◆ resample_to_model_grid()

const blitz::Array< double, 1 > ReferenceVmrApriori::resample_to_model_grid ( const blitz::Array< double, 1 > &  vmr) const

Resamples a VMR to the effective model altitude grid that accounts for the difference in tropopause altitudes.

Definition at line 223 of file reference_vmr_apriori.cc.


The documentation for this class was generated from the following files:

Copyright © 2017, California Institute of Technology.
ALL RIGHTS RESERVED.
U.S. Government Sponsorship acknowledged.
Generated Fri Aug 24 2018 15:44:13