<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_filename(request, date, size_x, size_y):
 """ Get filename location Returns the filename's location on disk where data is or is going to be stored. The files are stored in the folder specified by the user when initialising OGC-type of request. The name of the file has the following structure: {service_type}_{layer}_{crs}_{bbox}_{time}_{size_x}X{size_y}_*{custom_url_params}.{image_format} In case of `TIFF_d32f` a `'_tiff_depth32f'` is added at the end of the filename (before format suffix) to differentiate it from 16-bit float tiff. :param request: OGC-type request with specified bounding box, cloud coverage for specific product. :type request: OgcRequest or GeopediaRequest :param date: acquisition date or None :type date: datetime.datetime or None :param size_x: horizontal image dimension :type size_x: int or str :param size_y: vertical image dimension :type size_y: int or str :return: filename for this request and date :rtype: str """

        filename = '_'.join([
            str(request.service_type.value),
            request.layer,
            str(request.bbox.crs),
            str(request.bbox).replace(',', '_'),
            '' if date is None else date.strftime("%Y-%m-%dT%H-%M-%S"),
            '{}X{}'.format(size_x, size_y)
        ])

        filename = OgcImageService.filename_add_custom_url_params(filename, request)

        return OgcImageService.finalize_filename(filename, request.image_format)