radis.io.hitemp module

Created on Tue Jan 26 22:40:51 2021

@author: erwan

https://stackoverflow.com/questions/55610891/numpy-load-from-io-bytesio-stream https://stupidpythonideas.blogspot.com/2014/07/three-ways-to-read-files.html

class HITEMPDatabaseManager(name, molecule, local_databases, engine='default', verbose=True, chunksize=100000, parallel=True)[source]

Bases: DatabaseManager

fetch_url_Nlines_wmin_wmax(hitemp_url='https://hitran.org/hitemp/')[source]

requires connexion

fetch_urlnames()[source]

requires connexion

get_linereturn_format(opener, urlname, columns)[source]
keep_only_relevant(inputfiles, wavenum_min=None, wavenum_max=None) list[source]

For CO2 and H2O, return only relevant files for given wavenumber range.

If other molecule, return the file anyway. see radis.io.hitemp.keep_only_relevant()

parse_to_local_file(opener, urlname, local_file, pbar_active=True, pbar_t0=0, pbar_Ntot_estimate_factor=None, pbar_Nlines_already=0, pbar_last=True)[source]

Uncompress urlname into local_file. Also add metadata

Parameters
  • opener (an opener with an .open() command)

  • gfile (file handler. Filename: for info)

register()[source]

register in ~/radis.json

fetch_hitemp(molecule, local_databases=None, databank_name='HITEMP-{molecule}', isotope=None, load_wavenum_min=None, load_wavenum_max=None, columns=None, cache=True, verbose=True, chunksize=100000, clean_cache_files=True, return_local_path=False, engine='default', output='pandas', parallel=True)[source]

Stream HITEMP file from HITRAN website. Unzip and build a HDF5 file directly.

Returns a Pandas DataFrame containing all lines.

Parameters
  • molecule ("H2O", "CO2", "N2O", "CO", "CH4", "NO", "NO2", "OH") – HITEMP molecule. See https://hitran.org/hitemp/

  • local_databases (str) – where to create the RADIS HDF5 files. Default "~/.radisdb/hitemp". Can be changed in radis.config["DEFAULT_DOWNLOAD_PATH"] or in ~/radis.json config file

  • databank_name (str) – name of the databank in RADIS Configuration file Default "HITEMP-{molecule}"

  • isotope (str, int or None) – load only certain isotopes : '2', '1,2', etc. If None, loads everything. Default None.

  • load_wavenum_min, load_wavenum_max (float (cm-1)) – load only specific wavenumbers.

  • columns (list of str) – list of columns to load. If None, returns all columns in the file.

Other Parameters
  • cache (True, False, 'regen' or 'force') – if True, use existing HDF5 file. If False or 'regen', rebuild it. If 'force', raise an error if cache file cannot be used (useful for debugging). Default True.

  • verbose (bool)

  • chunksize (int) – number of lines to process at a same time. Higher is usually faster but can create Memory problems and keep the user uninformed of the progress.

  • clean_cache_files (bool) – if True clean downloaded cache files after HDF5 are created.

  • return_local_path (bool) – if True, also returns the path of the local database file.

  • engine (‘pytables’, ‘vaex’, ‘default’) – which HDF5 library to use to parse local files. If ‘default’ use the value from ~/radis.json

  • output (‘pandas’, ‘vaex’, ‘jax’) – format of the output DataFrame. If 'jax', returns a dictionary of jax arrays. If 'vaex', output is a vaex.dataframe.DataFrameLocal

    Note

    Vaex DataFrames are memory-mapped. They do not take any space in RAM and are extremelly useful to deal with the largest databases.

  • parallel (bool) – if True, uses joblib.parallel to load database with multiple processes

Returns

  • df (pd.DataFrame) – Line list A HDF5 file is also created in local_databases and referenced in the RADIS config file with name databank_name

  • local_path (str) – path of local database file if return_local_path

Examples

from radis import fetch_hitemp
df = fetch_hitemp("CO")
print(df.columns)
>>> Index(['id', 'iso', 'wav', 'int', 'A', 'airbrd', 'selbrd', 'El', 'Tdpair',
    'Pshft', 'ierr', 'iref', 'lmix', 'gp', 'gpp', 'Fu', 'branch', 'jl',
    'syml', 'Fl', 'vu', 'vl'],
    dtype='object')
Download the HITEMP database

Download the HITEMP database

Download the HITEMP database
Explore Line Database Parameters

Explore Line Database Parameters

Explore Line Database Parameters
Compare CO xsections from the ExoMol and HITEMP database

Compare CO xsections from the ExoMol and HITEMP database

Compare CO xsections from the ExoMol and HITEMP database
Scale Linestrengths of carbon-monoxide

Scale Linestrengths of carbon-monoxide

Scale Linestrengths of carbon-monoxide

Notes

if using load_only_wavenum_above/below or isotope, the whole database is anyway downloaded and uncompressed to local_databases fast access .HDF5 files (which will take a long time on first call). Only the expected wavenumber range & isotopes are returned. The .HFD5 parsing uses hdf2df()

get_last(b)[source]

Get non-empty lines of a chunk b, parsing the bytes.

keep_only_relevant(inputfiles, wavenum_min=None, wavenum_max=None) Union[list, float][source]

Parser file names for wavenum_format (min and max) and only keep relevant files if the requested range is [wavenum_min, wavenum_max]

Returns

  • relevant (list of relevant files)

  • files_wmin, files_wmax ((float, float) : wavenum min & max of relevant range)