2016 US EPA National Emissions Inventory (NEI) data

We have a data loader for CMAQ-formatted monthly US National Emissions Inventory data for year 2016,NEI2016MonthlyEmis.

Download Configuration

Because there is an issue with the EPA's FTP server that we download the data from you may need to set the following environment variable before using it:

In Julia:

ENV["JULIA_NO_VERIFY_HOSTS"] = "gaftp.epa.gov"

or in a bash shell:

export JULIA_NO_VERIFY_HOSTS=gaftp.epa.gov

Equations

This is what its equation system looks like:

using EarthSciData, EarthSciMLBase
using ModelingToolkit, DynamicQuantities, DataFrames
using ModelingToolkit: t
using DynamicQuantities: dimension
using Dates

domain = DomainInfo(
    DateTime(2016, 5, 1), DateTime(2016, 5, 2);
    lonrange = deg2rad(-115):deg2rad(2.5):deg2rad(-68.75),
    latrange = deg2rad(25):deg2rad(2):deg2rad(53.7),
    levrange = 1:10,
    u_proto = zeros(Float32, 1, 1, 1, 1)
)

emis = NEI2016MonthlyEmis("mrggrid_withbeis_withrwc", domain)

\[ \begin{align} \mathtt{ACET}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ACET\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ACET} \right) \\ \mathtt{ACROLEIN}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ACROLEIN\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ACROLEIN} \right) \\ \mathtt{ALD2}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ALD2\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ALD2} \right) \\ \mathtt{ALD2\_PRIMARY}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ALD2\_PRIMARY\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ALD2\_PRIMARY} \right) \\ \mathtt{ALDX}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ALDX\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ALDX} \right) \\ \mathtt{APIN}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{APIN\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_APIN} \right) \\ \mathtt{BENZ}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{BENZ\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_BENZ} \right) \\ \mathtt{BPIN}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{BPIN\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_BPIN} \right) \\ \mathtt{BUTADIENE13}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{BUTADIENE13\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_BUTADIENE13} \right) \\ \mathtt{CH4}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{CH4\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_CH4} \right) \\ \mathtt{CH4\_INV}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{CH4\_INV\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_CH4\_INV} \right) \\ \mathtt{CL2}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{CL2\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_CL2} \right) \\ \mathtt{CO}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{diurnal\_itp\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ dayofweek\_itp\_CO\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ \mathtt{CO\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_CO} \right) \\ \mathtt{CO2\_INV}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{CO2\_INV\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_CO2\_INV} \right) \\ \mathtt{ETH}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ETH\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ETH} \right) \\ \mathtt{ETHA}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ETHA\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ETHA} \right) \\ \mathtt{ETHY}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ETHY\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ETHY} \right) \\ \mathtt{ETOH}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{ETOH\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ETOH} \right) \\ \mathtt{FORM}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{diurnal\_itp\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ \mathtt{FORM\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_FORM} \right) \\ \mathtt{FORM\_PRIMARY}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{FORM\_PRIMARY\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_FORM\_PRIMARY} \right) \\ \mathtt{HCL}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{HCL\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_HCL} \right) \\ \mathtt{HONO}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{HONO\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_HONO} \right) \\ \mathtt{IOLE}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{IOLE\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_IOLE} \right) \\ \mathtt{ISOP}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{diurnal\_itp\_ISOP\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ \mathtt{ISOP\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_ISOP} \right) \\ \mathtt{KET}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{KET\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_KET} \right) \\ \mathtt{MEOH}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{MEOH\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_MEOH} \right) \\ \mathtt{N2O\_INV}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{N2O\_INV\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_N2O\_INV} \right) \\ \mathtt{NAPH}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NAPH\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NAPH} \right) \\ \mathtt{NH3}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NH3\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NH3} \right) \\ \mathtt{NH3\_FERT}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NH3\_FERT\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NH3\_FERT} \right) \\ \mathtt{NO}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{diurnal\_itp\_NOx\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ \mathtt{NO\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right) ~ dayofweek\_itp\_NOx\left( t + \mathtt{t\_ref}, \mathtt{lon} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NO} \right) \\ \mathtt{NO2}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{diurnal\_itp\_NOx\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ dayofweek\_itp\_NOx\left( t + \mathtt{t\_ref}, \mathtt{lon} \right) ~ \mathtt{NO2\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NO2} \right) \\ \mathtt{NOX}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NOX\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NOX} \right) \\ \mathtt{NR}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NR\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NR} \right) \\ \mathtt{NVOL}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{NVOL\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_NVOL} \right) \\ \mathtt{OLE}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{OLE\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_OLE} \right) \\ \mathtt{PAL}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PAL\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PAL} \right) \\ \mathtt{PAR}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PAR\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PAR} \right) \\ \mathtt{PCA}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PCA\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PCA} \right) \\ \mathtt{PCL}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PCL\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PCL} \right) \\ \mathtt{PEC}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PEC\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PEC} \right) \\ \mathtt{PFE}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PFE\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PFE} \right) \\ \mathtt{PH2O}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PH2O\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PH2O} \right) \\ \mathtt{PK}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PK\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PK} \right) \\ \mathtt{PM2\_5}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PM2\_5\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PM2\_5} \right) \\ \mathtt{PMC}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PMC\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PMC} \right) \\ \mathtt{PMG}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PMG\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PMG} \right) \\ \mathtt{PMN}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PMN\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PMN} \right) \\ \mathtt{PMOTHR}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PMOTHR\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PMOTHR} \right) \\ \mathtt{PNA}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PNA\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PNA} \right) \\ \mathtt{PNCOM}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PNCOM\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PNCOM} \right) \\ \mathtt{PNH4}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PNH4\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PNH4} \right) \\ \mathtt{PNO3}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PNO3\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PNO3} \right) \\ \mathtt{POC}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{POC\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_POC} \right) \\ \mathtt{PRPA}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PRPA\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PRPA} \right) \\ \mathtt{PSI}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PSI\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PSI} \right) \\ \mathtt{PSO4}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PSO4\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PSO4} \right) \\ \mathtt{PTI}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{PTI\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_PTI} \right) \\ \mathtt{SESQ}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{SESQ\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_SESQ} \right) \\ \mathtt{SO2}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{SO2\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_SO2} \right) \\ \mathtt{SOAALK}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{SOAALK\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_SOAALK} \right) \\ \mathtt{SULF}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{SULF\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_SULF} \right) \\ \mathtt{TERP}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{TERP\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_TERP} \right) \\ \mathtt{TOL}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{TOL\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_TOL} \right) \\ \mathtt{UNK}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{UNK\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_UNK} \right) \\ \mathtt{UNR}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{UNR\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_UNR} \right) \\ \mathtt{VOC\_BEIS}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{VOC\_BEIS\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_VOC\_BEIS} \right) \\ \mathtt{VOC\_INV}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{VOC\_INV\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_VOC\_INV} \right) \\ \mathtt{XYLMN}\left( t \right) &= ifelse\left( \mathtt{lev} < 2, \frac{\mathtt{XYLMN\_itp}\left( t + \mathtt{t\_ref}, \mathtt{lon}, \mathtt{lat} \right)}{\mathtt{g0\_100} ~ delp\_dry\_surface\_itp\left( \mathtt{lon}, \mathtt{lat} \right) ~ \mathtt{{\Delta}z}}, \mathtt{zero\_XYLMN} \right) \end{align} \]

