the Creative Commons Attribution 4.0 License.
the Creative Commons Attribution 4.0 License.
NeuralMie (v1.0): An Aerosol Optics Emulator
Abstract. The direct interactions of atmospheric aerosols with radiation significantly impact the Earth's climate and weather and are important to represent accurately in simulations of the atmosphere. This work introduces two new contributions to enable more accurate representation of aerosol optics in atmosphere models: 1) "TAMie," a new Python-based Mie scattering code that can represent both homogeneous and coated particles and achieves comparable speed and accuracy to established Fortran Mie codes. 2) "NeuralMie," a neural network Mie code emulator trained on data from TAMie, that can directly compute the bulk optical properties of a diverse range of aerosol populations and is appropriate for use in atmosphere simulations where aerosol optical properties are parameterized. NeuralMie is highly flexible and can be used for a large range of particle types and wavelengths. It can represent core-shell scattering, and by directly estimating bulk optical properties, is more efficient than existing Mie code and Mie code emulators while incurring negligible error (0.08 % mean absolute percentage error).
- Preprint
(2254 KB) - Metadata XML
- BibTeX
- EndNote
Status: closed
-
RC1: 'Comment on gmd-2024-30', Peter Ukkonen, 25 Apr 2024
This is a clearly written paper that makes two contributions to the field which, at least when added together, are a significant for advancing the treatment of aerosols in ESMs. At such I can easily recommend publication in GMD after minor revision.
Firstly, the new Python-based Mie code seems very useful by combining speed, accuracy and ease-of-use, and I suspect it will be used by many others for various purposes. For instance, I was looking at developing an ML-based shortwave liquid cloud optics scheme and the code should come in handy for such work.Â
Regarding the NeuralMie emulator, the problem design and ML development appears to be of high quality and I like the use of an analytical solution in the Rayleigh limit where an NN is not needed. The formulation of the problem in terms of mu_x seems like an elegant and clever way of reducing the dimensionality (which should improve generalization). However, while this emulator is very accurate, whether it ends up being used in E3SM or another ESM as a parameterization will depend also on its computational performance. Unfortunately this aspect is sidelined in the paper other than describing it as faster than existing Mie code. However, the real test is arguably against existing parameterizations. Even if you leave the integration of Neural Mie into E3SM for a future paper, this question of computational performance should at least be addressed here (even if it's just "in preliminary tests NeuralMie is currently too slow for operational use because of ABC, but this could be addressed with XYZ").
I can think of two potential issues for achieving high computational performance:
1) A major source of good performance in Ukkonen et al. (2020), where NNs were developed for gas optics, was extending the neural-Fortran library (which Fortran-Keras-Bridge was based on) to use a highly optimized BLAS library for batched inference (predicting many samples at a time with matrix-matrix operations, instead of one example at a time with matrix-vector operations). See here: https://github.com/peterukk/rte-rrtmgp-nn/blob/main/neural/mod_network.F90#L273Â
This feature is missing in FKB. Unfortunately FKB is not in activate development (unlike neural-Fortran, but that one also seems to not support batched inference). You mentioned that E3SM will be ported to C++ but in the meantime, if you wanted performant NN inference code in Fortran, it probably wouldn't be difficult to adopt the code from Ukkonen et al.2) In Veerman et al. (2021) and Ukkonen et al. (2020), another major reason for outperforming the original lookup-tables was that the neural networks predicted a vector array consisting of optical properties at all the different spectral terms or "g-points" of the gas optics scheme (and so had to be called only once for each layer and column). Â Doing this for aerosol optics is perhaps less straightforward (and to be clear I have not worked with aerosol optics) but ultimately, the radiation scheme requires the aerosol optical properties to be defined at or mapped to the spectral discretization used by the gas optics scheme (typically only done for bands via some band averaging method, but could also be g-points if the g-points of the gas optics scheme correspond to specific wavelengths). Â Similarly, you describe the existing parameterization in E3SM using a lookup-table with a wavelength dimension of 32 in which no interpolation is required (corresponding to the spectral bands of the radiation scheme?), i.e. all the spectral terms are predicted simultaneously. However for your scheme, the NN would need to be called separately for each wavelength (the input mu_x depending on wavelength). This presumably makes it slower than the existing LUT scheme. Have you considered an alternative framework where the optical properties for many wavelengths, g-points or bands are predicted as a vector by one NN? The downside of this approach compared to yours is a loss of flexibility - instead of a general parameterization that could be used for any wavelengths, users would maybe have to retrain the NNs (using your code) to fit their particular "spectral needs".Â
I leave it for the authors to decide on how to address the computational aspect of NeuralMie in the revised paper, but I do think it's important if NeuralMie is indeed intended to be used as a parameterization in an ESMÂ (this could be done in a limited fashion, but I was surprised to see it completely absent from the results and discussion).
References:
Ukkonen, P., Pincus, R., Hogan, R. J., Nielsen, K. P., & Kaas, E. (2020). Accelerating radiation computations for dynamical models with targeted machine learning and code optimization. Journal of Advances in Modeling Earth Systems, 12, e2020MS002226. https://doi.org/10.1029/2020MS002226Citation: https://doi.org/10.5194/gmd-2024-30-RC1 - RC2: 'Comment on gmd-2024-30', Anonymous Referee #2, 29 Jun 2024
-
AC1: 'Comment on gmd-2024-30', Andrew Geiss, 18 Oct 2024
We sincerely thank both reviewers for their detailed comments and feedback. We have implemented several changes to the manuscript in response to this feedback and believe it is improved over the original submission. The primary change is the expansion of the discussion section with some consideration of computational costs. We have also fixed several small issues throughout the paper and added detail and clarification in places in response to Reviewer 2. Finally, we have added more comments and a detailed readme file to the NeuralMie and TAMie code explaining how to use it. The code is now published at: https://github.com/pnnl/NEURALMIE and has been archived on Zenodo.
I have attached a detailed response to the reviewers as a PDF.
Status: closed
-
RC1: 'Comment on gmd-2024-30', Peter Ukkonen, 25 Apr 2024
This is a clearly written paper that makes two contributions to the field which, at least when added together, are a significant for advancing the treatment of aerosols in ESMs. At such I can easily recommend publication in GMD after minor revision.
Firstly, the new Python-based Mie code seems very useful by combining speed, accuracy and ease-of-use, and I suspect it will be used by many others for various purposes. For instance, I was looking at developing an ML-based shortwave liquid cloud optics scheme and the code should come in handy for such work.Â
Regarding the NeuralMie emulator, the problem design and ML development appears to be of high quality and I like the use of an analytical solution in the Rayleigh limit where an NN is not needed. The formulation of the problem in terms of mu_x seems like an elegant and clever way of reducing the dimensionality (which should improve generalization). However, while this emulator is very accurate, whether it ends up being used in E3SM or another ESM as a parameterization will depend also on its computational performance. Unfortunately this aspect is sidelined in the paper other than describing it as faster than existing Mie code. However, the real test is arguably against existing parameterizations. Even if you leave the integration of Neural Mie into E3SM for a future paper, this question of computational performance should at least be addressed here (even if it's just "in preliminary tests NeuralMie is currently too slow for operational use because of ABC, but this could be addressed with XYZ").
I can think of two potential issues for achieving high computational performance:
1) A major source of good performance in Ukkonen et al. (2020), where NNs were developed for gas optics, was extending the neural-Fortran library (which Fortran-Keras-Bridge was based on) to use a highly optimized BLAS library for batched inference (predicting many samples at a time with matrix-matrix operations, instead of one example at a time with matrix-vector operations). See here: https://github.com/peterukk/rte-rrtmgp-nn/blob/main/neural/mod_network.F90#L273Â
This feature is missing in FKB. Unfortunately FKB is not in activate development (unlike neural-Fortran, but that one also seems to not support batched inference). You mentioned that E3SM will be ported to C++ but in the meantime, if you wanted performant NN inference code in Fortran, it probably wouldn't be difficult to adopt the code from Ukkonen et al.2) In Veerman et al. (2021) and Ukkonen et al. (2020), another major reason for outperforming the original lookup-tables was that the neural networks predicted a vector array consisting of optical properties at all the different spectral terms or "g-points" of the gas optics scheme (and so had to be called only once for each layer and column). Â Doing this for aerosol optics is perhaps less straightforward (and to be clear I have not worked with aerosol optics) but ultimately, the radiation scheme requires the aerosol optical properties to be defined at or mapped to the spectral discretization used by the gas optics scheme (typically only done for bands via some band averaging method, but could also be g-points if the g-points of the gas optics scheme correspond to specific wavelengths). Â Similarly, you describe the existing parameterization in E3SM using a lookup-table with a wavelength dimension of 32 in which no interpolation is required (corresponding to the spectral bands of the radiation scheme?), i.e. all the spectral terms are predicted simultaneously. However for your scheme, the NN would need to be called separately for each wavelength (the input mu_x depending on wavelength). This presumably makes it slower than the existing LUT scheme. Have you considered an alternative framework where the optical properties for many wavelengths, g-points or bands are predicted as a vector by one NN? The downside of this approach compared to yours is a loss of flexibility - instead of a general parameterization that could be used for any wavelengths, users would maybe have to retrain the NNs (using your code) to fit their particular "spectral needs".Â
I leave it for the authors to decide on how to address the computational aspect of NeuralMie in the revised paper, but I do think it's important if NeuralMie is indeed intended to be used as a parameterization in an ESMÂ (this could be done in a limited fashion, but I was surprised to see it completely absent from the results and discussion).
References:
Ukkonen, P., Pincus, R., Hogan, R. J., Nielsen, K. P., & Kaas, E. (2020). Accelerating radiation computations for dynamical models with targeted machine learning and code optimization. Journal of Advances in Modeling Earth Systems, 12, e2020MS002226. https://doi.org/10.1029/2020MS002226Citation: https://doi.org/10.5194/gmd-2024-30-RC1 - RC2: 'Comment on gmd-2024-30', Anonymous Referee #2, 29 Jun 2024
-
AC1: 'Comment on gmd-2024-30', Andrew Geiss, 18 Oct 2024
We sincerely thank both reviewers for their detailed comments and feedback. We have implemented several changes to the manuscript in response to this feedback and believe it is improved over the original submission. The primary change is the expansion of the discussion section with some consideration of computational costs. We have also fixed several small issues throughout the paper and added detail and clarification in places in response to Reviewer 2. Finally, we have added more comments and a detailed readme file to the NeuralMie and TAMie code explaining how to use it. The code is now published at: https://github.com/pnnl/NEURALMIE and has been archived on Zenodo.
I have attached a detailed response to the reviewers as a PDF.
Viewed
HTML | XML | Total | BibTeX | EndNote | |
---|---|---|---|---|---|
403 | 108 | 29 | 540 | 31 | 29 |
- HTML: 403
- PDF: 108
- XML: 29
- Total: 540
- BibTeX: 31
- EndNote: 29
Viewed (geographical distribution)
Country | # | Views | % |
---|
Total: | 0 |
HTML: | 0 |
PDF: | 0 |
XML: | 0 |
- 1