def download_and_calibrate(img_id=None, overwrite=False, recalibrate=False, **kwargs):
if isinstance(img_id, io.PathManager):<EOL><INDENT>pm = img_id<EOL><DEDENT>else:<EOL><INDENT>logger.debug("<STR_LIT>")<EOL>pm = io.PathManager(img_id)<EOL><DEDENT>if not pm.raw_image.exists() or overwrite is True:<EOL><INDENT>logger.debug("<STR_LIT>" % pm.img_id)<EOL>download_file_id(pm.img_id)<EOL>pm = io.PathManager(img_id)  <EOL><DEDENT>else:<EOL><INDENT>logger.info("<STR_LIT>")<EOL><DEDENT>if not (pm.cubepath.exists() and pm.undestriped.exists()) or overwrite is True:<EOL><INDENT>calib = pipeline.Calibrator(img_id, **kwargs)<EOL>calib.standard_calib()<EOL><DEDENT>else:<EOL><INDENT>print("<STR_LIT>")<EOL><DEDENT>
Download and calibrate one or more image ids, in parallel.

    Parameters
    ----------
    img_id : str or io.PathManager, optional
        If more than one item is in img_id, a parallel process is started
    overwrite: bool, optional
        If the pm.cubepath exists, this switch controls if it is being overwritten.
        Default: False