How to use the metar.Datatypes.distance function in metar

To help you get started, we’ve selected a few metar examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github python-metar / python-metar / test / test_distance.py View on Github external
def test_error_checking():
    """Test exception raising."""
    with pytest.raises(ValueError):
        distance("10SM")
    with pytest.raises(ValueError):
        distance("M1/2SM")
    with pytest.raises(ValueError):
        distance("1000", "M", "=")
    with pytest.raises(ValueError):
        distance("1000", "M", "gt")
    with pytest.raises(UnitsError):
        distance("10", "NM")
    with pytest.raises(UnitsError):
        distance(distance("1000").value, "furlongs")
    with pytest.raises(UnitsError):
        distance(distance("500").string, "yards")
github python-metar / python-metar / test / test_distance.py View on Github external
def test_defaults():
    """Test defaults for units."""
    assert distance("10").value() == 10.0
    assert distance("1000").value("M") == 1000.0
    assert distance("1500").string() == "1500 meters"
    assert distance("1500", None).string() == "1500 meters"
    assert distance("5", "SM").string() == "5 miles"
github python-metar / python-metar / test / test_distance.py View on Github external
assert distance("5", "KM").value("KM") == 5.0
    assert distance("5", "KM").value("M") == 5000.0
    assert abs(distance("5", "KM").value("SM") - 3.1) < 0.1
    assert distance("5", "KM").value("FT") == 16404.2

    assert distance("5280", "FT").value("FT") == 5280.0
    assert abs(distance("5280", "FT").value("SM") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("MI") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("KM") - 1.609) < 0.001
    assert abs(distance("5280", "FT").value("M") - 1609.34) < 0.01

    assert abs(distance("1 1/2", "SM").value("FT") - 7920.0) < 0.01
    assert abs(distance("1/4", "SM").value("FT") - 1320.0) < 0.01

    assert abs(distance("10.5", "IN").value("M") - 0.27) < 0.01
    assert abs(distance("0.066", "KM").value("IN") - 2598.43) < 0.01

    assert distance("1 1/2", "SM").string("SM") == "1 1/2 miles"
    assert distance("3/16", "SM").string("SM") == "3/16 miles"
    assert distance("1/4", "SM").string("FT") == "1320 feet"
    assert distance("1/4", "SM", "<").string("SM") == "less than 1/4 miles"
    assert distance("5280", "FT").string("KM") == "1.6 km"
    assert distance("10000", "M", ">").string("M") == "greater than 10000 meters"
github python-metar / python-metar / test / test_distance.py View on Github external
def test_inputs():
    """Test various inputs to distance(."""
    assert distance("10").value() == 10.0
    assert distance(10).value() == 10.0
    assert distance(10.0).value() == 10.0
    assert distance(10.0, None).value() == 10.0
    assert distance("1/2").value() == 0.5
    assert distance("1 1/2").value() == 1.5
    assert distance("11/2").value() == 1.5
    assert distance("10", gtlt=">").value() == 10.0
    assert distance("10", None, "<").value() == 10.0
github python-metar / python-metar / test / test_distance.py View on Github external
assert abs(distance("5", "KM").value("SM") - 3.1) < 0.1
    assert distance("5", "KM").value("FT") == 16404.2

    assert distance("5280", "FT").value("FT") == 5280.0
    assert abs(distance("5280", "FT").value("SM") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("MI") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("KM") - 1.609) < 0.001
    assert abs(distance("5280", "FT").value("M") - 1609.34) < 0.01

    assert abs(distance("1 1/2", "SM").value("FT") - 7920.0) < 0.01
    assert abs(distance("1/4", "SM").value("FT") - 1320.0) < 0.01

    assert abs(distance("10.5", "IN").value("M") - 0.27) < 0.01
    assert abs(distance("0.066", "KM").value("IN") - 2598.43) < 0.01

    assert distance("1 1/2", "SM").string("SM") == "1 1/2 miles"
    assert distance("3/16", "SM").string("SM") == "3/16 miles"
    assert distance("1/4", "SM").string("FT") == "1320 feet"
    assert distance("1/4", "SM", "<").string("SM") == "less than 1/4 miles"
    assert distance("5280", "FT").string("KM") == "1.6 km"
    assert distance("10000", "M", ">").string("M") == "greater than 10000 meters"
