# Find Arc Curvature From List of Coordinates and NonLinearModelFit

I have coordinates as a list, and I can fit it almost perfectly with an equation. I'm just curious as to how I can find the curvature of this arc. I've tried using ArcCurvature, but I'm not sure how to use it in the correct way. Any help is appreciated.

The list, graphed out, and the fitted model:

list = {{54.5, 120.5}, {65.25, 143.15}, {65.61, 143.02}, {76.18,
157.28}, {89.89, 176.76}, {98.08, 184.87}, {98.33,
184.44}, {118.5, 197.5}, {140.77, 205.74}, {150.96,
207.06}, {163.11, 206.07}, {169.09, 204.77}, {177.07,
202.8}, {181.14, 201.13}, {182.41, 200.47}, {194.65,
192.49}, {201.47, 188.95}, {209.02, 182.56}, {209.21,
182.86}, {222.11, 172.77}, {230.93, 161.53}, {230.96,
161.51}, {245.51, 141.75}, {257.03, 124.18}, {257.23,
124.53}, {261.71, 114.96}, {261.72, 114.91}, {267.16,
104.41}, {267.29, 104.07}, {280.45, 72.62}, {280.63,
72.34}, {283.35, 63.57}, {286.5, 48.5}};
fit = NonlinearModelFit[list, a*(x + c)^2 + b, {a, b, c}, x];
Normal[fit]
ListPlot[list]
Show[ListPlot[list], Plot[fit[x], {x, xmin, xmax}], Frame -> True]


Output:

Look up ArcCurvature in the documentation. It takes a list of coordinates as a function of a parameter. It returns the expression in that parameter, so you need to get that first before replacing numerical values:

list = {{54.5, 120.5}, {65.25, 143.15}, {65.61, 143.02}, {76.18,
157.28}, {89.89, 176.76}, {98.08, 184.87}, {98.33,
184.44}, {118.5, 197.5}, {140.77, 205.74}, {150.96,
207.06}, {163.11, 206.07}, {169.09, 204.77}, {177.07,
202.8}, {181.14, 201.13}, {182.41, 200.47}, {194.65,
192.49}, {201.47, 188.95}, {209.02, 182.56}, {209.21,
182.86}, {222.11, 172.77}, {230.93, 161.53}, {230.96,
161.51}, {245.51, 141.75}, {257.03, 124.18}, {257.23,
124.53}, {261.71, 114.96}, {261.72, 114.91}, {267.16,
104.41}, {267.29, 104.07}, {280.45, 72.62}, {280.63,
72.34}, {283.35, 63.57}, {286.5, 48.5}};
fit = NonlinearModelFit[list, a*(x + c)^2 + b, {a, b, c}, x];
{xmin, xmax} = MinMax[list[[All, 1]]];
k = ArcCurvature[{t, fit[t]}, t]
Plot[k, {t, xmin, xmax}]
Show[ListPlot[list], Plot[fit[x], {x, xmin, xmax}], Frame -> True]