def toStr(self, prec=10, sep=' '): # PYCHOK expected '''Return a string representation of this OSGR coordinate. Note that OSGR coordinates are truncated, not rounded (unlike UTM grid references). @keyword prec: Optional number of digits (C{int}). @keyword sep: Optional C{join} separator (C{str}). @return: This OSGR as C{"EN easting northing"} or as C{"easting,northing"} if B{C{prec}} is non-positive (C{str}). @raise ValueError: Invalid B{C{prec}}. @example: >>> r = Osgr(651409, 313177) >>> str(r) # TG 5140 1317 >>> r.toStr(prec=0) # 651409,313177 ''' def _i2c(i): if i > 7: i += 1 return chr(ord('A') + i) e, n, s = self._easting, self._northing, ',' if prec > 0: E, e = divmod(e, _100km) N, n = divmod(n, _100km) E, N = int(E), int(N) if 0 > E or E > 6 or \ 0 > N or N > 12: return '' N = 19 - N EN = _i2c( N - (N % 5) + (E + 10) // 5) + \ _i2c((N * 5) % 25 + (E % 5)) t = enStr2(e, n, prec, EN) s = sep elif -6 < prec < 0: w = 6 + 1 - prec t = ['%0*.*f' % (w, -prec, t) for t in (e, n)] else: t = ['%06d' % int(t) for t in (e, n)] return s.join(t)
def toStr(self, prec=10, sep=' '): # PYCHOK expected '''Return a string representation of this MGRS grid reference. Note that MGRS grid references are truncated, not rounded (unlike UTM coordinates). @keyword prec: Optional number of digits (C{int}), 4:km, 10:m. @keyword sep: Optional separator to join (C{str}). @return: This Mgrs as "00B EN easting northing" (C{str}). @raise ValueError: Invalid B{C{prec}}. @example: >>> m = Mgrs(31, 'DQ', 48251, 11932, band='U') >>> m.toStr() # '31U DQ 48251 11932' ''' t = enStr2(self._easting, self._northing, prec, '%02d%s' % (self._zone, self._band), self._en100k) return sep.join(t)