def test_args(read_url, ParseRadar): """Test that arguments are passed properly.""" from fmiopendata.radar import download_and_parse res = download_and_parse("foo", args=["a=1", "b=2"]) del res assert read_url.mock_calls[0].endswith("=foo&a=1&b=2")
def test_single_hclass(): """Test radar hydroclass.""" from fmiopendata.radar import download_and_parse res = download_and_parse("fmi::radar::single::hclass") assert len(res.data) == len(res.times) data = res.data[0] # Check that only correct attributes are set assert data.time == res.times[0] assert data.max_velocity is None assert data.elevation is not None assert data.etop_threshold is None _check_radar(data, name="hclass", unit="Index", dtype=np.uint8)
def test_composite_dbz(): """Test radar composite dBZ.""" from fmiopendata.radar import download_and_parse res = download_and_parse("fmi::radar::composite::dbz") assert len(res.data) == len(res.times) data = res.data[0] # Check that only correct attributes are set assert data.time == res.times[0] assert data.max_velocity is None assert data.elevation is None assert data.etop_threshold is None _check_radar(data, name="dbz", unit="dBZ", dtype=np.uint8)
def test_composite_rr24h(): """Test radar composite 24 hour accumulated rain rainfall.""" from fmiopendata.radar import download_and_parse res = download_and_parse("fmi::radar::composite::rr24h") assert len(res.data) == len(res.times) data = res.data[0] # Check that only correct attributes are set assert data.time == res.times[0] assert data.max_velocity is None assert data.elevation is None assert data.etop_threshold is None _check_radar(data, name="rr24h", unit="mm", dtype=np.uint16)
def download_stored_query(query_id, args=None): """Download and parse a stored query.""" if "radar" in query_id.lower(): from fmiopendata.radar import download_and_parse elif "sounding" in query_id.lower(): from fmiopendata.sounding import download_and_parse elif "lightning" in query_id.lower(): from fmiopendata.lightning import download_and_parse elif "grid" in query_id.lower(): from fmiopendata.grid import download_and_parse elif "multipointcoverage" in query_id.lower(): from fmiopendata.multipoint import download_and_parse else: raise NotImplementedError("No parser available for %s" % query_id) return download_and_parse(query_id, args=args)