def test_basic(tmp_path):
    """Test basic wind direction operation"""
    kgo_dir = acc.kgo_root() / "wind_direction/basic"
    kgo_path = kgo_dir / "kgo.nc"
    output_path = tmp_path / "output.nc"
    wind_direction.main([str(kgo_dir / "input.nc"), str(output_path)])
    acc.compare(output_path, kgo_path)
def test_global(tmp_path):
    """Test global wind direction operation"""
    kgo_dir = acc.kgo_root() / "wind_direction/global"
    kgo_path = kgo_dir / "kgo.nc"
    output_path = tmp_path / "output.nc"
    wind_direction.main([
        "--backup_method=first_realization",
        str(kgo_dir / "input.nc"),
        str(output_path)
    ])
    acc.compare(output_path, kgo_path)
Beispiel #3
0
def test_masked(tmp_path):
    """Test basic percentile processing"""
    kgo_dir = acc.kgo_root() / "percentile/basic"
    kgo_path = kgo_dir / "kgo.nc"
    perc_input = kgo_dir / "input.nc"
    output_path = tmp_path / "output.nc"
    args = [str(perc_input), str(output_path),
            "--coordinates", "realization",
            "--percentiles", "25.0", "50", "75.0"]
    percentile.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #4
0
def test_probconvert(tmp_path, count):
    """Test percentile probability conversion"""
    kgo_dir = acc.kgo_root() / "percentile/probability_convert"
    kgo_path = kgo_dir / f"{count}_realization_kgo.nc"
    prob_input = kgo_dir / f"{count}_realization.nc"
    output_path = tmp_path / "output.nc"
    args = [str(prob_input), str(output_path),
            "--coordinates", "realization",
            "--percentiles", "25", "50", "75"]
    percentile.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #5
0
def test_combine_accumulation(tmp_path):
    """Test combining precipitation accumulations"""
    kgo_dir = acc.kgo_root() / "combine/accum"
    kgo_path = kgo_dir / "kgo_accum.nc"
    rains = kgo_dir.glob("*rainfall_accumulation.nc")
    timebound_meta = kgo_dir / "time_bound.json"
    output_path = tmp_path / "output.nc"
    args = [
        f"--metadata_jsonfile={timebound_meta}", *[str(r) for r in rains],
        str(output_path)
    ]
    combine.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #6
0
def test_basic(tmp_path):
    """Test basic combine operation"""
    kgo_dir = acc.kgo_root() / "combine/basic"
    kgo_path = kgo_dir / "kgo_cloud.nc"
    output_path = tmp_path / "output.nc"
    args = [
        "--operation=max", "--new-name=cloud_area_fraction",
        str(kgo_dir / "low_cloud.nc"),
        str(kgo_dir / "medium_cloud.nc"),
        str(output_path)
    ]
    combine.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #7
0
def test_minmax_temperatures(tmp_path, minmax):
    """Test combining minimum and maximum temperatures"""
    kgo_dir = acc.kgo_root() / "combine/bounds"
    kgo_path = kgo_dir / f"kgo_{minmax}.nc"
    timebound_meta = kgo_dir / "time_bound.json"
    temperatures = kgo_dir.glob(f"*temperature_at_screen_level_{minmax}.nc")
    output_path = tmp_path / "output.nc"
    args = [
        f"--operation={minmax}", f"--metadata_jsonfile={timebound_meta}",
        *[str(t) for t in temperatures],
        str(output_path)
    ]
    combine.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #8
0
def test_mean_temperature(tmp_path):
    """Test combining mean temperature"""
    kgo_dir = acc.kgo_root() / "combine/bounds"
    kgo_path = kgo_dir / "kgo_mean.nc"
    timebound_meta = kgo_dir / "time_bound.json"
    temperatures = kgo_dir.glob("*temperature_at_screen_level.nc")
    output_path = tmp_path / "output.nc"
    args = [
        "--operation=mean", f"--metadata_jsonfile={timebound_meta}",
        *[str(t) for t in temperatures],
        str(output_path)
    ]
    combine.main(args)
    acc.compare(output_path, kgo_path)
Beispiel #9
0
def test_combine_accumulation(tmp_path):
    """Test combining precipitation accumulations"""
    kgo_dir = acc.kgo_root() / "combine/accum"
    kgo_path = kgo_dir / "kgo_accum.nc"
    rains = kgo_dir.glob("*rainfall_accumulation.nc")
    timebound_meta = kgo_dir / "time_bound.json"
    output_path = tmp_path / "output.nc"
    args = ["improver",
            "combine",
            f"--new-metadata={timebound_meta}",
            *[str(r) for r in rains],
            f"--output={output_path}"]
    cli.run_main(args)
    acc.compare(output_path, kgo_path)
Beispiel #10
0
def test_metadata(tmp_path):
    """Test combining with a separate metadata file"""
    kgo_dir = acc.kgo_root() / "combine/metadata"
    kgo_path = kgo_dir / "kgo_prob_precip.nc"
    precip_meta = kgo_dir / "prob_precip.json"
    output_path = tmp_path / "output.nc"
    new_name = "probability_of_total_precipitation_rate_between_thresholds"
    args = [
        "--operation=-", f"--new-name={new_name}",
        f"--metadata_jsonfile={precip_meta}",
        str(kgo_dir / "precip_prob_0p1.nc"),
        str(kgo_dir / "precip_prob_1p0.nc"),
        str(output_path)
    ]
    combine.main(args)
    acc.compare(output_path, kgo_path)