Variables

Here are the variables in tabular format:

function table(vars)
    DataFrame(
        :Name => [string(Symbolics.tosymbol(v, escape = false)) for v in vars],
        :Units => [dimension(ModelingToolkit.get_unit(v)) for v in vars],
        :Description => [ModelingToolkit.getdescription(v) for v in vars]
    )
end
table(unknowns(emis))
69×3 DataFrame
RowNameUnitsDescription
StringDimensio…String
1ACETs⁻¹Model species ACET
2ACROLEINs⁻¹Model species ACROLEIN
3ALD2s⁻¹Model species ALD2
4ALD2_PRIMARYs⁻¹Model species ALD2_PRIMARY
5ALDXs⁻¹Model species ALDX
6APINs⁻¹Model species APIN
7BENZs⁻¹Model species BENZ
8BPINs⁻¹Model species BPIN
9BUTADIENE13s⁻¹Model species BUTADIENE13
10CH4s⁻¹Model species CH4
11CH4_INVs⁻¹Model species CH4_INV
12CL2s⁻¹Model species CL2
13COs⁻¹Model species CO
14CO2_INVs⁻¹Model species CO2_INV
15ETHs⁻¹Model species ETH
16ETHAs⁻¹Model species ETHA
17ETHYs⁻¹Model species ETHY
18ETOHs⁻¹Model species ETOH
19FORMs⁻¹Model species FORM
20FORM_PRIMARYs⁻¹Model species FORM_PRIMARY
21HCLs⁻¹Model species HCL
22HONOs⁻¹Model species HONO
23IOLEs⁻¹Model species IOLE
24ISOPs⁻¹Model species ISOP
25KETs⁻¹Model species KET
26MEOHs⁻¹Model species MEOH
27N2O_INVs⁻¹Model species N2O_INV
28NAPHs⁻¹Model species NAPH
29NH3s⁻¹Model species NH3
30NH3_FERTs⁻¹Model species NH3_FERT
31NOs⁻¹Model species NO
32NO2s⁻¹Model species NO2
33NOXs⁻¹Model species NOX
34NRs⁻¹Model species NR
35NVOLs⁻¹Model species NVOL
36OLEs⁻¹Model species OLE
37PALs⁻¹Model species PAL
38PARs⁻¹Model species PAR
39PCAs⁻¹Model species PCA
40PCLs⁻¹Model species PCL
41PECs⁻¹Model species PEC
42PFEs⁻¹Model species PFE
43PH2Os⁻¹Model species PH2O
44PKs⁻¹Model species PK
45PM2_5s⁻¹Model species PM2_5
46PMCs⁻¹Model species PMC
47PMGs⁻¹Model species PMG
48PMNs⁻¹Model species PMN
49PMOTHRs⁻¹Model species PMOTHR
50PNAs⁻¹Model species PNA
51PNCOMs⁻¹Model species PNCOM
52PNH4s⁻¹Model species PNH4
53PNO3s⁻¹Model species PNO3
54POCs⁻¹Model species POC
55PRPAs⁻¹Model species PRPA
56PSIs⁻¹Model species PSI
57PSO4s⁻¹Model species PSO4
58PTIs⁻¹Model species PTI
59SESQs⁻¹Model species SESQ
60SO2s⁻¹Model species SO2
61SOAALKs⁻¹Model species SOAALK
62SULFs⁻¹Model species SULF
63TERPs⁻¹Model species TERP
64TOLs⁻¹Model species TOL
65UNKs⁻¹Model species UNK
66UNRs⁻¹Model species UNR
67VOC_BEISs⁻¹Model species VOC_BEIS
68VOC_INVs⁻¹Model species VOC_INV
69XYLMNs⁻¹Model species XYLMN

