format of PartMC raw output
Here is a sample of PartMC raw output
[1]:
import xarray as xr
p = "../data/urban_plume_0001_00000002.nc"
ds = xr.open_dataset(p)
ds
[1]:
<xarray.Dataset> Dimensions: (gas_species: 77, aero_species: 20, aero_source: 8, aero_weight_group: 2, aero_weight_class: 8, aero_particle: 1246, aero_removed: 4636) Coordinates: * gas_species (gas_species) int32 1 2 3 4 5 ... 73 74 75 76 77 * aero_species (aero_species) int32 1 2 3 4 5 ... 17 18 19 20 * aero_source (aero_source) int32 1 2 3 4 5 6 7 8 * aero_weight_group (aero_weight_group) int32 1 2 * aero_weight_class (aero_weight_class) int32 1 2 3 4 5 6 7 8 * aero_particle (aero_particle) int32 1 2 3 4 ... 1244 1245 1246 * aero_removed (aero_removed) int32 1 2 3 4 ... 4634 4635 4636 Data variables: (12/48) time float64 3.6e+03 timestep float64 60.0 timestep_index int32 2 repeat int32 1 temperature float64 292.5 relative_humidity float64 0.8126 ... ... aero_refract_core_real (aero_particle) float64 0.0 0.0 0.0 ... 0.0 0.0 aero_refract_core_imag (aero_particle) float64 0.0 0.0 0.0 ... 0.0 0.0 aero_core_vol (aero_particle) float64 0.0 0.0 0.0 ... 0.0 0.0 aero_removed_id (aero_removed) int32 134 602 715 ... 5534 5783 aero_removed_action (aero_removed) int32 1 1 1 4 3 3 ... 1 1 1 1 1 4 aero_removed_other_id (aero_removed) int32 32767 32767 ... 32767 0 Attributes: title: PartMC version 2.5.0 output file source: PartMC version 2.5.0 UUID: A96876F0-F62E-45FB-AC47-2FB221548641 history: 2021-09-22T15:54:26.773-05:00 created by PartMC version 2.5.0 Conventions: CF-1.4
xarray.Dataset
- gas_species: 77
- aero_species: 20
- aero_source: 8
- aero_weight_group: 2
- aero_weight_class: 8
- aero_particle: 1246
- aero_removed: 4636
- gas_species(gas_species)int321 2 3 4 5 6 7 ... 72 73 74 75 76 77
- names :
- H2SO4,HNO3,HCl,NH3,NO,NO2,NO3,N2O5,HONO,HNO4,O3,O1D,O3P,OH,HO2,H2O2,CO,SO2,CH4,C2H6,CH3O2,ETHP,HCHO,CH3OH,ANOL,CH3OOH,ETHOOH,ALD2,HCOOH,RCOOH,C2O3,PAN,ARO1,ARO2,ALK1,OLE1,API1,API2,LIM1,LIM2,PAR,AONE,MGLY,ETH,OLET,OLEI,TOL,XYL,CRES,TO2,CRO,OPEN,ONIT,ROOH,RO2,ANO2,NAP,XO2,XPAR,ISOP,ISOPRD,ISOPP,ISOPN,ISOPO2,API,LIM,DMS,MSA,DMSO,DMSO2,CH3SO2H,CH3SCH2OO,CH3SO2,CH3SO3,CH3SO2OO,CH3SO2CH2OO,SULFHOX
- description :
- dummy dimension variable (no useful value) - read species names as comma-separated values from the 'names' attribute
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], dtype=int32)
- aero_species(aero_species)int321 2 3 4 5 6 7 ... 15 16 17 18 19 20
- names :
- SO4,NO3,Cl,NH4,MSA,ARO1,ARO2,ALK1,OLE1,API1,API2,LIM1,LIM2,CO3,Na,Ca,OIN,OC,BC,H2O
- description :
- dummy dimension variable (no useful value) - read species names as comma-separated values from the 'names' attribute
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], dtype=int32)
- aero_source(aero_source)int321 2 3 4 5 6 7 8
- names :
- init_small,init_large,paved_road,cooking,diesel,gasoline,back_small,back_large
- description :
- dummy dimension variable (no useful value) - read source names as comma-separated values from the 'names' attribute
array([1, 2, 3, 4, 5, 6, 7, 8], dtype=int32)
- aero_weight_group(aero_weight_group)int321 2
- description :
- dummy dimension variable (no useful value)
array([1, 2], dtype=int32)
- aero_weight_class(aero_weight_class)int321 2 3 4 5 6 7 8
- description :
- dummy dimension variable (no useful value)
array([1, 2, 3, 4, 5, 6, 7, 8], dtype=int32)
- aero_particle(aero_particle)int321 2 3 4 5 ... 1243 1244 1245 1246
- description :
- dummy dimension variable (no useful value)
array([ 1, 2, 3, ..., 1244, 1245, 1246], dtype=int32)
- aero_removed(aero_removed)int321 2 3 4 5 ... 4633 4634 4635 4636
- description :
- dummy dimension variable (no useful value)
array([ 1, 2, 3, ..., 4634, 4635, 4636], dtype=int32)
- time()float64...
- unit :
- s
- description :
- time elapsed since simulation start
array(3600.)
- timestep()float64...
- unit :
- s
- description :
- current timestep size
array(60.)
- timestep_index()int32...
- description :
- an integer that is 1 on the first timestep, 2 on the second timestep, etc.
array(2, dtype=int32)
- repeat()int32...
- description :
- repeat number of this simulation (starting from 1)
array(1, dtype=int32)
- temperature()float64...
- unit :
- K
- standard_name :
- air_temperature
array(292.5)
- relative_humidity()float64...
- unit :
- 1
- standard_name :
- relative_humidity
array(0.812598)
- pressure()float64...
- unit :
- Pa
- standard_name :
- air_pressure
array(100000.)
- longitude()float64...
- unit :
- degree_east
- standard_name :
- longitude
array(0.)
- latitude()float64...
- unit :
- degree_north
- standard_name :
- latitude
array(0.)
- altitude()float64...
- unit :
- m
- standard_name :
- altitude
array(0.)
- start_time_of_day()float64...
- unit :
- s
- description :
- time-of-day of simulation start in seconds since midnight
array(21600.)
- start_day_of_year()int32...
- description :
- day-of-year number of simulation start
array(200, dtype=int32)
- elapsed_time()float64...
- unit :
- s
- description :
- elapsed time since simulation start
array(3600.)
- solar_zenith_angle()float64...
- unit :
- radian
- description :
- current angle from the zenith to the sun
array(1.323917)
- height()float64...
- unit :
- m
- long_name :
- boundary layer mixing height
array(228.21)
- gas_mosaic_index(gas_species)int32...
- long_name :
- MOSAIC indices of gas species
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77], dtype=int32)
- gas_mixing_ratio(gas_species)float64...
- unit :
- ppb
- long_name :
- mixing ratios of gas species
array([8.589411e-04, 9.454864e-01, 6.188475e-01, 1.696557e+00, 1.659636e+00, 1.011536e+01, 2.375551e-04, 3.389545e-03, 2.140013e-02, 1.827607e-02, 4.306937e+01, 2.575774e-14, 4.500819e-07, 7.567005e-05, 2.295153e-03, 1.096791e+00, 3.543114e+02, 1.581917e+00, 2.199947e+03, 9.989765e-01, 3.492794e-04, 3.549818e-05, 2.465935e+00, 1.785738e-01, 9.804946e-01, 4.841767e-01, 1.587018e-04, 2.035936e+00, 9.694700e-03, 2.634675e-01, 8.830146e-05, 9.203786e-01, 1.663541e-04, 9.754756e-05, 4.495862e-04, 1.162662e-03, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 3.233079e+01, 1.280233e+00, 9.113649e-02, 3.506162e+00, 1.005510e+00, 5.813359e-01, 1.213052e+00, 1.047937e+00, 5.581227e-03, 1.015587e-04, 2.548172e-07, 4.982652e-02, 1.605063e-01, 3.174937e-02, 3.789359e-04, 9.884110e-05, 5.628031e-05, 1.491065e-03, 8.436814e-05, 3.323193e-01, 1.619341e-01, 3.966537e-04, 7.659858e-06, 3.020076e-05, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00, 0.000000e+00])
- aero_mosaic_index(aero_species)int32...
- long_name :
- MOSAIC indices of aerosol species
array([ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 0], dtype=int32)
- aero_density(aero_species)float64...
- unit :
- kg/m^3
- long_name :
- densities of aerosol species
array([1800., 1800., 2200., 1800., 1800., 1400., 1400., 1400., 1400., 1400., 1400., 1400., 1400., 2600., 2200., 2600., 2600., 1000., 1800., 1000.])
- aero_num_ions(aero_species)int32...
- long_name :
- number of ions after dissociation of aerosol species
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32)
- aero_molec_weight(aero_species)float64...
- unit :
- kg/mol
- long_name :
- molecular weights of aerosol species
array([0.096 , 0.062 , 0.0355, 0.018 , 0.095 , 0.15 , 0.15 , 0.14 , 0.14 , 0.184 , 0.184 , 0.2 , 0.2 , 0.06 , 0.023 , 0.04 , 0.001 , 0.001 , 0.001 , 0.018 ])
- aero_kappa(aero_species)float64...
- unit :
- 1
- long_name :
- hygroscopicity parameters (kappas) of aerosol species
array([0.65 , 0.65 , 0.53 , 0.65 , 0.53 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.1 , 0.53 , 0.53 , 0.53 , 0.1 , 0.001, 0. , 0. ])
- fractal_dimension()float64...
- unit :
- 1
- description :
- particle volume fractal dimension
array(3.)
- fractal_prime_radius()float64...
- unit :
- m
- description :
- radius of primary particles
array(1.e-08)
- fractal_vol_fill_factor()float64...
- unit :
- 1
- description :
- volume filling factor
array(1.)
- weight_type(aero_weight_class, aero_weight_group)int32...
- description :
- type of each aerosol weighting function: 0 = invalid, 1 = none (w(D) = 1), 2 = power (w(D) = (D/D_0)^alpha), 3 = MFA (mass flow) (w(D) = (D/D_0)^(-3))
array([[1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2], [1, 2]], dtype=int32)
- weight_magnitude(aero_weight_class, aero_weight_group)float64...
- unit :
- m^{-3}
- description :
- magnitude for each weighting function
array([[5.076519e+07, 7.050473e-15], [4.600596e+07, 6.279492e-14], [6.849066e+02, 3.717153e-16], [1.913524e+06, 1.015869e-15], [3.013610e+07, 4.577667e-15], [6.785797e+06, 1.215339e-15], [8.220958e+06, 2.179156e-15], [8.134143e+06, 9.989978e-15]])
- weight_exponent(aero_weight_class, aero_weight_group)float64...
- unit :
- 1
- description :
- exponent alpha for the power weight_type, set to -3 for MFA, and zero otherwise
array([[ 0., -3.], [ 0., -3.], [ 0., -3.], [ 0., -3.], [ 0., -3.], [ 0., -3.], [ 0., -3.], [ 0., -3.]])
- aero_particle_mass(aero_species, aero_particle)float64...
- unit :
- kg
- long_name :
- constituent masses of each aerosol particle
array([[5.898664e-22, 5.249625e-21, 9.076294e-21, ..., 9.855446e-24, 2.711403e-21, 1.353820e-19], [1.143650e-22, 1.171292e-21, 2.078100e-21, ..., 0.000000e+00, 0.000000e+00, 0.000000e+00], [1.487301e-23, 1.505076e-22, 2.674306e-22, ..., 0.000000e+00, 0.000000e+00, 0.000000e+00], ..., [7.540971e-22, 6.963197e-21, 1.211034e-20, ..., 2.478448e-20, 3.725214e-21, 1.861104e-19], [0.000000e+00, 0.000000e+00, 0.000000e+00, ..., 5.783045e-20, 0.000000e+00, 0.000000e+00], [1.308602e-21, 1.238477e-20, 2.167564e-20, ..., 0.000000e+00, 0.000000e+00, 0.000000e+00]])
- aero_n_orig_part(aero_source, aero_particle)int32...
- long_name :
- number of original constituent particles from each source that coagulated to form each aerosol particle
array([[1, 1, 1, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 1, 0], [0, 0, 0, ..., 0, 0, 1]], dtype=int32)
- aero_particle_weight_group(aero_particle)int32...
- long_name :
- weight group number of each aerosol particle
array([1, 1, 1, ..., 1, 1, 1], dtype=int32)
- aero_particle_weight_class(aero_particle)int32...
- long_name :
- weight class number of each aerosol particle
array([1, 1, 1, ..., 5, 7, 8], dtype=int32)
- aero_water_hyst_leg(aero_particle)int32...
- long_name :
- leg of the water hysteresis curve leg of each aerosol particle
array([1, 1, 1, ..., 0, 0, 0], dtype=int32)
- aero_num_conc(aero_particle)float64...
- unit :
- m^{-3}
- long_name :
- number concentration for each particle
array([50535191.668387, 48711221.511276, 47291263.147556, ..., 27660845.012925, 8178235.622016, 7700676.221095])
- aero_id(aero_particle)int32...
- long_name :
- unique ID number of each aerosol particle
array([ 1, 2, 3, ..., 5874, 5880, 5881], dtype=int32)
- aero_least_create_time(aero_particle)float64...
- unit :
- s
- long_name :
- least creation time of each aerosol particle
- description :
- least (earliest) creation time of any original constituent particles that coagulated to form each particle, measured from the start of the simulation
array([ 0., 0., 0., ..., 3600., 3600., 3600.])
- aero_greatest_create_time(aero_particle)float64...
- unit :
- s
- long_name :
- greatest creation time of each aerosol particle
- description :
- greatest (latest) creation time of any original constituent particles that coagulated to form each particle, measured from the start of the simulation
array([ 0., 0., 0., ..., 3600., 3600., 3600.])
- aero_absorb_cross_sect(aero_particle)float64...
- unit :
- m^2
- long_name :
- optical absorption cross sections of each aerosol particle
array([-8.178353e-29, 1.365806e-26, -6.636220e-27, ..., 3.512296e-16, -1.970211e-27, -7.532891e-25])
- aero_scatter_cross_sect(aero_particle)float64...
- unit :
- m^2
- long_name :
- optical scattering cross sections of each aerosol particle
array([3.627116e-21, 3.048994e-19, 9.210540e-19, ..., 5.311271e-18, 2.173407e-20, 5.438239e-17])
- aero_asymmetry(aero_particle)float64...
- unit :
- 1
- long_name :
- optical asymmetry parameters of each aerosol particle
array([0.001815, 0.008041, 0.01164 , ..., 0.012645, 0.003185, 0.042546])
- aero_refract_shell_real(aero_particle)float64...
- unit :
- 1
- long_name :
- real part of the refractive indices of the shell of each aerosol particle
array([1.418421, 1.413535, 1.412498, ..., 1.450434, 1.475379, 1.475105])
- aero_refract_shell_imag(aero_particle)float64...
- unit :
- 1
- long_name :
- imaginary part of the refractive indices of the shell of each aerosol particle
array([0., 0., 0., ..., 0., 0., 0.])
- aero_refract_core_real(aero_particle)float64...
- unit :
- 1
- long_name :
- real part of the refractive indices of the core of each aerosol particle
array([0. , 0. , 0. , ..., 1.82, 0. , 0. ])
- aero_refract_core_imag(aero_particle)float64...
- unit :
- 1
- long_name :
- imaginary part of the refractive indices of the core of each aerosol particle
array([0. , 0. , 0. , ..., 0.74, 0. , 0. ])
- aero_core_vol(aero_particle)float64...
- unit :
- m^3
- long_name :
- volume of the optical cores of each aerosol particle
array([0.000000e+00, 0.000000e+00, 0.000000e+00, ..., 3.212795e-23, 0.000000e+00, 0.000000e+00])
- aero_removed_id(aero_removed)int32...
- long_name :
- ID of removed particles
array([ 134, 602, 715, ..., 5436, 5534, 5783], dtype=int32)
- aero_removed_action(aero_removed)int32...
- long_name :
- reason for particle removal
- description :
- valid is 0 (invalid entry), 1 (removed due to dilution), 2 (removed due to coagulation -- combined particle ID is in \c aero_removed_other_id), 3 (removed due to populating halving), or 4 (removed due to weighting changes
array([1, 1, 1, ..., 1, 1, 4], dtype=int32)
- aero_removed_other_id(aero_removed)int32...
- long_name :
- ID of other particle involved in removal
- description :
- if <tt>aero_removed_action(i)</tt> is 2 (due to coagulation), then <tt>aero_removed_other_id(i)</tt> is the ID of the resulting combined particle, or 0 if the new particle was not created
array([32767, 32767, 32767, ..., 32767, 32767, 0], dtype=int32)
- title :
- PartMC version 2.5.0 output file
- source :
- PartMC version 2.5.0
- UUID :
- A96876F0-F62E-45FB-AC47-2FB221548641
- history :
- 2021-09-22T15:54:26.773-05:00 created by PartMC version 2.5.0
- Conventions :
- CF-1.4