code: def scale_sequential_lut(lut_table, fmin, fmid, fmax):
      """Scale a sequential colormap."""
      assert fmin <= fmid <= fmax  # guaranteed by calculate_lut
      lut_table_new = lut_table.copy()
      n_colors = lut_table.shape[0]
      n_colors2 = n_colors // 2
  
      if fmax == fmin:
          fmid_idx = 0
      else:
          fmid_idx = np.clip(
              int(
                  np.round(n_colors * ((fmid - fmin) / (fmax - fmin)))
                  - 1
              ),
              0,
              n_colors - 2,
          )
  
      n_left = fmid_idx + 1
      n_right = n_colors - n_left
      for i in range(4):
          lut_table_new[: fmid_idx + 1, i] = np.interp(
              np.linspace(0, n_colors2 - 1, n_left),
              np.arange(n_colors),
              lut_table[:, i],
          )
          lut_table_new[fmid_idx + 1 :, i] = np.interp(
              np.linspace(n_colors - 1, n_colors2, n_right)[::-1],
              np.arange(n_colors),
              lut_table[:, i],
          )
  
      return lut_table_new
  
imports: import numpy
label_desc: Use image node_id 2 for calling a global function with example usage: scale_sequential_lut(lut_table, fmin, fmid, fmax) and returns: lut_table_new