예제 #1
0
def test_grdtrack_without_newcolname_setting(dataarray):
    """
    Run grdtrack by not passing in newcolname parameter setting.
    """
    dataframe = load_ocean_ridge_points()

    with pytest.raises(GMTInvalidInput):
        grdtrack(points=dataframe, grid=dataarray)
예제 #2
0
def test_ocean_ridge_points():
    "Check that the @ridge.txt dataset loads without errors"
    data = load_ocean_ridge_points()
    assert data.shape == (4146, 2)
    summary = data.describe()
    assert summary.loc["min", "longitude"] == -179.9401
    assert summary.loc["max", "longitude"] == 179.935
    assert summary.loc["min", "latitude"] == -65.6182
    assert summary.loc["max", "latitude"] == 86.8
예제 #3
0
def test_grdtrack_wrong_kind_of_grid_input(dataarray):
    """
    Run grdtrack using grid input that is not as xarray.DataArray (grid) or
    file.
    """
    dataframe = load_ocean_ridge_points()
    invalid_grid = dataarray.to_dataset()

    assert data_kind(invalid_grid) == "matrix"
    with pytest.raises(GMTInvalidInput):
        grdtrack(points=dataframe, grid=invalid_grid, newcolname="bathymetry")
예제 #4
0
def test_grdtrack_wrong_kind_of_points_input(dataarray):
    """
    Run grdtrack using points input that is not a pandas.DataFrame (matrix) or
    file.
    """
    dataframe = load_ocean_ridge_points()
    invalid_points = dataframe.longitude.to_xarray()

    assert data_kind(invalid_points) == "grid"
    with pytest.raises(GMTInvalidInput):
        grdtrack(points=invalid_points, grid=dataarray, newcolname="bathymetry")
예제 #5
0
def test_grdtrack_input_dataframe_and_ncfile():
    """
    Run grdtrack by passing in a pandas.DataFrame and netcdf file as inputs.
    """
    dataframe = load_ocean_ridge_points()
    ncfile = which("@earth_relief_01d", download="a")

    output = grdtrack(points=dataframe, grid=ncfile, newcolname="bathymetry")
    assert isinstance(output, pd.DataFrame)
    assert output.columns.to_list() == ["longitude", "latitude", "bathymetry"]
    npt.assert_allclose(output.iloc[0], [-32.2971, 37.4118, -1939.748245])

    return output
예제 #6
0
def test_grdtrack_input_dataframe_and_dataarray(dataarray):
    """
    Run grdtrack by passing in a pandas.DataFrame and xarray.DataArray as
    inputs.
    """
    dataframe = load_ocean_ridge_points()

    output = grdtrack(points=dataframe, grid=dataarray, newcolname="bathymetry")
    assert isinstance(output, pd.DataFrame)
    assert output.columns.to_list() == ["longitude", "latitude", "bathymetry"]
    npt.assert_allclose(output.iloc[0], [-110.9536, -42.2489, -2790.488422])

    return output
예제 #7
0
def test_ocean_ridge_points():
    """
    Check that the @ridge.txt dataset loads without errors.
    """
    with pytest.warns(expected_warning=FutureWarning) as record:
        data = load_ocean_ridge_points()
        assert len(record) == 1
    assert data.shape == (4146, 2)
    summary = data.describe()
    assert summary.loc["min", "longitude"] == -179.9401
    assert summary.loc["max", "longitude"] == 179.935
    assert summary.loc["min", "latitude"] == -65.6182
    assert summary.loc["max", "latitude"] == 86.8
예제 #8
0
def fixture_dataframe():
    """
    Load the ocean ridge file.
    """
    return load_ocean_ridge_points()