Exemple #1
0
    def testCss(self, *LatLons):

        P = CassiniSoldner(48 + 50 / 60.0, 2 + 20 / 60.0, name='Paris')
        self.test(repr(P), P, P)

        f = P.forward(50.9, 1.8)  # Calais
        self.test('forward', fStr(f, prec=6), '-37518.854545, 230003.561828')
        r = P.reverse(*f)
        self.test('reverse', fStr(r, prec=6), '50.9, 1.8')
        f = P.forward4(50.9, 1.8)  # Calais
        self.test('forward4', fStr(f, prec=6),
                  '-37518.854545, 230003.561828, 89.586104, 0.999983')

        r = P.reverse(-38e3, 230e3)
        self.test('reverse', fStr(r, prec=6), '50.899937, 1.793161')
        f = P.forward(*r)
        self.test('forward', fStr(f, prec=6), '-38000.0, 230000.0')
        r = P.reverse4(-38e3, 230e3)
        self.test('reverse4', fStr(r, prec=6),
                  '50.899937, 1.793161, 89.580797, 0.999982')

        for LL in LatLons:
            r = P.reverse(-38e3, 230e3, LatLon=LL)
            self.test('reverse', repr(r),
                      'LatLon(50°53′59.77″N, 001°47′35.38″E)')

        g = CassiniSoldner(51.4934, 0.0098, name='Greenwich')
        self.test(repr(g), g, g)
        f = g.forward(48 + 50 / 60.0, 2 + 20 / 60.0)  # Paris
        self.test('forward', fStr(f, prec=6), '170557.151692, -293280.6051')
        r = g.reverse(*f)
        self.test('reverse', fStr(r, prec=6), '48.833333, 2.333333')

        h = hypot(*f)  # easting + norting ~= distance
        d = haversine(*(g.latlon0 + r))
        self.test('hypot', h, d, fmt='%.3f', known=abs(d - h) < 1000)

        c = toCss(LL(50.9, 1.8, height=1), cs0=P, name='Calais')
        self.test('toCss', c, '-37518.854545 230003.561828 +1.00m')
        self.test(
            'toCss', c.toStr2(C=True),
            "[E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]"
        )
        for a, f, x in (
            ('easting', '%.6f', '-37518.854545'),
            ('northing', '%.6f', '230003.561828'),
                # ('latlon',   '%r',   '(50.9, 1.8)'),  # Python 2.6 Ubuntu (50.899999999999999, 1.8)
            ('height', '%.1f', '1.0'),
            ('azi', '%.9f', '89.586103815'),
            ('rk', '%.9f', '0.999982722'),
            ('name', '%s', 'Calais'),
            ('cs0', '%s', '48.833333 2.333333')):
            v = getattr(c, a)
            self.test('Css.' + a, v, x, fmt=f)
        r = c.toLatLon(LatLon=LL)
        self.test('Css.' + 'toLatLon', repr(r),
                  'LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)')
        self.test('Css.' + 'toLatLon.height', r.height, '1.0')
        self.test('Css.' + 'toLatLon.name', r.name, 'Calais')
        self.test('Css.' + 'toLatLon.datum.name', r.datum.name, 'WGS84')
Exemple #2
0
    def testDistances(self, a1, b1, a2, b2, x):
        k = x * 0.003  # allow 0.3% margin
        d = haversine(a1, b1, a2, b2)
        self.test('haversine', d, x, fmt='%.3f', known=abs(d - x) < k)

        d = vincentys(a1, b1, a2, b2)
        self.test('vincentys', d, x, fmt='%.3f', known=abs(d - x) < k)

        k = x * 0.02  # allow 2% margin
        d = equirectangular(a1, b1, a2, b2, limit=90)
        self.test('equirectangular', d, x, fmt='%.3f', known=abs(d - x) < k)

        k = x * 0.11  # allow 11% margin
        d = euclidean(a1, b1, a2, b2)
        self.test('euclidean', d, x, fmt='%.3f', known=abs(d - x) < k)
Exemple #3
0
#  print("Altitudine di ",i," ",irAlt[i])

print("")

for i in range(0, 32):
    xx.append(round(tmpTr[i][0], 3))
    yy.append(round(tmpTr[i][1], 3))
    zz.append(round(tmpTr[i][2], 3))

print("")

#for i in range(0,32):
#   print("x ", round(xx[i],3), "y ", round(yy[i],3), "z ", round(zz[i],3))

print("")
aa = p.haversine(irLat[0], irLon[0], irLat[1], irLon[1], radius=6378137)
cc = p.haversine_(irLat[0] * 0.01745, irLat[1] * 0.01745,
                  (irLon[0] - irLon[1]) * 0.01745) * 10
dd = p.haversine_(irLat[0] * 0.01745, irLat[1] * 0.01745,
                  (irLon[0] - irLon[1]) * 0.01745) * 100
bb = p.haversine_(irLat[0] * 0.01745, irLat[1] * 0.01745,
                  (irLon[0] - irLon[1]) * 0.01745)

ee = p.haversine_(irLat[0] * 0.01745, irLat[2] * 0.01745,
                  (irLon[0] - irLon[2]) * 0.01745) * 100
ff = p.haversine_(irLat[0] * 0.01745, irLat[3] * 0.01745,
                  (irLon[0] - irLon[3]) * 0.01745) * 100

