def _create_dscfg_dict(cfg, dataset):
    """
    creates a dataset configuration dictionary

    Parameters
    ----------
    cfg : dict
        config dictionary
    dataset : str
        name of the dataset

    Returns
    -------
    dscfg : dict
        dataset config dictionary

    """
    dscfg = cfg[dataset]

    # Path related parameters
    dscfg.update({'configpath': cfg['configpath']})
    dscfg.update({'basepath': cfg['saveimgbasepath']})
    dscfg.update({'path_convention': cfg['path_convention']})
    dscfg.update({'procname': cfg['name']})
    dscfg.update({'dsname': dataset})
    dscfg.update({'solarfluxpath': cfg['solarfluxpath']})
    dscfg.update({'colocgatespath': cfg['colocgatespath']})
    dscfg.update({'excessgatespath': cfg['excessgatespath']})
    dscfg.update({'dempath': cfg['dempath']})
    dscfg.update({'cosmopath': cfg['cosmopath']})
    dscfg.update({'CosmoRunFreq': cfg['CosmoRunFreq']})
    dscfg.update({'CosmoForecasted': cfg['CosmoForecasted']})
    dscfg.update({'metranet_read_lib': cfg['metranet_read_lib']})
    dscfg.update({'lastStateFile': cfg['lastStateFile']})
    dscfg.update({'timeinfo': None})

    # Instrument parameters
    dscfg.update({'RadarName': cfg['RadarName']})
    dscfg.update({'ScanPeriod': cfg['ScanPeriod']})
    dscfg.update({'lrxh': cfg['lrxh']})
    dscfg.update({'lrxv': cfg['lrxv']})
    dscfg.update({'ltxh': cfg['ltxh']})
    dscfg.update({'ltxv': cfg['ltxv']})
    dscfg.update({'lradomeh': cfg['lradomeh']})
    dscfg.update({'lradomev': cfg['lradomev']})


    # PAR and ASR variable
    if 'par_azimuth_antenna' in cfg:
        dscfg.update({'par_azimuth_antenna': cfg['par_azimuth_antenna']})
    if 'par_elevation_antenna' in cfg:
        dscfg.update({'par_elevation_antenna': cfg['par_elevation_antenna']})
    if 'asr_highbeam_antenna' in cfg:
        dscfg.update({'asr_highbeam_antenna': cfg['asr_highbeam_antenna']})
    if 'asr_lowbeam_antenna' in cfg:
        dscfg.update({'asr_lowbeam_antenna': cfg['asr_lowbeam_antenna']})
    if 'target_radar_pos' in cfg:
        dscfg.update({'target_radar_pos': cfg['target_radar_pos']})

    # indicates the dataset has been initialized and aux data is available
    dscfg.update({'initialized': False})
    dscfg.update({'global_data': None})

    # Convert the following strings to string arrays
    strarr_list = ['datatype', 'FIELDS_TO_REMOVE']
    for param in strarr_list:
        if param in dscfg:
            if isinstance(dscfg[param], str):
                dscfg[param] = [dscfg[param]]

    # variables to make the data set available in the next level
    if 'MAKE_GLOBAL' not in dscfg:
        dscfg.update({'MAKE_GLOBAL': 0})
    if 'SUBSTITUTE_OBJECT' not in dscfg:
        dscfg.update({'SUBSTITUTE_OBJECT': 0})
    if 'FIELDS_TO_REMOVE' not in dscfg:
        dscfg.update({'FIELDS_TO_REMOVE': None})

    return dscfg