<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_probability_masks(self, non_valid_value=0):
 """ Get probability maps of areas for each available date. The pixels without valid data are assigned non_valid_value. :param non_valid_value: Value to be assigned to non valid data pixels :type non_valid_value: float :return: Probability map of shape `(times, height, width)` and `dtype=numpy.float64` :rtype: numpy.ndarray """

        if self.probability_masks is None:
            self.get_data()
            self.probability_masks = self.cloud_detector.get_cloud_probability_maps(self.bands)

        self.probability_masks[~self.valid_data] = non_valid_value
        return self.probability_masks