(self, value, clip=None)
| 3150 | self.gamma = gamma |
| 3151 | |
| 3152 | def __call__(self, value, clip=None): |
| 3153 | if clip is None: |
| 3154 | clip = self.clip |
| 3155 | |
| 3156 | result, is_scalar = self.process_value(value) |
| 3157 | |
| 3158 | self.autoscale_None(result) |
| 3159 | gamma = self.gamma |
| 3160 | vmin, vmax = self.vmin, self.vmax |
| 3161 | if vmin > vmax: |
| 3162 | raise ValueError("minvalue must be less than or equal to maxvalue") |
| 3163 | elif vmin == vmax: |
| 3164 | result.fill(0) |
| 3165 | else: |
| 3166 | if clip: |
| 3167 | mask = np.ma.getmask(result) |
| 3168 | result = np.ma.array(np.clip(result.filled(vmax), vmin, vmax), |
| 3169 | mask=mask) |
| 3170 | resdat = result.data |
| 3171 | resdat -= vmin |
| 3172 | resdat /= (vmax - vmin) |
| 3173 | resdat[resdat > 0] = np.power(resdat[resdat > 0], gamma) |
| 3174 | |
| 3175 | result = np.ma.array(resdat, mask=result.mask, copy=False) |
| 3176 | if is_scalar: |
| 3177 | result = result[0] |
| 3178 | return result |
| 3179 | |
| 3180 | def inverse(self, value): |
| 3181 | if not self.scaled(): |
nothing calls this directly
no test coverage detected