Convert a degrees, minutes, and seconds (DMS) string representation,
        such as 38° 53' 23" N, to a decimal degrees (DD), which expresses
        latitude and longitude geographic coordinates as decimal fraction.

        @param dms: degrees, minutes, and seconds (DMS) string representation
            of a location on the Earth.

        @return: decimal degrees of the geographic coordinates of a location.

def convert_dms_string_to_dd(dms):
        """
        Convert a degrees, minutes, and seconds (DMS) string representation,
        such as 38° 53' 23" N, to a decimal degrees (DD), which expresses
        latitude and longitude geographic coordinates as decimal fraction.

        @param dms: degrees, minutes, and seconds (DMS) string representation
            of a location on the Earth.

        @return: decimal degrees of the geographic coordinates of a location.
        """
        degree_mark_offset = dms.find(u'°')
        degrees = float(dms[:degree_mark_offset].strip())
        minute_mark_offset = dms.find(u"'")
        minutes = float(dms[degree_mark_offset + 1:minute_mark_offset].strip())
        second_mark_offset = dms.find(u'"')
        seconds = float(dms[minute_mark_offset + 1:second_mark_offset].strip())
        return degrees + (minutes / 60) + (seconds / 3600)