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: