part2pop
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, andParticlePopulation - 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,
part2popis a core dependency for constructing particle populations used as model input and for analyzing model output. - In AMBRS,
part2popprovides 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe09843a2f76b4f7c07f02107f355df107485adfd131ce9536cb3bd17f578ad8
|
|
| MD5 |
b6d142609c84ea9bd20cc5d33b6dee13
|
|
| BLAKE2b-256 |
c8e7d2a143fdfcba999ee817a442fd9d9766c271c315459cc789f1a61dec9950
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f7223ce456e1c0244128efcc89d0b8ca23d93753380a346c093f060d4d897c8b
|
|
| MD5 |
c94526ca9ca8c04f5a5eb4ddf9334166
|
|
| BLAKE2b-256 |
84222987d86ecc9c64561c968f30d055eba481c4162b38cc5c15785ef86200ac
|