Reprocessing Data: Code

All I need to do is plot he angle etc as a function of s. The following does this.

Clear[BuildModeFns]
BuildModeFns[{k_,κ_}]:= Module[
{Sol,ϕ,W,U,t,μ,ϕ0,ν},
{ϕ,W,U}/.ParametricNDSolve[{
ϕ''[t]+(μ*Sin[ϕ[t]]+ν*Cos[ϕ[t]])*(1-((μ Cos[ϕ[t]])/k))==0,
W'[t]==Sin[ϕ[t]] (1-((μ Cos[ϕ[t]])/k)),
U'[t]== -1+Cos[ϕ[t]] (1-((μ Cos[ϕ[t]])/k)),
U[0]==0,
W[0]==0,
ϕ'[0]==κ ϕ0,
ϕ[0]==ϕ0},
{ϕ,W,U},
{t,0,1},
{μ,ϕ0,ν}]
(* Argument order is μ, ϕ0, ν *)
(* Output order is {ϕ,W,U} *)
]

Clear[ModePlotter]
ModePlotter[CleanData_,{k_,κ_},NumberOfModes_:60]:= Module[ 
{KeyPic,ModePic,ϕpFun,WFun,UFun,CurveData,Step,μ,ϕ,ν,s,OverLapPic,Hues,ModeNumbers},
(* Making the ColorScale *)
Hues=Table[Hue[i/Length[CleanData]],{i, Length[CleanData]}];
(* Making the Key Pic *)
KeyPic[i]=ListPointPlot3D[CleanData[[All,All,{1,2,3}]],
PlotRange->All,
PlotStyle->Table[Hue[i/Length[CleanData]],{i, Length[CleanData]}]
];
(* Building the mode functions *)
{ϕpFun,WFun,UFun}=BuildModeFns[{k,κ}];
(* making the pics *)
Do[
CurveData=CleanData[[i,All,{1,2,3}]];
KeyPic[i]=ListPointPlot3D[CleanData[[All,All,{1,2,3}]],
PlotRange->All,
PlotStyle->ReplacePart[Hues,i->Black],
ImageSize->"Full"
];
OverLapPic[i]=ListPointPlot3D[CleanData[[i,All,{1,2,3}]],
PlotStyle->Black];
Step[i]=Max[1,Ceiling[((Length[CurveData])/NumberOfModes)]];
ModeNumbers[i]=Join[Range[1,Length[CurveData],Step[i]],{Length[CurveData]}];
Do[
{μ,ϕ,ν}=CurveData[[j]];
ModePic[i,j]=ParametricPlot[
{s+UFun[μ,ϕ,ν][s],WFun[μ,ϕ,ν][s]},
{s,0,1},
AspectRatio->Automatic,
PlotRange->{{-1,1},{-0.5,0.5}},
GridLines->Automatic,
Frame->True
],
{j,ModeNumbers[i]}],
{i,Length[CleanData]}];
(*Manipulate[
KeyPic[i],
{{i,1},1,Dynamic[Length[CleanData]],1}
]*)
Manipulate[
GraphicsRow[{
KeyPic[i],
ModePic[i,j]
},
Spacings->0,
Frame->True,
ImageSize->"Full"],
{{i,1},1,Dynamic[Length[CleanData]],1},
{{j,1},ModeNumbers[i]},
FrameLabel->StringForm["k=``, κ=``",k,κ]
]
]

Clear[ModeViewerTool]
ModeViewerTool[{k_,κ_},NumberOfModes_:60]:= Module[
{FileName,CleanData,CorrectionResidualData},
FileName=ToString[
StringForm[
"http://www.math.mtu.edu/~struther/Drop/Bob/ElasticaDataJan29/Datak=``kappa=``",
CForm[k],CForm[κ]
]
];
CleanData=Get[FileName];
(* Some of the lines got wiped out in the cleaning *)
(* This is actually a good thing *)
CleanData=DeleteCases[CleanData,{}];
ModePlotter[CleanData,{k,κ},NumberOfModes]
]

$HistoryLength=0;
ϵ=1.0 × (10^(-2));
{{μMin,μMax},{νMin,νMax}}={{-35,35},{-37,37}};
(*Target ranges*)
kVals=600.0 (Sqrt[Sqrt[10]])^Range[0,14];(*600->1.8*10^6*)κVals=-(Sqrt[10.0])^Range[-10,6];(*-0.00001->-1000*)(*Overwritten with ranges I know are functional for now*)kVals={3740.47951142095`,60000.`,106696.76460233536`,189736.65961010277`,337404.79511420947`,600000.`,1.0669676460233536`*^6,1.8973665961010277`*^6};
κVals={-9.99999999999999`*^-6,-0.00003162277660168376`,-0.00009999999999999991`,-0.0003162277660168378`,-0.0009999999999999996`,-0.003162277660168378`,-0.009999999999999995`,-0.031622776601683784`,-0.09999999999999998`};

Use

Say yes to the initialization question, pick k and κ values from below and play.

TableForm[{TableForm[Transpose[{kVals}],
TableHeadings->{Automatic,{"k"}}],
TableForm[Transpose[{κVals}],
TableHeadings->{Automatic,{"κ"}}]}]

{i,j}={3,5};
{k,κ}={kVals[[i]],κVals[[j]]}
ModeViewerTool[{k,κ},120]