Since there is such a huge amount of sectors in total you can reduce that by a fair bit and still get a decent result:
sectorsPerRing[r_] := Floor[5 r];
m2 = MapIndexed[
   Mean /@ Partition[#,
      Ceiling[dim[[2]]/sectorsPerRing@First@#2],
      Ceiling[dim[[2]]/sectorsPerRing@First@#2],
      {1, 1}, {}] &
   , m];
SectorChart[Map[Style[{1, 10}, ColorData["Rainbow"][#]] &, m2, {2}]]
This is however still quite slow, it's quite a bit faster to make a rougher approximation of the shape of each sector:
 m = ws[[1, 1]];
 
 (* Disk sector from from rmin to rmax between angles amin and amax, using n points *)
 diskSector[c_, {rmin_, rmax_}, {amin_, amax_}, n_] := With[{
    pts = ({Cos[#], Sin[#]} & /@ Range[amin, amax, (amax - amin)/n])
    },
   Polygon[Join[rmin pts, Reverse[rmax pts]]]
   ]
 
sectorsPerRing[r_] := Floor[10 r];
(* Given as n to diskSector, 3 or even 2 works fine here *)
pointsPerSector = 3; 
dim = Dimensions[m];
ringChart = MapIndexed[
   With[{
      rmin = (First@#2 - 1),
      rmax = First@#2,
      columns = Mean /@ Partition[#,
         Ceiling[dim[[2]]/sectorsPerRing@First@#2],
         Ceiling[dim[[2]]/sectorsPerRing@First@#2],
         {1, 1}, {}]
      },
     MapIndexed[
      {ColorData["SunsetColors"][#],
        diskSector[
         {0, 0},
         {rmin, rmax},
         (2. Pi)/Length[columns] {(First@#2 - 1), First@#2},
         pointsPerSector]} &
      , columns]
     ] &
   , m];
Graphics[ringChart]
This computes and renders in just a few seconds:
