Skip to content

div-B-equals-0/circle-fit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

circle-fit

Fit circle to set of points. Find radius of curvature. Find planitude and alatude with respect to another point.

Tests with 000-400

Max θ = 60°

for arc in inner ridge outer; do
    python circle_fit.py $arc 60
done
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.691843674826006, Alatude = [ 2.79468793  2.02103885])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
Figure file: plot-w000-400-inner-60.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816443604298, Alatude = [ 2.932698    3.13737679])
CircleFit(Planitude = 2.988948352188401, Alatude = [ 3.33962494  2.09212557])
CircleFit(Planitude = 3.2622665392751626, Alatude = [ 3.37769236  2.08824669])
CircleFit(Planitude = 3.2622665392751626, Alatude = [ 3.37769236  2.08824669])
Figure file: plot-w000-400-ridge-60.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
Figure file: plot-w000-400-outer-60.pdf
open plot-w000-400-*-60.pdf

Max θ = 75°

for arc in inner ridge outer; do
    python circle_fit.py $arc 75
done
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
Figure file: plot-w000-400-inner-75.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816443604298, Alatude = [ 2.932698    3.13737679])
CircleFit(Planitude = 3.3182643444199673, Alatude = [ 3.16200501  2.25735773])
CircleFit(Planitude = 3.3182643444199673, Alatude = [ 3.16200501  2.25735773])
CircleFit(Planitude = 3.3182643444199673, Alatude = [ 3.16200501  2.25735773])
Figure file: plot-w000-400-ridge-75.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
CircleFit(Planitude = 2.6029275271632204, Alatude = [ 2.43870228  2.49614293])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
Figure file: plot-w000-400-outer-75.pdf
open plot-w000-400-*-75.pdf

Varying Δ\theta

for dtheta in 45 50 55 60 65 70 75 80; do
    python circle_fit.py outer $dtheta 
done
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
Figure file: plot-w000-400-outer-45.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
Figure file: plot-w000-400-outer-50.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 1.7751781954824204, Alatude = [ 2.31495089  2.51974362])
CircleFit(Planitude = 2.153028082620857, Alatude = [ 2.37869319  2.49517488])
CircleFit(Planitude = 2.153028082620857, Alatude = [ 2.37869319  2.49517488])
Figure file: plot-w000-400-outer-55.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
CircleFit(Planitude = 2.1863194527977723, Alatude = [ 2.36793742  2.51168913])
Figure file: plot-w000-400-outer-60.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.395834889040762, Alatude = [ 2.42306285  2.47884885])
CircleFit(Planitude = 2.395834889040762, Alatude = [ 2.42306285  2.47884885])
CircleFit(Planitude = 2.395834889040762, Alatude = [ 2.42306285  2.47884885])
Figure file: plot-w000-400-outer-65.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.47812384367905, Alatude = [ 2.40200297  2.51540511])
CircleFit(Planitude = 2.47812384367905, Alatude = [ 2.40200297  2.51540511])
CircleFit(Planitude = 2.47812384367905, Alatude = [ 2.40200297  2.51540511])
Figure file: plot-w000-400-outer-70.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
CircleFit(Planitude = 2.6029275271632204, Alatude = [ 2.43870228  2.49614293])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
Figure file: plot-w000-400-outer-75.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.082747959149228, Alatude = [ 2.61635595  2.69824478])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
CircleFit(Planitude = 2.749177125658035, Alatude = [ 2.40823888  2.55841318])
Figure file: plot-w000-400-outer-80.pdf
for dtheta in 45 50 55 60 65 70 75 80; do
    python circle_fit.py inner $dtheta 
done
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.379483411143336, Alatude = [ 3.05273245  1.88517563])
CircleFit(Planitude = 3.3123691125432404, Alatude = [ 3.12725452  1.87831834])
CircleFit(Planitude = 3.3123691125432404, Alatude = [ 3.12725452  1.87831834])
Figure file: plot-w000-400-inner-45.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.379483411143336, Alatude = [ 3.05273245  1.88517563])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
CircleFit(Planitude = 2.379483411143336, Alatude = [ 3.05273245  1.88517563])
Figure file: plot-w000-400-inner-50.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.1974063995901365, Alatude = [ 3.05698842  1.86748459])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
Figure file: plot-w000-400-inner-55.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.691843674826006, Alatude = [ 2.79468793  2.02103885])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
CircleFit(Planitude = 3.1635099604551207, Alatude = [ 2.91822403  1.99890029])
Figure file: plot-w000-400-inner-60.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.691843674826006, Alatude = [ 2.79468793  2.02103885])
CircleFit(Planitude = 2.691843674826006, Alatude = [ 2.79468793  2.02103885])
CircleFit(Planitude = 2.691843674826006, Alatude = [ 2.79468793  2.02103885])
Figure file: plot-w000-400-inner-65.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.5477140058624785, Alatude = [ 2.76943656  2.01536123])
CircleFit(Planitude = 2.9115410397751904, Alatude = [ 2.73912298  2.05740143])
CircleFit(Planitude = 2.9115410397751904, Alatude = [ 2.73912298  2.05740143])
Figure file: plot-w000-400-inner-70.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
CircleFit(Planitude = 2.720995578886615, Alatude = [ 2.65410731  2.06889839])
Figure file: plot-w000-400-inner-75.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.997084654962843, Alatude = [ 2.63930068  2.67011972])
CircleFit(Planitude = 2.5763351483145707, Alatude = [ 2.60311374  2.06544767])
CircleFit(Planitude = 2.8582443877093637, Alatude = [ 2.61112017  2.10063206])
CircleFit(Planitude = 2.8582443877093637, Alatude = [ 2.61112017  2.10063206])
Figure file: plot-w000-400-inner-80.pdf
for dtheta in 45 50 55 60 65 70 75 80; do
    python circle_fit.py ridge $dtheta 
done
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 6.159477975665889, Alatude = [ 3.49366528  2.10161637])
CircleFit(Planitude = 8.34245226369428, Alatude = [ 3.41930177  2.15261946])
CircleFit(Planitude = 8.34245226369428, Alatude = [ 3.41930177  2.15261946])
Figure file: plot-w000-400-ridge-45.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 3.6575972905349134, Alatude = [ 3.30546862  2.1581432 ])
CircleFit(Planitude = 8.34245226369428, Alatude = [ 3.41930177  2.15261946])
CircleFit(Planitude = 8.34245226369428, Alatude = [ 3.41930177  2.15261946])
Figure file: plot-w000-400-ridge-50.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 3.6575972905349134, Alatude = [ 3.30546862  2.1581432 ])
CircleFit(Planitude = 4.342688070224162, Alatude = [ 3.52014766  2.05143468])
CircleFit(Planitude = 4.342688070224162, Alatude = [ 3.52014766  2.05143468])
Figure file: plot-w000-400-ridge-55.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 2.9889442370073316, Alatude = [ 3.33962553  2.09212458])
CircleFit(Planitude = 3.2622581791594762, Alatude = [ 3.37769271  2.08824559])
CircleFit(Planitude = 3.2622581791594762, Alatude = [ 3.37769271  2.08824559])
Figure file: plot-w000-400-ridge-60.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 2.9889442370073316, Alatude = [ 3.33962553  2.09212458])
CircleFit(Planitude = 4.217268850449185, Alatude = [ 3.31945322  2.19582004])
CircleFit(Planitude = 4.217268850449185, Alatude = [ 3.31945322  2.19582004])
Figure file: plot-w000-400-ridge-65.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 3.318260555092649, Alatude = [ 3.16200474  2.25735718])
CircleFit(Planitude = 3.663809279406942, Alatude = [ 3.22543663  2.24241749])
CircleFit(Planitude = 3.663809279406942, Alatude = [ 3.22543663  2.24241749])
Figure file: plot-w000-400-ridge-70.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 3.318260555092649, Alatude = [ 3.16200474  2.25735718])
CircleFit(Planitude = 3.318260555092649, Alatude = [ 3.16200474  2.25735718])
CircleFit(Planitude = 3.318260555092649, Alatude = [ 3.16200474  2.25735718])
Figure file: plot-w000-400-ridge-75.pdf
### Simple Test
### Image Test
CircleFit(Planitude = 4.967816690867612, Alatude = [ 2.93269813  3.13737686])
CircleFit(Planitude = 2.9080380001255186, Alatude = [ 3.08578284  2.25119554])
CircleFit(Planitude = 3.6421288513183048, Alatude = [ 3.13032277  2.32781293])
CircleFit(Planitude = 3.6421288513183048, Alatude = [ 3.13032277  2.32781293])
Figure file: plot-w000-400-ridge-80.pdf

History

  • Initial motivation [2018-02-22 Thu]
    • This is based on earlier programs such as find-xy-shell.py and fit-circle-shell.py
    • It is a ground-up rewrite to make sure that the description in Appendix E of the “Bow shock shapes” paper is actually correct
    • We will take the opportunity to make it more general
    • And use the new astropy-affiliated regions package

About

Fit circle to set of points. Find radius of curvature. Find planitude and alatude with respect to another point.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages