aerosolprops
Structure-derived pure-component properties for atmospheric organic aerosol.
aerosolprops is a modern successor to the pure-component property methods of
UManSysProp
(Topping et al., GMD 9, 899–911, 2016), rebuilt on
RDKit as the structure engine and following the
conventions of the thermo package
family: strict SI units, estimators as pure functions of group counts where
possible, and failures that return None rather than raise.
Status: pre-alpha. The repository currently contains the packaging skeleton, CI, documentation scaffold, the structure/topology foundation layers, and the first estimator (SIMPOL.1). The remaining methods below land one at a time, each with coefficients entered from the published papers and tests against literature values.
Methods (v0.1)
| Method | Property | Status | Reference |
|---|---|---|---|
| SIMPOL.1 | Vapour pressure | implemented | Pankow & Asher, ACP 8, 2773 (2008) |
| EVAPORATION | Vapour pressure | implemented | Compernolle et al., ACP 11, 9431 (2011) |
| Nannoolal Part 1 (+ SOA extension groups) | Normal boiling point | implemented | Nannoolal et al., FPE 226, 45 (2004); Compernolle et al., ACP 10, 6271 (2010) |
| Nannoolal Part 3 | Vapour pressure | implemented | Nannoolal et al., FPE 269, 117 (2008) |
| Myrdal–Yalkowsky (+ H-bonding extension) | Vapour pressure | implemented | Myrdal & Yalkowsky, IECR 36, 2494 (1997); Compernolle et al., ACP 10, 6271 (2010) |
Boiling points used as inputs (by Myrdal–Yalkowsky and Nannoolal Part 3) can
come from the self-implemented Nannoolal Part 1 route, from thermo's
built-in Joback method, or from experimental data — aerosolprops does not
reimplement Joback.
Installation
pip install aerosolprops
RDKit and thermo are required dependencies.
Design notes
- Units are strictly SI (Pa, K, mol); property failures return
None. - RDKit is the structure engine and a required dependency. It is
imported lazily, and estimators ultimately consume group-count
dictionaries — the same interface
thermouses for its own RDKit-optional group-contribution methods — so pieces remain extractable upstream. - No molecular descriptors. Every method needs only 2D graph quantities: SMARTS substructure counts, ring perception, composition, and a few connectivity queries. No fingerprints, no 3D, no descriptor packages.
- No home-grown graph algorithms. The graph primitives (connected
components, ring distances, neighbour queries) are RDKit built-ins;
aerosolprops.topologyonly wraps them. What is method-specific is the translation of paper semantics (e.g. SIMPOL.1 "acid-side carbons", EVAPORATION "in-chain oxygen") onto those primitives. thermocompatibility. aerosolprops hard-depends onthermoand follows its group-contribution conventions ({group_id: coefficient record}catalogues, counts-based static estimators, Joback-style one-time fragmenting wrappers). Where a method's counting semantics do not fitthermo's mutually-exclusive SMARTS partition (SIMPOL.1's groups overlap and replace one another additively), aerosolprops ships its own fragmenter but keeps the same interface, so pieces can still be contributed upstream with minimal rework.
Licensing and data provenance
aerosolprops is MIT-licensed. Coefficients are entered from the published
papers cited above (facts, not copyrightable expression), and SMARTS
patterns are authored from the group definitions in those papers.
UManSysProp is used only as a behavioural test oracle during development;
no code or data files are copied from it.
Development
uv venv && uv pip install -e ".[test,docs]"
pytest # unit tests + doctests
mkdocs serve # documentation
CI runs the full test matrix (with doctests) on Linux/macOS/Windows for Python 3.9–3.14, plus a strict docs build.
License
MIT — see LICENSE.
Metadata
Release files for aerosolprops 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| aerosolprops-0.1.0.tar.gz | 131.8 kB | With provenance | Details for aerosolprops-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| aerosolprops-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for aerosolprops-0.1.0-py3-none-any.whl |
Total release size: 217.6 kB
Release files / aerosolprops-0.1.0.tar.gz
| Download URL | aerosolprops-0.1.0.tar.gz |
|---|---|
| Size | 131.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dfb366ff1c0975a8f6e2151eba1adee103682c787af3aae8016e281108e5ae9d
|
|
BLAKE2b-256 checksum How to use checksums |
c3096bfc3f80a9f4bf6c688154e90f47bfc622dea1151e16467b21ea2e16b3b6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logRelease files / aerosolprops-0.1.0-py3-none-any.whl
| Download URL | aerosolprops-0.1.0-py3-none-any.whl |
|---|---|
| Size | 85.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0323487d2db543d41523303e0e611e68726e1cdb11a140057737ad0ced968249
|
|
BLAKE2b-256 checksum How to use checksums |
4e57ad58dde6182b558b791aad92a03153e755976f8012529d3dd0399e9a2f98
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logSecurity for aerosolprops 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for aerosolprops-0.1.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Nov 10, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.