Beispiel #1
0
    def getgeo(self, x, y, z):
        """
        Given (x, y, z) Cartesian coordinates, convert them to latitude,
        longitude, and altitude based on the configured reference point
        and scale.

        :param x: x value
        :param y: y value
        :param z: z value
        :return: lat, lon, alt values for provided coordinates
        :rtype: tuple
        """
        # shift (x,y,z) over to reference point (x,y,z)
        x -= self.refxyz[0]
        y = -(y - self.refxyz[1])
        if z is None:
            z = self.refxyz[2]
        else:
            z -= self.refxyz[2]
        # use UTM coordinates since unit is meters
        zone = self.refutm[0]
        if zone == "":
            raise ValueError("reference point not configured")
        e = self.refutm[1] + self.px2m(x)
        n = self.refutm[2] + self.px2m(y)
        alt = self.refutm[3] + self.px2m(z)
        (e, n, zone) = self.getutmzoneshift(e, n)
        try:
            lat, lon = utm.to_latlon(e, n, zone[0], zone[1])
        except utm.OutOfRangeError:
            logging.exception("UTM out of range error for n=%s zone=%s xyz=(%s,%s,%s)", n, zone, x, y, z)
            lat, lon = self.refgeo[:2]
        # self.info("getgeo(%s,%s,%s) e=%s n=%s zone=%s  lat,lon,alt=" \
        #          "%.3f,%.3f,%.3f" % (x, y, z, e, n, zone, lat, lon, alt))
        return lat, lon, alt
Beispiel #2
0
 def getgeo(self, x, y, z):
     ''' Given (x, y, z) Cartesian coordinates, convert them to latitude,
         longitude, and altitude based on the configured reference point
         and scale.
     '''
     # shift (x,y,z) over to reference point (x,y,z)
     x = x - self.refxyz[0]
     y = -(y - self.refxyz[1])
     if z is None:
         z = self.refxyz[2]
     else:
         z = z - self.refxyz[2]
     # use UTM coordinates since unit is meters
     zone = self.refutm[0]
     if zone == "":
         raise ValueError, "reference point not configured"
     e = self.refutm[1] + self.px2m(x)
     n = self.refutm[2] + self.px2m(y)
     alt = self.refutm[3] + self.px2m(z)
     (e, n, zone) = self.getutmzoneshift(e, n)
     try:
         lat, lon = utm.to_latlon(e, n, zone[0], zone[1])
     except utm.OutOfRangeError:
         self.info("UTM out of range error for e=%s n=%s zone=%s" \
                   "xyz=(%s,%s,%s)" % (e, n, zone, x, y, z))
         (lat, lon) = self.refgeo[:2]
     #self.info("getgeo(%s,%s,%s) e=%s n=%s zone=%s  lat,lon,alt=" \
     #          "%.3f,%.3f,%.3f" % (x, y, z, e, n, zone, lat, lon, alt))
     return (lat, lon, alt)
Beispiel #3
0
 def getgeo(self, x, y, z):
     ''' Given (x, y, z) Cartesian coordinates, convert them to latitude,
         longitude, and altitude based on the configured reference point
         and scale.
     '''
     # shift (x,y,z) over to reference point (x,y,z)
     x = x - self.refxyz[0]
     y = -(y - self.refxyz[1])
     if z is None:
         z = self.refxyz[2]
     else:
         z = z - self.refxyz[2]
     # use UTM coordinates since unit is meters
     zone = self.refutm[0]
     if zone == "":
         raise ValueError("reference point not configured")
     e = self.refutm[1] + self.px2m(x)
     n = self.refutm[2] + self.px2m(y)
     alt = self.refutm[3] + self.px2m(z)
     (e, n, zone) = self.getutmzoneshift(e, n)
     try:
         lat, lon = utm.to_latlon(e, n, zone[0], zone[1])
     except utm.OutOfRangeError:
         self.info("UTM out of range error for e=%s n=%s zone=%s" \
                   "xyz=(%s,%s,%s)" % (e, n, zone, x, y, z))
         (lat, lon) = self.refgeo[:2]
     #self.info("getgeo(%s,%s,%s) e=%s n=%s zone=%s  lat,lon,alt=" \
     #          "%.3f,%.3f,%.3f" % (x, y, z, e, n, zone, lat, lon, alt))
     return (lat, lon, alt)
Beispiel #4
0
    def getgeo(self, x, y, z):
        """
        Given (x, y, z) Cartesian coordinates, convert them to latitude,
        longitude, and altitude based on the configured reference point
        and scale.

        :param x: x value
        :param y: y value
        :param z: z value
        :return: lat, lon, alt values for provided coordinates
        :rtype: tuple
        """
        # shift (x,y,z) over to reference point (x,y,z)
        x -= self.refxyz[0]
        y = -(y - self.refxyz[1])
        if z is None:
            z = self.refxyz[2]
        else:
            z -= self.refxyz[2]
        # use UTM coordinates since unit is meters
        zone = self.refutm[0]
        if zone == "":
            raise ValueError("reference point not configured")
        e = self.refutm[1] + self.px2m(x)
        n = self.refutm[2] + self.px2m(y)
        alt = self.refutm[3] + self.px2m(z)
        (e, n, zone) = self.getutmzoneshift(e, n)
        try:
            lat, lon = utm.to_latlon(e, n, zone[0], zone[1])
        except utm.OutOfRangeError:
            logger.exception("UTM out of range error for n=%s zone=%s xyz=(%s,%s,%s)", n, zone, x, y, z)
            lat, lon = self.refgeo[:2]
        # self.info("getgeo(%s,%s,%s) e=%s n=%s zone=%s  lat,lon,alt=" \
        #          "%.3f,%.3f,%.3f" % (x, y, z, e, n, zone, lat, lon, alt))
        return lat, lon, alt