github python-metar / python-metar / test / test_distance.py View on Github external
def test_error_checking():
    """Test exception raising."""
    with pytest.raises(ValueError):
        distance("10SM")
    with pytest.raises(ValueError):
        distance("M1/2SM")
    with pytest.raises(ValueError):
        distance("1000", "M", "=")
    with pytest.raises(ValueError):
        distance("1000", "M", "gt")
    with pytest.raises(UnitsError):
        distance("10", "NM")
    with pytest.raises(UnitsError):
        distance(distance("1000").value, "furlongs")
    with pytest.raises(UnitsError):
        distance(distance("500").string, "yards")
github python-metar / python-metar / test / test_distance.py View on Github external
assert abs(distance("5000", "M").value("SM") - 3.1) < 0.1
    assert abs(distance("5000", "M").value("MI") - 3.1) < 0.1
    assert distance("5000", "M").value("FT") == 16404.2

    assert distance("5", "KM").value("KM") == 5.0
    assert distance("5", "KM").value("M") == 5000.0
    assert abs(distance("5", "KM").value("SM") - 3.1) < 0.1
    assert distance("5", "KM").value("FT") == 16404.2

    assert distance("5280", "FT").value("FT") == 5280.0
    assert abs(distance("5280", "FT").value("SM") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("MI") - 1.0) < 0.00001
    assert abs(distance("5280", "FT").value("KM") - 1.609) < 0.001
    assert abs(distance("5280", "FT").value("M") - 1609.34) < 0.01

    assert abs(distance("1 1/2", "SM").value("FT") - 7920.0) < 0.01
    assert abs(distance("1/4", "SM").value("FT") - 1320.0) < 0.01

    assert abs(distance("10.5", "IN").value("M") - 0.27) < 0.01
    assert abs(distance("0.066", "KM").value("IN") - 2598.43) < 0.01

    assert distance("1 1/2", "SM").string("SM") == "1 1/2 miles"
    assert distance("3/16", "SM").string("SM") == "3/16 miles"
    assert distance("1/4", "SM").string("FT") == "1320 feet"
    assert distance("1/4", "SM", "<").string("SM") == "less than 1/4 miles"
    assert distance("5280", "FT").string("KM") == "1.6 km"
    assert distance("10000", "M", ">").string("M") == "greater than 10000 meters"
github python-metar / python-metar / metar / Metar.py View on Github external
vis_dir = d["dir"]
        elif d["distu"]:
            vis_dist = d["distu"]
            if d["units"] and d["units"] != "U":
                vis_units = d["units"]
        if vis_dist == "9999":
            vis_dist = "10000"
            vis_less = ">"
        if self.vis:
            if vis_dir:
                self.max_vis_dir = direction(vis_dir)
            self.max_vis = distance(vis_dist, vis_units, vis_less)
        else:
            if vis_dir:
                self.vis_dir = direction(vis_dir)
            self.vis = distance(vis_dist, vis_units, vis_less)
github python-metar / python-metar / metar / Metar.py View on Github external
def _handleSnowDepthRemark(self, d):
        """
        Parse the 4/ group snowdepth report
        """
        self.snowdepth = distance(float(d["snowdepth"]), "IN")
        self._remarks.append(" snowdepth %s" % (self.snowdepth,))
github python-metar / python-metar / metar / Metar.py View on Github external
The following attributes are set:
            range   [list of tuples]
            . name  [string]
            . low   [distance]
            . high  [distance]
            . unit  [string]
        """
        if d["name"] is None:
            return
        unit = d["unit"] if d["unit"] is not None else "FT"
        low = distance(d["low"], unit)
        if d["high"] is None:
            high = low
        else:
            high = distance(d["high"], unit)
        self.runway.append([d["name"], low, high, unit])