Downloads
Take everything, or choose what you need.
Download the whole database in one go (a zip of text files, or a single binary file for Python), or build a custom selection by species, shape and size. To get one file at a time, or to look at the structure of a grain, use Browse. Whatever you download, it comes with the details of what it contains, described below.
FilesWhat the files contain: formats, columns and units
Every curve is the cross section of one species, one shape and one size (the volume-equivalent radius of the whole grain), computed at 241 wavelengths from 1 to 25 µm in steps of 0.1 µm. Each curve is a separate file, in the formats below.
ASCII table .csv
A text file: a few header lines that start with #, then four columns separated by commas, one row per wavelength (241 rows). All values are in SI units.
| Column | Quantity | Unit |
|---|---|---|
| 1 | Wavelength | m |
| 2 | Scattering cross section | m² |
| 3 | Absorption cross section | m² |
| 4 | Extinction cross section | m² |
Mind the order: scattering comes before absorption, and extinction is last. Extinction = scattering + absorption.
# Condensate: Forsterite # Mode: compact # Number of spheres: 16 # Target Equivalent Radius: 1.0um, Monomer Sphere Radius: 0.40 um # Calculation: nptm-code np_cluster # Data format: Wavelength [m], Scattering Cross Sec[m2], Absorption Cross Sec[m2], Extinction Cross Sec [m2] 1.0000000E-06,1.2387046E-11,1.4463832E-14,1.2401509E-11 1.1000000E-06,1.3601055E-11,1.1769628E-14,1.3612825E-11
The header says which species and shape it is, how many monomers the grain has (1 for a single sphere), the equivalent radius, the radius of one monomer and the code used.
In Python: numpy.loadtxt(file, delimiter=",") gives an array of 241 rows × 4 columns (the # lines are skipped).
JSON .json
The same curve, ready for plotting, in other units: wavelength in µm and cross sections in cm² (1 m² = 10⁴ cm²).
{"label": "Mg2SiO4 compact aggregate r=1 um (16 monomers)",
"lambda_um": [1.0, 1.1, ...], // 241 values, µm
"ext": [...], "abs": [...], "sca": [...] // 241 values each, cm²
}
Structure of the grain .geo.json
Only for aggregates: where the monomers are, so that you can draw the grain.
{"monomer_um": 0.4, // radius of one monomer, µm
"radius_um": 1.0, // equivalent radius of the whole grain, µm
"positions_um": [[x, y, z], ...] // one centre per monomer, µm
}
Binary file .npz
The whole database in one file, for Python: curves as NumPy arrays grouped by species and shape, in µm and m². Its layout and the functions to read it are described inside csdb.py.
How a zip is organised
Folders species/shape/ with one file per size and format, named like forsterite_compact_r1um.csv (the number after r is the radius in µm).
Next to them: manifest.csv, one line per curve with its species, shape, radius, number of monomers, wavelength range, refractive-index source and release, and README.txt with these units.
Please cite the papers listed in Cite, the refractive-index source of each species and the release you used.
Full database
All species, shapes and sizes: ASCII, JSON and cluster geometries, with a manifest and README.
335 curves ·
3.3 MB zip · v0.1
For Python: the whole database as one binary file
One compact .npz file (1.9 MB) with every curve as NumPy arrays, plus csdb.py: a small script that loads it into
Python dictionaries (species → shape → arrays), with instructions, a show() function to check what is inside and a get() function for a single curve.
It needs only Python and NumPy.
Release v0.1
import csdb
db = csdb.load("csdb_v0.1_full.npz")
csdb.show(db) # what is inside, with checks
c = csdb.get(db, "forsterite", "compact", 1.0) # one curve: c["wavelength_um"], c["ext_m2"], ...
Custom selection
Nothing is selected to start with. Tick species, shapes and/or a radius range: what you tick is added to your zip archive. A species alone gives all its shapes and sizes; adding a shape or a radius range narrows it down.