The Carolina Bays are shallow elliptical depressions on unconsolidated soil that originated as penetration funnels from secondary impacts of glacier ice boulders ejected by an extraterrestrial impact on the Laurentide Ice Sheet (Zamora, 2017). Since the Carolina Bays are conic sections, it is often necessary to fit them with ellipses.
In many cases, it is possible to fit the ellipses by observation and trial-and-error, but it is desirable to be able to fit the ellipses by identifying points along the perimeter and using a least squares method to fit the ellipses[5]. Ben Hammel and Nick Sullivan-Molina [2] have developed a Python routine for least squares fitting of an ellipse based on a publication of Halir and Flusser[3]. The program ellipse.py from the Github package had to be modified to output the coefficients of the polynomial for the ellipse.
I created a program called CBellipse.py to read a file of latitude/longitude pairs as listed in GitHub. The coordinates were changed to meters relative to the southmost and westmost positions so that the ellipse would be in the first quadrant. The procedure for converting the coordinates to meters recognizes that one degree of latitude is equal to 10,000,000 meters/90 degrees or 111,111 meters/degree. The distance in meters between degrees of longitude depends on the latitude. The program uses the cosine of the minimum latitude in the coordinate pairs and multiplies by 111,111.
The Tulsa Basin. An elliptical basin found using LiDAR images near the Oxley Nature Center in Tulsa, Oklahoma has led to a surprising archaeological discovery. The lines carved on the west side of the Tulsa Basin are aligned with the sunrise during the solstices and the equinoxes. The Tulsa Basin is probably the best ancient solar observatory in the United States.
The LiDAR visualization tool by Michael Davias [4] integrates with Google Earth and makes it possible to position the crosshairs of a pushpin along the rim of the bay in order to display a panel from which the coordinates for the latitude and longitude may be copied.
A second program called driver2d.py performs the functions of CBellipse.py, but it adds the capability of entering x,y coordinates from a digitized image instead of latitude and longitude by specifying *2D as a comment at the beginning of the data file.