Parameters

Finally, here are the parameters in tabular format:

table(parameters(emis))
144×3 DataFrame
RowNameUnitsDescription
StringDimensio…String
1lonLongitude
2latLatitude
3levLevel Index
4ΔzCouldn't remove Δz without getting errors, so I set it to 1.0 without units
5t_refsReference time
6g0_100m⁻² kg
7zero_ACETs⁻¹
8ACET_itpm⁻² kg s⁻¹Interpolated ACET
9zero_ACROLEINs⁻¹
10ACROLEIN_itpm⁻² kg s⁻¹Interpolated ACROLEIN
11zero_ALD2s⁻¹
12ALD2_itpm⁻² kg s⁻¹Interpolated ALD2
13zero_ALD2_PRIMARYs⁻¹
14ALD2_PRIMARY_itpm⁻² kg s⁻¹Interpolated ALD2_PRIMARY
15zero_ALDXs⁻¹
16ALDX_itpm⁻² kg s⁻¹Interpolated ALDX
17zero_APINs⁻¹
18APIN_itpm⁻² kg s⁻¹Interpolated APIN
19zero_BENZs⁻¹
20BENZ_itpm⁻² kg s⁻¹Interpolated BENZ
21zero_BPINs⁻¹
22BPIN_itpm⁻² kg s⁻¹Interpolated BPIN
23zero_BUTADIENE13s⁻¹
24BUTADIENE13_itpm⁻² kg s⁻¹Interpolated BUTADIENE13
25zero_CH4s⁻¹
26CH4_itpm⁻² kg s⁻¹Interpolated CH4
27zero_CH4_INVs⁻¹
28CH4_INV_itpm⁻² kg s⁻¹Interpolated CH4_INV
29zero_CL2s⁻¹
30CL2_itpm⁻² kg s⁻¹Interpolated CL2
31zero_COs⁻¹
32CO_itpm⁻² kg s⁻¹Interpolated CO
33zero_CO2_INVs⁻¹
34CO2_INV_itpm⁻² kg s⁻¹Interpolated CO2_INV
35zero_ETHs⁻¹
36ETH_itpm⁻² kg s⁻¹Interpolated ETH
37zero_ETHAs⁻¹
38ETHA_itpm⁻² kg s⁻¹Interpolated ETHA
39zero_ETHYs⁻¹
40ETHY_itpm⁻² kg s⁻¹Interpolated ETHY
41zero_ETOHs⁻¹
42ETOH_itpm⁻² kg s⁻¹Interpolated ETOH
43zero_FORMs⁻¹
44FORM_itpm⁻² kg s⁻¹Interpolated FORM
45zero_FORM_PRIMARYs⁻¹
46FORM_PRIMARY_itpm⁻² kg s⁻¹Interpolated FORM_PRIMARY
47zero_HCLs⁻¹
48HCL_itpm⁻² kg s⁻¹Interpolated HCL
49zero_HONOs⁻¹
50HONO_itpm⁻² kg s⁻¹Interpolated HONO
51zero_IOLEs⁻¹
52IOLE_itpm⁻² kg s⁻¹Interpolated IOLE
53zero_ISOPs⁻¹
54ISOP_itpm⁻² kg s⁻¹Interpolated ISOP
55zero_KETs⁻¹
56KET_itpm⁻² kg s⁻¹Interpolated KET
57zero_MEOHs⁻¹
58MEOH_itpm⁻² kg s⁻¹Interpolated MEOH
59zero_N2O_INVs⁻¹
60N2O_INV_itpm⁻² kg s⁻¹Interpolated N2O_INV
61zero_NAPHs⁻¹
62NAPH_itpm⁻² kg s⁻¹Interpolated NAPH
63zero_NH3s⁻¹
64NH3_itpm⁻² kg s⁻¹Interpolated NH3
65zero_NH3_FERTs⁻¹
66NH3_FERT_itpm⁻² kg s⁻¹Interpolated NH3_FERT
67zero_NOs⁻¹
68NO_itpm⁻² kg s⁻¹Interpolated NO
69zero_NO2s⁻¹
70NO2_itpm⁻² kg s⁻¹Interpolated NO2
71zero_NOXs⁻¹
72NOX_itpm⁻² kg s⁻¹Interpolated NOX
73zero_NRs⁻¹
74NR_itpm⁻² kg s⁻¹Interpolated NR
75zero_NVOLs⁻¹
76NVOL_itpm⁻² kg s⁻¹Interpolated NVOL
77zero_OLEs⁻¹
78OLE_itpm⁻² kg s⁻¹Interpolated OLE
79zero_PALs⁻¹
80PAL_itpm⁻² kg s⁻¹Interpolated PAL
81zero_PARs⁻¹
82PAR_itpm⁻² kg s⁻¹Interpolated PAR
83zero_PCAs⁻¹
84PCA_itpm⁻² kg s⁻¹Interpolated PCA
85zero_PCLs⁻¹
86PCL_itpm⁻² kg s⁻¹Interpolated PCL
87zero_PECs⁻¹
88PEC_itpm⁻² kg s⁻¹Interpolated PEC
89zero_PFEs⁻¹
90PFE_itpm⁻² kg s⁻¹Interpolated PFE
91zero_PH2Os⁻¹
92PH2O_itpm⁻² kg s⁻¹Interpolated PH2O
93zero_PKs⁻¹
94PK_itpm⁻² kg s⁻¹Interpolated PK
95zero_PM2_5s⁻¹
96PM2_5_itpm⁻² kg s⁻¹Interpolated PM2_5
97zero_PMCs⁻¹
98PMC_itpm⁻² kg s⁻¹Interpolated PMC
99zero_PMGs⁻¹
100PMG_itpm⁻² kg s⁻¹Interpolated PMG
101zero_PMNs⁻¹
102PMN_itpm⁻² kg s⁻¹Interpolated PMN
103zero_PMOTHRs⁻¹
104PMOTHR_itpm⁻² kg s⁻¹Interpolated PMOTHR
105zero_PNAs⁻¹
106PNA_itpm⁻² kg s⁻¹Interpolated PNA
107zero_PNCOMs⁻¹
108PNCOM_itpm⁻² kg s⁻¹Interpolated PNCOM
109zero_PNH4s⁻¹
110PNH4_itpm⁻² kg s⁻¹Interpolated PNH4
111zero_PNO3s⁻¹
112PNO3_itpm⁻² kg s⁻¹Interpolated PNO3
113zero_POCs⁻¹
114POC_itpm⁻² kg s⁻¹Interpolated POC
115zero_PRPAs⁻¹
116PRPA_itpm⁻² kg s⁻¹Interpolated PRPA
117zero_PSIs⁻¹
118PSI_itpm⁻² kg s⁻¹Interpolated PSI
119zero_PSO4s⁻¹
120PSO4_itpm⁻² kg s⁻¹Interpolated PSO4
121zero_PTIs⁻¹
122PTI_itpm⁻² kg s⁻¹Interpolated PTI
123zero_SESQs⁻¹
124SESQ_itpm⁻² kg s⁻¹Interpolated SESQ
125zero_SO2s⁻¹
126SO2_itpm⁻² kg s⁻¹Interpolated SO2
127zero_SOAALKs⁻¹
128SOAALK_itpm⁻² kg s⁻¹Interpolated SOAALK
129zero_SULFs⁻¹
130SULF_itpm⁻² kg s⁻¹Interpolated SULF
131zero_TERPs⁻¹
132TERP_itpm⁻² kg s⁻¹Interpolated TERP
133zero_TOLs⁻¹
134TOL_itpm⁻² kg s⁻¹Interpolated TOL
135zero_UNKs⁻¹
136UNK_itpm⁻² kg s⁻¹Interpolated UNK
137zero_UNRs⁻¹
138UNR_itpm⁻² kg s⁻¹Interpolated UNR
139zero_VOC_BEISs⁻¹
140VOC_BEIS_itpm⁻² kg s⁻¹Interpolated VOC_BEIS
141zero_VOC_INVs⁻¹
142VOC_INV_itpm⁻² kg s⁻¹Interpolated VOC_INV
143zero_XYLMNs⁻¹
144XYLMN_itpm⁻² kg s⁻¹Interpolated XYLMN