Skip to content
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

Initial Gas Dry Deposition Feature Using Zhang et al. (2003) and ACCESS (Saylor 2013). #149

Draft
wants to merge 38 commits into
base: develop
Choose a base branch
from

Conversation

drnimbusrain
Copy link
Member

@drnimbusrain drnimbusrain commented Feb 26, 2025

This is an initial draft PR for including explicit gas dry deposition through the canopy using the approach from Zhang et al., 2003 and based on previous implementation in ACCESS from Saylor 2013 and @btang1 previous work to isolate stand-alone codes for canopy-app. Here the initial implementation only includes one available gas chemical mechanism for 31 gas species including transported from RACM2 (based on ACCESS implementation), but other gas mechanisms could be added. Preliminary canopy-app NL options for this include:
image

Preliminary results looking at ozone dry deposition in our SE U.S. test domain and point profile example are in very reasonable ranges, 0 - 1 cm/s, and agree roughly with a review paper results from Clifton et al. (2020).

Spatial plots of ozone dry deposition rate for three canopy-app levels at 0.5 m vertical resolution (level 5 = 2.5 meters, 10 = 5 meters, and 20 = 10 meters). Timestamp: 2022-07-01-13:00:00.0000 UTC
image
image
image

Vertical point profile at Lat=34.03 and Lon = 272.11 inside SE U.S. domain above, Timestamp: 2022-07-01-13:00:00.0000 UTC, canopy height ~ 21 meters
image
Associated LAD point profile:
image

Still there is more development, testing, and evaluation/assessment of this draft PR before trying to bring in other resistance-based methods as discussed in Issue #60 (likely in future PRs after this initial approach is working as expected).

  • Allow PR add gfs download and ozone_w126 #147 to go first and then merge here and test global canopy datasets and runs for this new dry deposition feature branch to other unveil bugs/issues.
  • Currently dry deposition to ground surface layer, i.e., soil surface (z=0), is set to zero (see profile above). Will add ACCESS method of calculating ground soil resistance and deposition rate at z=0, https://github.com/btang1/DryDep_MultiLayer_Code/blob/main/Vd_LEB/DryDep.f90#L182.
  • Add output for other RACM2 gas species dry deposition velocities.
  • A current approximation includes use stomatal resistance parameters for deciduous forest from ACCESS applied to all veg types in canopy-app. This is OK for a first start, but can these parameters be improved for other vegtypes?
  • Maybe add simplified constant urban (or other vtype including snow/ice, barren, and water) canopy resistance/drydep rate for gas species so they are not masked out by dominant vtypes (per @rdsaylor-noaa )? Or, does this deviate from what canopy-app is fundamentally designed to do?
  • Other suggestions?

This PR works on closing ideas put forth in Issue #60.

@drnimbusrain drnimbusrain added enhancement New feature or request help wanted Extra attention is needed labels Feb 26, 2025
@drnimbusrain drnimbusrain self-assigned this Feb 26, 2025
@drnimbusrain drnimbusrain requested review from btang1 and removed request for btang1 February 26, 2025 19:12
Copy link

@rdsaylor-noaa rdsaylor-noaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sanity tests for predicted deposition velocities for species other than ozone should also be performed and documented. For the ozone deposition velocity results, large cities have no deposition values shown. This is incorrect and should be rectified. For example, a city such as Atlanta actually has an extensive vegetative canopy. Possibly, a separate urban "canopy" parameterization ultimately needs to be developed, but in the meantime a default "urban" deposition velocity should be provided for each species.

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 4, 2025

Sanity tests for predicted deposition velocities for species other than ozone should also be performed and documented. For the ozone deposition velocity results, large cities have no deposition values shown. This is incorrect and should be rectified. For example, a city such as Atlanta actually has an extensive vegetative canopy. Possibly, a separate urban "canopy" parameterization ultimately needs to be developed, but in the meantime a default "urban" deposition velocity should be provided for each species.

Thanks @rdsaylor-noaa for the great comments! Working now on soil part and will update my plots here also for other species soon for discussion.