print("")
print("")
print("0->1 ", "Lat0 ", irLat[0], "Lat1 ", irLat[1], "Lon 0-1 ",
Exemple #4
0
    def testCss(self, *LatLons):

        P = CassiniSoldner(48 + 50 / 60.0, 2 + 20 / 60.0, name='Paris')
        self.test(repr(P), P, P)

        f = P.forward(50.9, 1.8)  # Calais
        self.test('forward', fstr(f, prec=6), '-37518.854545, 230003.561828')
        r = P.reverse(*f)
        self.test('reverse', fstr(r, prec=6), '50.9, 1.8')
        f = P.forward4(50.9, 1.8)  # Calais
        self.test('forward4', fstr(f, prec=6),
                  '-37518.854545, 230003.561828, 89.586104, 0.999983')

        self.testCopy(P)

        r = P.reverse(-38e3, 230e3)
        self.test('reverse', fstr(r, prec=6), '50.899937, 1.793161')
        f = P.forward(*r)
        self.test('forward', fstr(f, prec=6), '-38000.0, 230000.0')
        r = P.reverse4(-38e3, 230e3)
        self.test('reverse4', fstr(r, prec=6),
                  '50.899937, 1.793161, 89.580797, 0.999982')

        for LL in LatLons:
            r = P.reverse(-38e3, 230e3, LatLon=LL)
            self.test('reverse', repr(r),
                      'LatLon(50°53′59.77″N, 001°47′35.38″E)')

        G = CassiniSoldner(51.4934, 0.0098, name='Greenwich')
        self.test(repr(G), G, G)
        f = G.forward(48 + 50 / 60.0, 2 + 20 / 60.0)  # Paris
        self.test('forward', fstr(f, prec=6), '170557.151692, -293280.6051')
        r = G.reverse(*f)
        self.test('reverse', fstr(r, prec=6), '48.833333, 2.333333')

        h = hypot(*f)  # easting + norting ~= distance
        d = haversine(*(G.latlon0 + r))
        self.test('hypot', h, d, fmt='%.3f', known=abs(d - h) < 1000)

        C = toCss(LL(50.9, 1.8, height=1), cs0=P, name='Calais')
        self.test('toCss', C, '-37518.854545 230003.561828 +1.00m')
        self.test(
            'toCss', C.toRepr(C=True),
            "[E:-37518.854545, N:230003.561828, H:+1.00m, name:'Calais', C:CassiniSoldner(48.833333, 2.333333, name='Paris')]"
        )
        for a, f, x in (
            ('easting', '%.6f', '-37518.854545'),
            ('northing', '%.6f', '230003.561828'),
                # ('latlon',   '%r',   '(50.9, 1.8)'),  # Python 2.6 Ubuntu (50.899999999999999, 1.8)
            ('height', '%.1f', '1.0'),
            ('azi', '%.9f', '89.586103815'),
            ('rk', '%.9f', '0.999982722'),
            ('name', '%s', 'Calais'),
            ('cs0', '%s', '48.833333 2.333333')):
            v = getattr(C, a)
            self.test('Css.' + a, v, x, fmt=f)
        r = C.toLatLon(LatLon=LL)
        self.test('Css.' + 'toLatLon', repr(r),
                  'LatLon(50°54′00.0″N, 001°48′00.0″E, +1.00m)')
        self.test('Css.' + 'toLatLon.height', r.height, '1.0')  # Height
        self.test('Css.' + 'toLatLon.name', r.name, 'Calais')
        self.test('Css.' + 'toLatLon.datum.name', r.datum.name, 'WGS84')

        self.test_('Css.' + 'toLatLon.height', repr(r.height), '1.0',
                   'height(1.0)')  # Height

        self.testCopy(C)

        self.test('cs0.name', C.cs0.name, 'Paris')
        c = Css(C.easting, C.northing)  # coverage css._CassiniSoldner
        self.test('cs0.name', c.cs0.name, 'Default')
        self.test('cs0.flattening',
                  c.cs0.flattening,
                  0.00335281066475,
                  fmt='%.9f')
        self.test('cs0.lat0', c.cs0.lat0, 0.0)  # Lat
        self.test('cs0.majoradius', c.cs0.majoradius, '6378137.0')
        self.test_('cs0.lat0', repr(c.cs0.lat0), '0.0', 'lat0(0.0)')  # Lat

        c = C.classof(C.easting, C.northing, h=C.height,
                      cs0=C.cs0)  # coverage Css._reverse4
        for a, f, x in (('height', '%.1f', '1.0'),
                        ('azi', '%.9f', '89.586103815'), ('rk', '%.9f',
                                                          '0.999982722'),
                        ('name', '%s', 'Calais'), ('cs0', '%s',
                                                   '48.833333 2.333333')):
            v = getattr(c, a)
            self.test('classof.' + a, v, x, fmt=f)

        ll0 = c.cs0.latlon0
        self.test('cs0.latlon0', ll0, '(48.833333, 2.333333)')
        c.cs0.latlon0 = ll0
        self.test('cs0.latlon0', ll0, '(48.833333, 2.333333)')
        try:
            c.cs0.latlon0 = None
            self.test('cs0.latlon0', c.cs0.latlon0, TypeError.__name__)
        except TypeError as x:
            self.test('cs0.latlon0', str(x), str(x))