Skip to main content

part2pop

CI codecov

A unified analysis framework for standardizing aerosol populations from models, observations, and parameterizations.

part2pop is a lightweight Python library that provides a standardized representation of aerosol particles and populations. By translating model-derived, observation-constrained, and parameterized population descriptions into a common particle-population interface, particle-level process models and diagnostics can be applied consistently across data sources. Its modular, registry-based architecture keeps extension points explicit, supporting extensible population builders, reusable analyses, and maintainable development by both researchers and AI coding assistants.

Features

  • Standardized aerosol representation via AerosolSpecies, Particle, and ParticlePopulation
  • Species registry with density, hygroscopicity (kappa), molar mass, and surface tension
  • Population builders for monodisperse, lognormal, sampled, observation-based, and model-derived populations
  • Optical-property builders supporting homogeneous spheres, core-shell particles, and fractal aggregates
  • Freezing-property builders for immersion-freezing metrics
  • Analysis utilities for size distributions, hygroscopic growth, CCN activation, optical properties, freezing diagnostics, and bulk moments
  • Visualization tools for time series, size distributions, optical coefficients, and freezing curves

Installation

pip install part2pop

For development:

git clone https://github.com/pnnl/part2pop.git
cd part2pop
pip install -e .

Quick start

from part2pop.population.builder import build_population

config = {
    "type": "monodisperse",
    "N": [1.0e8],
    "D": [0.2e-6],
    "aero_spec_names": [["SO4", "BC"]],
    "aero_spec_fracs": [[0.7, 0.3]],
    "D_is_wet": False,
}

pop = build_population(config)

print(pop.get_Ntot())
print([species.name for species in pop.species])

For end-to-end analysis and plotting workflows, see the notebooks in examples/.

Documentation

User documentation is available in docs/, including:

Contributing and support

Please use GitHub Issues for bug reports, questions, and feature requests. See CONTRIBUTING.md for contribution guidelines.

Research use and integrations

part2pop is used as a shared aerosol-population layer in related research software.

  • In LD-Chem, part2pop is a core dependency for constructing particle populations used as model input and for analyzing model output.
  • In AMBRS, part2pop provides a unified population representation and diagnostic framework for comparing aerosol box-model output.

License

part2pop is distributed under the MIT License. See the LICENSE file for details.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

part2pop-1.1.0.tar.gz (11.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

part2pop-1.1.0-py3-none-any.whl (149.3 kB view details)

Uploaded Python 3

File details

Details for the file part2pop-1.1.0.tar.gz.

File metadata

  • Download URL: part2pop-1.1.0.tar.gz
  • Upload date:
  • Size: 11.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for part2pop-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fe09843a2f76b4f7c07f02107f355df107485adfd131ce9536cb3bd17f578ad8
MD5 b6d142609c84ea9bd20cc5d33b6dee13
BLAKE2b-256 c8e7d2a143fdfcba999ee817a442fd9d9766c271c315459cc789f1a61dec9950

See more details on using hashes here.

File details

Details for the file part2pop-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: part2pop-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 149.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for part2pop-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f7223ce456e1c0244128efcc89d0b8ca23d93753380a346c093f060d4d897c8b
MD5 c94526ca9ca8c04f5a5eb4ddf9334166
BLAKE2b-256 84222987d86ecc9c64561c968f30d055eba481c4162b38cc5c15785ef86200ac

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 files

1.0.0

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page