carbcor
Python package to calculate Placco et al. (2014) carbon abundance evolutionary corrections with online tool at vplacco.pythonanywhere.com.
Corrects observed [C/Fe] abundances for the depletion of carbon due to CN processing on the upper red giant branch. Inputs are observed [C/Fe], logg, and [Fe/H].
Installation
pip install carbcor
Quick start
Python API
from carbcor import get_carbon_correction, apply_carbon_corrections
import pandas as pd
# Single star
res = get_carbon_correction(logg=0.88, feh=-4.82, cfe=0.50) # these are the parameters for star GDR3_526285 [Limberg, Placco et al. (2025)](https://ui.adsabs.harvard.edu/abs/2025ApJ...989L..18L/abstract)
print(res["cfe_corrected"]) # corrected [C/Fe]
print(res["correction"]) # correction delta
# Batch from a DataFrame
# You can test for the whole JINAbase [Abohalima & Frebel 2018](https://ui.adsabs.harvard.edu/abs/2018ApJS..238...36A/abstract) following the tests folder.
# Since it parses 1 star at a time, it takes ~10min for each 2.5k stars.
df = pd.DataFrame({
"logg": [0.88, -4.82, 0.50], # GDR3_526285 [Limberg, Placco et al. (2025)](https://ui.adsabs.harvard.edu/abs/2025ApJ...989L..18L/abstract)
"feh": [1.89, -4.11, 2.20], # HE 0144-4657 [Placco, Limberg et al. (2026)](https://ui.adsabs.harvard.edu/abs/2026ApJ..1000L..34P/abstract)
"cfe": [2.02, -4.06, 1.53], # GDR3 47959 [Limberg, Placco et al. (2026)] --> submitted
})
df_cor = apply_carbon_corrections(df)
print(df_cor[["cfe", "cfe_corrected", "correction"]])
Command line
# Query a single star
carbcor query 0.88 -4.82 0.50 # GDR3_526285
# Process a CSV file
carbcor batch stars.csv -o corrected.csv
# Inspect the web form structure
carbcor discover
Parameter space
The underlying correction grid covers:
| Parameter | Range | Step |
|---|---|---|
| log(g) | 0.0 to 5.0 | 0.1 |
| [Fe/H] | −5.5 to 0.0 | 0.1 |
| [C/Fe] | −1.0 to 3.0 | 0.1 |
Values outside these ranges are clipped to the nearest grid point.
Custom column names
apply_carbon_corrections(df, logg_col="logg", feh_col="Fe/H", cfe_col="CFe") # example for the JINAbase_2021.csv table
How it works
- The package
carbcorfetches the website HTML and auto-discovers the form structure (action URL, HTTP method, field names). - For each star, it submits the parameters and parses the correction delta from the HTML response.
- Corrected [C/Fe] = input [C/Fe] + correction delta.
- Missing / NaN inputs produce
NaNoutputs (standardfloat('nan'), which is to be compatible with pandas, i.e., you can just plot it afterwards).
Development
git clone https://github.com/guilimberg/carbcor.git
cd carbcor
pip install -e ".[dev]"
pytest
Reference
If you use this tool, you SHOULD cite:
Placco, V.M., Frebel, A., Beers, T.C., & Stancliffe, R.J. 2014, ApJ, 797, 21 (ADS | arXiv:1410.2223)
License
MIT
Metadata
Release files for carbcor 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| carbcor-1.0.2.tar.gz | 582.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| carbcor-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 592.9 kB
Release files / carbcor-1.0.2.tar.gz
| Download URL | carbcor-1.0.2.tar.gz |
|---|---|
| Size | 582.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5bcee291d4142ff0fb64fce2bcc577a7a61ef0f932c33bd963e31ca696224585
|
|
BLAKE2b-256 checksum How to use checksums |
2297132a4b6481f97a2769d0c8ce951ac5417569e1ba4c2beb22c1bac9e83d74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|
Release files / carbcor-1.0.2-py3-none-any.whl
| Download URL | carbcor-1.0.2-py3-none-any.whl |
|---|---|
| Size | 10.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
640f1e78d4fe97a87472b793e747b6938216583581efd14f267a5c96d5d30f2d
|
|
BLAKE2b-256 checksum How to use checksums |
41699b500bf7d22fdb93566ab39f65fa9307aba7bfbab899b6fa8e757f36e9c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|