-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add new aci and aerosol activation metrics from ARM Diags v3 #679
Conversation
Hi Xiaojian @lannyzxj and Cheng@EmmyChengTao |
|
||
def so4_mass_sum(var): | ||
# Calculate: SO4 mass conc. (ng/m3) (< 1um) | ||
var = var * AIR_DENS * 1e9 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lannyzxj Xiaojian,this formula converts so4 mass conc. from (kg/kg) to ug/m3 which gives comparable results to models. But in your version, the results are in ug/cm3. I might get something wrong here..would you help me double check.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Dear Dr. Zhang @chengzhuzhang ,
Thanks for letting me know. I have cross-compared your plots and mine offline, the plots look good.
My units are also ug/m3 for the sulfate output in my plot, which looks comparable to yours.
I double-checked my processing code for the model so4,
it was first converted to ng/m3 after reading the data:
"
iso4_Acc_tmp= iso4_Acc_tmp * 1e12 * 1.225 #kg/kg to ng/kg then to ng/m3
"
and then further divided by 1000 in order to convert to ug/m3 in the data output part of the code:
"
#SO4
ivar=np.reshape(so4_all,(numday*24),order='C')
ivar=ivar/1000. #convert to ug/m3
Mvar=MV2.masked_array(ivar,mask=[np.isnan(ivar)],fill_value=-9999.)
Mvar.id="sulfate"
Mvar.long_name='Sulfate (<1um) Mass Conc.'
Mvar.units='ug/m3'
Mvar.missing_value=-9999.
Mvar.setAxis(0,hrtime_axes)
fout.write(Mvar)
"
The above processes should be equivalent to your "var = var * AIR_DENS * 1e9".
Would you point me to where my version states the unit as ug/cm3? That could be a typo in stating the unit, the actual calculation should indeed yield ug/m3.
Best,
Xiaojian
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your prompt reply! I missed the second units conversion step in your script when writing out files! It is good to know that our results are consistent.
I was looking at a version of ppt for ARM diags v3(for verification purpose), which includes aerosol diurnal cycle plots that has units in ug/cm3, which could be a typo. And I also confirmed that the ARM Diags standalone run provide the correct units!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good to know that! Thank you!
"so4_mass": OrderedDict( | ||
[ | ||
(("sulfate",), rename), | ||
# Aerosol concentration from Aitken, Accumu., and Coarse mode |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note: this only takes Aitken and Accumu. mode. remove Coarse in the comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@lannyzxj Cheng and I are working on clearing up some documentation in preparation for E3SM Tutorial. When working on ARM Diags, I noticed that when computing so4 mass concentration, only Aitken and Accumu. mode are taking account. Could you remind me why is the case? Is it to make the model data comparable to obs?
Some updates in ARM-DOE/arm-gcm-diagnostics#29 will be included at a later time after ARM D release v3.1. I also made some changes in the v3.0 datasets regarding to properly set time bounds. I will share the data to @lannyzxj and @EmmyChengTao for potentially considering releasing a new version of the data. |
Reference runs: |
@EmmyChengTao and @lannyzxj thank you for working on releasing v3.1 of ARM Diags data. I tested with E3SM Diags and both the time bounds problem and inconsistency in convection onset metrics are resolved! Thank you. I'm just documenting the results here: VS Reference runs: |
CI/CD tests were fixed by updated input data for integration tests. ARM data on LCRC also updated. |
Thank you! |
Hi Jill,
Yes, the ARM observation only accounts PM1 for the chemical components, so
I use the closest representation in the model for comparison purposes.
Best,
Xiaojian
…On Tue, Mar 26, 2024 at 11:48 Jill Chengzhu Zhang ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In e3sm_diags/derivations/acme.py
<#679 (comment)>
:
> + # Aerosol concentration from Aitken, Accumu., and Coarse mode
+ (
+ (
+ "num_a1",
+ "num_a2",
+ "num_a3",
+ ),
+ lambda a1, a2, a3: a_num_sum(a1 + a2 + a3),
+ ),
+ ]
+ ),
+ # total so4 mass concentration (ng/m3)
+ "so4_mass": OrderedDict(
+ [
+ (("sulfate",), rename),
+ # Aerosol concentration from Aitken, Accumu., and Coarse mode
@lannyzxj <https://github.com/lannyzxj> Cheng and I are working on
clearing up some documentation in preparation for E3SM Tutorial. When
working on ARM Diags, I noticed that when computing so4 mass concentration,
only Aitken and Accumu. mode are taking account. Could you remind me why is
the case? Is it to make the model data comparable to obs?
—
Reply to this email directly, view it on GitHub
<#679 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AONPBWW6ZWIAAXCZ43DLAHDY2GRE5AVCNFSM6AAAAAAV7DDSEOVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSNRRGEYTQMRZGI>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Thank you for confirming, Xiaojian! |
This PR is to update the ARM diagnostics data and modules (released in ARM Diags v3) by including the aerosol cloud interaction (aci) and aerosol activation diagnostics and metrics based on ARM observation, developed by Xiaojian Zheng @lannyzxj and Cheng Tao @EmmyChengTao.
Todo list: