We use bromide ($\ce{Br-}$) as our reagent ion (instead of iodide which I used previously and is fairly popular). Bromide has essentially the same selectivity as iodide, but for most species, bromide is more sensitive. Importantly for the research interests of my group, bromide allows us to measure iodine-containing species. If we used iodide, the flooding of iodine in the system makes it impossible to say that any $\ce{I2}$ observed is a real measurement or a byproduct of the reagent ion chemistry. I have no direct interest in iodine investigations, however, my research goals still benefit from the use of bromide.
We use bromide ($\ce{Br-}$) as our reagent ion (instead of iodide which I used previously and is fairly popular). Bromide has essentially the same selectivity as iodide, but for most species, bromide is more sensitive. Importantly for the research interests of my group, bromide allows us to measure iodine-containing species. If we used iodide, the flooding of iodine in the system makes it impossible to say that any $\ce{I2}$ observed is a real measurement or a byproduct of the reagent ion chemistry. I have no direct interest in iodine investigations, however, my research goals still benefit from the use of bromide.
2023 / CIMS
CIMS
2023
Recently, I've been working on understanding the analytical capabilities of our Chemical Ionization Mass Spectrometer (CIMS)1, particularly its sensitivity to various compounds.
The mass spec we use is pretty unique, and it is not the one we learn about in Organic Chemistry $\mathrm{II}$... we're attempting to avoid any fragmentation! (I know, it's wonderful). Essentially, the idea is to bombard everything entering the instrument with the $\ce{I-}$ anion (not electrons like in Electron Ionization) so that an iodide adduct of the analyte is formed. When we look for a given analyte's signal on the mass spectrum, we eye in on the mass-to-charge ratio of the compound of interest + the mass of $\ce{I-}$. For example, the water peak is found at $m/z\approx145\; (\ce{I-}: 127,\; \ce{H2O}: 18.02)$.
Say you are targeting quantitative analysis of a compound: the signal response of the instrument $S$ is not only dictated by how much of the compound is in your sample but also how sensitive your instrument is to that compound. So, in our lab, we must identify the sensitivity of our instrument for a given compound before we report any concentrations from air samples.
Nitrous, Nitric, and Peroxynitric Acid
One of the first research topics I worked on recently has been the characterization of nitrogen-containing acids with our CIMS. These acids are important for their presence in some common radical chemistry observed in the atmosphere. Nitrous acid ($\ce{HONO}$) in particular is a source of the hydroxyl radical ($\ce{OH}$), which makes studying it extremely warranted! Our atmosphere is an oxidizing one. This is commonly what atmospheric chemists identify first when describing the Earth's atmosphere. Nothing plays a more important role in all this oxidation than $\ce{OH}$! Nitric acid is an important termination product of the $\ce{HO_x}$ and $\ce{NO_x}$ cycles $(\ce{HO_x}=\ce{HO, HO_2}$ ; $\ce{NO_x}=\ce{NO, HO_2})$ — which include the aforementioned oxidant $\ce{OH}$ as well as dictate $\ce{O3}$ formation and removal. Lastly, peroxynitric acid (PNA, $\ce{HO2NO2}$) acts as a concurrent reservoir of $\ce{HO_x}$ and $\ce{NO_x}$ and in this way, it modifies the oxidative power of the atmosphere. Understanding it too is important.
The Experiment
As mentioned, laboratory-based atmospheric chemistry is concerned with calibration methods. So rather than placing some tubing outside and seeing what signal we get for nitrous, nitric, and peroxynitric acid, we are tasked with producing them ourselves in known quantities. How so?
We treat humidified zero air ($21\% \; \ce{O3} \;\& \; 79\% \; \ce{N2}$) with a $\ce{Hg}$ UV radiation source ($\lambda = 184.9$ nm) to photolyze $\ce{H2O}$ and effectively produce the hydroperoxyl radical ($\ce{HO2}$). This photolysis mechanism goes as follows:
$$
\begin{align*}
&\text{R1:} \quad &&\ce{H2O +\textit{h}\nu -> OH \text{+} H} \\\
&\text{R2:} &&\ce{H + O2 + \textit{M} -> HO2 \text{+} \it{M}}
\end{align*}
$$
We then add $\ce{NO_2}$ upstream of the UV source (you can buy a gas cylinder of it). It kicks off a slew of reactions:
$$
\begin{align*}
&\text{R3a:} \quad &&\ce{OH + NO2 \xrightarrow{\text{preferred}} HO2 + NO} \\\
&\quad \text{R3b:} &&\ce{OH + NO2 + \it{M} -> HNO3 + \it{M}} \\\
&\text{R4:} \quad &&\ce{HO2 + NO2 -> HO2NO2} \\\
&\text{R5:} \quad &&\ce{OH + NO -> HONO}
\end{align*}
$$
Et voila! All that's needed are the flow rates we used & some rate constants and we can figure out the concentrations of nitrous, nitric, and peroxynitric acid.
Below is a time series of the calibration. The relative humidity (RH; indicated as $\chi_{\ce{H2O}}$) was the independent variable here — allowing us to determine the sensitivities at different RHs. The units of the signal are normalized counts per second. Essentially, it is the count of ions the instrument recognizes normalized to some always-large peaks.
And these are the sensitivities (signal per unit concentration). Here only nitric and peroxynitric acid are shown.
My Reflection
This was one of my first stabs at CIMS work in the lab. Though the steps taken may sound a bit simple (they did to me when we planned out the work) I learned that it wasn't anything of the sort. Our configuration has the CIMS collecting a new mass spectrum every second, $1 \; Hz$. This results in a lot of data (relative to what I'm used to!)— the processing of which requires a lot of meticulous work. Nonetheless, with each peak fit and peak identification, you learn more about the gas phase presence and ion-molecule interactions of the vast assortment of things the mass spectrometer can see. Not only that but the analysis process is eye-opening to the surprising creativity that exists in data analysis. So many chemical behaviors and relationships can be made if one has a command of the data and looks at it with ever-changing perspectives.
2023 / ECHAMP
ECHAMP
2023
Our research group (Ezra Wood, Drexel University) is interested in understanding tropospheric ozone and the chemistry that forms it & removes it. Our main contribution to the understanding of these processes is through quantification of the very reactive peroxy radicals. These reactive species play an important role in ozone production, $P(O_3)$,
Peroxy radicals are difficult to measure using traditional measures. Take carbon dioxide, for contrast. Carbon dioxide is both stable and strongly IR absorbent. All one needs is only a small amount of $CO_2$ in a gas sample for detection. In the case of peroxy radicals, their reactivity makes it difficult to introduce a sample to the instrument for measurement. The solution, then, is to measure that reactivity. We measure the peroxy radicals' reaction with $NO$ to form $NO_2$ (which is something we can measure directly).
Also, these peroxy radicals are in such low concentrations! This 'proxy' reaction would better suit us if there were more molecules of the product we make than the molecules of peroxy radicals to start with. Fortunately, there's a way! By introducing ethane to the reaction system, we don't just double the number of molecules $NO_2$ produced per molecule peroxy radical, we also return another molecule of the peroxy radical! The introduction of ethane starts a chain reaction.
This method is what's called Ethane Chemical Amplification (ECHAMP).
The experimental 'chain length' is the effective number of molecules of $NO_2$ made per molecule of peroxy radical. The larger the chain length (it is variable based on environmental conditions), the more sensitive our instrument is to peroxy radicals. Some of our current work on the ECHAMP surrounds improving this sensitivity — in fact, this was one of my first projects in atmospheric chemistry!
2022 / Learning Python
Learning Python
2022
Introduction
In this paper I have recorded my accounts, lessons, and reflections on learning how to program with Python through an application-based project.
I am a third-year undergraduate student studying chemistry, and I want to focus my work on atmospheric chemistry in my graduate & post-graduate and/or industry research. I love what I learn in this field and every day I see dots of seemingly chaotic and unconnectable complexities get connected. Each new figure showing concentration vs time, oxidation products of terpenes, radiance vs wavenumber, and so on gives more meaning to what’s going on around me. And so I’ve asked myself “How can I do more? How can I be a better chemist? How can I accelerate this learning process so that, sooner rather than later, I too can contribute to further understanding?” This whole paper is a recollection of one of the more important answers I’ve identified to that question: learn Python.
Fortunately, I’ve been exposed to some atmospheric research, specifically that by Dr. Ezra Wood and his group attempting to improve the sensitivity of their peroxy radical sensor. The biggest takeaway from this experience was seeing first-hand how essential computational analysis is. Being able to analyze and organize the hundreds and thousands of data points per day and then evaluate it for all types of trends is the brunt of the research. This process is extensive but critical. No chemist can succeed without strong skills in these areas. And I want to succeed — because, well, I want to contribute to further understanding.
I got to the answer of my aforementioned, driving question by speaking with professors, fellow students, and other researchers... I learned that the most robust and transferrable skill needed to perform these types of data organization, model construction, and computational analyses is to learn how to program — ideally with a language that excels with such tasks. As I said, I chose Python.
Here's how I learned it.
*I didn’t fully learn it. I don’t think I ever will. I just liked how a 5-word sentence sounded to close out the introduction. I feel I’ve ruined that effect now though.
Ideation
Reaching Out
I knew way before I started this process that I wanted to learn Python by completing a project. I figured it would be an exciting way to learn something new as I’d have complementary motivations all at play. I can learn the programming, learn the project, and have a tangible outcome to reflect on. My first problem, then, was to conceive a proper and achievable project idea. I wasn’t sure of the extent to which one project would be more apt to teaching programming basics vs another — let alone the capabilities of programming on its own. Because the ideal subject of said project was something that combined Python and atmospheric chemistry, I asked my (soon to be at the time) atmospheric chemistry professor if he had any ideas/suggestions.
He did! Dr. Wood put me in contact with Dr. Shannon Capps who leads the Atmospheric Modeling group at Drexel (the existence of which was unbeknownst to me at the time). I had never heard of her work or spoke with her before, but she kindly responded to my cold email with enthusiasm and an idea that eventually became the topic of my project. Dr. Capps and I met over zoom not long thereafter, and the plan was set in motion.
The Project Task
The Atmospheric Modeling group is attempting to propagate sensitivities from an outdoor, regional model they have to an indoor model that is written in Python. To do this, they need a specific package to mathematically utilize hyper-dual numbers. This hyper-dual library is currently written in Fortran, so it must be translated to Python. That’s my project.
When Dr. Capps and I first met, one of the first things I told her was that my knowledge of programming and computer science (I didn’t even know what terms to use) was very minimal. I wanted to be clear and up-front that though my ambition would let me take on any project idea she may be able to come up with (this hyper-dual package included), I should probably stick to something manageable and realistic. She appreciated this honesty, because ultimately this project is helping her group too, but did say that it is a realistic goal given the limited background I had. We both agreed that once I could demonstrate a very basic command of Python to Dr. Capps, I’d be given access to the Fortran hyper-dual library and could start working. I was excited to have found a project and ready to start.
One of the perks of this project is that translating code from one language to the next involves relatively little programmatic thinking — the focus is more on common syntax. The programming is already done, I just need to translate it to the proper language. That said, by being exposed to said programming, I can slowly pick it up as I go along. I need to know what exactly I am translating — later this proves to be an important aspect to the project.
Activation Energy
Figuring Out How to Talk to Computers
After the short turnaround between voicing my interest to Dr. Wood and then the conception of a full project plan, I was enthusiastic about embarking. I learned quickly however that learning to program is full of repeated self-starting and restarting. More than anything, it’s filled with a lot of links. Here’s some words I had journaled at the start:
Step 1… figure out how to enter a Python operating framework…
I just downloaded the Python installation package
is this right??
Learning what IDEs are and Code Editors… essential.
I’m realizing I don’t want to do too much without having a system set up to track my progress and build toward an article that follows my journey.
I want to use NoodleTools (I used that in HS) but Drexel doesn’t have it. I chatted with Kathleen Turner at Drexel Libraries, and she guided me to use EndNote. I’m going to put an hour or so into setting this up on my computer and having it ready to start my ‘quest.’
Note… something incredibly funny about this process is that there are absolutely so many links! I press one link that I think will get me to my answer, but there ends up being 43 more! I’m just trying to get the software I’m going to use to help me write the article… I still don’t know how to add 2 numbers in Python.
I never actually used EndNote, but I would say going down that rabbit hole and the many others at that stage were necessary to get started. It was the barrier I needed to overcome, and though a more direct and guided approach would’ve been more efficient, I do believe I learned more this way. Even though I didn’t use a lot of the information I read about, I learned how other people have done similar projects. I invested my time, cleared up my vision a bit, and humbled myself.
Basic Command of Python
I downloaded the Anaconda environment and started with the Jupyter Lab web-based IDE from the Anaconda Navigator. Anaconda, as I learned, is a Python and R programming distribution created for Data Science. The easiest way for beginners to think about it is a big box that contains everything you need to get started. With it comes Python, hundreds of Python libraries (like NumPy, Pandas, SciPy, etc.), and different IDEs to code in. An IDE is an Integrated Development Environment, meaning it is a place where one can write code, execute code, and perform other tasks related to the development of a program. An IDE is different than a regular Code Editor (like TextEdit, Notepad, and Notepad ++) because it allows you to do much more than just write and edit. I quickly found Jupyter Lab to be the best possible IDE to start with because your programs can be executed on the same document as your work. The interface is user-friendly and not overwhelming.
With my understanding of these platforms where it needed to be and the platforms themselves downloaded and installed, I was ready to write and execute my first Python code. Finally!
But how...
Eager and impatient, after finishing a movie on a Friday night, I displayed my MacBook screen on my living room TV and picked a random thumbnail that comes up on YouTube when you search “Python beginner tutorial.” I had Jupyter Lab open on my Mac and “Learn Python in 1 Hour” open on my TV at 12:30 AM Saturday morning... this is how!
I started coding and didn’t stop till I made it to the end. After all of the pauses, replays, and own attempts of following along, it wasn’t until 4:00 AM that I finished. The 1-hour tutorial taught me a lot of the basics very fast, and I was truly surprised at how quickly this language can be picked up. I found it extremely helpful to think of what I was doing in terms of things I already knew. Below is a few of the things I made note of early on that night:
Things I've Learned
Variables are the same things as the ones in Maple. Or like the ones on the TI-84 calculator. On the calculator when you hated repeatedly typing “$6.67430 \times 10^{-11}$” for the gravitational constant, you’d type it in and then hit the “store” button and store it as “G.” In Python, variables store something in the memory of the computer. Later on, you can use this something in a calculation or an action.
Using information is easy in Python; however, you need to make sure that your “expressions” or, for me (because I think of programming as a maple worksheet) “equations” use things that match up. For example, if you define the variable “happiness_level” to equal input(“Enter your happiness level: “), then the variable will be equal to something that is within quotes. Anything within quotes is called a string. A string is not a number and therefore you cannot perform the operation: 10 - “happiness_level”. Instead, you must make the type of values in the operations consistent.
Making value types consistent is done with 4 simple functions. First is the int() function which has the ability to seek within a string (something within quotations) and make it an integer number. Next is string() which makes a value a string value (opposite integer). Another useful function is float() which converts values to a floating point number (a number with a decimal). Last is the bool() function which converts a value to a Boolean (binary, true or false).
Getting information is important for learning Python, it’s a very useful way to grow your programming. The two most important commands (I think that’s the word?) for this are input(“ “) and print(). The input() command lets you make a prompt followed by a field that can be used to enter information. This information can then be manipulated by your program. Once manipulated, you can opt to display the results of what the code has done. Displaying these results is achieved by the print() command.
I enjoyed the teaching style of the video creator because he would talk through everything, he typed in a way that I could follow along and code with him. I would learn in the moment and have my own, slightly adapted, code to look back on after the fact.
Here are two of the earliest Python codes of mine:
In the first of the two codes above, I told the computer to let me give the program some information. When executed two input boxes appeared. One let me input the first value, and the next asked for the second. The program then gave me the sum. In the second code, I told the computer to print the answer to the logical statement “Python” in “Python for atmospheric chemist.”
There are a whole lot more of such codes in my (no better name than...) “Hello World” Python file.
After graduating from this initial tutorial, I enrolled in a proper online course offered by the same creator of the original video, Mosh Hamdani. I began learning more in-depth about these basic principles and finding new ways to build upon the most basic of concepts.
Here are some more of the early codes from this time:
Here I am experimenting with lists. Lists are mutable objects that (usually) contain multiple things. What is meant by mutable is that you can change some of the things that are contained within them and manipulate said things.
The first thing I do to the list that I named “numbers” was I inserted “-1” in the first index (position) and printed it.
Next, I took out the index “3”.
After this I asked the computer if “1” was within my list… The computer said yes by providing the Boolean “True “. I did the same thing again by asking if “10” was in my list and it said no with “False.” I also asked what the size is, or count, of the list, and it told me it was 5.
Using the same list from last time, I am doing something new.
First is a “for loop.” A for loop lets you repeat something a fixed number of times — this quantity is equal to the number of indexes of the object you are “repeating.” In Python (computer programming in general) this repeating action is called iterating.
Iterating can be done over different types of objects like lists (what’s used here), ranges, tuples (comma separated lists within parentheses), sets, strings, and more.
In the first case, I am calling “each_value” the variable for which the loop will iterate over each value of the list called “numbers.” The result is shown: “1” then “2” then “3” then “4” ... so on. Usually, other variable names are used instead of “each_value.” This just helped me understand.
Next, I show the “while loop.” A while loop repeats something so long as some given condition is true. Here, the condition is that “i” (which I’ve set equal to 0) must be less than the length of a range of 0 to 5 (in Python the length of a range from 0 to 5 equals to 4. You start at and include 0 but end before the last number).
Given true circumstances, the while loop will then return to me 0 because it is the first index of the range. Next, however, because I’ve specified i=i+1, the loop will iterate again and return 1 plus the last iteration. This loop continues until the circumstances are no longer true or the range ends. Whichever comes first.
Though (seemingly) simple, the loops discussed above carry with them important principles in Python programming. Having command of loops and understanding iteration is critical to high-level computations in this language. Python is an object-oriented program language, which means its programs heavily rely on the objects themselves. A Python programmer will find that the skill of iterating over objects is a common and essential task; therefore, making and manipulating loops is something I try to practice in different ways.
Here is an extremely simple code that I am using to highlight a valuable tool: ternary operators. When learning about ternary operators, I quickly found that they will prove too valuable to complex code — even though they seem superfluous in simple ones like this. Here’s what a ternary operator is:
In the above code, I’ve laid out a simple conditional statement: if age is less than or equal to 18, then say “eligible.” Whatever else age may be, say “ineligible.”
What’s missing in my little translation is “message.” Message in this context acts as a ternary operator. What I’ve really done with this conditional statement, is defined “message” based on the condition of “age.”
As you could probably see even at this early point, when handling a very large program, it could be much easier to have your program redefine variables on its own so, as the programmer, you don’t have to do it over and over again.
As you can see, my grasp of the language grew. However, I knew I’d need to start splitting my path away from straight web development (which is what Mosh focuses on) to more computational applications of the language. To do this, I decided I’d try my hand at plotting some data. This was an exciting point for me because I knew I had the rudimentary skills down, and I was able to create my own programs without the direct help of Mosh. That said, a learning curve awaited me. This one however was not like the rest. It was easier this time and I found this encouraging.
I knew that the first step was to accustom myself a bit with what packages are in Python. Aside from knowing about packages from this project itself, I had already read about them here and there when link surfing early in the process. From what I knew, packages are big programs that you can import into your own program to perform tasks that the Python language “default” can’t do (without of course making your program as equally complex as the package). If I wanted to write a relatively small code that would extract data and plot it, I figured I’d need to import a package.
I was right.
Thanks to a quick google search, I found that the main plotting package on Python is matplotlib. I imported it and another package NumPy like the person on the forum suggested. Then I started step 2... I tried something!
Below is my first plot. $f(x) = sin(x)$:
Here I’ve defined “x” to be an evenly spaced interval of 30 numbers between 0 and 10.
I defined “y” to be the sin(“x”).
Last, I plotted “x” vs. “y” with black colored dots. Voila!
The next task I set for myself was to plot some data from excel. Another serviceable google search showed that to do this, I need to import the Pandas library to extract my data from excel.
Here’s how it went:
The first step here was defining “data” to be the information in the excel sheet.
Next, I defined my independent and dependent variables “Temperature” and “pressure” as the data shown in the corresponding columns of the excel sheet.
An annoying issue I ran into is that when looking for data in an excel sheet, you can’t have your column names be anywhere other than row “1.” If the names are anywhere else, the “list(data[])” command won’t find it. I was plagued by this problem for too long than I’d like to admit. From now on, all my excel sheets will begin on row 1.
After this of acquiring data, all that was really left was plot the relationship! Matplotlib formatted my axes’ intervals and smoothed out my data points by itself. I added a few formatting touches like axes labels and chart title, but that’s it.
I was having a lot of fun, but I knew that simple plotting wasn’t really challenging me. I wanted to try something a bit more sophisticated, so I decided I would try something that would let me plot, fit data, perform matrix multiplication, and integrate all in one.
I had some data of heat capacity at constant pressure of some sample collected at different temperatures and wanted to find the change in entropy of this sample from 100 K to 300K. The change in entropy can be expressed as:
$$
\Delta S = \int \frac{C_p}{T} \; \textit{d}T.
$$
I needed to find a functional form of Cp with respect to T. This is where the fitting came to play. Once I found the functional form of Cp, I used another package, SciPy, that could handle my integration. Below is all the code that did this:
I had found that this was precisely the application of fundamental skills I needed to take the next step. In completing this mini problem, I was learning how to effectively research documentation, utilize the (oh so) important functions in python, manipulate numbers, troubleshoot, and so many other things. I felt ready to begin the hyper-dual library!
Hyper-dual Number Library in Python
At this point in my progress, I had met with Dr. Capps twice since our first meeting and we both felt that I was ready to begin. She helped me get started and guided me in the right direction — starting with classes. To kick off this section, I include a journal entry from my very first hyper-dual library code!
Here, I am very simply replicating a desired use of this library. Obviously, Python doesn’t know how to handle hyper-dual numbers, so with this bit of code, I am allowing python to determine if one hyper-dual number is bigger than another.
I’ve defined some variables “qleft” and “qright” (standing for hyper-dual numbers on the left and right side of the operator) and I am asking the computer to determine if the left-side hyper-dual number is bigger than the right side hyper-dual number.
The first step of this process is to create a class — some “thing” that the computer doesn’t know about that I am teaching the computer to know about. This “thing” is “Hyperdual.” The first step is to tell the computer that a hyper-dual number will be presented to it with 4 ‘parts’: the real part, the first dual part, the second dual part, and the hyper-dual part. I’ve told the computer also how it can isolate each of those parts from any hyper-dual number with which it’s been presented.
After this administrative work, I needed to tell the computer how it can compare hyper-dual numbers based on size. I’ve told it that when given a hyper-dual number, “compare only the first ‘part’ (the real part) of each hyper-dual number — perform this comparison by seeing if the left is greater than the right (>).”
To show the results of the comparison, I’ve printed the function which returns a Boolean (true or false).
In the image shown, all of the highlighted matter is all that corresponds to the real ‘part’ of the hyper-dual numbers. You can see what the function is taking out of the hyper-dual numbers to compare them.
Quickly, I was able to copy & paste and find & replace so that the greater than function became the greater than function, the less than function, the greater than or equal to function, etc. I finished all the logical operators in the library. Now, effectively, one is “able to” compare two hyper-dual numbers!
This was only the tip of (the tip of) the iceberg, however. The list of operations in the Fortran library is extensive and quickly gets complicated.
I moved on next to the arithmetic operators (adding two hyper-dual numbers together for example) and already it got a challenging. One of the main aspects to adding hyper-dual numbers is that you add each respective part of one hyper-dual number to the other hyper-dual number. To make it clear, a hyper-dual number is shown like this:
At first, I found it to be an issue that Python functions would only return one object, not independent objects that would each correspond to a part of the hyper-dual number sum. I learned later, however, that keeping the output of my functions inside 1 object is actually better. This is because it gives the computer and the user less to keep track of. Say someone wanted to use the addition function and right after wanted to use that sum and multiply it to another number. In this case, having a singular object as the sum is better. Ultimately, this is true for all cases, but it took me a while to realize this. The next hurdle to overcome was (and partly still is), exactly what object do I want these functions to output?
I went to Dr. Capps for guidance on this whole function output question, and, funny enough, I found out the answer was obvious. It’s important that the output of these arithmetic operations are objects within the “Hyperdual” class I constructed — the point of having a “Hyperdual” class is to formalize a way for the computer to handle these numbers after all. Arriving at this realization, the next step is to consider ways to achieve my functions becoming — succeeding in making this a reality is the big next step and where I am at on this project. The solution can either be class-based where I modify exactly how the “Hyperdual” class operates, or function based where I find a way for my functions to obey the class.
Another problem I’m facing is storing the “Hyperdual” objects into arrays, matrices, and tensors so that one hyper-dual number can be added to a certain set of others simultaneously. A solution to this problem undoubtedly will require iteration... so it’s good that I’ve practiced my loops! Nevertheless, I need to solve the aforementioned problem first and then I can move on to arrays.
Overall Reflection
My overall take away from the work I have completed so far is very much a positive one. I look back when I originally pitched this idea and I know that there are so many things that I can now do that I couldn’t then. I feel like the skills I have acquired put me in a spot where I am comfortable self-starting other difficult undertaking — specifically those having to do with Python.
My satisfaction however isn’t full... I will continue working on the Python hyper-dual library because I want to complete it and see it through. This “deliverable” is but part of the motivation I originally had to embark on this project, the rest is still standing. The plan was never to complete the hyper-dual library in 10 weeks, so I am not set back by this. But I do feel that I won’t be done until there is no longer more I can do more to build my tool-kit and make contributions to the topic I love.
I owe a gigantic thank you to Dr. Capps for her time and effort. Finding time to work on this project been very difficult despite the immense desire and interest I have for it. Knowing this, I can’t express how lucky I am to have worked with such a committed and generous mentor in Dr. Capps. She made time each weak to meet with me for an hour or more providing one on one guidance. Her direction and confidence in me have truly contributed to the success I have had in growing as a programmer and as a problem solver.
I would also like to thank Dr. Wood for his flexibility and openness for allowing me to work on something so original.
I am proud of the work I have done, and I’m looking ahead excitedly at the rest I still have unfinished.
Addendum
I am now a full year removed from the completion of this project. Happily, I can say that the skeleton of the Hyper-dual library is finished. It can be accessed here on GitHub (@atmmod is the GitHub for Dr. Shannon Capp's lab — here's her group's website).
I owe this whole project so much — this is including the paper I've written documenting the work which has promoted thoughtful reflection. Python has become the most used tool in my toolbox! Seemingly everyday I am writing/contributing a script for some new project, work task, or school assignment.
See the list of Python-related programs I've written!
channel 02 / zotero feed
Literature Directory
A Zotero-inspired file finder focused on Atmospheric Chemistry and its descendants. Search, open folders, and read bibliography streams without leaving the console.
Montzka, Stephen A., Dutton, Geoff S., Yu, Pengfei, Ray, Eric, Portmann, Robert W., Daniel, John S., Kuijpers, Lambert, Hall, Brad D., Mondeel, Debra, Siso, Carolina, Nance, J. David, Rigby, Matt, Manning, Alistair J., Hu, Lei, Moore, Fred, Miller, Ben R., Elkins, James W. / Nature / 2018
Montzka, Stephen A., Dutton, Geoff S., Yu, Pengfei, Ray, Eric, Portmann, Robert W., Daniel, John S., Kuijpers, Lambert, Hall, Brad D., Mondeel, Debra, Siso, Carolina, Nance, J. David, Rigby, Matt, Manning, Alistair J., Hu, Lei, Moore, Fred, Miller, Ben R., Elkins, James W. / Nature / 2018
Fioletov, Vitali E., McLinden, Chris A., Krotkov, Nickolay, Li, Can, Joiner, Joanna, Theys, Nicolas, Carn, Simon, Moran, Mike D. / Atmospheric Chemistry and Physics / 2016
Theys, N., Yu, H., Franco, B., Clarisse, L., Volkamer, R., Cha, H., Kim, J., De Smedt, I., Stavrakou, T., van Gent, J., Van Roozendael, M. / Journal of Geophysical Research: Atmospheres / 2025
Lee, Y.-N., Zhou, X., Kleinman, L. I., Nunnermacker, L. J., Springston, S. R., Daum, P. H., Newman, L., Keigley, W. G., Holdren, M. W., Spicer, C. W., Young, V., Fu, B., Parrish, D. D., Holloway, J., Williams, J., Roberts, J. M., Ryerson, T. B., Fehsenfeld, F. C. / Journal of Geophysical Research: Atmospheres / 1998
Lee, Young Ro, Huey, L. Gregory, Tanner, David J., Roberts, James M., Wang, Yuhang, Wennberg, Paul O., Crounse, John D., Allen, Hannah, Apel, Eric C., Hills, Alan J., Hornbrook, Rebecca S., Elkins, James W., Hintsa, Eric, Moore, Fred, Hall, Samuel R., Ullmann, Kirk, McKain, Kathryn, Sweeney, Colm, Ryerson, Thomas B., Peischl, Jeff, Tompson, Chelsea R., Bourgeois, Ilann, Ray, Eric, Newman, Paul A., Strode, Sarah / Geophysical Research Letters / 2025
Li, Jingyi, Mao, Jingqiu, Min, Kyung-Eun, Washenfelder, Rebecca A., Brown, Steven S., Kaiser, Jennifer, Keutsch, Frank N., Volkamer, Rainer, Wolfe, Glenn M., Hanisco, Thomas F., Pollack, Ilana B., Ryerson, Thomas B., Graus, Martin, Gilman, Jessica B., Lerner, Brian M., Warneke, Carsten, de Gouw, Joost A., Middlebrook, Ann M., Liao, Jin, Welti, André, Henderson, Barron H., McNeill, V. Faye, Hall, Samuel R., Ullmann, Kirk, Donner, Leo J., Paulot, Fabien, Horowitz, Larry W. / Journal of Geophysical Research: Atmospheres / 2016
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Palmer, Paul I., Jacob, Daniel J., Chance, Kelly, Martin, Randall V., Spurr, Robert J. D., Kurosu, Thomas P., Bey, Isabelle, Yantosca, Robert, Fiore, Arlene, Li, Qinbin / Journal of Geophysical Research: Atmospheres / 2001
Zoogman, P., Liu, X., Suleiman, R. M., Pennington, W. F., Flittner, D. E., Al-Saadi, J. A., Hilton, B. B., Nicks, D. K., Newchurch, M. J., Carr, J. L., Janz, S. J., Andraschko, M. R., Arola, A., Baker, B. D., Canova, B. P., Chan Miller, C., Cohen, R. C., Davis, J. E., Dussault, M. E., Edwards, D. P., Fishman, J., Ghulam, A., González Abad, G., Grutter, M., Herman, J. R., Houck, J., Jacob, D. J., Joiner, J., Kerridge, B. J., Kim, J., Krotkov, N. A., Lamsal, L., Li, C., Lindfors, A., Martin, R. V., McElroy, C. T., McLinden, C., Natraj, V., Neil, D. O., Nowlan, C. R., O׳Sullivan, E. J., Palmer, P. I., Pierce, R. B., Pippin, M. R., Saiz-Lopez, A., Spurr, R. J. D., Szykman, J. J., Torres, O., Veefkind, J. P., Veihelmann, B., Wang, H., Wang, J., Chance, K. / Journal of Quantitative Spectroscopy and Radiative Transfer / 2017
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Zhou, S., Gonzalez, L., Leithead, A., Finewax, Z., Thalman, R., Vlasenko, A., Vagle, S., Miller, L. A., Li, S.-M., Bureekul, S., Furutani, H., Uematsu, M., Volkamer, R., Abbatt, J. / Atmospheric Chemistry and Physics / 2014
Forster, P., Storelvmo, T., Armour, K., Collins, W., Dufresne, J.-L., Frame, D., Lunt, D. J., Mauritsen, T., Palmer, M. D., Watanabe, M., Wild, M., Zhang, H. / 2023
Shingler, T., Dey, S., Sorooshian, A., Brechtel, F. J., Wang, Z., Metcalf, A., Coggon, M., Mülmenstädt, J., Russell, L. M., Jonsson, H. H., Seinfeld, J. H. / Atmospheric Measurement Techniques / 2012
Kupc, Agnieszka, Williamson, Christina J., Hodshire, Anna L., Kazil, Jan, Ray, Eric, Bui, T. Paul, Dollner, Maximilian, Froyd, Karl D., McKain, Kathryn, Rollins, Andrew, Schill, Gregory P., Thames, Alexander, Weinzierl, Bernadett B., Pierce, Jeffrey R., Brock, Charles A. / Atmospheric Chemistry and Physics / 2020
Croft, Betty, Martin, Randall V., Leaitch, W. Richard, Burkart, Julia, Chang, Rachel Y.-W., Collins, Douglas B., Hayes, Patrick L., Hodshire, Anna L., Huang, Lin, Kodros, John K., Moravek, Alexander, Mungall, Emma L., Murphy, Jennifer G., Sharma, Sangeeta, Tremblay, Samantha, Wentworth, Gregory R., Willis, Megan D., Abbatt, Jonathan P. D., Pierce, Jeffrey R. / Atmospheric Chemistry and Physics / 2019
Li, Kangwei, Guo, Yunlong, Nizkorodov, Sergey A., Rudich, Yinon, Angelaki, Maria, Wang, Xinke, An, Taicheng, Perrier, Sebastien, George, Christian / Proceedings of the National Academy of Sciences / 2023
Isaacman-VanWertz, Gabriel, Massoli, Paola, O’Brien, Rachel, Lim, Christopher, Franklin, Jonathan P., Moss, Joshua A., Hunter, James F., Nowak, John B., Canagaratna, Manjula R., Misztal, Pawel K., Arata, Caleb, Roscioli, Joseph R., Herndon, Scott T., Onasch, Timothy B., Lambe, Andrew T., Jayne, John T., Su, Luping, Knopf, Daniel A., Goldstein, Allen H., Worsnop, Douglas R., Kroll, Jesse H. / Nature Chemistry / 2018
Wennberg, Paul O., Bates, Kelvin H., Crounse, John D., Dodson, Leah G., McVay, Renee C., Mertens, Laura A., Nguyen, Tran B., Praske, Eric, Schwantes, Rebecca H., Smarte, Matthew D., St Clair, Jason M., Teng, Alexander P., Zhang, Xuan, Seinfeld, John H. / Chemical Reviews / 2018
Estimating Random Uncertainty in Airborne Flux Measurements over Alaskan Tundra: Update on the Flux Fragment Method in: Journal of Atmospheric and Oceanic Technology Volume 34 Issue 8 (2017)
Wolfe, Glenn M., Kawa, S. Randy, Hanisco, Thomas F., Hannun, Reem A., Newman, Paul A., Swanson, Andrew, Bailey, Steve, Barrick, John, Thornhill, K. Lee, Diskin, Glenn, DiGangi, Josh, Nowak, John B., Sorenson, Carl, Bland, Geoffrey, Yungel, James K., Swenson, Craig A. / Atmospheric Measurement Techniques / 2018
Schobesberger, Siegfried, D'Ambro, Emma L., Vettikkat, Lejish, Lee, Ben H., Peng, Qiaoyun, Bell, David M., Shilling, John E., Shrivastava, Manish, Pekour, Mikhail, Fast, Jerome, Thornton, Joel A. / Atmospheric Measurement Techniques / 2023
Brown, Lucy V., Pound, Ryan J., Ives, Lyndsay S., Jones, Matthew R., Andrews, Stephen J., Carpenter, Lucy J. / Atmospheric Chemistry and Physics / 2024
Helmig, D., Lang, E. K., Bariteau, L., Boylan, P., Fairall, C. W., Ganzeveld, L., Hare, J. E., Hueber, J., Pallandt, M. / Journal of Geophysical Research: Atmospheres / 2012
Determination of oceanic ozone deposition by ship-borne eddy covariance flux measurements
Bariteau, L, Helmig, D, Fairall, C W, Hare, J E, Hueber, J, Lang, E K / Atmos. Meas. Tech. / 2010
Anglada, Josep M., Hoffman, Gerald J., Slipchenko, Lyudmila V., M.Costa, Marilia, Ruiz-López, Manuel F., Francisco, Joseph S. / The Journal of Physical Chemistry A / 2013
Wolfe, Glenn M., Kawa, S. Randy, Hanisco, Thomas F., Hannun, Reem A., Newman, Paul A., Swanson, Andrew, Bailey, Steve, Barrick, John, Thornhill, K. Lee, Diskin, Glenn, DiGangi, Josh, Nowak, John B., Sorenson, Carl, Bland, Geoffrey, Yungel, James K., Swenson, Craig A. / Atmospheric Measurement Techniques / 2018
Conley, Stephen A., Faloona, Ian C., Lenschow, Donald H., Campos, Teresa, Heizer, Clifford, Weinheimer, Andrew, Cantrell, Christopher A., Mauldin, Roy L., Hornbrook, Rebecca S., Pollack, Ilana, Bandy, Alan / Journal of Atmospheric Chemistry / 2011
Verhaal, Hannah J., Krechmer, Jordan E., Veres, Patrick R., Neuman, J. Andrew, Ziemann, Paul J., De Gouw, Joost A., Jimenez, Jose L., Pagonis, Demetrios / ACS ES&T Air / 2025
Ji, Yi, Huey, L. Gregory, Tanner, David J., Lee, Young Ro, Veres, Patrick R., Neuman, J. Andrew, Wang, Yuhang, Wang, Xinming / Atmospheric Measurement Techniques / 2020
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
De Haan, David O., Jansen, Kevin, Rynaski, Alec D., Sueme, W. Ryan P., Torkelson, Ashley K., Czer, Eric T., Kim, Alexander K., Rafla, Michael A., De Haan, Audrey C., Tolbert, Margaret A. / Environmental Science & Technology / 2020
Chan Miller, Christopher, Jacob, Daniel J., Marais, Eloise A., Yu, Karen, Travis, Katherine R., Kim, Patrick S., Fisher, Jenny A., Zhu, Lei, Wolfe, Glenn M., Hanisco, Thomas F., Keutsch, Frank N., Kaiser, Jennifer, Min, Kyung-Eun, Brown, Steven S., Washenfelder, Rebecca A., González Abad, Gonzalo, Chance, Kelly / Atmospheric Chemistry and Physics / 2017
Kim, Dongwook, Cho, Changmin, Jeong, Seokhan, Lee, Soojin, Nault, Benjamin A., Campuzano-Jost, Pedro, Day, Douglas A., Schroder, Jason C., Jimenez, Jose L., Volkamer, Rainer, Blake, Donald R., Wisthaler, Armin, Fried, Alan, DiGangi, Joshua P., Diskin, Glenn S., Pusede, Sally E., Hall, Samuel R., Ullmann, Kirk, Huey, L. Gregory, Tanner, David J., Dibb, Jack, Knote, Christoph J., Min, Kyung-Eun / Atmospheric Chemistry and Physics / 2022
Heald, Colette L., Jacob, Daniel J., Park, Rokjin J., Russell, Lynn M., Huebert, Barry J., Seinfeld, John H., Liao, Hong, Weber, Rodney J. / Geophysical Research Letters / 2005
Keene, William C., Galloway, James N., Likens, Gene E., Deviney, Frank A., Mikkelsen, Kerri N., Moody, Jennie L., Maben, John R. / Journal of the Atmospheric Sciences / 2015
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Chan Miller, Christopher, Jacob, Daniel J., Marais, Eloise A., Yu, Karen, Travis, Katherine R., Kim, Patrick S., Fisher, Jenny A., Zhu, Lei, Wolfe, Glenn M., Hanisco, Thomas F., Keutsch, Frank N., Kaiser, Jennifer, Min, Kyung-Eun, Brown, Steven S., Washenfelder, Rebecca A., González Abad, Gonzalo, Chance, Kelly / Atmospheric Chemistry and Physics / 2017
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Temporal and spatial variability of glyoxal as observed from space
Vrekoussis, M, Wittrock, F, Richter, A, Burrows, J P, Cho, Cho / Atmos. Chem. Phys. / 2009
MacDonald, S. M., Oetjen, H., Mahajan, A. S., Whalley, L. K., Edwards, P. M., Heard, D. E., Jones, C. E., Plane, J. M. C. / Atmospheric Chemistry and Physics / 2012
Kaiser, J., Wolfe, G. M., Min, K. E., Brown, S. S., Miller, C. C., Jacob, D. J., deGouw, J. A., Graus, M., Hanisco, T. F., Holloway, J., Peischl, J., Pollack, I. B., Ryerson, T. B., Warneke, C., Washenfelder, R. A., Keutsch, F. N. / Atmospheric Chemistry and Physics / 2015
Alvarado, L. M. A., Richter, A., Vrekoussis, M., Wittrock, F., Hilboll, A., Schreier, S. F., Burrows, J. P. / Atmospheric Measurement Techniques / 2014
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Kim, Dongwook, Cho, Changmin, Jeong, Seokhan, Lee, Soojin, Nault, Benjamin A., Campuzano-Jost, Pedro, Day, Douglas A., Schroder, Jason C., Jimenez, Jose L., Volkamer, Rainer, Blake, Donald R., Wisthaler, Armin, Fried, Alan, DiGangi, Joshua P., Diskin, Glenn S., Pusede, Sally E., Hall, Samuel R., Ullmann, Kirk, Huey, L. Gregory, Tanner, David J., Dibb, Jack, Knote, Christoph J., Min, Kyung-Eun / Atmospheric Chemistry and Physics / 2022
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Myriokefalitakis, S., Vrekoussis, M., Tsigaridis, K., Wittrock, F., Richter, A., Brühl, C., Volkamer, R., Burrows, J. P., Kanakidou, M. / Atmospheric Chemistry and Physics / 2008
Thunis, P., Clappier, A., Tarrason, L., Cuvelier, C., Monteiro, A., Pisoni, E., Wesseling, J., Belis, C. A., Pirovano, G., Janssen, S., Guerreiro, C., Peduzzi, E. / Environment International / 2019
Fowler, David, Brimblecombe, Peter, Burrows, John, Heal, Mathew R., Grennfelt, Peringe, Stevenson, David S., Jowett, Alan, Nemitz, Eiko, Coyle, Mhairi, Liu, Xuejun, Chang, Yunhua, Fuller, Gary W., Sutton, Mark A., Klimont, Zbigniew, Unsworth, Mike H., Vieno, Massimo / Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences / 2020
Environmental and Health Impacts of Air Pollution: A Review
Manisalidis, Ioannis, Stavropoulou, Elisavet, Stavropoulos, Agathangelos, Bezirtzoglou, Eugenia / Frontiers in Public Health / 2020
Ban-Weiss, George A., McLaughlin, John P., Harley, Robert A., Lunden, Melissa M., Kirchstetter, Thomas W., Kean, Andrew J., Strawa, Anthony W., Stevenson, Eric D., Kendall, Gary R. / Atmospheric Environment / 2008
Dallmann, Timothy R., DeMartini, Steven J., Kirchstetter, Thomas W., Herndon, Scott C., Onasch, Timothy B., Wood, Ezra C., Harley, Robert A. / Environmental Science & Technology / 2012
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Lee, Ben H., Lopez-Hilfiker, Felipe D., Veres, Patrick R., McDuffie, Erin E., Fibiger, Dorothy L., Sparks, Tamara L., Ebben, Carlena J., Green, Jaime R., Schroder, Jason C., Campuzano-Jost, Pedro, Iyer, Siddharth, D'Ambro, Emma L., Schobesberger, Siegfried, Brown, Steven S., Wooldridge, Paul J., Cohen, Ronald C., Fiddler, Marc N., Bililign, Solomon, Jimenez, Jose L., Kurtén, Theo, Weinheimer, Andrew J., Jaegle, Lyatt, Thornton, Joel A. / Journal of Geophysical Research: Atmospheres / 2018
Sulbaek Andersen, M. P., Nielsen, O. J., Hurley, M. D., Ball, J. C., Wallington, T. J., Ellis, D. A., Martin, J. W., Mabury, S. A. / The Journal of Physical Chemistry A / 2005
Robinson, Michael A., Neuman, J. Andrew, Huey, L. Gregory, Roberts, James M., Brown, Steven S., Veres, Patrick R. / Atmospheric Measurement Techniques / 2022
Vyas, Sandhya M., Kania-Korwel, Izabela, Lehmler, Hans-Joachim / Journal of Environmental Science and Health. Part A, Toxic/Hazardous Substances & Environmental Engineering / 2007
Our Current Understanding of the Human Health and Environmental Risks of PFAS
US EPA, OW / 2021
A Recipe for Making Clouds | METEO 3: Introductory Meteorology
Unknown
Federal Register :: PFAS National Primary Drinking Water Regulation
De Haan, David O., Hawkins, Lelia N., Weber, Jacob A., Moul, Benjamin T., Hui, Samson, Cox, Santeh A., Esse, Jennifer U., Skochdopole, Nathan R., Lynch, Carys P., De Haan, Audrey C., Le, Chen, Cazaunau, Mathieu, Bergé, Antonin, Pangui, Edouard, Heuser, Johannes, Doussin, Jean-François, Picquet-Varrault, Bénédicte / ACS ES&T Air / 2024
Non-combustion Emissions of Organic Acids at a site near Boise, Idaho
Gaston, Cassandra J., Prospero, Joseph M., Foley, Kristen, Pye, Havala O. T., Custals, Lillian, Blades, Edmund, Sealy, Peter, Christie, James A. / Atmospheric Chemistry and Physics / 2024
Jenks, Olivia J., DeVault, Marla P., Ziola, Anna C., Morris, Melissa A., Schueneman, Melinda K., Stark, Harald, Jimenez, Jose L., Ziemann, Paul J., de Gouw, Joost A. / ACS Earth and Space Chemistry / 2023
Katz, Daniel John, Abdelhamid, Aroob, Stark, Harald, Canagaratna, Manjula R., Worsnop, Douglas R., Browne, Eleanor C. / Atmospheric Chemistry and Physics / 2023
Pühl, Magdalena, Roiger, Anke, Fiehn, Alina, Gorchov Negron, Alan M., Kort, Eric A., Schwietzke, Stefan, Pisso, Ignacio, Foulds, Amy, Lee, James, France, James L., Jones, Anna E., Lowry, Dave, Fisher, Rebecca E., Huang, Langwen, Shaw, Jacob, Bateson, Prudence, Andrews, Stephen, Young, Stuart, Dominutti, Pamela, Lachlan-Cope, Tom, Weiss, Alexandra, Allen, Grant / Atmospheric Chemistry and Physics / 2024
zotero / High NOₓ high P(O₃)
High NOₓ high P(O₃)
Nitrogen Oxides Control Regulations | Ground-level Ozone | New England | US EPA
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J., Ball, Stephen M., Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / 2022
Iyer, Siddharth, Reiman, Heidi, Møller, Kristian H., Rissanen, Matti P., Kjaergaard, Henrik G., Kurtén, Theo / The Journal of Physical Chemistry A / 2018
Lindsay, Andrew J., Anderson, Daniel C., Wernis, Rebecca A., Liang, Yutong, Goldstein, Allen H., Herndon, Scott C., Roscioli, Joseph R., Dyroff, Christoph, Fortner, Ed C., Croteau, Philip L., Majluf, Francesca, Krechmer, Jordan E., Yacovitch, Tara I., Knighton, Walter B., Wood, Ezra C. / Atmospheric Chemistry and Physics / 2022
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J., Ball, Stephen M., Cox, Sam, Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / Atmospheric Chemistry and Physics / 2023
Whalley, Lisa K., Stone, Daniel, Dunmore, Rachel, Hamilton, Jacqueline, Hopkins, James R., Lee, James D., Lewis, Alastair C., Williams, Paul, Kleffmann, Jörg, Laufs, Sebastian, Woodward-Massey, Robert, Heard, Dwayne E. / Atmospheric Chemistry and Physics / 2018
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J1, Cox, Sam, Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / 2022
Mao, J., Ren, X., Zhang, L., Van Duin, D. M., Cohen, R. C., Park, J.-H., Goldstein, A. H., Paulot, F., Beaver, M. R., Crounse, J. D., Wennberg, P. O., DiGangi, J. P., Henry, S. B., Keutsch, F. N., Park, C., Schade, G. W., Wolfe, G. M., Thornton, J. A., Brune, W. H. / Atmospheric Chemistry and Physics / 2012
Mao, J., Jacob, D. J., Evans, M. J., Olson, J. R., Ren, X., Brune, W. H., Clair, J. M. St, Crounse, J. D., Spencer, K. M., Beaver, M. R., Wennberg, P. O., Cubison, M. J., Jimenez, J. L., Fried, A., Weibring, P., Walega, J. G., Hall, S. R., Weinheimer, A. J., Cohen, R. C., Chen, G., Crawford, J. H., McNaughton, C., Clarke, A. D., Jaeglé, L., Fisher, J. A., Yantosca, R. M., Le Sager, P., Carouge, C. / Atmospheric Chemistry and Physics / 2010
Brune, W. H., Baier, B. C., Thomas, J., Ren, X., Cohen, R. C., Pusede, S. E., Browne, E. C., Goldstein, A. H., Gentner, D. R., Keutsch, F. N., Thornton, J. A., Harrold, S., Lopez-Hilfiker, F. D., Wennberg, P. O. / Faraday Discussions / 2016
Martinez, M., Harder, H., Kovacs, T. A., Simpas, J. B., Bassis, J., Lesher, R., Brune, W. H., Frost, G. J., Williams, E. J., Stroud, C. A., Jobson, B. T., Roberts, J. M., Hall, S. R., Shetter, R. E., Wert, B., Fried, A., Alicke, B., Stutz, J., Young, V. L., White, A. B., Zamora, R. J. / Journal of Geophysical Research: Atmospheres / 2003
Griffith, S. M., Hansen, R. F., Dusanter, S., Michoud, V., Gilman, J. B., Kuster, W. C., Veres, P. R., Graus, M., de Gouw, J. A., Roberts, J., Young, C., Washenfelder, R., Brown, S. S., Thalman, R., Waxman, E., Volkamer, R., Tsai, C., Stutz, J., Flynn, J. H., Grossberg, N., Lefer, B., Alvarez, S. L., Rappenglueck, B., Mielke, L. H., Osthoff, H. D., Stevens, P. S. / Journal of Geophysical Research: Atmospheres / 2016
Spencer, K. M., McCabe, D. C., Crounse, J. D., Olson, J. R., Crawford, J. H., Weinheimer, A. J., Knapp, D. J., Montzka, D. D., Cantrell, C. A., Hornbrook, R. S., Mauldin III, R. L., Wennberg, P. O. / Atmospheric Chemistry and Physics / 2009
ACP - Inferring ozone production in an urban atmosphere using measurements of peroxynitric acid
Ren, Xinrong, van Duin, Diana, Cazorla, Maria, Chen, Shuang, Mao, Jingqiu, Zhang, Li, Brune, William H., Flynn, James H., Grossberg, Nicole, Lefer, Barry L., Rappenglück, Bernhard, Wong, Kam W., Tsai, Catalina, Stutz, Jochen, Dibb, Jack E., Thomas Jobson, B., Luke, Winston T., Kelley, Paul / Journal of Geophysical Research: Atmospheres / 2013
Ban-Weiss, George A., McLaughlin, John P., Harley, Robert A., Lunden, Melissa M., Kirchstetter, Thomas W., Kean, Andrew J., Strawa, Anthony W., Stevenson, Eric D., Kendall, Gary R. / Atmospheric Environment / 2008
Dallmann, Timothy R., DeMartini, Steven J., Kirchstetter, Thomas W., Herndon, Scott C., Onasch, Timothy B., Wood, Ezra C., Harley, Robert A. / Environmental Science & Technology / 2012
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Lee, Ben H., Lopez-Hilfiker, Felipe D., Veres, Patrick R., McDuffie, Erin E., Fibiger, Dorothy L., Sparks, Tamara L., Ebben, Carlena J., Green, Jaime R., Schroder, Jason C., Campuzano-Jost, Pedro, Iyer, Siddharth, D'Ambro, Emma L., Schobesberger, Siegfried, Brown, Steven S., Wooldridge, Paul J., Cohen, Ronald C., Fiddler, Marc N., Bililign, Solomon, Jimenez, Jose L., Kurtén, Theo, Weinheimer, Andrew J., Jaegle, Lyatt, Thornton, Joel A. / Journal of Geophysical Research: Atmospheres / 2018
Sulbaek Andersen, M. P., Nielsen, O. J., Hurley, M. D., Ball, J. C., Wallington, T. J., Ellis, D. A., Martin, J. W., Mabury, S. A. / The Journal of Physical Chemistry A / 2005
Robinson, Michael A., Neuman, J. Andrew, Huey, L. Gregory, Roberts, James M., Brown, Steven S., Veres, Patrick R. / Atmospheric Measurement Techniques / 2022
Vyas, Sandhya M., Kania-Korwel, Izabela, Lehmler, Hans-Joachim / Journal of Environmental Science and Health. Part A, Toxic/Hazardous Substances & Environmental Engineering / 2007
Our Current Understanding of the Human Health and Environmental Risks of PFAS
US EPA, OW / 2021
A Recipe for Making Clouds | METEO 3: Introductory Meteorology
Unknown
Federal Register :: PFAS National Primary Drinking Water Regulation
Montzka, Stephen A., Dutton, Geoff S., Yu, Pengfei, Ray, Eric, Portmann, Robert W., Daniel, John S., Kuijpers, Lambert, Hall, Brad D., Mondeel, Debra, Siso, Carolina, Nance, J. David, Rigby, Matt, Manning, Alistair J., Hu, Lei, Moore, Fred, Miller, Ben R., Elkins, James W. / Nature / 2018
Fioletov, Vitali E., McLinden, Chris A., Krotkov, Nickolay, Li, Can, Joiner, Joanna, Theys, Nicolas, Carn, Simon, Moran, Mike D. / Atmospheric Chemistry and Physics / 2016
Theys, N., Yu, H., Franco, B., Clarisse, L., Volkamer, R., Cha, H., Kim, J., De Smedt, I., Stavrakou, T., van Gent, J., Van Roozendael, M. / Journal of Geophysical Research: Atmospheres / 2025
Lee, Y.-N., Zhou, X., Kleinman, L. I., Nunnermacker, L. J., Springston, S. R., Daum, P. H., Newman, L., Keigley, W. G., Holdren, M. W., Spicer, C. W., Young, V., Fu, B., Parrish, D. D., Holloway, J., Williams, J., Roberts, J. M., Ryerson, T. B., Fehsenfeld, F. C. / Journal of Geophysical Research: Atmospheres / 1998
Lee, Young Ro, Huey, L. Gregory, Tanner, David J., Roberts, James M., Wang, Yuhang, Wennberg, Paul O., Crounse, John D., Allen, Hannah, Apel, Eric C., Hills, Alan J., Hornbrook, Rebecca S., Elkins, James W., Hintsa, Eric, Moore, Fred, Hall, Samuel R., Ullmann, Kirk, McKain, Kathryn, Sweeney, Colm, Ryerson, Thomas B., Peischl, Jeff, Tompson, Chelsea R., Bourgeois, Ilann, Ray, Eric, Newman, Paul A., Strode, Sarah / Geophysical Research Letters / 2025
Li, Jingyi, Mao, Jingqiu, Min, Kyung-Eun, Washenfelder, Rebecca A., Brown, Steven S., Kaiser, Jennifer, Keutsch, Frank N., Volkamer, Rainer, Wolfe, Glenn M., Hanisco, Thomas F., Pollack, Ilana B., Ryerson, Thomas B., Graus, Martin, Gilman, Jessica B., Lerner, Brian M., Warneke, Carsten, de Gouw, Joost A., Middlebrook, Ann M., Liao, Jin, Welti, André, Henderson, Barron H., McNeill, V. Faye, Hall, Samuel R., Ullmann, Kirk, Donner, Leo J., Paulot, Fabien, Horowitz, Larry W. / Journal of Geophysical Research: Atmospheres / 2016
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Palmer, Paul I., Jacob, Daniel J., Chance, Kelly, Martin, Randall V., Spurr, Robert J. D., Kurosu, Thomas P., Bey, Isabelle, Yantosca, Robert, Fiore, Arlene, Li, Qinbin / Journal of Geophysical Research: Atmospheres / 2001
Zoogman, P., Liu, X., Suleiman, R. M., Pennington, W. F., Flittner, D. E., Al-Saadi, J. A., Hilton, B. B., Nicks, D. K., Newchurch, M. J., Carr, J. L., Janz, S. J., Andraschko, M. R., Arola, A., Baker, B. D., Canova, B. P., Chan Miller, C., Cohen, R. C., Davis, J. E., Dussault, M. E., Edwards, D. P., Fishman, J., Ghulam, A., González Abad, G., Grutter, M., Herman, J. R., Houck, J., Jacob, D. J., Joiner, J., Kerridge, B. J., Kim, J., Krotkov, N. A., Lamsal, L., Li, C., Lindfors, A., Martin, R. V., McElroy, C. T., McLinden, C., Natraj, V., Neil, D. O., Nowlan, C. R., O׳Sullivan, E. J., Palmer, P. I., Pierce, R. B., Pippin, M. R., Saiz-Lopez, A., Spurr, R. J. D., Szykman, J. J., Torres, O., Veefkind, J. P., Veihelmann, B., Wang, H., Wang, J., Chance, K. / Journal of Quantitative Spectroscopy and Radiative Transfer / 2017
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Zhou, S., Gonzalez, L., Leithead, A., Finewax, Z., Thalman, R., Vlasenko, A., Vagle, S., Miller, L. A., Li, S.-M., Bureekul, S., Furutani, H., Uematsu, M., Volkamer, R., Abbatt, J. / Atmospheric Chemistry and Physics / 2014
Forster, P., Storelvmo, T., Armour, K., Collins, W., Dufresne, J.-L., Frame, D., Lunt, D. J., Mauritsen, T., Palmer, M. D., Watanabe, M., Wild, M., Zhang, H. / 2023
Shingler, T., Dey, S., Sorooshian, A., Brechtel, F. J., Wang, Z., Metcalf, A., Coggon, M., Mülmenstädt, J., Russell, L. M., Jonsson, H. H., Seinfeld, J. H. / Atmospheric Measurement Techniques / 2012
Kupc, Agnieszka, Williamson, Christina J., Hodshire, Anna L., Kazil, Jan, Ray, Eric, Bui, T. Paul, Dollner, Maximilian, Froyd, Karl D., McKain, Kathryn, Rollins, Andrew, Schill, Gregory P., Thames, Alexander, Weinzierl, Bernadett B., Pierce, Jeffrey R., Brock, Charles A. / Atmospheric Chemistry and Physics / 2020
Croft, Betty, Martin, Randall V., Leaitch, W. Richard, Burkart, Julia, Chang, Rachel Y.-W., Collins, Douglas B., Hayes, Patrick L., Hodshire, Anna L., Huang, Lin, Kodros, John K., Moravek, Alexander, Mungall, Emma L., Murphy, Jennifer G., Sharma, Sangeeta, Tremblay, Samantha, Wentworth, Gregory R., Willis, Megan D., Abbatt, Jonathan P. D., Pierce, Jeffrey R. / Atmospheric Chemistry and Physics / 2019
Li, Kangwei, Guo, Yunlong, Nizkorodov, Sergey A., Rudich, Yinon, Angelaki, Maria, Wang, Xinke, An, Taicheng, Perrier, Sebastien, George, Christian / Proceedings of the National Academy of Sciences / 2023
Isaacman-VanWertz, Gabriel, Massoli, Paola, O’Brien, Rachel, Lim, Christopher, Franklin, Jonathan P., Moss, Joshua A., Hunter, James F., Nowak, John B., Canagaratna, Manjula R., Misztal, Pawel K., Arata, Caleb, Roscioli, Joseph R., Herndon, Scott T., Onasch, Timothy B., Lambe, Andrew T., Jayne, John T., Su, Luping, Knopf, Daniel A., Goldstein, Allen H., Worsnop, Douglas R., Kroll, Jesse H. / Nature Chemistry / 2018
Wennberg, Paul O., Bates, Kelvin H., Crounse, John D., Dodson, Leah G., McVay, Renee C., Mertens, Laura A., Nguyen, Tran B., Praske, Eric, Schwantes, Rebecca H., Smarte, Matthew D., St Clair, Jason M., Teng, Alexander P., Zhang, Xuan, Seinfeld, John H. / Chemical Reviews / 2018
Estimating Random Uncertainty in Airborne Flux Measurements over Alaskan Tundra: Update on the Flux Fragment Method in: Journal of Atmospheric and Oceanic Technology Volume 34 Issue 8 (2017)
Wolfe, Glenn M., Kawa, S. Randy, Hanisco, Thomas F., Hannun, Reem A., Newman, Paul A., Swanson, Andrew, Bailey, Steve, Barrick, John, Thornhill, K. Lee, Diskin, Glenn, DiGangi, Josh, Nowak, John B., Sorenson, Carl, Bland, Geoffrey, Yungel, James K., Swenson, Craig A. / Atmospheric Measurement Techniques / 2018
Schobesberger, Siegfried, D'Ambro, Emma L., Vettikkat, Lejish, Lee, Ben H., Peng, Qiaoyun, Bell, David M., Shilling, John E., Shrivastava, Manish, Pekour, Mikhail, Fast, Jerome, Thornton, Joel A. / Atmospheric Measurement Techniques / 2023
Brown, Lucy V., Pound, Ryan J., Ives, Lyndsay S., Jones, Matthew R., Andrews, Stephen J., Carpenter, Lucy J. / Atmospheric Chemistry and Physics / 2024
Helmig, D., Lang, E. K., Bariteau, L., Boylan, P., Fairall, C. W., Ganzeveld, L., Hare, J. E., Hueber, J., Pallandt, M. / Journal of Geophysical Research: Atmospheres / 2012
Determination of oceanic ozone deposition by ship-borne eddy covariance flux measurements
Bariteau, L, Helmig, D, Fairall, C W, Hare, J E, Hueber, J, Lang, E K / Atmos. Meas. Tech. / 2010
Anglada, Josep M., Hoffman, Gerald J., Slipchenko, Lyudmila V., M.Costa, Marilia, Ruiz-López, Manuel F., Francisco, Joseph S. / The Journal of Physical Chemistry A / 2013
Wolfe, Glenn M., Kawa, S. Randy, Hanisco, Thomas F., Hannun, Reem A., Newman, Paul A., Swanson, Andrew, Bailey, Steve, Barrick, John, Thornhill, K. Lee, Diskin, Glenn, DiGangi, Josh, Nowak, John B., Sorenson, Carl, Bland, Geoffrey, Yungel, James K., Swenson, Craig A. / Atmospheric Measurement Techniques / 2018
Conley, Stephen A., Faloona, Ian C., Lenschow, Donald H., Campos, Teresa, Heizer, Clifford, Weinheimer, Andrew, Cantrell, Christopher A., Mauldin, Roy L., Hornbrook, Rebecca S., Pollack, Ilana, Bandy, Alan / Journal of Atmospheric Chemistry / 2011
Verhaal, Hannah J., Krechmer, Jordan E., Veres, Patrick R., Neuman, J. Andrew, Ziemann, Paul J., De Gouw, Joost A., Jimenez, Jose L., Pagonis, Demetrios / ACS ES&T Air / 2025
Ji, Yi, Huey, L. Gregory, Tanner, David J., Lee, Young Ro, Veres, Patrick R., Neuman, J. Andrew, Wang, Yuhang, Wang, Xinming / Atmospheric Measurement Techniques / 2020
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
De Haan, David O., Jansen, Kevin, Rynaski, Alec D., Sueme, W. Ryan P., Torkelson, Ashley K., Czer, Eric T., Kim, Alexander K., Rafla, Michael A., De Haan, Audrey C., Tolbert, Margaret A. / Environmental Science & Technology / 2020
Chan Miller, Christopher, Jacob, Daniel J., Marais, Eloise A., Yu, Karen, Travis, Katherine R., Kim, Patrick S., Fisher, Jenny A., Zhu, Lei, Wolfe, Glenn M., Hanisco, Thomas F., Keutsch, Frank N., Kaiser, Jennifer, Min, Kyung-Eun, Brown, Steven S., Washenfelder, Rebecca A., González Abad, Gonzalo, Chance, Kelly / Atmospheric Chemistry and Physics / 2017
Kim, Dongwook, Cho, Changmin, Jeong, Seokhan, Lee, Soojin, Nault, Benjamin A., Campuzano-Jost, Pedro, Day, Douglas A., Schroder, Jason C., Jimenez, Jose L., Volkamer, Rainer, Blake, Donald R., Wisthaler, Armin, Fried, Alan, DiGangi, Joshua P., Diskin, Glenn S., Pusede, Sally E., Hall, Samuel R., Ullmann, Kirk, Huey, L. Gregory, Tanner, David J., Dibb, Jack, Knote, Christoph J., Min, Kyung-Eun / Atmospheric Chemistry and Physics / 2022
Heald, Colette L., Jacob, Daniel J., Park, Rokjin J., Russell, Lynn M., Huebert, Barry J., Seinfeld, John H., Liao, Hong, Weber, Rodney J. / Geophysical Research Letters / 2005
Keene, William C., Galloway, James N., Likens, Gene E., Deviney, Frank A., Mikkelsen, Kerri N., Moody, Jennie L., Maben, John R. / Journal of the Atmospheric Sciences / 2015
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Chan Miller, Christopher, Jacob, Daniel J., Marais, Eloise A., Yu, Karen, Travis, Katherine R., Kim, Patrick S., Fisher, Jenny A., Zhu, Lei, Wolfe, Glenn M., Hanisco, Thomas F., Keutsch, Frank N., Kaiser, Jennifer, Min, Kyung-Eun, Brown, Steven S., Washenfelder, Rebecca A., González Abad, Gonzalo, Chance, Kelly / Atmospheric Chemistry and Physics / 2017
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Temporal and spatial variability of glyoxal as observed from space
Vrekoussis, M, Wittrock, F, Richter, A, Burrows, J P, Cho, Cho / Atmos. Chem. Phys. / 2009
MacDonald, S. M., Oetjen, H., Mahajan, A. S., Whalley, L. K., Edwards, P. M., Heard, D. E., Jones, C. E., Plane, J. M. C. / Atmospheric Chemistry and Physics / 2012
Kaiser, J., Wolfe, G. M., Min, K. E., Brown, S. S., Miller, C. C., Jacob, D. J., deGouw, J. A., Graus, M., Hanisco, T. F., Holloway, J., Peischl, J., Pollack, I. B., Ryerson, T. B., Warneke, C., Washenfelder, R. A., Keutsch, F. N. / Atmospheric Chemistry and Physics / 2015
Alvarado, L. M. A., Richter, A., Vrekoussis, M., Wittrock, F., Hilboll, A., Schreier, S. F., Burrows, J. P. / Atmospheric Measurement Techniques / 2014
Volkamer, R., Baidar, S., Campos, T. L., Coburn, S., DiGangi, J. P., Dix, B., Eloranta, E. W., Koenig, T. K., Morley, B., Ortega, I., Pierce, B. R., Reeves, M., Sinreich, R., Wang, S., Zondlo, M. A., Romashkin, P. A. / Atmospheric Measurement Techniques / 2015
Kim, Dongwook, Cho, Changmin, Jeong, Seokhan, Lee, Soojin, Nault, Benjamin A., Campuzano-Jost, Pedro, Day, Douglas A., Schroder, Jason C., Jimenez, Jose L., Volkamer, Rainer, Blake, Donald R., Wisthaler, Armin, Fried, Alan, DiGangi, Joshua P., Diskin, Glenn S., Pusede, Sally E., Hall, Samuel R., Ullmann, Kirk, Huey, L. Gregory, Tanner, David J., Dibb, Jack, Knote, Christoph J., Min, Kyung-Eun / Atmospheric Chemistry and Physics / 2022
Thalman, R., Baeza-Romero, M. T., Ball, S. M., Borrás, E., Daniels, M. J. S., Goodall, I. C. A., Henry, S. B., Karl, T., Keutsch, F. N., Kim, S., Mak, J., Monks, P. S., Muñoz, A., Orlando, J., Peppe, S., Rickard, A. R., Ródenas, M., Sánchez, P., Seco, R., Su, L., Tyndall, G., Vázquez, M., Vera, T., Waxman, E., Volkamer, R. / Atmospheric Measurement Techniques / 2015
Myriokefalitakis, S., Vrekoussis, M., Tsigaridis, K., Wittrock, F., Richter, A., Brühl, C., Volkamer, R., Burrows, J. P., Kanakidou, M. / Atmospheric Chemistry and Physics / 2008
Thunis, P., Clappier, A., Tarrason, L., Cuvelier, C., Monteiro, A., Pisoni, E., Wesseling, J., Belis, C. A., Pirovano, G., Janssen, S., Guerreiro, C., Peduzzi, E. / Environment International / 2019
Fowler, David, Brimblecombe, Peter, Burrows, John, Heal, Mathew R., Grennfelt, Peringe, Stevenson, David S., Jowett, Alan, Nemitz, Eiko, Coyle, Mhairi, Liu, Xuejun, Chang, Yunhua, Fuller, Gary W., Sutton, Mark A., Klimont, Zbigniew, Unsworth, Mike H., Vieno, Massimo / Philosophical Transactions of the Royal Society A: Mathematical, Physical and Engineering Sciences / 2020
Environmental and Health Impacts of Air Pollution: A Review
Manisalidis, Ioannis, Stavropoulou, Elisavet, Stavropoulos, Agathangelos, Bezirtzoglou, Eugenia / Frontiers in Public Health / 2020
Ban-Weiss, George A., McLaughlin, John P., Harley, Robert A., Lunden, Melissa M., Kirchstetter, Thomas W., Kean, Andrew J., Strawa, Anthony W., Stevenson, Eric D., Kendall, Gary R. / Atmospheric Environment / 2008
Dallmann, Timothy R., DeMartini, Steven J., Kirchstetter, Thomas W., Herndon, Scott C., Onasch, Timothy B., Wood, Ezra C., Harley, Robert A. / Environmental Science & Technology / 2012
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Lee, Ben H., Lopez-Hilfiker, Felipe D., Veres, Patrick R., McDuffie, Erin E., Fibiger, Dorothy L., Sparks, Tamara L., Ebben, Carlena J., Green, Jaime R., Schroder, Jason C., Campuzano-Jost, Pedro, Iyer, Siddharth, D'Ambro, Emma L., Schobesberger, Siegfried, Brown, Steven S., Wooldridge, Paul J., Cohen, Ronald C., Fiddler, Marc N., Bililign, Solomon, Jimenez, Jose L., Kurtén, Theo, Weinheimer, Andrew J., Jaegle, Lyatt, Thornton, Joel A. / Journal of Geophysical Research: Atmospheres / 2018
Sulbaek Andersen, M. P., Nielsen, O. J., Hurley, M. D., Ball, J. C., Wallington, T. J., Ellis, D. A., Martin, J. W., Mabury, S. A. / The Journal of Physical Chemistry A / 2005
Robinson, Michael A., Neuman, J. Andrew, Huey, L. Gregory, Roberts, James M., Brown, Steven S., Veres, Patrick R. / Atmospheric Measurement Techniques / 2022
Vyas, Sandhya M., Kania-Korwel, Izabela, Lehmler, Hans-Joachim / Journal of Environmental Science and Health. Part A, Toxic/Hazardous Substances & Environmental Engineering / 2007
Our Current Understanding of the Human Health and Environmental Risks of PFAS
US EPA, OW / 2021
A Recipe for Making Clouds | METEO 3: Introductory Meteorology
Unknown
Federal Register :: PFAS National Primary Drinking Water Regulation
Ban-Weiss, George A., McLaughlin, John P., Harley, Robert A., Lunden, Melissa M., Kirchstetter, Thomas W., Kean, Andrew J., Strawa, Anthony W., Stevenson, Eric D., Kendall, Gary R. / Atmospheric Environment / 2008
Dallmann, Timothy R., DeMartini, Steven J., Kirchstetter, Thomas W., Herndon, Scott C., Onasch, Timothy B., Wood, Ezra C., Harley, Robert A. / Environmental Science & Technology / 2012
Bertram, T. H., Kimmel, J. R., Crisp, T. A., Ryder, O. S., Yatavelli, R. L. N., Thornton, J. A., Cubison, M. J., Gonin, M., Worsnop, D. R. / Atmospheric Measurement Techniques / 2011
Veres, P. R., Roberts, J. M., Wild, R. J., Edwards, P. M., Brown, S. S., Bates, T. S., Quinn, P. K., Johnson, J. E., Zamora, R. J., de Gouw, J. / Atmospheric Chemistry and Physics / 2015
Lee, Ben H., Lopez-Hilfiker, Felipe D., Mohr, Claudia, Kurtén, Theo, Worsnop, Douglas R., Thornton, Joel A. / Environmental Science & Technology / 2014
Lee, Ben H., Lopez-Hilfiker, Felipe D., Veres, Patrick R., McDuffie, Erin E., Fibiger, Dorothy L., Sparks, Tamara L., Ebben, Carlena J., Green, Jaime R., Schroder, Jason C., Campuzano-Jost, Pedro, Iyer, Siddharth, D'Ambro, Emma L., Schobesberger, Siegfried, Brown, Steven S., Wooldridge, Paul J., Cohen, Ronald C., Fiddler, Marc N., Bililign, Solomon, Jimenez, Jose L., Kurtén, Theo, Weinheimer, Andrew J., Jaegle, Lyatt, Thornton, Joel A. / Journal of Geophysical Research: Atmospheres / 2018
Sulbaek Andersen, M. P., Nielsen, O. J., Hurley, M. D., Ball, J. C., Wallington, T. J., Ellis, D. A., Martin, J. W., Mabury, S. A. / The Journal of Physical Chemistry A / 2005
Robinson, Michael A., Neuman, J. Andrew, Huey, L. Gregory, Roberts, James M., Brown, Steven S., Veres, Patrick R. / Atmospheric Measurement Techniques / 2022
Vyas, Sandhya M., Kania-Korwel, Izabela, Lehmler, Hans-Joachim / Journal of Environmental Science and Health. Part A, Toxic/Hazardous Substances & Environmental Engineering / 2007
Our Current Understanding of the Human Health and Environmental Risks of PFAS
US EPA, OW / 2021
A Recipe for Making Clouds | METEO 3: Introductory Meteorology
Unknown
Federal Register :: PFAS National Primary Drinking Water Regulation
De Haan, David O., Hawkins, Lelia N., Weber, Jacob A., Moul, Benjamin T., Hui, Samson, Cox, Santeh A., Esse, Jennifer U., Skochdopole, Nathan R., Lynch, Carys P., De Haan, Audrey C., Le, Chen, Cazaunau, Mathieu, Bergé, Antonin, Pangui, Edouard, Heuser, Johannes, Doussin, Jean-François, Picquet-Varrault, Bénédicte / ACS ES&T Air / 2024
Non-combustion Emissions of Organic Acids at a site near Boise, Idaho
Gaston, Cassandra J., Prospero, Joseph M., Foley, Kristen, Pye, Havala O. T., Custals, Lillian, Blades, Edmund, Sealy, Peter, Christie, James A. / Atmospheric Chemistry and Physics / 2024
Jenks, Olivia J., DeVault, Marla P., Ziola, Anna C., Morris, Melissa A., Schueneman, Melinda K., Stark, Harald, Jimenez, Jose L., Ziemann, Paul J., de Gouw, Joost A. / ACS Earth and Space Chemistry / 2023
Katz, Daniel John, Abdelhamid, Aroob, Stark, Harald, Canagaratna, Manjula R., Worsnop, Douglas R., Browne, Eleanor C. / Atmospheric Chemistry and Physics / 2023
Pühl, Magdalena, Roiger, Anke, Fiehn, Alina, Gorchov Negron, Alan M., Kort, Eric A., Schwietzke, Stefan, Pisso, Ignacio, Foulds, Amy, Lee, James, France, James L., Jones, Anna E., Lowry, Dave, Fisher, Rebecca E., Huang, Langwen, Shaw, Jacob, Bateson, Prudence, Andrews, Stephen, Young, Stuart, Dominutti, Pamela, Lachlan-Cope, Tom, Weiss, Alexandra, Allen, Grant / Atmospheric Chemistry and Physics / 2024
High NOₓ high P(O₃)
Nitrogen Oxides Control Regulations | Ground-level Ozone | New England | US EPA
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J., Ball, Stephen M., Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / 2022
Iyer, Siddharth, Reiman, Heidi, Møller, Kristian H., Rissanen, Matti P., Kjaergaard, Henrik G., Kurtén, Theo / The Journal of Physical Chemistry A / 2018
Lindsay, Andrew J., Anderson, Daniel C., Wernis, Rebecca A., Liang, Yutong, Goldstein, Allen H., Herndon, Scott C., Roscioli, Joseph R., Dyroff, Christoph, Fortner, Ed C., Croteau, Philip L., Majluf, Francesca, Krechmer, Jordan E., Yacovitch, Tara I., Knighton, Walter B., Wood, Ezra C. / Atmospheric Chemistry and Physics / 2022
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J., Ball, Stephen M., Cox, Sam, Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / Atmospheric Chemistry and Physics / 2023
Whalley, Lisa K., Stone, Daniel, Dunmore, Rachel, Hamilton, Jacqueline, Hopkins, James R., Lee, James D., Lewis, Alastair C., Williams, Paul, Kleffmann, Jörg, Laufs, Sebastian, Woodward-Massey, Robert, Heard, Dwayne E. / Atmospheric Chemistry and Physics / 2018
Woodward-Massey, Robert, Sommariva, Roberto, Whalley, Lisa K., Cryer, Danny R., Ingham, Trevor, Bloss, William J1, Cox, Sam, Lee, James D., Reed, Chris P., Crilley, Leigh R., Kramer, Louisa J., Bandy, Brian J., Forster, Grant L., Reeves, Claire E., Monks, Paul S., Heard, Dwayne E. / 2022
Mao, J., Ren, X., Zhang, L., Van Duin, D. M., Cohen, R. C., Park, J.-H., Goldstein, A. H., Paulot, F., Beaver, M. R., Crounse, J. D., Wennberg, P. O., DiGangi, J. P., Henry, S. B., Keutsch, F. N., Park, C., Schade, G. W., Wolfe, G. M., Thornton, J. A., Brune, W. H. / Atmospheric Chemistry and Physics / 2012
Mao, J., Jacob, D. J., Evans, M. J., Olson, J. R., Ren, X., Brune, W. H., Clair, J. M. St, Crounse, J. D., Spencer, K. M., Beaver, M. R., Wennberg, P. O., Cubison, M. J., Jimenez, J. L., Fried, A., Weibring, P., Walega, J. G., Hall, S. R., Weinheimer, A. J., Cohen, R. C., Chen, G., Crawford, J. H., McNaughton, C., Clarke, A. D., Jaeglé, L., Fisher, J. A., Yantosca, R. M., Le Sager, P., Carouge, C. / Atmospheric Chemistry and Physics / 2010
Brune, W. H., Baier, B. C., Thomas, J., Ren, X., Cohen, R. C., Pusede, S. E., Browne, E. C., Goldstein, A. H., Gentner, D. R., Keutsch, F. N., Thornton, J. A., Harrold, S., Lopez-Hilfiker, F. D., Wennberg, P. O. / Faraday Discussions / 2016
Martinez, M., Harder, H., Kovacs, T. A., Simpas, J. B., Bassis, J., Lesher, R., Brune, W. H., Frost, G. J., Williams, E. J., Stroud, C. A., Jobson, B. T., Roberts, J. M., Hall, S. R., Shetter, R. E., Wert, B., Fried, A., Alicke, B., Stutz, J., Young, V. L., White, A. B., Zamora, R. J. / Journal of Geophysical Research: Atmospheres / 2003
Griffith, S. M., Hansen, R. F., Dusanter, S., Michoud, V., Gilman, J. B., Kuster, W. C., Veres, P. R., Graus, M., de Gouw, J. A., Roberts, J., Young, C., Washenfelder, R., Brown, S. S., Thalman, R., Waxman, E., Volkamer, R., Tsai, C., Stutz, J., Flynn, J. H., Grossberg, N., Lefer, B., Alvarez, S. L., Rappenglueck, B., Mielke, L. H., Osthoff, H. D., Stevens, P. S. / Journal of Geophysical Research: Atmospheres / 2016
Spencer, K. M., McCabe, D. C., Crounse, J. D., Olson, J. R., Crawford, J. H., Weinheimer, A. J., Knapp, D. J., Montzka, D. D., Cantrell, C. A., Hornbrook, R. S., Mauldin III, R. L., Wennberg, P. O. / Atmospheric Chemistry and Physics / 2009
ACP - Inferring ozone production in an urban atmosphere using measurements of peroxynitric acid
Ren, Xinrong, van Duin, Diana, Cazorla, Maria, Chen, Shuang, Mao, Jingqiu, Zhang, Li, Brune, William H., Flynn, James H., Grossberg, Nicole, Lefer, Barry L., Rappenglück, Bernhard, Wong, Kam W., Tsai, Catalina, Stutz, Jochen, Dibb, Jack E., Thomas Jobson, B., Luke, Winston T., Kelley, Paul / Journal of Geophysical Research: Atmospheres / 2013
Chemistry-forward climate notes for non-chemists, staged as public education transmissions.
article reader
reader tools
archive / $CO_2$
$CO_2$
$CO_2$'s importance
Radiative balance helps us understand earth without carbon dioxide.
Porridge is better when its not too hot and not too cold. 'Bear' with me here.
Resonance helps us understand carbon dioxide's impact.
Black body radiation can show why more $CO_2$ leads to higher temps.
Radiative Balance
This story begins with the coldness of space.
Why is coldness relevant?
Because it's really hard to live in the cold. Imagine Paris, Vienna, and Edinburgh had similar climates to Antarctica. We would be missing out on some pretty good philosophy, right? Culture as we know it would be pretty bland, if existent at all.
Our universe kind-of prefers coldness, so galaxies & their planets need to be pretty nifty in their attempt to stay warm. We generally say cold things have less energy than their hot counterparts. Energy is expressed in movement and light (among other things), and high movement or brightness among matter is correlated to high temperature.
Why is space cold?
If we put a big rock in space and shine light (energy) on it, the rock will get rid of the energy! The inbound energy flux (energy of light on the exposed surface) is always equal to the outbound energy flux. This phenomenon is called radiative balance1 and it's a really troubling physical principle for anyone interested in living on big rocks in space. Right? Space takes all objects' outbound energy. When something is taking energy from something else, it is cold.
You're saying non-stars emit energy?
Boring, random rocks/objects are not stars, correct. But they do give off energy in the form of light! They abide by the principle of radiative balance.
It's important to remember not all light is visible to us. Earth gives off mainly infrared light (IR is invisible to us).2
Wait, why does the planet maintain a temperature at all?
You know how walking down an empty stairwell compels you, by the overpowering force of immaturity, to pull from the depths of your throat a big "hoooot"? And how if you pull out the "hoooot" note just right, a proper shake buzzes about the air? We call this resonance.3
Earth's outward infrared light happens to have a particularly interesting property: it tickles some molecules' fancies. To be technical, this light causes certain molecules to resonate! This incredible video shows just this.
When light resonates with the vibration of molecules, the molecules move faster... meaning their temperature increases! (Temperature is the average energy of movement.)
Carbon dioxide, water, methane are a few of the molecules that resonate with infrared radiation and absorb it. Without these compounds, Earth would give away energy without warming up. (Earth would be a cold, cold place lacking any good philosophy!)
Why doesn't Earth constantly heat up if the Sun constantly shines?
This is important. The resonating compounds are very good at what they do. More of them $\rightarrow$ more absorbed infrared light $\rightarrow$ higher temperatures.
These compounds are what maintain a temperature of roughly $15\ ^oC/60\ ^oF$ close to Earth's surface. What they don't absorb gets emitted! (Because of radiative balance.)
Goldilocks needed a bowl of porridge with a temperature that was just right. Life as we know it (and good philosophy) also needs Earth stay at a temperature that is just right.
Black body radiation shows $CO_2$ is the most important resonating molecule
Carbon dioxide is:
Particularly good at resonating with infrared radiation,
in relatively high concentrations in the atmosphere, and
resonant with the type of infrared radiation Earth emits most.
Each dashed line in the image below corresponds to an object emitting infrared light. These objects are called black bodies and the profile of the light they emit is characteristic of their temperature.4 The area under their curve is unique. Black bodies are ideal objects. This is why their curves look so perfect.
The solid black line represents Earth trying to be a black body. Clearly, it's not doing a great job. The plot shows measurements of infrared light that Earth is emitting from the Sahara Desert. We can see that there are certain "wavelengths" (top axis) of light that we don't see much of. In other words, there are some big dips. (Like at $15 \ \mu m$, $10.5 \ \mu m$, and $8-7.5 \ \mu m$.)
Those dips represent infrared light emitted by Earth that did not reach the measurement device. What happened to it? The resonating molecules (colloquially, greenhouse gasses) absorbed the light before got there!
Why does that matter?
Because of radiative balance! All of that infrared radiation is being absorbed by (and thus heating) the resonating molecules. Because of this, our atmosphere heats up. More resonance $\rightarrow$ higher baseline of Earth's curve in this plot $\rightarrow$ warmer atmosphere.
This visualization hopefully makes clear:
If a lot of carbon dioxide is released into the sky, the baseline of this curve will rise;
Thus, Earth's temperature will, too — it has to.
1 Radiative balance of Earth. "The only source of heat on Earth is solar radiation. As any physical body with a temperature above absolute zero, Earth loses heat in the form of infrared radiation proportional to the fourth power of its absolute temperature. The Earth as a planet is in almost perfect thermal steady state and therefore the top of the atmosphere must be in a complete globally-averaged radiative balance." - Heat Transport, Oceanic and Atmospheric 2 IR radiation. "That portion of the electromagnetic spectrum that extends from the long wavelength, or red, end of the visible-light range to the microwave range." - Britannica 3 Resonance in chemicals. "When the frequency of an external oscillation or vibration matches an object (or cavity’s) natural frequency, and as a result either causes it to vibrate or increases its amplitude of oscillation." - SCIENCING 4 Black body curves. "At thermodynamic equilibrium, the rate at which an object absorbs radiation is the same as the rate at which it emits it. Therefore, a good absorber of radiation (any object that absorbs radiation) is also a good emitter. A perfect absorber absorbs all electromagnetic radiation incident on it; such an object is called a black body." - Physics LibreTexts
archive / $CO_2$
$CO_2$
$CO_2$'s importance
Radiative balance helps us understand earth without carbon dioxide.
Porridge is better when its not too hot and not too cold. 'Bear' with me here.
Resonance helps us understand carbon dioxide's impact.
Black body radiation can show why more $CO_2$ leads to higher temps.
Radiative Balance
This story begins with the coldness of space.
Why is coldness relevant?
Because it's really hard to live in the cold. Imagine Paris, Vienna, and Edinburgh had similar climates to Antarctica. We would be missing out on some pretty good philosophy, right? Culture as we know it would be pretty bland, if existent at all.
Our universe kind-of prefers coldness, so galaxies & their planets need to be pretty nifty in their attempt to stay warm. We generally say cold things have less energy than their hot counterparts. Energy is expressed in movement and light (among other things), and high movement or brightness among matter is correlated to high temperature.
Why is space cold?
If we put a big rock in space and shine light (energy) on it, the rock will get rid of the energy! The inbound energy flux (energy of light on the exposed surface) is always equal to the outbound energy flux. This phenomenon is called radiative balance1 and it's a really troubling physical principle for anyone interested in living on big rocks in space. Right? Space takes all objects' outbound energy. When something is taking energy from something else, it is cold.
You're saying non-stars emit energy?
Boring, random rocks/objects are not stars, correct. But they do give off energy in the form of light! They abide by the principle of radiative balance.
It's important to remember not all light is visible to us. Earth gives off mainly infrared light (IR is invisible to us).2
Wait, why does the planet maintain a temperature at all?
You know how walking down an empty stairwell compels you, by the overpowering force of immaturity, to pull from the depths of your throat a big "hoooot"? And how if you pull out the "hoooot" note just right, a proper shake buzzes about the air? We call this resonance.3
Earth's outward infrared light happens to have a particularly interesting property: it tickles some molecules' fancies. To be technical, this light causes certain molecules to resonate! This incredible video shows just this.
When light resonates with the vibration of molecules, the molecules move faster... meaning their temperature increases! (Temperature is the average energy of movement.)
Carbon dioxide, water, methane are a few of the molecules that resonate with infrared radiation and absorb it. Without these compounds, Earth would give away energy without warming up. (Earth would be a cold, cold place lacking any good philosophy!)
Why doesn't Earth constantly heat up if the Sun constantly shines?
This is important. The resonating compounds are very good at what they do. More of them $\rightarrow$ more absorbed infrared light $\rightarrow$ higher temperatures.
These compounds are what maintain a temperature of roughly $15\ ^oC/60\ ^oF$ close to Earth's surface. What they don't absorb gets emitted! (Because of radiative balance.)
Goldilocks needed a bowl of porridge with a temperature that was just right. Life as we know it (and good philosophy) also needs Earth stay at a temperature that is just right.
Black body radiation shows $CO_2$ is the most important resonating molecule
Carbon dioxide is:
Particularly good at resonating with infrared radiation,
in relatively high concentrations in the atmosphere, and
resonant with the type of infrared radiation Earth emits most.
Each dashed line in the image below corresponds to an object emitting infrared light. These objects are called black bodies and the profile of the light they emit is characteristic of their temperature.4 The area under their curve is unique. Black bodies are ideal objects. This is why their curves look so perfect.
The solid black line represents Earth trying to be a black body. Clearly, it's not doing a great job. The plot shows measurements of infrared light that Earth is emitting from the Sahara Desert. We can see that there are certain "wavelengths" (top axis) of light that we don't see much of. In other words, there are some big dips. (Like at $15 \ \mu m$, $10.5 \ \mu m$, and $8-7.5 \ \mu m$.)
Those dips represent infrared light emitted by Earth that did not reach the measurement device. What happened to it? The resonating molecules (colloquially, greenhouse gasses) absorbed the light before got there!
Why does that matter?
Because of radiative balance! All of that infrared radiation is being absorbed by (and thus heating) the resonating molecules. Because of this, our atmosphere heats up. More resonance $\rightarrow$ higher baseline of Earth's curve in this plot $\rightarrow$ warmer atmosphere.
This visualization hopefully makes clear:
If a lot of carbon dioxide is released into the sky, the baseline of this curve will rise;
Thus, Earth's temperature will, too — it has to.
1 Radiative balance of Earth. "The only source of heat on Earth is solar radiation. As any physical body with a temperature above absolute zero, Earth loses heat in the form of infrared radiation proportional to the fourth power of its absolute temperature. The Earth as a planet is in almost perfect thermal steady state and therefore the top of the atmosphere must be in a complete globally-averaged radiative balance." - Heat Transport, Oceanic and Atmospheric 2 IR radiation. "That portion of the electromagnetic spectrum that extends from the long wavelength, or red, end of the visible-light range to the microwave range." - Britannica 3 Resonance in chemicals. "When the frequency of an external oscillation or vibration matches an object (or cavity’s) natural frequency, and as a result either causes it to vibrate or increases its amplitude of oscillation." - SCIENCING 4 Black body curves. "At thermodynamic equilibrium, the rate at which an object absorbs radiation is the same as the rate at which it emits it. Therefore, a good absorber of radiation (any object that absorbs radiation) is also a good emitter. A perfect absorber absorbs all electromagnetic radiation incident on it; such an object is called a black body." - Physics LibreTexts
archive / Atmospheric Lifetimes
Atmospheric Lifetimes
It's important to remember the global atmosphere is a very dynamic system. Oftentimes, in such systems, our human tendency to make predictions based off common intuition leads us astray. The sky doesn't always work as we think it will. In this blog, I will present a few examples of atmospheric alterations that have competing effects. My goal is to show that:
Fast fact sheets cannot be used in climate change and air quality discussions. These topics are ripe for cherry picking. (Not the good, tasty cherries).
Solutions to climate change will result in things getting worse before they get better.
Let's categorize two ways an atmospheric component can impact the environment:
Direct impact by threatening/bolstering health
Effectively warming or cooling the atmosphere
Sulfur dioxide ($SO_2$) is an air pollutant. It's a dangerous gas to human, animal, and plant health and contributes to acid rain because it is the source of sulfuric acid ($H_2SO_4$) in the atmosphere. On the other hand, the presence of $H_2SO_4$ accelerates particle formation and growth in the sky. These particles reflect sunlight back to space, which effectively cools the planet. (See my blog post about light and Earth's temperature).
So, does adding $SO_2$ to the sky have a net negative or net positive on the planet? This seems like a difficult metric to quantify.
Philosophy, books, programming, workflow, and the parts of the intellectual life that sit outside the lab.
Lee Feinman is a self-proclaimed expert on nothing. This is why he studies chemistry (to become an expert at chemistry) and writes essays, poems, and short stories about the journeys taken by he who is in search of expertise. He is a native of Media, PA. Aside from pursuing a professional career in atmospheric chemistry, Lee enjoys a literary and philosophical interest in reading & writing in his free time.
article reader
reader tools
archive / Philosophy
Philosophy
An Exegesis Concerning On the Genealogy of Morals, Essay II
By Lee Feinman
An Extended Discussion of "On the Three Metamorphoses": Nuance, Rejection, and Juxtaposition
By Lee Feinman
Social-Material Convergence through the Special Composition Question
By Lee Feinman
The Relationship Between Art and Aesthetics
By Lee Feinman
Response to Unruly Edges by Anna Tsing
By Lee Feinman
archive / Philosophy
Philosophy
An Exegesis Concerning On the Genealogy of Morals, Essay II
By Lee Feinman
An Extended Discussion of "On the Three Metamorphoses": Nuance, Rejection, and Juxtaposition
By Lee Feinman
Social-Material Convergence through the Special Composition Question
By Lee Feinman
The Relationship Between Art and Aesthetics
By Lee Feinman
Response to Unruly Edges by Anna Tsing
By Lee Feinman
archive / Literature
Literature
I've got a lot to say here! I love opening back up books I've read and remembering exactly why I loved them. Contemplating why some amazing human thought such thoughts and how they organized that thought in such a way.
I just haven't gotten there yet.
In the meantime... feel free to keep tabs on my cycling (below)! The gaps in time are due to forgetting to press "start" on Strava. Definitely .ot because I'm lazy and don't ride a lot...
archive / Programming
Programming
Here's a list of the things I've done (definitely not exhaustive!):
Research notes. I use a mix of Zotero and Obsidian to house my literature library and keep track of citations when writing. Zotero is indispensable. Once I read and highlight a paper in Zotero, I run a hotkey in Obsidian that creates a note which auto-populates with a paper's metadata and the sections I've highlighted & commented on. Further, the file-path structure in Zotero is mimicked in Obsidian! This is super helpful to my attempt at keeping my organization uniform across my different tools. If you'd like to implement the tool, reach out and I'm happy to help! Here is a resource to get started: An Academic Workflow: Zotero & Obsidian Below is an example of a note created from a paper I read.
I am in the (slow) process of building an atmospheric chemistry toolkit for researchers! I say slowly because the whole point is to put together this package from every new function or script I build while working in the lab. I hope one day the package will help other atmospheric chemists!
Here's an example. I wrote a function that animates plots. It was really useful for some time-series data I had that was taken alongside a time-lapse in NYC!
This website! The front of this website is written in HTML and styled with CSS. There is very little JavaScript, but it's here too. I use Python however to make my post-webpage-design-but-still-want-to-upload-stuff content show up on the website. Here's the workflow for this site:
Obsidian! I use Obsidian to write everything that appears here. It all starts out in markdown (.md) format. I have 4 different notes for the 4 different sections on the website: Research (or work), Literature, Personal, and Climate.
The Python script converts the markdown files to HTML. This takes 2 lines of code! However, I like to include LaTeX photos and other good stuff in my content, so the script also makes the necessary modifications to allow a proper translation of .md to .html.
Then the script inserts the .html material it just created into a saved .html template for the site and writes it as the index.html file. For those who don't know, the index file is the file the web server directs one to when browsing a website.
Next, the Python script synchronizes my file directory to my s3 bucket. So anytime I want to change/add information to the website (aside from design or effects), all I need to do is edit the notes in Obsidian and run the Python script... # in the terminal: cd DirectoryToWebsiteFiles python script.py
I made an elections automation system for Drexel's Undergraduate Student Government Association (USGA)which is accessible here. After learning the basics of Python (see my honors project report in the Research tab), this was the first program I wrote. Looking back at it definitely reminds me how far I've progressed! The code is convoluted and unreadable; nonetheless, it did what we needed it to do! I've served on USGA for four years throughout college, holding the position of Speaker of the House my final 2 years. One of my jobs as Speaker was to oversee the elections process — which was no small feat. Aside from single-seated positions like Director of Finance or Vice President, most elections are for multiple-seated positions. For example, the sophomore class has 10 open senator spots. To be elected, a candidate first must attain a $\frac{2}{3}$ supermajority threshold. The next requirement for the candidate is a top 10 ratio of yeas (yes, yea is a word!). To make matters more confusing, votes of abstention must not penalize candidates — even when a voting member abstains from voting on one candidate but not another. To get around the issue, the 'ratio of yeas' is defined as the fraction$$\frac{\text{yea}}{(\text{yea} + \text{nay})}=\frac{\text{yea}}{(\text{total votes} - \text{abstentions})}.$$
I designed and authored a Python program for baseline correction, normalization, and dynamic integration of ATR-FTIR data targeting the 2nd derivative of a high-order fit to evaluate the aging index of oxidized asphalt. This was a project I offered my boss at my second co-op and he let me take it on! I was extremely excited about this project because it was an ideal application of my Python skills at the time. I wanted Python to help me with interdisciplinary scientific pursuits and there I was... writing a program that was powered by calculus and statistics and reported chemical information. It provided us with a much more consistent analysis of our data, so I was happy with my work.
I automated ASTM Spark Test counting using Python to produce precise, time-saving results that were saved digitally and made future data-driven decisions feasible through already-pooled sample performance data. As much as this project was something that I did at co-op and related to my tasks there, it was really for me. I had to perform the spark test on around 200 samples per week and then count the 'sparks' on paper. This was awful! Without waiting for permission... I just started automating this counting. I used machine learning to identify what was a spark and what was a paper blemish. Though the program took me through my last day at co-op to complete (so I couldn't enjoy the fruits of my fun), I was content knowing the next co-op could use my program and save themself so much trouble!
Many others
channel 05 / file drawer
CV File
A cleaner launch point for the resume: current position, direct PDF action, and an archival preview if you want it.