code: def region_calcs(self, arr, func):
          
          # Get pressure values for data output on hybrid vertical coordinates.
          bool_pfull = (self.def_vert and self.dtype_in_vert ==
                        internal_names.ETA_STR and self.dtype_out_vert is False)
          if bool_pfull:
              pfull_data = self._get_input_data(_P_VARS[self.dtype_in_vert],
                                                self.start_date,
                                                self.end_date)
              pfull = self._full_to_yearly_ts(
                  pfull_data, arr[internal_names.TIME_WEIGHTS_STR]
              ).rename('pressure')
          # Loop over the regions, performing the calculation.
          reg_dat = {}
          for reg in self.region:
              # Just pass along the data if averaged already.
              if 'av' in self.dtype_in_time:
                  data_out = reg.ts(arr)
              # Otherwise perform the calculation.
              else:
                  method = getattr(reg, func)
                  data_out = method(arr)
                  if bool_pfull:
                      # Don't apply e.g. standard deviation to coordinates.
                      if func not in ['av', 'ts']:
                          method = reg.ts
                      # Convert Pa to hPa
                      coord = method(pfull) * 1e-2
                      data_out = data_out.assign_coords(
                          **{reg.name + '_pressure': coord}
                      )
              reg_dat.update(**{reg.name: data_out})
          return xr.Dataset(reg_dat)
docs: Perform a calculation for all regions.