Code available for simulating tropospheric NO2 columns!
Code refactoring for transport error estimates and sounding selections for non-CO2 species.
📌 Sounding selections:
-
nf_dlat
andnf_dlon
: define the NEAR-FIELD regions aroundsite
-
dlat
anddlon
: define the ENTIRE target regions aroundsite
-
num_nf_lat
*num_nf_lon
: total # of soundings to be selected along either the latitudinal or longitudinal direction (e.g., ~7 * 14 total soundings over the NEAR-FIELD domain aroundsite
) -
num_bg_lat
*num_bg_lon
: total # of soundings to be selected along either the latitudinal or longitudinal direction (e.g., ~3 * 3 total soundings over the FAR-FIELD or BACKGROUND domain aroundsite
) -
get.recp.sensorv2()
: function for the selection of satellite soundings to save computational cost; If selected near- or far-field soundings share the same coordinate, only one of them will be treated as model receptor.
Figure - An example of sounding selections (though not highly recommended for TROPOMI given its coarse resolution).
Changes to 'merge_stilt-hysplit' branch towards the release of X-STILT version 2 that can work with non-OCO sensors or without the dependence of satellite data:
📌 X-STILT can now work with TROPOMI X-gas data, such as
-
footprint weighting using TROPOMI species-specific averaging kernels;
-
functions to grab vertical column density and convert to vertical mixing ratio in ppb;
-
need to specify TROPOMI info via
obs_sensor
andobs_species
that are currently limited to CO, CH4, and NO2;
📌 IDEAL simulations for column footprints/enhancements from any locations (no requirement of satellite data).
-
To use the ideal mode,
obs_sensor
needs to be set as NA; -
Column AK is simply treated as 1 from TOA to the surface (
ak_wgt
is forced as FALSE); -
Column PWF is calculated using modeled variables/profiles (
pwf_wgt
= TRUE). -
Must provide a .csv/.txt file containing the latitudes (
lati
) and longitudes (long
) of your desired receptor locations. Receptor time (in form of YYYYMMDDHH or YYYYMMDDHHss) can either be included in the csv/txt file as the 3rd column (with name oftime
) OR assigned totimestr
inrun_xstilt.r
. See example ofreceptor_demo.csv
. -
[USE WITH CAUTIONS] NOT suitable for comparisons with real satellite sensors that have variable vertical sensitivities.
📌 Built upon the latest HYSPLITv5: Replace discrete release levels with line source release -- i.e., particles are now evenly distributed between minagl
and maxagl
, e.g., default is 3000 particles from 0 - 3km;
📌 PWF calculations in r/src/recp_trajec_foot
-
Instead of interpolate PWF from OCO-2 to each discrete release level
▶️ calculate PWF based on dp and dry air column density (mol m-2) between particles. -
To calculate the dry air X-density, we extracted specific humidity and temperature profiles via
get.met.vars()
. -
If ak.wgt is turned off (
ak.wgt
== FALSE), the dependence on any satellite sensors will be removed. That being said, normalied AK is 1 and PWF is calculated based on MODELED surface pressures instead of RETRIEVED surface pressures.
📌 Other minor changes:
-
Allow the calculation of another set of footprint with a different temporal resolution from the default run at the same time, e.g., hourly footprint implied by
time_integrate2 = F
; -
Add interactive mode for choosing site, overpass time, etc. One can modify the code to turn it off;
-
Insert the google API as the first line of
insert_ggAPI.csv
that will be sourced by the model for geolocation and google map plotting; -
Get rid of the additional .rds files end with X_wgttraj.rds to reduce file sizes
▶️ trajectory-level footprints after the AK and PWF weighting are now stored as additional columns in the initial *X_traj.rds files. Here are the descriptions of columns in output$particle from rds files:foot_before_weight:
footprint BEFORE AK and PWF weighting;foot:
footprint AFTER AK and PWF weighting;pwf, ak.norm, ap, ak.pwf:
computed pressure weighting and interpolated apriori and averaging kernel profiles from OCO-2/3;wgt:
final weighting factors used for scaling trajectory-level footprint based on flags ofak.wgt
andpwf.wgt
.