def CNN_AllClearSkyAerosolRetrieval(reflectance,cloud_mask):
    ## =================README=================
    # -> INPUT variable "reflectance" should be in the dimension of (1,45,45,1)
    # -> INPUT variable "cloud_mask" should be in the dimension of (25,25)
    # -> OUTPUT variable "aerosol_optical_depth" would be in the dimension of (25,25)
	## ========================================
	# ----------step 1: load in all the necessary libraries----------
    from tensorflow import keras
    import numpy as np
    # ----------step 2: load in the "CNN_AllClearSkyAerosolRetrival_model"----------
    trained_model=keras.models.load_model('CNN_AllClearSkyAerosolRetrieval_model.hdf5');
    # ----------step 3: scale the INPUT variable----------
    input=(reflectance-0.0564509)/(1.3893379-0.008250451);
    # ----------step 4: make prediction----------
    output=trained_model.predict(input);
    # ----------step 5: transform the OUTPUT variable to original scale----------
    aerosol_optical_depth=output*(0.79253757-0.010284733)+0.258463;
    # ----------step 6: apply "2D cloud_mask" to the "aerosol optical depth" field----------
    aerosol_optical_depth=np.reshape(aerosol_optical_depth,(25,25),order='C')*cloud_mask;
    return aerosol_optical_depth