예제 #1
0
def test_create_from_arrow_unsmry_lazy(testdata_folder: Path,
                                       tmp_path: Path) -> None:

    ensemble_path = str(testdata_folder / "01_drogon_ahm/realization-*/iter-0")

    # Used to generate test results
    # _dump_smry_to_csv_using_fmu(ensemble_path, "monthly", "expected_smry.csv")

    factory = EnsembleSummaryProviderFactory(tmp_path,
                                             allow_storage_writes=True)
    provider = factory.create_from_arrow_unsmry_lazy(
        ens_path=ensemble_path,
        rel_file_pattern="share/results/unsmry/*.arrow")

    assert provider.supports_resampling()

    assert provider.vector_metadata("FOPT") is not None

    vecnames = provider.vector_names()
    assert len(vecnames) == 931

    dates = provider.dates(Frequency.MONTHLY)
    assert len(dates) == 31
    assert isinstance(dates[0], datetime.datetime)
    assert dates[0] == datetime.datetime(2018, 1, 1)
    assert dates[-1] == datetime.datetime(2020, 7, 1)

    realizations = provider.realizations()
    assert len(realizations) == 100
    assert realizations[0] == 0
    assert realizations[-1] == 99

    vecdf = provider.get_vectors_df(["FOPR"], Frequency.MONTHLY)
    assert vecdf.shape == (3100, 3)
    assert vecdf.columns.tolist() == ["DATE", "REAL", "FOPR"]
    assert vecdf["DATE"].nunique() == 31
    assert vecdf["REAL"].nunique() == 100
    sampleddate = vecdf["DATE"][0]
    assert isinstance(sampleddate, datetime.datetime)

    vecdf = provider.get_vectors_df(["FOPR"], Frequency.MONTHLY, [5])
    assert vecdf.shape == (31, 3)
    assert vecdf.columns.tolist() == ["DATE", "REAL", "FOPR"]
    assert vecdf["DATE"].nunique() == 31
    assert vecdf["REAL"].nunique() == 1
    assert vecdf["REAL"][0] == 5
예제 #2
0
def test_arrow_unsmry_lazy_vector_metadata(testdata_folder: Path,
                                           tmp_path: Path) -> None:

    ensemble_path = str(testdata_folder / "01_drogon_ahm/realization-*/iter-0")
    factory = EnsembleSummaryProviderFactory(tmp_path,
                                             allow_storage_writes=True)
    provider = factory.create_from_arrow_unsmry_lazy(
        ens_path=ensemble_path,
        rel_file_pattern="share/results/unsmry/*.arrow")

    meta: Optional[VectorMetadata] = provider.vector_metadata("FOPR")
    assert meta is not None
    assert meta.unit == "SM3/DAY"
    assert meta.is_total is False
    assert meta.is_rate is True
    assert meta.is_historical is False
    assert meta.keyword == "FOPR"
    assert meta.wgname is None
    assert meta.get_num == 0

    meta = provider.vector_metadata("WOPTH:A6")
    assert meta is not None
    assert meta.unit == "SM3"
    assert meta.is_total is True
    assert meta.is_rate is False
    assert meta.is_historical is True
    assert meta.keyword == "WOPTH"
    assert meta.wgname == "A6"
    assert meta.get_num == 11

    meta = provider.vector_metadata("FWCT")
    assert meta is not None
    assert meta.unit == ""
    assert meta.is_total is False
    assert meta.is_rate is True
    assert meta.is_historical is False
    assert meta.keyword == "FWCT"
    assert meta.wgname is None
    assert meta.get_num == 0