def test_zeros():
    distance = cuspatial.haversine_distance(
        cudf.Series([0.0]),
        cudf.Series([0.0]),
        cudf.Series([0.0]),
        cudf.Series([0.0]),
    )
    assert cudf.Series(distance)[0] == 0
def get_nearest_node(gdf, point, x='x', y='y', osmid='osmid'):
    gdf = gdf
    gdf['point_y'] = point[0]
    gdf['point_x'] = point[1]
    gdf['distance'] = cuspatial.haversine_distance(
        gdf[y], gdf[x], gdf['point_y'], gdf['point_x']
    )
    mask = gdf['distance'] == gdf['distance'].min()
    nearest_node = gdf[mask][osmid].values[0]
    gdf.drop(['point_y', 'point_x', 'distance'], axis=1, inplace=True)
    return nearest_node
def test_triple():
    cities = cudf.DataFrame({
        "New York": [-74.0060, 40.7128],
        "Paris": [2.3522, 48.8566],
        "Sydney": [151.2093, -33.8688],
    })
    cities.index = ["lat", "lon"]
    pnt_x1 = []
    pnt_y1 = []
    pnt_x2 = []
    pnt_y2 = []
    for i in cities:
        for j in cities:
            pnt_x1.append(cities[i][0])
            pnt_y1.append(cities[i][1])
            pnt_x2.append(cities[j][0])
            pnt_y2.append(cities[j][1])
    distance = cuspatial.haversine_distance(
        cudf.Series(pnt_x1),
        cudf.Series(pnt_y1),
        cudf.Series(pnt_x2),
        cudf.Series(pnt_y2),
    )
    assert np.allclose(
        distance.to_array(),
        [[
            0.0,
            5.83724090e03,
            1.59887555e04,
            5.83724090e03,
            0.0,
            1.69604974e04,
            1.59887555e04,
            1.69604974e04,
            0.0,
        ]],
    )
Example #4
0
from cudf import Series, read_csv

import cuspatial

start = time.time()
# data dowloaded from
# https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2009-01.csv
df = read_csv("data/yellow_tripdata_2009-01.csv")
end = time.time()
print("data ingesting time (from SSD) in ms={}".format((end - start) * 1000))
df.head().to_pandas().columns

start = time.time()
x1 = Series(df["Start_Lon"])
y1 = Series(df["Start_Lat"])
x2 = Series(df["End_Lon"])
y2 = Series(df["End_Lat"])
end = time.time()
print(
    "data frame to column conversion time in ms={}".format(
        (end - start) * 1000
    )
)

start = time.time()
h_dist = cuspatial.haversine_distance(x1, y1, x2, y2)
end = time.time()
print("python computing distance time in ms={}".format((end - start) * 1000))
# h_dist.data.to_array()
def test_empty_y2():
    with pytest.raises(RuntimeError):
        distance = cuspatial.haversine_distance(  # noqa: F841
            cudf.Series([0]), cudf.Series([0]), cudf.Series([0]),
            cudf.Series())