/// <summary>
        /// Returns a string representing the lla coord in arc minutes and seconds
        /// </summary>
        /// <param name="lla"></param>
        /// <returns></returns>
        public static string LlaDegreesToArcMinSecs(LLACoord lla)
        {
            double latDegFrac = lla.lat % 1;
            double latDeg = lla.lat - latDegFrac;
            double latMinFull = latDegFrac * 60.0;
            double latSecondsInMins = latMinFull % 1;
            double latMin = latMinFull - latSecondsInMins;
            double latSeconds = latSecondsInMins * 60.0;
            string nString = latDeg.ToString() + " " + latMin.ToString() + "' " + latSeconds.ToString("F6") + "\" N";

            double lonDegFrac = -lla.lon % 1;
            double lonDeg = -lla.lon - lonDegFrac;
            double lonMinFull = lonDegFrac * 60.0;
            double lonSecondsInMins = lonMinFull % 1;
            double lonMin = lonMinFull - lonSecondsInMins;
            double lonSeconds = lonSecondsInMins * 60.0;
            string eString = lonDeg.ToString() + " " + lonMin.ToString() + "' " + lonSeconds.ToString("F6") + "\" W";

            return nString + "\n" + eString;
        }
        /// <summary>
        /// LLA coord in degrees
        /// </summary>
        /// <param name="coordiante"></param>
        /// <param name="proj"></param>
        /// <returns></returns>
        public static LLACoord XyToLlaDegrees(Coordinates coordiante, PlanarProjection proj)
        {
            // radians
            LLACoord llaRad = XyToLlaRadians(coordiante, proj);

            // degrees
            LLACoord lla = new LLACoord(llaRad.lat * 180.0 / Math.PI, llaRad.lon * 180.0 / Math.PI, 0);

            // return
            return lla;
        }