def parseUTMUPS5(strUTMUPS, datum=Datums.WGS84, Utm=Utm, Ups=Ups, name=''): '''Parse a string representing a UTM or UPS coordinate, consisting of C{"zone[band] hemisphere/pole easting northing"}. @arg strUTMUPS: A UTM or UPS coordinate (C{str}). @kwarg datum: Optional datum to use (L{Datum}). @kwarg Utm: Optional class to return the UTM coordinate (L{Utm}) or C{None}. @kwarg Ups: Optional class to return the UPS coordinate (L{Ups}) or C{None}. @kwarg name: Optional name (C{str}). @return: The UTM or UPS coordinate (B{C{Utm}} or B{C{Ups}}) or a L{UtmUps5Tuple}C{(zone, hemipole, easting, northing, band)} if B{C{Utm}} respectively B{C{Ups}} or both are C{None}. The C{hemipole} is C{'N'|'S'}, the UTM hemisphere or UPS pole, the UPS projection top/center. @raise UTMUPSError: Invalid B{C{strUTMUPS}}. @see: Functions L{parseUTM5} and L{parseUPS5}. ''' try: try: u = parseUTM5(strUTMUPS, datum=datum, Utm=Utm, name=name) except UTMError: u = parseUPS5(strUTMUPS, datum=datum, Ups=Ups, name=name) except (UTMError, UPSError): raise InvalidError(strUTMUPS=strUTMUPS, Error=UTMUPSError) return u
def parseUTM(strUTM, datum=_WGS84, Utm=_UTM, name=NN): '''DEPRECATED, use function L{parseUTM5}. @return: The UTM coordinate (B{L{Utm}}) or 4-tuple C{(zone, hemisphere, easting, northing)} if B{C{Utm}} is C{None}. ''' from pygeodesy.datum import Datums # PYCHOK shadows? from pygeodesy.utm import parseUTM5, Utm as _Utm d = Datums.WGS84 if datum is _WGS84 else datum # PYCHOK shadows? U = _Utm if Utm is _UTM else Utm r = parseUTM5(strUTM, datum=d, Utm=U, name=name) if isinstance(r, tuple): # UtmUps5Tuple r = r.zone, r.hemipole, r.easting, r.northing # no band return r