Yes, agreed cities with extensive vegetation fraction need to be included in the future. This may be a longer target (outside of this PR), however, until we can use land use fractions instead of dominant land use currently (see Issue #122 ), or running canopy-app at higher resolution to capture vegetation surrounding cities (e.g., 3 km or 1 km even). Also agree though in the meantime we can try and add a default "urban" deposition velocity for each species. Do you have a recommendation on these urban values to follow for the RACM2 species in your ACCESS?

However, this also requires some consideration at this point (at least before we get vegfrac or higher resolution working) because the entire premise of the gridded part of canopy-app is to only handle vegetated grid cells (with defined vegetation and based on satellite data contiguous canopy thresholds, e.g., lai, canopy height, and canopy fraction). This is a must for all calculations in canopy-app to fundamentally treat the vegetative canopy plant distributions. For now though, I can see adding an "urban_opt" somewhat similar to how we can treat crop and shrub/scrub/grass options (e.g., "crop_opt" and "ssg_opt") in canopy-app and set a default urban ddep gas for these dominant vegtype category of urban.

Thanks again!

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 5, 2025

Now adding gas soil resistance and dry deposition rates for under canopy conditions, they are no longer zero at z = 0. Here is ozone spatial at Level = 0:

Same date/time as above, Timestamp: 2022-07-01-13:00:00.0000 UTC
image

And the corresponding vertical point profile with non-zero ddep to soil under relevant canopies:
image

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 5, 2025

@rdsaylor-noaa Thinking about your comment more on urban vtype deposition, then this would also apply to other vtype categories that canopy-app drydep does not fundamentally treat (e.g., snow/ice, barren, or water, particularly in global applications). I think this then begins to deviate away from what canopy-app was developed to do, i.e., representative a vegetative canopy-only modulating process model aimed at developing relevant parameterizations that interact with host UFS model components (e.g., LSM) to impact such relevant processes (e.g., in-canopy winds, photolysis attenuation, diffusion, biogenic emissions, drydep etc.). We can think about adding these vtypes for deposition in canopy-app stand-alone (using a vtype "other_opt" or "not_canopy_opt" category with simplifications/assumptions), but would envision the host model to more appropriately handle such other vtype categories rather than what canopy-app interacts with thus modulating relevant canopy processes.

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 6, 2025

Global tests now work OK after some adjustments, and initially needing to run lower vertical canopy model resolution due to memory/time constraints. This satisfies above task 1.

Shown here for ozone dry deposition at soil level 0 (z = 0) and canopy level 1 (z = 10 m) in this case (5 model levels at 10 m vertical resolution), only for forested canopy regions represented by GEDI canopy heights above thresholds and valid vtypes:
image

image

canopy-app is highly tunable in the NL and can extend canopy coverage in areas outside of tall forest canopies using lowest canopy thresholds (i.e., lai_thresh = 0.0, cf_thresh = 0.0, and ch_thresh = 0.0) and turning on ssg_opt and crop_opt to get dry deposition for more low-lying vegetation globally. Here turning on only dry deposition option in the NL and selecting only ozone species output we can use more levels (100 levels at 0.5 m resolution), and output in-canopy for different levels to show larger coverage:

Level 0 (z=0 m)
image
Level 1 (z = 0.5 m)
image
Level 2 (z = 1.0 m)
image

However, as discussed above, canopy-app still only handles vegetative canopies and does not currently include urban, snow/ice, barren, or water vtype categories.

I will note compared to Clifton et al. (2020) review paper with big-leaf ozone dry deposition (Fig. 8 latitudinal averages based on an ensemble of global models, mostly using the Wesely, 1989 scheme), the canopy-app values are very reasonable within the peak latitude band of 45-60 N during August (canopy-app plot shown for July):
image

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 6, 2025

Mostly all other ddep species look reasonable, e.g., NO2 and HNO3 below:

image
image
image

image
image
image

However, three species have very low, constant in-canopy deposition velocities, e.g., NO (values ~ 6.352326e-07 cm/s) and CO (3.276465e-07 cm/s) and CH4 (~ 4.680663e-07 cm/s) throughout the canopy levels (at z=0, soil ddep velocities look OK):
image
image
image

image
image
image

image
image
image

@rdsaylor-noaa I do notice that for these species NO, CO, CH4, the Henry's Law coefficients are very low, at least an order of magnitude smaller than all other species at 1.9D-03, 9.8D-04, and 1.4D-03, respectively. Likely this is the reason for their much lower in-canopy ddep velocities. Same with NO3, O3P, and O1D, with orders of magnitude smaller Henry's law coefficients.

@rdsaylor-noaa
Copy link

@drnimbusrain I think this is a general philosophical difference that we have about what canopy-app should be. I understand your reluctance to expand the scope of the app, but what it leads to is a divided treatment of the deposition velocities, with some being calculated in canopy-app and the rest in the "host" model. For water, ice/snow and bare ground this separation is inelegant, but probably not a significant issue. For urban LU with heavy forest coverage (like Atlanta or Baltimore/Washington) the host model's theoretical framework may or may not be consistent with what is used in canopy-app.

Copy link

@rdsaylor-noaa rdsaylor-noaa left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Notwithstanding our differences in philosophy about what canopy-app should be, I approve of what has been done in this PR.

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 7, 2025

Notwithstanding our differences in philosophy about what canopy-app should be, I approve of what has been done in this PR.

Thanks Rick! Let me have another look at treating urban, barren, snow/ice, and water drydep velocities for these RACM2 species. Do you have a quick place I can get the urban, barren, snow/ice, and water surface resistances for these species? I guess for barren I can treat this the same as I am using for soil surface, but need default urban, snow/ice, and water resistances. I can otherwise go in and look at CMAQ etc.

@rdsaylor-noaa
Copy link

rdsaylor-noaa commented Mar 10, 2025 via email

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 10, 2025

Probably best to use whatever CMAQ uses. -- Rick D. Saylor, PhD Physical Scientist Atmospheric Turbulence and Diffusion Division NOAA Air Resources Laboratory Oak Ridge, TN 37830

On Fri, Mar 7, 2025 at 2:30 PM Patrick Campbell @.> wrote: Notwithstanding our differences in philosophy about what canopy-app should be, I approve of what has been done in this PR. Thanks Rick! Let me have another look at treating urban, barren, snow/ice, and water drydep velocities for these RACM2 species. Do you have a quick place I can get the surface resistances for these species/land-use types? I can otherwise go in and look at CMAQ etc. — Reply to this email directly, view it on GitHub <#149 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGCCI52U7PWHFNNKZEKVHC32THXVPAVCNFSM6AAAAABX5RZQE6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBXGI2DKOBZGA . You are receiving this because you were mentioned.Message ID: @.> [image: drnimbusrain]drnimbusrain left a comment (noaa-oar-arl/canopy-app#149) <#149 (comment)> Notwithstanding our differences in philosophy about what canopy-app should be, I approve of what has been done in this PR. Thanks Rick! Let me have another look at treating urban, barren, snow/ice, and water drydep velocities for these RACM2 species. Do you have a quick place I can get the surface resistances for these species/land-use types? I can otherwise go in and look at CMAQ etc. — Reply to this email directly, view it on GitHub <#149 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGCCI52U7PWHFNNKZEKVHC32THXVPAVCNFSM6AAAAABX5RZQE6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDOMBXGI2DKOBZGA . You are receiving this because you were mentioned.Message ID: @.***>

Thanks Rick! OK, I have added barren land/vtype easily using the same soil resistance parametrization, and I have updated canopy ssg and crop thresholds a bit so that it is easy to override and use those grid cells as well. Here is the updated map so far with much greater ddep coverage:

image

I will now move to adding snow/ice, water, and urban resistance functions/subroutines and allow for canopy-app drydep to those vtypes (even outside of vegetative canopy regions). Will update full global coverage map, hopefully soon.

@drnimbusrain
Copy link
Member Author

drnimbusrain commented Mar 13, 2025

Added new snow/ice vtype category functionality (based off of CMAQ snow resistance and reactivity relative to HNO3) as well as dynamic control on ground (both beneath vegetative canopies and outside of canopies, e.g., barren ground and snow/ice) to account for if covered by diagnostic snow using the GFS "snowc_ave" variable.

image

Also added new snow cover threshold in NL for flexibility:
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Deposition/Fluxes] Adding Gas Dry Deposition Parameterization Using ACCESS
2 participants