From a7466af204b90431e73c0f5e0a68c0d7819dd977 Mon Sep 17 00:00:00 2001 From: Mark Harris <783069+harrism@users.noreply.github.com> Date: Thu, 30 Mar 2023 13:31:18 +1100 Subject: [PATCH] Branch 23.06 merge 23.04 (#1021) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Implement `geom_equals` and binary predicates that depend only on it. (#926) This PR implements binary predicates that depend only on equality, which is implemented here using columnar comparison in python. I'm playing with benchmarks of this feature now. On only Point geometries, we begin to outperform geopandas at 50k points, with 60x performance at 10m points. Authors: - H. Thomson Comer (https://github.com/thomcom) Approvers: - Michael Wang (https://github.com/isVoid) URL: https://github.com/rapidsai/cuspatial/pull/926 * Add python API `pairwise_point_polygon_distance` (#988) This PR closes #756 , add `pairwise_point_polygon_distance` for python. Depend on #984 #976 Authors: - Michael Wang (https://github.com/isVoid) Approvers: - H. Thomson Comer (https://github.com/thomcom) URL: https://github.com/rapidsai/cuspatial/pull/988 * Add `dependency-file-generator` as `pre-commit` hook (#1008) Similarly to these [cudf](https://github.com/rapidsai/cudf/pull/12819) and [cuml](https://github.com/rapidsai/cuml/pull/5246) PRs, this PR adds an entry to `.pre-commit-config.yaml` to run the [dependency-file-generator](https://github.com/rapidsai/dependency-file-generator). It also adds an argument to the `rapidsai/shared-action-workflows/.github/workflows/checks.yaml` shared workflow to disable the `dependency-file-generator` from running in that shared workflow. This avoids having the `dependency-file-generator` run in two places since pre-commit is run in CI [here](https://github.com/rapidsai/cuspatial/blob/branch-23.04/ci/check_style.sh#L23). Authors: - AJ Schmidt (https://github.com/ajschmidt8) Approvers: - Ray Douglass (https://github.com/raydouglass) URL: https://github.com/rapidsai/cuspatial/pull/1008 * Add ZipCode Counting Notebook (#919) This PR adds a notebook that demonstrate the use of quadtree PiP with a custom `QuadTree` structure and joins dataframe. We can use this PR to discuss the possibility of adding the custom structure to the codebase. This also updates the dependency list to include notebook environment in "all" targeted conda envs. Authors: - Michael Wang (https://github.com/isVoid) Approvers: - H. Thomson Comer (https://github.com/thomcom) - Mark Harris (https://github.com/harrism) - AJ Schmidt (https://github.com/ajschmidt8) URL: https://github.com/rapidsai/cuspatial/pull/919 * Header-only `quadtree_point_in_polygon` (#979) Closes #985 Also contains cleanup of docs for other spatial join functions, correct ordering of stream and MR parameters, and adds missing C++17 property from tests cmake configuration. Authors: - Mark Harris (https://github.com/harrism) Approvers: - Michael Wang (https://github.com/isVoid) - Paul Taylor (https://github.com/trxcllnt) URL: https://github.com/rapidsai/cuspatial/pull/979 * Reduce gtest times (#1018) Fixes #1017. Reduces C++ gtest total time (on my PC) from 47.9 seconds to 20.08 seconds. Several tests were running large datasets and combinations of size parameters that would be better to run as benchmarks rather than gtests. Reducing these by a factor of 10-100 saves a lot of development time and still exercises the code. In the case of `HausdorffTest/1.10000Spaces10Points (4850 ms)`, reducing it to 1000 spaces, 10 points reduced the time by nearly 100x, likely because it's $O(N^2)$. I modified any test that used close to 1s or more total time, since most column-API tests use under that, and most header-only tests use under 0.2s. | Test | Time Before (s) | Time After (s) | Speedup | |---|---|---|---| | DERIVE_TRAJECTORIES_TEST_EXP | 14.49 | 0.27 | 53.7x | | HAUSDORFF_TEST_EXP | 9.21 | 0.26 | 35.4x | | UTILITY_TEST | 1.86 | 0.30 | 6.2x | | POINT_BOUNDING_BOXES_TEST_EXP | 1.35 | 0.15 | 9x | | TRAJECTORY_DISTANCES_AND_SPEEDS_TEST_EXP | 0.80 | 0.13 | 6.2x | | TOTAL | 47.9 | 20.08 | 2.4x | Before: ``` (rapids) coder ➜ ~/cuspatial/cpp/build/release $ ninja test [0/1] Running tests... Test project /home/coder/cuspatial/cpp/build/release Start 1: SINUSOIDAL_PROJECTION_TEST 1/45 Test #1: SINUSOIDAL_PROJECTION_TEST ................. Passed 0.81 sec Start 2: HAVERSINE_TEST 2/45 Test #2: HAVERSINE_TEST ............................. Passed 0.77 sec Start 3: HAUSDORFF_TEST 3/45 Test #3: HAUSDORFF_TEST ............................. Passed 0.75 sec Start 4: JOIN_POINT_TO_LINESTRING_SMALL_TEST 4/45 Test #4: JOIN_POINT_TO_LINESTRING_SMALL_TEST ........ Passed 0.73 sec Start 5: JOIN_POINT_IN_POLYGON_TEST 5/45 Test #5: JOIN_POINT_IN_POLYGON_TEST ................. Passed 0.79 sec Start 6: POINT_IN_POLYGON_TEST 6/45 Test #6: POINT_IN_POLYGON_TEST ...................... Passed 0.80 sec Start 7: PAIRWISE_POINT_IN_POLYGON_TEST 7/45 Test #7: PAIRWISE_POINT_IN_POLYGON_TEST ............. Passed 0.76 sec Start 8: POINT_QUADTREE_TEST 8/45 Test #8: POINT_QUADTREE_TEST ........................ Passed 0.76 sec Start 9: LINESTRING_BOUNDING_BOXES_TEST 9/45 Test #9: LINESTRING_BOUNDING_BOXES_TEST ............. Passed 0.76 sec Start 10: POLYGON_BOUNDING_BOXES_TEST 10/45 Test #10: POLYGON_BOUNDING_BOXES_TEST ................ Passed 0.80 sec Start 11: POINT_DISTANCE_TEST 11/45 Test #11: POINT_DISTANCE_TEST ........................ Passed 0.79 sec Start 12: POINT_LINESTRING_DISTANCE_TEST 12/45 Test #12: POINT_LINESTRING_DISTANCE_TEST ............. Passed 0.78 sec Start 13: LINESTRING_DISTANCE_TEST 13/45 Test #13: LINESTRING_DISTANCE_TEST ................... Passed 0.78 sec Start 14: POINT_POLYGON_DISTANCE_TEST 14/45 Test #14: POINT_POLYGON_DISTANCE_TEST ................ Passed 0.76 sec Start 15: LINESTRING_INTERSECTION_TEST 15/45 Test #15: LINESTRING_INTERSECTION_TEST ............... Passed 0.83 sec Start 16: POINT_LINESTRING_NEAREST_POINT_TEST 16/45 Test #16: POINT_LINESTRING_NEAREST_POINT_TEST ........ Passed 0.77 sec Start 17: QUADTREE_POLYGON_FILTERING_TEST 17/45 Test #17: QUADTREE_POLYGON_FILTERING_TEST ............ Passed 0.79 sec Start 18: QUADTREE_LINESTRING_FILTERING_TEST 18/45 Test #18: QUADTREE_LINESTRING_FILTERING_TEST ......... Passed 0.76 sec Start 19: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST 19/45 Test #19: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST ....... Passed 0.79 sec Start 20: DERIVE_TRAJECTORIES_TEST 20/45 Test #20: DERIVE_TRAJECTORIES_TEST ................... Passed 0.76 sec Start 21: TRAJECTORY_BOUNDING_BOXES_TEST 21/45 Test #21: TRAJECTORY_BOUNDING_BOXES_TEST ............. Passed 0.75 sec Start 22: SPATIAL_WINDOW_POINT_TEST 22/45 Test #22: SPATIAL_WINDOW_POINT_TEST .................. Passed 0.75 sec Start 23: UTILITY_TEST 23/45 Test #23: UTILITY_TEST ............................... Passed 1.86 sec Start 24: HAVERSINE_TEST_EXP 24/45 Test #24: HAVERSINE_TEST_EXP ......................... Passed 0.14 sec Start 25: POINT_DISTANCE_TEST_EXP 25/45 Test #25: POINT_DISTANCE_TEST_EXP .................... Passed 0.11 sec Start 26: POINT_LINESTRING_DISTANCE_TEST_EXP 26/45 Test #26: POINT_LINESTRING_DISTANCE_TEST_EXP ......... Passed 0.11 sec Start 27: POINT_POLYGON_DISTANCE_TEST_EXP 27/45 Test #27: POINT_POLYGON_DISTANCE_TEST_EXP ............ Passed 0.13 sec Start 28: HAUSDORFF_TEST_EXP 28/45 Test #28: HAUSDORFF_TEST_EXP ......................... Passed 9.21 sec Start 29: LINESTRING_DISTANCE_TEST_EXP 29/45 Test #29: LINESTRING_DISTANCE_TEST_EXP ............... Passed 0.17 sec Start 30: LINESTRING_INTERSECTION_TEST_EXP 30/45 Test #30: LINESTRING_INTERSECTION_TEST_EXP ........... Passed 0.19 sec Start 31: POINT_LINESTRING_NEAREST_POINT_TEST_EXP 31/45 Test #31: POINT_LINESTRING_NEAREST_POINT_TEST_EXP .... Passed 0.12 sec Start 32: SINUSOIDAL_PROJECTION_TEST_EXP 32/45 Test #32: SINUSOIDAL_PROJECTION_TEST_EXP ............. Passed 0.12 sec Start 33: POINTS_IN_RANGE_TEST_EXP 33/45 Test #33: POINTS_IN_RANGE_TEST_EXP ................... Passed 0.11 sec Start 34: POINT_IN_POLYGON_TEST_EXP 34/45 Test #34: POINT_IN_POLYGON_TEST_EXP .................. Passed 0.12 sec Start 35: PAIRWISE_POINT_IN_POLYGON_TEST_EXP 35/45 Test #35: PAIRWISE_POINT_IN_POLYGON_TEST_EXP ......... Passed 0.11 sec Start 36: DERIVE_TRAJECTORIES_TEST_EXP 36/45 Test #36: DERIVE_TRAJECTORIES_TEST_EXP ............... Passed 14.49 sec Start 37: POINT_BOUNDING_BOXES_TEST_EXP 37/45 Test #37: POINT_BOUNDING_BOXES_TEST_EXP .............. Passed 1.35 sec Start 38: POLYGON_BOUNDING_BOXES_TEST_EXP 38/45 Test #38: POLYGON_BOUNDING_BOXES_TEST_EXP ............ Passed 0.11 sec Start 39: LINESTRING_BOUNDING_BOXES_TEST_EXP 39/45 Test #39: LINESTRING_BOUNDING_BOXES_TEST_EXP ......... Passed 0.11 sec Start 40: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST_EXP 40/45 Test #40: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST_EXP ... Passed 0.80 sec Start 41: POINT_QUADTREE_TEST_EXP 41/45 Test #41: POINT_QUADTREE_TEST_EXP .................... Passed 0.12 sec Start 42: OPERATOR_TEST_EXP 42/45 Test #42: OPERATOR_TEST_EXP .......................... Passed 0.14 sec Start 43: FIND_TEST_EXP 43/45 Test #43: FIND_TEST_EXP .............................. Passed 0.13 sec Start 44: JOIN_POINT_IN_POLYGON_SMALL_TEST_EXP 44/45 Test #44: JOIN_POINT_IN_POLYGON_SMALL_TEST_EXP ....... Passed 0.11 sec Start 45: JOIN_POINT_IN_POLYGON_LARGE_TEST_EXP 45/45 Test #45: JOIN_POINT_IN_POLYGON_LARGE_TEST_EXP ....... Passed 0.13 sec 100% tests passed, 0 tests failed out of 45 Total Test time (real) = 47.07 sec ``` After: ``` (rapids) coder ➜ ~/cuspatial/cpp/build/release $ ninja test [0/1] Running tests... Test project /home/coder/cuspatial/cpp/build/release Start 1: SINUSOIDAL_PROJECTION_TEST 1/45 Test #1: SINUSOIDAL_PROJECTION_TEST ................. Passed 0.78 sec Start 2: HAVERSINE_TEST 2/45 Test #2: HAVERSINE_TEST ............................. Passed 0.75 sec Start 3: HAUSDORFF_TEST 3/45 Test #3: HAUSDORFF_TEST ............................. Passed 0.74 sec Start 4: JOIN_POINT_TO_LINESTRING_SMALL_TEST 4/45 Test #4: JOIN_POINT_TO_LINESTRING_SMALL_TEST ........ Passed 0.77 sec Start 5: JOIN_POINT_IN_POLYGON_TEST 5/45 Test #5: JOIN_POINT_IN_POLYGON_TEST ................. Passed 0.76 sec Start 6: POINT_IN_POLYGON_TEST 6/45 Test #6: POINT_IN_POLYGON_TEST ...................... Passed 0.78 sec Start 7: PAIRWISE_POINT_IN_POLYGON_TEST 7/45 Test #7: PAIRWISE_POINT_IN_POLYGON_TEST ............. Passed 0.74 sec Start 8: POINT_QUADTREE_TEST 8/45 Test #8: POINT_QUADTREE_TEST ........................ Passed 0.75 sec Start 9: LINESTRING_BOUNDING_BOXES_TEST 9/45 Test #9: LINESTRING_BOUNDING_BOXES_TEST ............. Passed 0.75 sec Start 10: POLYGON_BOUNDING_BOXES_TEST 10/45 Test #10: POLYGON_BOUNDING_BOXES_TEST ................ Passed 0.73 sec Start 11: POINT_DISTANCE_TEST 11/45 Test #11: POINT_DISTANCE_TEST ........................ Passed 0.73 sec Start 12: POINT_LINESTRING_DISTANCE_TEST 12/45 Test #12: POINT_LINESTRING_DISTANCE_TEST ............. Passed 0.74 sec Start 13: LINESTRING_DISTANCE_TEST 13/45 Test #13: LINESTRING_DISTANCE_TEST ................... Passed 0.76 sec Start 14: POINT_POLYGON_DISTANCE_TEST 14/45 Test #14: POINT_POLYGON_DISTANCE_TEST ................ Passed 0.76 sec Start 15: LINESTRING_INTERSECTION_TEST 15/45 Test #15: LINESTRING_INTERSECTION_TEST ............... Passed 0.78 sec Start 16: POINT_LINESTRING_NEAREST_POINT_TEST 16/45 Test #16: POINT_LINESTRING_NEAREST_POINT_TEST ........ Passed 0.77 sec Start 17: QUADTREE_POLYGON_FILTERING_TEST 17/45 Test #17: QUADTREE_POLYGON_FILTERING_TEST ............ Passed 0.75 sec Start 18: QUADTREE_LINESTRING_FILTERING_TEST 18/45 Test #18: QUADTREE_LINESTRING_FILTERING_TEST ......... Passed 0.77 sec Start 19: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST 19/45 Test #19: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST ....... Passed 0.74 sec Start 20: DERIVE_TRAJECTORIES_TEST 20/45 Test #20: DERIVE_TRAJECTORIES_TEST ................... Passed 0.75 sec Start 21: TRAJECTORY_BOUNDING_BOXES_TEST 21/45 Test #21: TRAJECTORY_BOUNDING_BOXES_TEST ............. Passed 0.74 sec Start 22: SPATIAL_WINDOW_POINT_TEST 22/45 Test #22: SPATIAL_WINDOW_POINT_TEST .................. Passed 0.75 sec Start 23: UTILITY_TEST 23/45 Test #23: UTILITY_TEST ............................... Passed 0.30 sec Start 24: HAVERSINE_TEST_EXP 24/45 Test #24: HAVERSINE_TEST_EXP ......................... Passed 0.12 sec Start 25: POINT_DISTANCE_TEST_EXP 25/45 Test #25: POINT_DISTANCE_TEST_EXP .................... Passed 0.12 sec Start 26: POINT_LINESTRING_DISTANCE_TEST_EXP 26/45 Test #26: POINT_LINESTRING_DISTANCE_TEST_EXP ......... Passed 0.12 sec Start 27: POINT_POLYGON_DISTANCE_TEST_EXP 27/45 Test #27: POINT_POLYGON_DISTANCE_TEST_EXP ............ Passed 0.13 sec Start 28: HAUSDORFF_TEST_EXP 28/45 Test #28: HAUSDORFF_TEST_EXP ......................... Passed 0.26 sec Start 29: LINESTRING_DISTANCE_TEST_EXP 29/45 Test #29: LINESTRING_DISTANCE_TEST_EXP ............... Passed 0.14 sec Start 30: LINESTRING_INTERSECTION_TEST_EXP 30/45 Test #30: LINESTRING_INTERSECTION_TEST_EXP ........... Passed 0.19 sec Start 31: POINT_LINESTRING_NEAREST_POINT_TEST_EXP 31/45 Test #31: POINT_LINESTRING_NEAREST_POINT_TEST_EXP .... Passed 0.11 sec Start 32: SINUSOIDAL_PROJECTION_TEST_EXP 32/45 Test #32: SINUSOIDAL_PROJECTION_TEST_EXP ............. Passed 0.11 sec Start 33: POINTS_IN_RANGE_TEST_EXP 33/45 Test #33: POINTS_IN_RANGE_TEST_EXP ................... Passed 0.13 sec Start 34: POINT_IN_POLYGON_TEST_EXP 34/45 Test #34: POINT_IN_POLYGON_TEST_EXP .................. Passed 0.11 sec Start 35: PAIRWISE_POINT_IN_POLYGON_TEST_EXP 35/45 Test #35: PAIRWISE_POINT_IN_POLYGON_TEST_EXP ......... Passed 0.14 sec Start 36: DERIVE_TRAJECTORIES_TEST_EXP 36/45 Test #36: DERIVE_TRAJECTORIES_TEST_EXP ............... Passed 0.27 sec Start 37: POINT_BOUNDING_BOXES_TEST_EXP 37/45 Test #37: POINT_BOUNDING_BOXES_TEST_EXP .............. Passed 0.15 sec Start 38: POLYGON_BOUNDING_BOXES_TEST_EXP 38/45 Test #38: POLYGON_BOUNDING_BOXES_TEST_EXP ............ Passed 0.13 sec Start 39: LINESTRING_BOUNDING_BOXES_TEST_EXP 39/45 Test #39: LINESTRING_BOUNDING_BOXES_TEST_EXP ......... Passed 0.12 sec Start 40: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST_EXP 40/45 Test #40: TRAJECTORY_DISTANCES_AND_SPEEDS_TEST_EXP ... Passed 0.13 sec Start 41: POINT_QUADTREE_TEST_EXP 41/45 Test #41: POINT_QUADTREE_TEST_EXP .................... Passed 0.14 sec Start 42: OPERATOR_TEST_EXP 42/45 Test #42: OPERATOR_TEST_EXP .......................... Passed 0.14 sec Start 43: FIND_TEST_EXP 43/45 Test #43: FIND_TEST_EXP .............................. Passed 0.15 sec Start 44: JOIN_POINT_IN_POLYGON_SMALL_TEST_EXP 44/45 Test #44: JOIN_POINT_IN_POLYGON_SMALL_TEST_EXP ....... Passed 0.12 sec Start 45: JOIN_POINT_IN_POLYGON_LARGE_TEST_EXP 45/45 Test #45: JOIN_POINT_IN_POLYGON_LARGE_TEST_EXP ....... Passed 0.13 sec 100% tests passed, 0 tests failed out of 45 Total Test time (real) = 20.08 sec ``` Authors: - Mark Harris (https://github.com/harrism) Approvers: - Michael Wang (https://github.com/isVoid) - Paul Taylor (https://github.com/trxcllnt) URL: https://github.com/rapidsai/cuspatial/pull/1018 * Re-add enabled_check_generated_files:false --------- Co-authored-by: H. Thomson Comer Co-authored-by: Michael Wang Co-authored-by: AJ Schmidt --- .github/workflows/pr.yaml | 2 + .pre-commit-config.yaml | 5 + .../all_cuda-118_arch-x86_64.yaml | 3 + cpp/benchmarks/floating_point_equality.cu | 6 +- cpp/benchmarks/points_in_range.cu | 13 +- .../detail/algorithm/is_point_in_polygon.cuh | 2 +- .../join/get_quad_and_local_point_indices.cuh | 11 +- .../experimental/detail/join/intersection.cuh | 39 +- .../experimental/detail/point_quadtree.cuh | 6 +- .../detail/quadtree_bbox_filtering.cuh | 46 +- .../detail/quadtree_point_in_polygon.cuh | 187 +++++ .../detail/ranges/multipolygon_range.cuh | 2 +- .../cuspatial/experimental/point_quadtree.cuh | 119 ++- .../experimental/ranges/multipoint_range.cuh | 2 + .../ranges/multipolygon_range.cuh | 13 + .../cuspatial/experimental/spatial_join.cuh | 97 ++- cpp/include/cuspatial_test/base_fixture.hpp | 4 +- cpp/include/cuspatial_test/random.cuh | 8 + .../indexing/construction/point_quadtree.cu | 6 +- cpp/src/join/quadtree_bbox_filtering.cu | 36 +- cpp/src/join/quadtree_point_in_polygon.cu | 202 +---- cpp/src/utility/point_in_polygon.cuh | 80 -- cpp/tests/CMakeLists.txt | 19 +- .../indexing/point_quadtree_test.cu | 2 +- .../quadtree_point_in_polygon_test_large.cu | 210 +++++ .../quadtree_point_in_polygon_test_small.cu | 159 ++++ .../experimental/spatial/hausdorff_test.cu | 2 +- .../spatial/point_bounding_boxes_test.cu | 8 +- .../spatial/point_distance_test.cu | 22 +- .../trajectory/derive_trajectories_test.cu | 8 +- .../trajectory_distances_and_speeds_test.cu | 8 +- .../join/point_in_polygon_test_large.cpp | 219 ----- .../join/point_in_polygon_test_small.cpp | 177 ---- .../join/quadtree_point_in_polygon_test.cpp | 346 ++++++++ .../utility_test/test_geometry_generators.cu | 8 +- dependencies.yaml | 2 + .../user_guide/cuspatial_api_examples.ipynb | 185 +++- notebooks/README.md | 1 + notebooks/ZipCodes_Stops_PiP_cuSpatial.ipynb | 686 +++++++++++++++ notebooks/stop_states.png | Bin 0 -> 763237 bytes python/cuspatial/cuspatial/__init__.py | 1 + .../cpp/distance/point_polygon_distance.pxd | 17 + python/cuspatial/cuspatial/_lib/distance.pyx | 44 +- python/cuspatial/cuspatial/_lib/types.pxd | 7 + python/cuspatial/cuspatial/_lib/types.pyx | 7 + .../cuspatial/core/binpreds/binpreds.py | 309 ++++++- python/cuspatial/cuspatial/core/geoseries.py | 161 +++- .../cuspatial/core/spatial/__init__.py | 4 +- .../cuspatial/core/spatial/distance.py | 101 +++ .../tests/binpreds/test_binpred_internals.py | 75 ++ .../binpreds/test_equals_only_binpreds.py | 787 ++++++++++++++++++ python/cuspatial/cuspatial/tests/conftest.py | 12 +- .../test_pairwise_point_polygon_distance.py | 142 ++++ 53 files changed, 3767 insertions(+), 851 deletions(-) create mode 100644 cpp/include/cuspatial/experimental/detail/quadtree_point_in_polygon.cuh delete mode 100644 cpp/src/utility/point_in_polygon.cuh create mode 100644 cpp/tests/experimental/join/quadtree_point_in_polygon_test_large.cu create mode 100644 cpp/tests/experimental/join/quadtree_point_in_polygon_test_small.cu delete mode 100644 cpp/tests/join/point_in_polygon_test_large.cpp delete mode 100644 cpp/tests/join/point_in_polygon_test_small.cpp create mode 100644 cpp/tests/join/quadtree_point_in_polygon_test.cpp create mode 100644 notebooks/ZipCodes_Stops_PiP_cuSpatial.ipynb create mode 100644 notebooks/stop_states.png create mode 100644 python/cuspatial/cuspatial/_lib/cpp/distance/point_polygon_distance.pxd create mode 100644 python/cuspatial/cuspatial/tests/binpreds/test_binpred_internals.py create mode 100644 python/cuspatial/cuspatial/tests/binpreds/test_equals_only_binpreds.py create mode 100644 python/cuspatial/cuspatial/tests/spatial/distance/test_pairwise_point_polygon_distance.py diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 7fe024637..0f4f70b5d 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -24,6 +24,8 @@ jobs: checks: secrets: inherit uses: rapidsai/shared-action-workflows/.github/workflows/checks.yaml@branch-23.06 + with: + enable_check_generated_files: false conda-cpp-build: needs: checks secrets: inherit diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8929af177..a171c0872 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -42,6 +42,11 @@ repos: - id: codespell args: ["--config pyproject.toml"] additional_dependencies: ["tomli"] + - repo: https://github.com/rapidsai/dependency-file-generator + rev: v1.5.1 + hooks: + - id: rapids-dependency-file-generator + args: ["--clean"] default_language_version: python: python3 diff --git a/conda/environments/all_cuda-118_arch-x86_64.yaml b/conda/environments/all_cuda-118_arch-x86_64.yaml index 558001477..b3c4190b5 100644 --- a/conda/environments/all_cuda-118_arch-x86_64.yaml +++ b/conda/environments/all_cuda-118_arch-x86_64.yaml @@ -23,10 +23,12 @@ dependencies: - myst-parser - nbsphinx - ninja +- notebook - numpydoc - nvcc_linux-64=11.8 - pre-commit - pydata-sphinx-theme +- pydeck - pytest - pytest-cov - pytest-xdist @@ -34,6 +36,7 @@ dependencies: - rmm=23.06 - scikit-build>=0.13.1 - setuptools +- shapely - sphinx<6 - sysroot_linux-64==2.17 name: all_cuda-118_arch-x86_64 diff --git a/cpp/benchmarks/floating_point_equality.cu b/cpp/benchmarks/floating_point_equality.cu index 33f3e75b8..f0f99c4d8 100644 --- a/cpp/benchmarks/floating_point_equality.cu +++ b/cpp/benchmarks/floating_point_equality.cu @@ -45,14 +45,14 @@ template void generate_floats(FloatsIter begin, FloatsIter end) { using T = typename std::iterator_traits::value_type; - auto engine_x = deterministic_engine(std::distance(begin, end)); + auto engine_x = cuspatial::test::deterministic_engine(std::distance(begin, end)); auto lo = std::numeric_limits::min(); auto hi = std::numeric_limits::max(); - auto x_dist = make_uniform_dist(lo, hi); + auto x_dist = cuspatial::test::make_uniform_dist(lo, hi); - auto x_gen = value_generator{lo, hi, engine_x, x_dist}; + auto x_gen = cuspatial::test::value_generator{lo, hi, engine_x, x_dist}; thrust::tabulate( rmm::exec_policy(), begin, end, [x_gen] __device__(size_t n) mutable { return x_gen(n); }); diff --git a/cpp/benchmarks/points_in_range.cu b/cpp/benchmarks/points_in_range.cu index 06bf17d44..442fc18f4 100644 --- a/cpp/benchmarks/points_in_range.cu +++ b/cpp/benchmarks/points_in_range.cu @@ -15,6 +15,7 @@ */ #include + #include #include @@ -54,14 +55,14 @@ using namespace cuspatial; template void generate_points(PointsIter begin, PointsIter end, vec_2d range_min, vec_2d range_max) { - auto engine_x = deterministic_engine(std::distance(begin, end)); - auto engine_y = deterministic_engine(2 * std::distance(begin, end)); + auto engine_x = cuspatial::test::deterministic_engine(std::distance(begin, end)); + auto engine_y = cuspatial::test::deterministic_engine(2 * std::distance(begin, end)); - auto x_dist = make_uniform_dist(range_min.x, range_max.x); - auto y_dist = make_uniform_dist(range_min.y, range_max.y); + auto x_dist = cuspatial::test::make_uniform_dist(range_min.x, range_max.x); + auto y_dist = cuspatial::test::make_uniform_dist(range_min.y, range_max.y); - auto x_gen = value_generator{range_min.x, range_max.x, engine_x, x_dist}; - auto y_gen = value_generator{range_min.y, range_max.y, engine_y, y_dist}; + auto x_gen = cuspatial::test::value_generator{range_min.x, range_max.x, engine_x, x_dist}; + auto y_gen = cuspatial::test::value_generator{range_min.y, range_max.y, engine_y, y_dist}; thrust::tabulate(rmm::exec_policy(), begin, end, [x_gen, y_gen] __device__(size_t n) mutable { return vec_2d{x_gen(n), y_gen(n)}; diff --git a/cpp/include/cuspatial/experimental/detail/algorithm/is_point_in_polygon.cuh b/cpp/include/cuspatial/experimental/detail/algorithm/is_point_in_polygon.cuh index 9b506c145..73c3ebd29 100644 --- a/cpp/include/cuspatial/experimental/detail/algorithm/is_point_in_polygon.cuh +++ b/cpp/include/cuspatial/experimental/detail/algorithm/is_point_in_polygon.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/cpp/include/cuspatial/experimental/detail/join/get_quad_and_local_point_indices.cuh b/cpp/include/cuspatial/experimental/detail/join/get_quad_and_local_point_indices.cuh index 39ee2d8b0..3c73a10e8 100644 --- a/cpp/include/cuspatial/experimental/detail/join/get_quad_and_local_point_indices.cuh +++ b/cpp/include/cuspatial/experimental/detail/join/get_quad_and_local_point_indices.cuh @@ -23,8 +23,11 @@ namespace cuspatial { namespace detail { -inline __device__ std::pair get_quad_and_local_point_indices( - uint32_t const global_index, uint32_t const* point_offsets, uint32_t const* point_offsets_end) +template +inline __device__ std::pair get_quad_and_local_point_indices( + IndexType const global_index, + PointOffsetIterator point_offsets_begin, + PointOffsetIterator point_offsets_end) { // Calculate the position in "point_offsets" that `global_index` falls between. // This position is the index of the poly/quad pair for this `global_index`. @@ -33,10 +36,10 @@ inline __device__ std::pair get_quad_and_local_point_indices // quadrant. Adding this zero-based position to the quadrant's first point position in the // quadtree yields the "global" position in the `point_indices` map. auto const local_point_offset = - thrust::upper_bound(thrust::seq, point_offsets, point_offsets_end, global_index) - 1; + thrust::upper_bound(thrust::seq, point_offsets_begin, point_offsets_end, global_index) - 1; return std::make_pair( // quad_poly_index - thrust::distance(point_offsets, local_point_offset), + thrust::distance(point_offsets_begin, local_point_offset), // local_point_index global_index - *local_point_offset); } diff --git a/cpp/include/cuspatial/experimental/detail/join/intersection.cuh b/cpp/include/cuspatial/experimental/detail/join/intersection.cuh index cb297ba7d..e6fbc03e4 100644 --- a/cpp/include/cuspatial/experimental/detail/join/intersection.cuh +++ b/cpp/include/cuspatial/experimental/detail/join/intersection.cuh @@ -17,6 +17,8 @@ #pragma once #include +#include +#include #include #include @@ -69,37 +71,32 @@ inline int32_t remove_non_quad_intersections(InputIterator input_begin, } template -inline std::pair find_intersections(KeyIterator keys_first, - LevelIterator levels_first, - IsInternalIterator is_internal_node_first, +inline std::pair find_intersections(point_quadtree_ref quadtree, BoundingBoxIterator bounding_box_first, NodeIndicesIterator node_indices, BBoxIndicesIterator bbox_indices, NodePairsIterator node_pairs, LeafPairsIterator leaf_pairs, int32_t num_pairs, - T x_min, - T y_min, + vec_2d const& v_min, T scale, int8_t max_depth, rmm::cuda_stream_view stream) { - auto nodes_first = thrust::make_zip_iterator(keys_first, levels_first, is_internal_node_first); + auto nodes_first = thrust::make_zip_iterator( + quadtree.key_begin(), quadtree.level_begin(), quadtree.internal_node_flag_begin()); thrust::transform( rmm::exec_policy(stream), thrust::make_zip_iterator(node_indices, bbox_indices), thrust::make_zip_iterator(node_indices, bbox_indices) + num_pairs, node_pairs, - [x_min, y_min, scale, max_depth, nodes = nodes_first, bboxes = bounding_box_first] __device__( + [v_min, scale, max_depth, nodes = nodes_first, bboxes = bounding_box_first] __device__( auto const& node_and_bbox) { auto const& node_idx = thrust::get<0>(node_and_bbox); auto const& bbox_idx = thrust::get<1>(node_and_bbox); @@ -109,24 +106,20 @@ inline std::pair find_intersections(KeyIterator keys_first, uint8_t const& level = thrust::get<1>(node); uint8_t const& is_internal_node = thrust::get<2>(node); - auto const& bbox = bboxes[bbox_idx]; - auto const& bbox_min = bbox.v1; - auto const& bbox_max = bbox.v2; - auto const& poly_x_min = bbox_min.x; - auto const& poly_y_min = bbox_min.y; - auto const& poly_x_max = bbox_max.x; - auto const& poly_y_max = bbox_max.y; + box const bbox = bboxes[bbox_idx]; + vec_2d const bbox_min = bbox.v1; + vec_2d const bbox_max = bbox.v2; T const key_x = utility::z_order_x(key); T const key_y = utility::z_order_y(key); T const level_scale = scale * (1 << (max_depth - 1 - level)); - T const node_x_min = x_min + (key_x + 0) * level_scale; - T const node_y_min = y_min + (key_y + 0) * level_scale; - T const node_x_max = x_min + (key_x + 1) * level_scale; - T const node_y_max = y_min + (key_y + 1) * level_scale; + T const node_x_min = v_min.x + (key_x + 0) * level_scale; + T const node_y_min = v_min.y + (key_y + 0) * level_scale; + T const node_x_max = v_min.x + (key_x + 1) * level_scale; + T const node_y_max = v_min.y + (key_y + 1) * level_scale; - if ((node_x_min > poly_x_max) || (node_x_max < poly_x_min) || (node_y_min > poly_y_max) || - (node_y_max < poly_y_min)) { + if ((node_x_min > bbox_max.x) || (node_x_max < bbox_min.x) || (node_y_min > bbox_max.y) || + (node_y_max < bbox_min.y)) { // if no overlap, return type = none_indicator return thrust::make_tuple(none_indicator, level, node_idx, bbox_idx); } diff --git a/cpp/include/cuspatial/experimental/detail/point_quadtree.cuh b/cpp/include/cuspatial/experimental/detail/point_quadtree.cuh index fb401a2bb..3cda7a0dc 100644 --- a/cpp/include/cuspatial/experimental/detail/point_quadtree.cuh +++ b/cpp/include/cuspatial/experimental/detail/point_quadtree.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -241,8 +241,8 @@ std::pair, point_quadtree> quadtree_on_points( T scale, int8_t max_depth, int32_t max_size, - rmm::mr::device_memory_resource* mr, - rmm::cuda_stream_view stream) + rmm::cuda_stream_view stream, + rmm::mr::device_memory_resource* mr) { auto num_points = thrust::distance(points_first, points_last); if (num_points <= 0) { diff --git a/cpp/include/cuspatial/experimental/detail/quadtree_bbox_filtering.cuh b/cpp/include/cuspatial/experimental/detail/quadtree_bbox_filtering.cuh index 5145fdba2..c6768720a 100644 --- a/cpp/include/cuspatial/experimental/detail/quadtree_bbox_filtering.cuh +++ b/cpp/include/cuspatial/experimental/detail/quadtree_bbox_filtering.cuh @@ -29,38 +29,27 @@ namespace cuspatial { -template +template std::pair, rmm::device_uvector> -join_quadtree_and_bounding_boxes(KeyIterator keys_first, - KeyIterator keys_last, - LevelIterator levels_first, - IsInternalIterator is_internal_nodes_first, - KeyIterator lengths_first, - KeyIterator offsets_first, +join_quadtree_and_bounding_boxes(point_quadtree_ref quadtree, BoundingBoxIterator bounding_boxes_first, BoundingBoxIterator bounding_boxes_last, - T x_min, - T y_min, + vec_2d const& v_min, T scale, int8_t max_depth, - rmm::mr::device_memory_resource* mr, - rmm::cuda_stream_view stream) + rmm::cuda_stream_view stream, + rmm::mr::device_memory_resource* mr) { static_assert(is_same>(), "Iterator value_type mismatch"); - auto const num_nodes = std::distance(keys_first, keys_last); auto const num_boxes = std::distance(bounding_boxes_first, bounding_boxes_last); // Count the number of top-level nodes to start. // This could be provided explicitly, but count_if should be fast enough. auto num_top_level_leaves = thrust::count_if(rmm::exec_policy(stream), - levels_first, - levels_first + num_nodes, + quadtree.level_begin(), + quadtree.level_end(), thrust::placeholders::_1 == 0); auto num_pairs = num_top_level_leaves * num_boxes; @@ -96,9 +85,7 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // Find intersections for all the top level quadrants and bounding boxes std::tie(num_parents, num_leaves) = - detail::find_intersections(keys_first, - levels_first, - is_internal_nodes_first, + detail::find_intersections(quadtree, bounding_boxes_first, // The top-level node indices detail::make_counting_transform_iterator( @@ -111,8 +98,7 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // found intersecting quadrant and bbox indices for output make_output_values_iter(), num_pairs, - x_min, - y_min, + v_min, scale, max_depth, stream); @@ -141,8 +127,8 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // Walk one level down and fill the current level's vectors with // the next level's quadrant info and bbox indices. std::tie(num_pairs, cur_types, cur_levels, cur_node_idxs, cur_bbox_idxs) = - detail::descend_quadtree(lengths_first, - offsets_first, + detail::descend_quadtree(quadtree.length_begin(), + quadtree.offset_begin(), num_parents, cur_types, cur_levels, @@ -152,9 +138,7 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // Find intersections for the the next level's quadrants and bboxes std::tie(num_parents, num_leaves) = - detail::find_intersections(keys_first, - levels_first, - is_internal_nodes_first, + detail::find_intersections(quadtree, bounding_boxes_first, cur_node_idxs.begin(), cur_bbox_idxs.begin(), @@ -163,8 +147,7 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // found intersecting quadrant and bbox indices for output make_output_values_iter(), num_pairs, - x_min, - y_min, + v_min, scale, max_depth, stream); @@ -177,7 +160,8 @@ join_quadtree_and_bounding_boxes(KeyIterator keys_first, // Copy the relevant node offsets into a temporary vector so we don't modify the quadtree column rmm::device_uvector tmp_node_offsets(num_results, stream); - auto const iter = thrust::make_permutation_iterator(offsets_first, out_node_idxs.begin()); + auto const iter = + thrust::make_permutation_iterator(quadtree.offset_begin(), out_node_idxs.begin()); thrust::copy(rmm::exec_policy(stream), iter, iter + num_results, tmp_node_offsets.begin()); diff --git a/cpp/include/cuspatial/experimental/detail/quadtree_point_in_polygon.cuh b/cpp/include/cuspatial/experimental/detail/quadtree_point_in_polygon.cuh new file mode 100644 index 000000000..db507b76a --- /dev/null +++ b/cpp/include/cuspatial/experimental/detail/quadtree_point_in_polygon.cuh @@ -0,0 +1,187 @@ +/* + * Copyright (c) 2023, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include + +#include + +namespace cuspatial { +namespace detail { + +template +struct compute_poly_and_point_indices { + QuadOffsetsIterator quad_point_offsets_begin; + PointOffsetsIterator point_offsets_begin; + PointOffsetsIterator point_offsets_end; + PolyIndexIterator poly_indices_begin; + + compute_poly_and_point_indices(QuadOffsetsIterator quad_point_offsets_begin, + PointOffsetsIterator point_offsets_begin, + PointOffsetsIterator point_offsets_end, + PolyIndexIterator poly_indices_begin) + : quad_point_offsets_begin(quad_point_offsets_begin), + point_offsets_begin(point_offsets_begin), + point_offsets_end(point_offsets_end), + poly_indices_begin(poly_indices_begin) + { + } + + using IndexType = iterator_value_type; + + inline thrust::tuple __device__ + operator()(IndexType const global_index) const + { + auto const [quad_poly_index, local_point_index] = + get_quad_and_local_point_indices(global_index, point_offsets_begin, point_offsets_end); + auto const point_idx = quad_point_offsets_begin[quad_poly_index] + local_point_index; + auto const poly_idx = poly_indices_begin[quad_poly_index]; + return thrust::make_tuple(poly_idx, point_idx); + } +}; + +template +struct test_poly_point_intersection { + using T = iterator_vec_base_type; + using IndexType = iterator_value_type; + + test_poly_point_intersection(PointIterator points_first, MultiPolygonRange polygons) + : points_first(points_first), polygons(polygons) + { + } + + PointIterator points_first; + MultiPolygonRange polygons; + + inline bool __device__ operator()(thrust::tuple const& poly_point_idxs) + { + auto const poly_idx = thrust::get<0>(poly_point_idxs); + auto const point_idx = thrust::get<1>(poly_point_idxs); + + vec_2d const& point = points_first[point_idx]; + + return is_point_in_polygon(point, polygons[poly_idx][0]); + } +}; + +} // namespace detail + +template +std::pair, rmm::device_uvector> quadtree_point_in_polygon( + PolyIndexIterator poly_indices_first, + PolyIndexIterator poly_indices_last, + QuadIndexIterator quad_indices_first, + point_quadtree_ref quadtree, + PointIndexIterator point_indices_first, + PointIndexIterator point_indices_last, + PointIterator points_first, + MultiPolygonRange polygons, + rmm::cuda_stream_view stream, + rmm::mr::device_memory_resource* mr) +{ + using T = iterator_vec_base_type; + + CUSPATIAL_EXPECTS(polygons.num_multipolygons() == polygons.num_polygons(), + "Only one polygon per multipolygon currently supported."); + + auto num_poly_quad_pairs = std::distance(poly_indices_first, poly_indices_last); + + auto quad_lengths_iter = + thrust::make_permutation_iterator(quadtree.length_begin(), quad_indices_first); + + auto quad_offsets_iter = + thrust::make_permutation_iterator(quadtree.offset_begin(), quad_indices_first); + + // Compute a "local" set of zero-based point offsets from number of points in each quadrant + // Use `num_poly_quad_pairs + 1` as the length so that the last element produced by + // `inclusive_scan` is the total number of points to be tested against any polygon. + rmm::device_uvector local_point_offsets(num_poly_quad_pairs + 1, stream); + + // inclusive scan of quad_lengths_iter + thrust::inclusive_scan(rmm::exec_policy(stream), + quad_lengths_iter, + quad_lengths_iter + num_poly_quad_pairs, + local_point_offsets.begin() + 1); + + // Ensure local point offsets starts at 0 + IndexType init{0}; + local_point_offsets.set_element_async(0, init, stream); + + // The last element is the total number of points to test against any polygon. + auto num_total_points = local_point_offsets.back_element(stream); + + // Allocate the output polygon and point index pair vectors + rmm::device_uvector poly_indices(num_total_points, stream); + rmm::device_uvector point_indices(num_total_points, stream); + + auto poly_and_point_indices = + thrust::make_zip_iterator(poly_indices.begin(), point_indices.begin()); + + // Enumerate the point X/Ys using the sorted `point_indices` (from quadtree construction) + auto point_xys_iter = thrust::make_permutation_iterator(points_first, point_indices_first); + + // Compute the combination of polygon and point index pairs. For each polygon/quadrant pair, + // enumerate pairs of (poly_index, point_index) for each point in each quadrant. + // + // In Python pseudocode: + // ``` + // pp_pairs = [] + // for polygon, quadrant in pq_pairs: + // for point in quadrant: + // pp_pairs.append((polygon, point)) + // ``` + // + auto global_to_poly_and_point_indices = detail::make_counting_transform_iterator( + 0, + detail::compute_poly_and_point_indices{quad_offsets_iter, + local_point_offsets.begin(), + local_point_offsets.end(), + poly_indices_first}); + + // Compute the number of intersections by removing (poly, point) pairs that don't intersect + auto num_intersections = thrust::distance( + poly_and_point_indices, + thrust::copy_if(rmm::exec_policy(stream), + global_to_poly_and_point_indices, + global_to_poly_and_point_indices + num_total_points, + poly_and_point_indices, + detail::test_poly_point_intersection{point_xys_iter, polygons})); + + poly_indices.resize(num_intersections, stream); + poly_indices.shrink_to_fit(stream); + point_indices.resize(num_intersections, stream); + point_indices.shrink_to_fit(stream); + + return std::pair{std::move(poly_indices), std::move(point_indices)}; +} + +} // namespace cuspatial diff --git a/cpp/include/cuspatial/experimental/detail/ranges/multipolygon_range.cuh b/cpp/include/cuspatial/experimental/detail/ranges/multipolygon_range.cuh index 49b00a87b..f62b68044 100644 --- a/cpp/include/cuspatial/experimental/detail/ranges/multipolygon_range.cuh +++ b/cpp/include/cuspatial/experimental/detail/ranges/multipolygon_range.cuh @@ -104,7 +104,7 @@ multipolygon_range::m _point_end(point_end) { static_assert(is_vec_2d>(), - "Point iterator must be iterators to floating point vec_2d types."); + "point_begin and point_end must be iterators to floating point vec_2d types."); CUSPATIAL_EXPECTS_VALID_MULTIPOLYGON_SIZES( num_points(), num_multipolygons() + 1, num_polygons() + 1, num_rings() + 1); diff --git a/cpp/include/cuspatial/experimental/point_quadtree.cuh b/cpp/include/cuspatial/experimental/point_quadtree.cuh index bdb31def4..88253468b 100644 --- a/cpp/include/cuspatial/experimental/point_quadtree.cuh +++ b/cpp/include/cuspatial/experimental/point_quadtree.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,19 +35,104 @@ namespace cuspatial { * @{ */ +struct point_quadtree_ref; + struct point_quadtree { // uint32_t vector of quad node keys rmm::device_uvector key; // uint8_t vector of quadtree levels rmm::device_uvector level; // bool vector indicating whether the node is a parent (true) or leaf (false) node - rmm::device_uvector is_internal_node; + rmm::device_uvector internal_node_flag; // uint32_t vector for the number of child nodes (if is_internal_node), or number of points rmm::device_uvector length; // uint32_t vector for the first child position (if is_internal_node), or first point position rmm::device_uvector offset; }; +struct point_quadtree_ref { + using key_iterator = decltype(point_quadtree::key)::const_iterator; + using level_iterator = decltype(point_quadtree::level)::const_iterator; + using internal_node_flag_iterator = decltype(point_quadtree::internal_node_flag)::const_iterator; + using length_iterator = decltype(point_quadtree::length)::const_iterator; + using offset_iterator = decltype(point_quadtree::offset)::const_iterator; + + /// Construct from a point_quadtree struct + point_quadtree_ref(point_quadtree const& quadtree) + : _key_begin(quadtree.key.begin()), + _key_end(quadtree.key.end()), + _level_begin(quadtree.level.begin()), + _level_end(quadtree.level.end()), + _internal_node_flag_begin(quadtree.internal_node_flag.begin()), + _internal_node_flag_end(quadtree.internal_node_flag.end()), + _length_begin(quadtree.length.begin()), + _length_end(quadtree.length.end()), + _offset_begin(quadtree.offset.begin()), + _offset_end(quadtree.offset.end()) + { + } + + /// Construct from iterators and size + point_quadtree_ref(key_iterator key_begin, + key_iterator key_end, + level_iterator level_begin, + internal_node_flag_iterator internal_node_flag_begin, + length_iterator length_begin, + offset_iterator offset_begin) + : _key_begin(key_begin), + _key_end(key_end), + _level_begin(level_begin), + _level_end(level_begin + std::distance(key_begin, key_end)), + _internal_node_flag_begin(internal_node_flag_begin), + _internal_node_flag_end(internal_node_flag_begin + std::distance(key_begin, key_end)), + _length_begin(length_begin), + _length_end(length_begin + std::distance(key_begin, key_end)), + _offset_begin(offset_begin), + _offset_end(offset_begin + std::distance(key_begin, key_end)) + { + } + + /// Return the number of keys in the quadtree + CUSPATIAL_HOST_DEVICE auto num_nodes() const { return std::distance(_key_begin, _key_end); } + + /// Return iterator to the first ring of the quadtree + CUSPATIAL_HOST_DEVICE auto key_begin() const { return _key_begin; } + /// Return iterator to the last ring of the quadtree + CUSPATIAL_HOST_DEVICE auto key_end() const { return _key_end; } + + /// Return iterator to the first level of the quadtree + CUSPATIAL_HOST_DEVICE auto level_begin() const { return _level_begin; } + /// Return iterator to the last level of the quadtree + CUSPATIAL_HOST_DEVICE auto level_end() const { return _level_end; } + + /// Return iterator to the first internal node flag of the quadtree + CUSPATIAL_HOST_DEVICE auto internal_node_flag_begin() const { return _internal_node_flag_begin; } + /// Return iterator to the last internal node flag of the quadtree + CUSPATIAL_HOST_DEVICE auto internal_node_flag_end() const { return _internal_node_flag_end; } + + /// Return iterator to the first length of the quadtree + CUSPATIAL_HOST_DEVICE auto length_begin() const { return _length_begin; } + /// Return iterator to the last length of the quadtree + CUSPATIAL_HOST_DEVICE auto length_end() const { return _length_end; } + + /// Return iterator to the first child / point offset of the quadtree + CUSPATIAL_HOST_DEVICE auto offset_begin() const { return _offset_begin; } + /// Return iterator to the last child / point offset of the quadtree + CUSPATIAL_HOST_DEVICE auto offset_end() const { return _offset_end; } + + protected: + key_iterator _key_begin; + key_iterator _key_end; + level_iterator _level_begin; + level_iterator _level_end; + internal_node_flag_iterator _internal_node_flag_begin; + internal_node_flag_iterator _internal_node_flag_end; + length_iterator _length_begin; + length_iterator _length_end; + offset_iterator _offset_begin; + offset_iterator _offset_end; +}; + /** * @brief Construct a quadtree structure from points. * @@ -61,35 +146,39 @@ struct point_quadtree { * @note All intermediate quadtree nodes will have fewer than `max_size` number of points. Leaf * nodes are permitted (but not guaranteed) to have >= `max_size` number of points. * - * @param points Iterator of x, y coordinates for each point. + * @tparam PointIterator Iterator over x/y points. Must meet the requirements of + * [LegacyRandomAccessIterator][LinkLRAI] and be device-accessible. + * @tparam T the floating-point coordinate value type of the input x/y points. + * + * @param points_first Iterator to the beginning of the range of (x, y) points. + * @param points_last Iterator to the end of the range of (x, y) points. * @param vertex_1 Vertex of the area of interest bounding box * @param vertex_2 Vertex of the area of interest bounding box opposite `vertex_1` * @param scale Scale to apply to each x and y distance from min.x and min.y. * @param max_depth Maximum quadtree depth. * @param max_size Maximum number of points allowed in a node before it's split into 4 leaf nodes. + * @param stream The CUDA stream on which to perform computations * @param mr The optional resource to use for output device memory allocations. * - * All input iterators must have a `value_type` of `cuspatial::vec_2d` (x/y coordinates), and the - * output iterator must be able to accept for storage values of type `cuspatial::vec_2d` - * (Cartesian coordinates). + * @return Pair of UINT32 column of sorted keys to point indices and a point_quadtree * - * @tparam PointIt Iterator over x/y points. Must meet the requirements of - * [LegacyRandomAccessIterator][LinkLRAI] and be device-accessible. - * @tparam T the floating-point coordinate value type of the input x/y points. + * @pre Point iterators must have the same `vec_2d` value type, with the same underlying + * floating-point coordinate type (e.g. `cuspatial::vec_2d`). * - * @return Pair of UINT32 column of sorted keys to point indices and a point_quadtree + * [LinkLRAI]: https://en.cppreference.com/w/cpp/named_req/RandomAccessIterator + * "LegacyRandomAccessIterator" */ -template > +template > std::pair, point_quadtree> quadtree_on_points( - PointIt points_first, - PointIt points_last, + PointIterator points_first, + PointIterator points_last, vec_2d vertex_1, vec_2d vertex_2, T scale, int8_t max_depth, int32_t max_size, - rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource(), - rmm::cuda_stream_view stream = rmm::cuda_stream_default); + rmm::cuda_stream_view stream = rmm::cuda_stream_default, + rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); /** * @} // end of doxygen group diff --git a/cpp/include/cuspatial/experimental/ranges/multipoint_range.cuh b/cpp/include/cuspatial/experimental/ranges/multipoint_range.cuh index 1d7e0a36c..7117d28cc 100644 --- a/cpp/include/cuspatial/experimental/ranges/multipoint_range.cuh +++ b/cpp/include/cuspatial/experimental/ranges/multipoint_range.cuh @@ -20,6 +20,8 @@ #include #include +#include + namespace cuspatial { /** diff --git a/cpp/include/cuspatial/experimental/ranges/multipolygon_range.cuh b/cpp/include/cuspatial/experimental/ranges/multipolygon_range.cuh index a977e71dd..bb472f15e 100644 --- a/cpp/include/cuspatial/experimental/ranges/multipolygon_range.cuh +++ b/cpp/include/cuspatial/experimental/ranges/multipolygon_range.cuh @@ -21,6 +21,7 @@ #include #include #include +#include #include namespace cuspatial { @@ -107,6 +108,18 @@ class multipolygon_range { /// Return the iterator to the one past the last point in the range. CUSPATIAL_HOST_DEVICE auto point_end(); + /// Return the iterator to the first part offset in the range. + CUSPATIAL_HOST_DEVICE auto part_offset_begin() { return _part_begin; } + + /// Return the iterator to the one past the last part offset in the range. + CUSPATIAL_HOST_DEVICE auto part_offset_end() { return _part_end; } + + /// Return the iterator to the first ring offset in the range. + CUSPATIAL_HOST_DEVICE auto ring_offset_begin() { return _ring_begin; } + + /// Return the iterator to the one past the last ring offset in the range. + CUSPATIAL_HOST_DEVICE auto ring_offset_end() { return _ring_end; } + /// Given the index of a segment, return the index of the geometry (multipolygon) that contains /// the segment. Segment index is the index to the starting point of the segment. If the index is /// the last point of the ring, then it is not a valid index. This function returns diff --git a/cpp/include/cuspatial/experimental/spatial_join.cuh b/cpp/include/cuspatial/experimental/spatial_join.cuh index 5e9b7198d..741dba1a8 100644 --- a/cpp/include/cuspatial/experimental/spatial_join.cuh +++ b/cpp/include/cuspatial/experimental/spatial_join.cuh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022, NVIDIA CORPORATION. + * Copyright (c) 2022-2023, NVIDIA CORPORATION. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -42,49 +42,94 @@ namespace cuspatial { * eventual number of levels may be less than `max_depth` if the number of points is small or * `max_size` is large. * - * @param keys_first: start quadtree key iterator - * @param keys_last: end of quadtree key iterator - * @param levels_first: start quadtree levels iterator - * @param is_internal_nodes_first: start quadtree is_internal_node iterator - * @param lengths_first: start quadtree length iterator - * @param offsets_first: start quadtree offset iterator + * @param quadtree: Reference to a quadtree created using point_quadtree() * @param bounding_boxes_first: start bounding boxes iterator * @param bounding_boxes_last: end of bounding boxes iterator - * @param x_min The lower-left x-coordinate of the area of interest bounding box. - * @param y_min The lower-left y-coordinate of the area of interest bounding box. + * @param v_min The lower-left (x, y) corner of the area of interest bounding box. * @param scale Scale to apply to each x and y distance from x_min and y_min. * @param max_depth Maximum quadtree depth at which to stop testing for intersections. + * @param stream The CUDA stream on which to perform computations * @param mr The optional resource to use for output device memory allocations. * - * @throw cuspatial::logic_error If scale is less than or equal to 0 - * @throw cuspatial::logic_error If max_depth is less than 1 or greater than 15 - * * @return A pair of UINT32 bounding box and leaf quadrant offset device vectors: * - bbox_offset - indices for each polygon/linestring bbox that intersects with the quadtree. * - quad_offset - indices for each leaf quadrant intersecting with a polygon/linestring bbox. + * + * @throw cuspatial::logic_error If scale is less than or equal to 0 + * @throw cuspatial::logic_error If max_depth is less than 1 or greater than 15 */ -template > std::pair, rmm::device_uvector> join_quadtree_and_bounding_boxes( - KeyIterator keys_first, - KeyIterator keys_last, - LevelIterator levels_first, - IsInternalIterator is_internal_nodes_first, - KeyIterator lengths_first, - KeyIterator offsets_first, + point_quadtree_ref quadtree, BoundingBoxIterator bounding_boxes_first, BoundingBoxIterator bounding_boxes_last, - T x_min, - T y_min, + vec_2d const& v_min, T scale, int8_t max_depth, - rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource(), - rmm::cuda_stream_view stream = rmm::cuda_stream_default); + rmm::cuda_stream_view stream = rmm::cuda_stream_default, + rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); + +/** + * @brief Test whether the specified points are inside any of the specified polygons. + * + * Uses the (polygon, quadrant) pairs returned by `cuspatial::join_quadtree_and_bounding_boxes` to + * ensure only the points in the same quadrant as each polygon are tested for intersection. + * + * This pre-filtering can dramatically reduce the number of points tested per polygon, enabling + * faster intersection testing at the expense of extra memory allocated to store the quadtree and + * sorted point_indices. + * + * @param poly_indices_first iterator to beginning of sequence of polygon indices returned by + * cuspatial::join_quadtree_and_bounding_boxes + * @param poly_indices_first iterator to end of sequence of polygon indices returned by + * cuspatial::join_quadtree_and_bounding_boxes + * @param quad_indices_first iterator to beginning of sequence of quadrant indices returned by + * cuspatial::join_quadtree_and_bounding_boxes + * @param quadtree: Reference to a quadtree created using point_quadtree() + * @param point_indices_first iterator to beginning of sequence of point indices returned by + * `cuspatial::quadtree_on_points` + * @param point_indices_last iterator to end of sequence of point indices returned by + * `cuspatial::quadtree_on_points` + * @param points_first iterator to beginning of sequence of (x, y) points to test + * @param polygons multipolygon_range of polygons. + * @param stream The CUDA stream on which to perform computations + * @param mr The optional resource to use for output device memory allocations. + * + * @throw cuspatial::logic_error If the number of rings is less than the number of polygons. + * @throw cuspatial::logic_error If any ring has fewer than four vertices. + * @throw cuspatial::logic_error if the number of multipolygons does not equal the total number of + * multipolygons (one polygon per multipolygon) + * + * @return A pair of rmm::device_uvectors where each row represents a point/polygon intersection: + * polygon_offset - uint32_t polygon indices + * point_offset - uint32_t point indices + * + * @note Currently only supports single-polygon multipolygons. + * @note The returned polygon and point indices are offsets into the `poly_quad_pairs` input range + * and `point_indices` range, respectively. + * + **/ +template > +std::pair, rmm::device_uvector> quadtree_point_in_polygon( + PolyIndexIterator poly_indices_first, + PolyIndexIterator poly_indices_last, + QuadIndexIterator quad_indices_first, + point_quadtree_ref quadtree, + PointIndexIterator point_indices_first, + PointIndexIterator point_indices_last, + PointIterator points_first, + MultiPolygonRange polygons, + rmm::cuda_stream_view stream = rmm::cuda_stream_default, + rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()); } // namespace cuspatial #include +#include diff --git a/cpp/include/cuspatial_test/base_fixture.hpp b/cpp/include/cuspatial_test/base_fixture.hpp index 54f8be5f6..4e925025b 100644 --- a/cpp/include/cuspatial_test/base_fixture.hpp +++ b/cpp/include/cuspatial_test/base_fixture.hpp @@ -31,8 +31,8 @@ class RMMResourceMixin { public: /** - * @brief Returns pointer to `device_memory_resource` that should be used for - * all tests inheriting from this fixture + * @brief Returns pointer to `device_memory_resource` that should be used for all tests inheriting + * from this fixture. * @return pointer to memory resource */ rmm::mr::device_memory_resource* mr() { return _mr; } diff --git a/cpp/include/cuspatial_test/random.cuh b/cpp/include/cuspatial_test/random.cuh index 5d8e2b29e..bff8ddabf 100644 --- a/cpp/include/cuspatial_test/random.cuh +++ b/cpp/include/cuspatial_test/random.cuh @@ -33,6 +33,10 @@ #include #include +namespace cuspatial { + +namespace test { + /** * @brief Identifies a probability distribution type. */ @@ -164,3 +168,7 @@ struct point_generator { * @brief LCG pseudo-random engine. */ auto deterministic_engine(unsigned seed) { return thrust::minstd_rand{seed}; } + +} // namespace test + +} // namespace cuspatial diff --git a/cpp/src/indexing/construction/point_quadtree.cu b/cpp/src/indexing/construction/point_quadtree.cu index 501bd7cae..a276d0b32 100644 --- a/cpp/src/indexing/construction/point_quadtree.cu +++ b/cpp/src/indexing/construction/point_quadtree.cu @@ -83,8 +83,8 @@ struct dispatch_construct_quadtree { static_cast(scale), max_depth, max_size, - mr, - stream); + stream, + mr); auto size = static_cast(tree.key.size()); @@ -94,7 +94,7 @@ struct dispatch_construct_quadtree { cols.push_back(std::make_unique( cudf::data_type{cudf::type_id::UINT8}, size, tree.level.release())); cols.push_back(std::make_unique( - cudf::data_type{cudf::type_id::BOOL8}, size, tree.is_internal_node.release())); + cudf::data_type{cudf::type_id::BOOL8}, size, tree.internal_node_flag.release())); cols.push_back(std::make_unique( cudf::data_type{cudf::type_id::UINT32}, size, tree.length.release())); cols.push_back(std::make_unique( diff --git a/cpp/src/join/quadtree_bbox_filtering.cu b/cpp/src/join/quadtree_bbox_filtering.cu index f95f69cf7..8c427fe63 100644 --- a/cpp/src/join/quadtree_bbox_filtering.cu +++ b/cpp/src/join/quadtree_bbox_filtering.cu @@ -47,12 +47,6 @@ struct dispatch_quadtree_bounding_box_join { rmm::mr::device_memory_resource* mr, rmm::cuda_stream_view stream) { - auto const keys = quadtree.column(0); // uint32_t - auto const levels = quadtree.column(1); // uint8_t - auto const is_internal = quadtree.column(2); // uint8_t - auto const lengths = quadtree.column(3); // uint32_t - auto const offsets = quadtree.column(4); // uint32_t - auto bbox_min = cuspatial::make_vec_2d_iterator(bbox.column(0).template begin(), bbox.column(1).template begin()); auto bbox_max = cuspatial::make_vec_2d_iterator(bbox.column(2).template begin(), @@ -60,20 +54,22 @@ struct dispatch_quadtree_bounding_box_join { auto bbox_itr = cuspatial::make_box_iterator(bbox_min, bbox_max); - auto [bbox_offset, quad_offset] = join_quadtree_and_bounding_boxes(keys.begin(), - keys.end(), - levels.begin(), - is_internal.begin(), - lengths.begin(), - offsets.begin(), - bbox_itr, - bbox_itr + bbox.num_rows(), - static_cast(x_min), - static_cast(y_min), - static_cast(scale), - max_depth, - mr, - stream); + auto quadtree_ref = point_quadtree_ref(quadtree.column(0).begin(), // keys + quadtree.column(0).end(), + quadtree.column(1).begin(), // levels + quadtree.column(2).begin(), // is_internal_node + quadtree.column(3).begin(), // lengths + quadtree.column(4).begin()); // offsets + + auto [bbox_offset, quad_offset] = join_quadtree_and_bounding_boxes( + quadtree_ref, + bbox_itr, + bbox_itr + bbox.num_rows(), + cuspatial::vec_2d{static_cast(x_min), static_cast(y_min)}, + static_cast(scale), + max_depth, + stream, + mr); std::vector> cols{}; cols.push_back(std::make_unique(std::move(bbox_offset))); diff --git a/cpp/src/join/quadtree_point_in_polygon.cu b/cpp/src/join/quadtree_point_in_polygon.cu index 8142e87ba..87b99f28e 100644 --- a/cpp/src/join/quadtree_point_in_polygon.cu +++ b/cpp/src/join/quadtree_point_in_polygon.cu @@ -14,85 +14,24 @@ * limitations under the License. */ -#include -#include +#include +#include +#include +#include -#include -#include - -#include #include #include -#include -#include #include #include #include #include #include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include namespace cuspatial { namespace detail { namespace { - -template -struct compute_poly_and_point_indices { - QuadOffsetsIter quad_point_offsets; - uint32_t const* point_offsets; - uint32_t const* point_offsets_end; - cudf::column_device_view const poly_indices; - - inline thrust::tuple __device__ - operator()(cudf::size_type const global_index) const - { - // uint32_t quad_poly_index, local_point_index; - auto const [quad_poly_index, local_point_index] = - get_quad_and_local_point_indices(global_index, point_offsets, point_offsets_end); - uint32_t const point_idx = quad_point_offsets[quad_poly_index] + local_point_index; - uint32_t const poly_idx = poly_indices.element(quad_poly_index); - return thrust::make_tuple(poly_idx, point_idx); - } -}; - -template -struct test_poly_point_intersection { - PointIter points; - cudf::column_device_view const poly_offsets; - cudf::column_device_view const ring_offsets; - cudf::column_device_view const poly_points_x; - cudf::column_device_view const poly_points_y; - - inline bool __device__ operator()(thrust::tuple const& poly_point_idxs) - { - auto& poly_idx = thrust::get<0>(poly_point_idxs); - auto& point_idx = thrust::get<1>(poly_point_idxs); - auto point = points[point_idx]; - return is_point_in_polygon(thrust::get<0>(point), - thrust::get<1>(point), - poly_idx, - poly_offsets, - ring_offsets, - poly_points_x, - poly_points_y); - } -}; - struct compute_quadtree_point_in_polygon { template std::enable_if_t::value, std::unique_ptr> operator()( @@ -115,100 +54,45 @@ struct compute_quadtree_point_in_polygon { rmm::cuda_stream_view stream, rmm::mr::device_memory_resource* mr) { - // Wrapped in an IIFE so `local_point_offsets` is freed on return - auto [poly_idxs, point_idxs, num_intersections] = [&]() { - auto quad_lengths = quadtree.column(3); - auto quad_offsets = quadtree.column(4); - auto poly_indices = poly_quad_pairs.column(0); - auto quad_indices = poly_quad_pairs.column(1); - auto num_poly_quad_pairs = poly_quad_pairs.num_rows(); - - auto quad_lengths_iter = thrust::make_permutation_iterator(quad_lengths.begin(), - quad_indices.begin()); - - auto quad_offsets_iter = thrust::make_permutation_iterator(quad_offsets.begin(), - quad_indices.begin()); - - // Compute a "local" set of zero-based point offsets from number of points in each quadrant - // Use `num_poly_quad_pairs + 1` as the length so that the last element produced by - // `inclusive_scan` is the total number of points to be tested against any polygon. - rmm::device_uvector local_point_offsets(num_poly_quad_pairs + 1, stream); - - thrust::inclusive_scan(rmm::exec_policy(stream), - quad_lengths_iter, - quad_lengths_iter + num_poly_quad_pairs, - local_point_offsets.begin() + 1); - - // Ensure local point offsets starts at 0 - uint32_t init{0}; - local_point_offsets.set_element_async(0, init, stream); - - // The last element is the total number of points to test against any polygon. - auto num_total_points = local_point_offsets.back_element(stream); - - // Allocate memory for the polygon and point index pairs - rmm::device_uvector poly_idxs(num_total_points, stream); - rmm::device_uvector point_idxs(num_total_points, stream); - - auto poly_and_point_indices = - thrust::make_zip_iterator(poly_idxs.begin(), point_idxs.begin()); - - // Enumerate the point X/Ys using the sorted `point_indices` (from quadtree construction) - auto point_xys_iter = thrust::make_permutation_iterator( - thrust::make_zip_iterator(point_x.begin(), point_y.begin()), - point_indices.begin()); - - // Compute the combination of polygon and point index pairs. For each polygon/quadrant pair, - // enumerate pairs of (poly_index, point_index) for each point in each quadrant. - // - // In Python pseudocode: - // ``` - // pp_pairs = [] - // for polygon, quadrant in pq_pairs: - // for point in quadrant: - // pp_pairs.append((polygon, point)) - // ``` - // - auto global_to_poly_and_point_indices = detail::make_counting_transform_iterator( - 0, - compute_poly_and_point_indices{ - quad_offsets_iter, - local_point_offsets.begin(), - local_point_offsets.end(), - *cudf::column_device_view::create(poly_indices, stream)}); - - // Compute the number of intersections by removing (poly, point) pairs that don't intersect - auto num_intersections = thrust::distance( - poly_and_point_indices, - thrust::copy_if(rmm::exec_policy(stream), - global_to_poly_and_point_indices, - global_to_poly_and_point_indices + num_total_points, - poly_and_point_indices, - test_poly_point_intersection{ - point_xys_iter, - *cudf::column_device_view::create(poly_offsets, stream), - *cudf::column_device_view::create(ring_offsets, stream), - *cudf::column_device_view::create(poly_points_x, stream), - *cudf::column_device_view::create(poly_points_y, stream)})); - - return std::make_tuple(std::move(poly_idxs), std::move(point_idxs), num_intersections); - }(); + auto poly_indices = poly_quad_pairs.column(0); + auto quad_indices = poly_quad_pairs.column(1); + + auto quadtree_ref = point_quadtree_ref(quadtree.column(0).begin(), // keys + quadtree.column(0).end(), + quadtree.column(1).begin(), // levels + quadtree.column(2).begin(), // is_internal_node + quadtree.column(3).begin(), // lengths + quadtree.column(4).begin()); // offsets + + auto multipolygons = + multipolygon_range(thrust::make_counting_iterator(0), + thrust::make_counting_iterator(poly_offsets.size()), + poly_offsets.begin(), + poly_offsets.end(), + ring_offsets.begin(), + ring_offsets.end(), + make_vec_2d_iterator(poly_points_x.begin(), poly_points_y.begin()), + make_vec_2d_iterator(poly_points_x.end(), poly_points_y.end())); + + auto [poly_idx, point_idx] = + quadtree_point_in_polygon(poly_indices.begin(), + poly_indices.end(), + quad_indices.begin(), + quadtree_ref, + point_indices.begin(), + point_indices.end(), + make_vec_2d_iterator(point_x.begin(), point_y.begin()), + multipolygons, + stream, + mr); // Allocate output columns for the number of pairs that intersected - auto poly_idx_col = make_fixed_width_column(num_intersections, stream, mr); - auto point_idx_col = make_fixed_width_column(num_intersections, stream, mr); - auto poly_and_point_indices = thrust::make_zip_iterator(poly_idxs.begin(), point_idxs.begin()); + auto num_intersections = poly_idx.size(); - // Note: no need to resize `poly_idxs` or `point_idxs` if we set the end iterator to - // `idxs.begin() + num_intersections`. - - // populate the polygon and point indices columns - thrust::copy( - rmm::exec_policy(stream), - poly_and_point_indices, - poly_and_point_indices + num_intersections, - thrust::make_zip_iterator(poly_idx_col->mutable_view().template begin(), - point_idx_col->mutable_view().template begin())); + auto poly_idx_col = std::make_unique( + cudf::data_type{cudf::type_id::UINT32}, num_intersections, poly_idx.release()); + auto point_idx_col = std::make_unique( + cudf::data_type{cudf::type_id::UINT32}, num_intersections, point_idx.release()); std::vector> cols{}; cols.reserve(2); @@ -268,15 +152,15 @@ std::unique_ptr quadtree_point_in_polygon(cudf::table_view const& p CUSPATIAL_EXPECTS(poly_points_x.size() == poly_points_y.size(), "numbers of vertices must be the same for both x and y columns"); - CUSPATIAL_EXPECTS_VALID_POLYGON_SIZES( - poly_points_x.size(), poly_offsets.size(), ring_offsets.size()); - CUSPATIAL_EXPECTS(poly_points_x.type() == poly_points_y.type(), "polygon columns must have the same data type"); CUSPATIAL_EXPECTS(point_x.type() == point_y.type(), "point columns must have the same data type"); CUSPATIAL_EXPECTS(point_x.type() == poly_points_x.type(), "points and polygons must have the same data type"); + CUSPATIAL_EXPECTS(poly_offsets.type() == ring_offsets.type(), + "offset columns must have the same data type"); + if (poly_quad_pairs.num_rows() == 0 || quadtree.num_rows() == 0 || point_indices.size() == 0 || poly_offsets.size() == 0) { std::vector> cols{}; diff --git a/cpp/src/utility/point_in_polygon.cuh b/cpp/src/utility/point_in_polygon.cuh deleted file mode 100644 index 75b49ef3f..000000000 --- a/cpp/src/utility/point_in_polygon.cuh +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#pragma once - -#include -#include - -#include - -namespace cuspatial { -namespace detail { - -template -inline __device__ bool is_point_in_polygon(T const x, - T const y, - cudf::size_type const poly_idx, - cudf::column_device_view const& poly_offsets, - cudf::column_device_view const& ring_offsets, - cudf::column_device_view const& poly_points_x, - cudf::column_device_view const& poly_points_y) -{ - bool in_polygon = false; - uint32_t poly_begin = poly_offsets.element(poly_idx); - uint32_t poly_end = poly_idx < poly_offsets.size() - 1 - ? poly_offsets.element(poly_idx + 1) - : ring_offsets.size(); - - for (uint32_t ring_idx = poly_begin; ring_idx < poly_end; ring_idx++) // for each ring - { - auto ring_begin = ring_offsets.element(ring_idx); - auto ring_end = ring_idx < ring_offsets.size() - 1 - ? ring_offsets.element(ring_idx + 1) - : poly_points_x.size(); - auto ring_len = ring_end - ring_begin; - for (auto point_idx = 0; point_idx < ring_len; ++point_idx) { - T x0 = poly_points_x.element(ring_begin + ((point_idx + 0) % ring_len)); - T y0 = poly_points_y.element(ring_begin + ((point_idx + 0) % ring_len)); - T x1 = poly_points_x.element(ring_begin + ((point_idx + 1) % ring_len)); - T y1 = poly_points_y.element(ring_begin + ((point_idx + 1) % ring_len)); - bool y_between_ay_by = y0 <= y && y < y1; // is y in range [ay, by) when ay < by - bool y_between_by_ay = y1 <= y && y < y0; // is y in range [by, ay) when by < ay - bool y_in_bounds = y_between_ay_by || y_between_by_ay; // is y in range [by, ay] - T run = x1 - x0; - T rise = y1 - y0; - - // The endpoint of the line segment is the same, and the segment degenerates to a point. - // This can happen in polygon vertices when the first and last vertex of the ring are - // the same. In this scenario, do not attempt ray casting on a degenerate point. - T constexpr zero = 0.0; - if (float_equal(run, zero) && float_equal(rise, zero)) continue; - - T rise_to_point = y - y0; - T run_to_point = x - x0; - - // If points are on the polygon edge, they are not contained in the polygon. - if (float_equal(run * rise_to_point, run_to_point * rise)) { return false; } - - if (y_in_bounds && x < (run / rise) * rise_to_point + x0) { in_polygon = not in_polygon; } - } - } - - return in_polygon; -} - -} // namespace detail -} // namespace cuspatial diff --git a/cpp/tests/CMakeLists.txt b/cpp/tests/CMakeLists.txt index 2d48d8f39..10e4d269b 100644 --- a/cpp/tests/CMakeLists.txt +++ b/cpp/tests/CMakeLists.txt @@ -29,6 +29,10 @@ function(ConfigureTest CMAKE_TEST_NAME) ${CMAKE_TEST_NAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "$" INSTALL_RPATH "\$ORIGIN/../../../lib" + CXX_STANDARD 17 + CXX_STANDARD_REQUIRED ON + CUDA_STANDARD 17 + CUDA_STANDARD_REQUIRED ON ) target_link_libraries(${CMAKE_TEST_NAME} GTest::gtest_main GTest::gmock_main cudf::cudftestutil cuspatial) add_test(NAME ${CMAKE_TEST_NAME} COMMAND ${CMAKE_TEST_NAME}) @@ -53,15 +57,12 @@ ConfigureTest(HAVERSINE_TEST ConfigureTest(HAUSDORFF_TEST spatial/hausdorff_test.cpp) -ConfigureTest(JOIN_POINT_IN_POLYGON_SMALL_TEST - join/point_in_polygon_test_small.cpp) - -ConfigureTest(JOIN_POINT_IN_POLYGON_LARGE_TEST - join/point_in_polygon_test_large.cpp) - ConfigureTest(JOIN_POINT_TO_LINESTRING_SMALL_TEST join/point_to_nearest_linestring_test_small.cpp) +ConfigureTest(JOIN_POINT_IN_POLYGON_TEST + join/quadtree_point_in_polygon_test.cpp) + ConfigureTest(POINT_IN_POLYGON_TEST spatial/point_in_polygon_test.cpp) @@ -185,3 +186,9 @@ ConfigureTest(FIND_TEST_EXP experimental/find/find_and_combine_segments_test.cu experimental/find/find_points_on_segments_test.cu experimental/find/find_duplicate_points_test.cu) + +ConfigureTest(JOIN_POINT_IN_POLYGON_SMALL_TEST_EXP + experimental/join/quadtree_point_in_polygon_test_small.cu) + +ConfigureTest(JOIN_POINT_IN_POLYGON_LARGE_TEST_EXP + experimental/join/quadtree_point_in_polygon_test_large.cu) diff --git a/cpp/tests/experimental/indexing/point_quadtree_test.cu b/cpp/tests/experimental/indexing/point_quadtree_test.cu index 636f22c09..87c543e84 100644 --- a/cpp/tests/experimental/indexing/point_quadtree_test.cu +++ b/cpp/tests/experimental/indexing/point_quadtree_test.cu @@ -42,7 +42,7 @@ struct QuadtreeOnPointIndexingTest : public ::testing::Test { auto& key_d = tree.key; auto& level_d = tree.level; - auto& is_internal_node_d = tree.is_internal_node; + auto& is_internal_node_d = tree.internal_node_flag; auto& length_d = tree.length; auto& offset_d = tree.offset; diff --git a/cpp/tests/experimental/join/quadtree_point_in_polygon_test_large.cu b/cpp/tests/experimental/join/quadtree_point_in_polygon_test_large.cu new file mode 100644 index 000000000..6825f3c06 --- /dev/null +++ b/cpp/tests/experimental/join/quadtree_point_in_polygon_test_large.cu @@ -0,0 +1,210 @@ +/* + * Copyright (c) 2023, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +/* + * The test uses the same quadtree structure as in pip_refine_test_small. However, the number of + * randomly generated points under all quadrants (min_size) are increased to be more than the + * number of threads per-block. + */ + +template +struct PIPRefineTestLarge : public cuspatial::test::BaseFixture { +}; + +using TestTypes = ::testing::Types; + +TYPED_TEST_CASE(PIPRefineTestLarge, TestTypes); + +template +inline auto generate_points( + std::vector> const& quads, + uint32_t points_per_quad, + std::size_t seed, + rmm::cuda_stream_view stream, + rmm::mr::device_memory_resource* mr = rmm::mr::get_current_device_resource()) +{ + auto engine = cuspatial::test::deterministic_engine(0); + auto uniform = cuspatial::test::make_normal_dist(0.0, 1.0); + auto pgen = cuspatial::test::point_generator(T{0.0}, T{1.0}, engine, uniform); + auto num_points = quads.size() * points_per_quad; + rmm::device_uvector> points(num_points, stream, mr); + + auto counting_iter = thrust::make_counting_iterator(seed); + thrust::transform( + rmm::exec_policy(stream), counting_iter, counting_iter + num_points, points.begin(), pgen); + + return points; +} + +TYPED_TEST(PIPRefineTestLarge, TestLarge) +{ + using T = TypeParam; + using cuspatial::vec_2d; + using cuspatial::test::make_device_vector; + + vec_2d v_min{0.0, 0.0}; + vec_2d v_max{8.0, 8.0}; + T const scale{1.0}; + uint8_t const max_depth{3}; + uint32_t const min_size{400}; + + std::vector> quads{{0, 2, 0, 2}, + {3, 4, 0, 1}, + {2, 3, 1, 2}, + {4, 6, 0, 2}, + {3, 4, 2, 3}, + {2, 3, 3, 4}, + {6, 7, 2, 3}, + {7, 8, 3, 4}, + {0, 4, 4, 8}}; + + auto points_in = generate_points(quads, min_size, 0, this->stream()); + + auto [point_indices, quadtree] = quadtree_on_points( + points_in.begin(), points_in.end(), v_min, v_max, scale, max_depth, min_size, this->stream()); + + auto points = rmm::device_uvector>(quads.size() * min_size, this->stream()); + thrust::gather(rmm::exec_policy(this->stream()), + point_indices.begin(), + point_indices.end(), + points_in.begin(), + points.begin()); + + auto multipoly_array = cuspatial::test::make_multipolygon_array({0, 1, 2, 3, 4}, + {0, 1, 2, 3, 4}, + {0, 4, 10, 14, 19}, + {// ring 1 + {2.488450, 5.856625}, + {1.333584, 5.008840}, + {3.460720, 4.586599}, + {2.488450, 5.856625}, + // ring 2 + {5.039823, 4.229242}, + {5.561707, 1.825073}, + {7.103516, 1.503906}, + {7.190674, 4.025879}, + {5.998939, 5.653384}, + {5.039823, 4.229242}, + // ring 3 + {5.998939, 1.235638}, + {5.573720, 0.197808}, + {6.703534, 0.086693}, + {5.998939, 1.235638}, + // ring 4 + {2.088115, 4.541529}, + {1.034892, 3.530299}, + {2.415080, 2.896937}, + {3.208660, 3.745936}, + {2.088115, 4.541529}}); + auto multipolygons = multipoly_array.range(); + + auto bboxes = + rmm::device_uvector>(multipolygons.num_polygons(), this->stream()); + + cuspatial::polygon_bounding_boxes(multipolygons.part_offset_begin(), + multipolygons.part_offset_end(), + multipolygons.ring_offset_begin(), + multipolygons.ring_offset_end(), + multipolygons.point_begin(), + multipolygons.point_end(), + bboxes.begin(), + T{0}, + this->stream()); + + auto [poly_indices, quad_indices] = cuspatial::join_quadtree_and_bounding_boxes( + quadtree, bboxes.begin(), bboxes.end(), v_min, scale, max_depth, this->stream()); + + auto [actual_poly_indices, actual_point_indices] = + cuspatial::quadtree_point_in_polygon(poly_indices.begin(), + poly_indices.end(), + quad_indices.begin(), + quadtree, + point_indices.begin(), + point_indices.end(), + points.begin(), + multipolygons, + this->stream()); + + thrust::stable_sort_by_key(rmm::exec_policy(this->stream()), + actual_point_indices.begin(), + actual_point_indices.end(), + actual_poly_indices.begin()); + + { // verify + rmm::device_uvector hits(points.size(), this->stream()); + auto hits_end = cuspatial::point_in_polygon(points.begin(), + points.end(), + multipolygons.part_offset_begin(), + multipolygons.part_offset_end(), + multipolygons.ring_offset_begin(), + multipolygons.ring_offset_end(), + multipolygons.point_begin(), + multipolygons.point_end(), + hits.begin(), + this->stream()); + + auto hits_host = cuspatial::test::to_host(hits); + + std::vector expected_poly_indices; + std::vector expected_point_indices; + + for (std::size_t point_index = 0; point_index < hits_host.size(); point_index++) { + // iterate over set bits + std::uint32_t bits = hits_host[point_index]; + while (bits != 0) { + std::uint32_t t = bits & -bits; // get only LSB + std::uint32_t poly_index = __builtin_ctz(bits); // get index of LSB + expected_poly_indices.push_back(poly_index); + expected_point_indices.push_back(point_index); + bits ^= t; // reset LSB to zero to advance to next set bit + } + } + + // TODO: shouldn't have to copy to device here, but I get Thrust compilation errors if I use + // host vectors and a host stable_sort_by_key. + auto d_expected_poly_indices = rmm::device_vector(expected_poly_indices); + auto d_expected_point_indices = rmm::device_vector(expected_point_indices); + + thrust::stable_sort_by_key(rmm::exec_policy(this->stream()), + d_expected_point_indices.begin(), + d_expected_point_indices.end(), + d_expected_poly_indices.begin()); + + CUSPATIAL_EXPECT_VECTORS_EQUIVALENT(d_expected_poly_indices, actual_poly_indices); + CUSPATIAL_EXPECT_VECTORS_EQUIVALENT(d_expected_point_indices, actual_point_indices); + } +} diff --git a/cpp/tests/experimental/join/quadtree_point_in_polygon_test_small.cu b/cpp/tests/experimental/join/quadtree_point_in_polygon_test_small.cu new file mode 100644 index 000000000..a4dfc1607 --- /dev/null +++ b/cpp/tests/experimental/join/quadtree_point_in_polygon_test_small.cu @@ -0,0 +1,159 @@ +/* + * Copyright (c) 2023, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +/* + * A small test that it is suitable for manually visualizing point-polygon pairing results in a GIS + * environment. GPU results are compared with expected values embedded in code. However, the number + * of points in each quadrant is less than 32, the two kernels for point-in-polygon test are not + * fully tested. This is left for pip_refine_test_large. + */ +template +struct PIPRefineTestSmall : public cuspatial::test::BaseFixture { +}; + +using TestTypes = ::testing::Types; + +TYPED_TEST_CASE(PIPRefineTestSmall, TestTypes); + +TYPED_TEST(PIPRefineTestSmall, TestSmall) +{ + using T = TypeParam; + using cuspatial::vec_2d; + using cuspatial::test::make_device_vector; + + vec_2d v_min{0.0, 0.0}; + vec_2d v_max{8.0, 8.0}; + T const scale{1.0}; + uint8_t const max_depth{3}; + uint32_t const max_size{12}; + + auto points = make_device_vector>( + {{1.9804558865545805, 1.3472225743317712}, {0.1895259128530169, 0.5431061133894604}, + {1.2591725716781235, 0.1448705855995005}, {0.8178039499335275, 0.8138440641113271}, + {0.48171647380517046, 1.9022922214961997}, {1.3890664414691907, 1.5177694304735412}, + {0.2536015260915061, 1.8762161698642947}, {3.1907684812039956, 0.2621847215928189}, + {3.028362149164369, 0.027638405909631958}, {3.918090468102582, 0.3338651960183463}, + {3.710910700915217, 0.9937713340192049}, {3.0706987088385853, 0.9376313558467103}, + {3.572744183805594, 0.33184908855075124}, {3.7080407833612004, 0.09804238103130436}, + {3.70669993057843, 0.7485845679979923}, {3.3588457228653024, 0.2346381514128677}, + {2.0697434332621234, 1.1809465376402173}, {2.5322042870739683, 1.419555755682142}, + {2.175448214220591, 1.2372448404986038}, {2.113652420701984, 1.2774712415624014}, + {2.520755151373394, 1.902015274420646}, {2.9909779614491687, 1.2420487904041893}, + {2.4613232527836137, 1.0484414482621331}, {4.975578758530645, 0.9606291981013242}, + {4.07037627210835, 1.9486902798139454}, {4.300706849071861, 0.021365525588281198}, + {4.5584381091040616, 1.8996548860019926}, {4.822583857757069, 0.3234041700489503}, + {4.849847745942472, 1.9531893897409585}, {4.75489831780737, 0.7800065259479418}, + {4.529792124514895, 1.942673409259531}, {4.732546857961497, 0.5659923375279095}, + {3.7622247877537456, 2.8709552313924487}, {3.2648444465931474, 2.693039435509084}, + {3.01954722322135, 2.57810040095543}, {3.7164018490892348, 2.4612194182614333}, + {3.7002781846945347, 2.3345952955903906}, {2.493975723955388, 3.3999020934055837}, + {2.1807636574967466, 3.2296461832828114}, {2.566986568683904, 3.6607732238530897}, + {2.2006520196663066, 3.7672478678985257}, {2.5104987015171574, 3.0668114607133137}, + {2.8222482218882474, 3.8159308233351266}, {2.241538022180476, 3.8812819070357545}, + {2.3007438625108882, 3.6045900851589048}, {6.0821276168848994, 2.5470532680258002}, + {6.291790729917634, 2.983311357415729}, {6.109985464455084, 2.2235950639628523}, + {6.101327777646798, 2.5239201807166616}, {6.325158445513714, 2.8765450351723674}, + {6.6793884701899, 2.5605928243991434}, {6.4274219368674315, 2.9754616970668213}, + {6.444584786789386, 2.174562817047202}, {7.897735998643542, 3.380784914178574}, + {7.079453687660189, 3.063690547962938}, {7.430677191305505, 3.380489849365283}, + {7.5085184104988, 3.623862886287816}, {7.886010001346151, 3.538128217886674}, + {7.250745898479374, 3.4154469467473447}, {7.769497359206111, 3.253257011908445}, + {1.8703303641352362, 4.209727933188015}, {1.7015273093278767, 7.478882372510933}, + {2.7456295127617385, 7.474216636277054}, {2.2065031771469, 6.896038613284851}, + {3.86008672302403, 7.513564222799629}, {1.9143371250907073, 6.885401350515916}, + {3.7176098065039747, 6.194330707468438}, {0.059011873032214, 5.823535317960799}, + {3.1162712022943757, 6.789029097334483}, {2.4264509160270813, 5.188939408363776}, + {3.154282922203257, 5.788316610960881}}); + + // build a quadtree on the points + auto [point_indices, quadtree] = cuspatial::quadtree_on_points( + points.begin(), points.end(), v_min, v_max, scale, max_depth, max_size, this->stream()); + + auto multipoly_array = cuspatial::test::make_multipolygon_array({0, 1, 2, 3, 4}, + {0, 1, 2, 3, 4}, + {0, 4, 10, 14, 19}, + {// ring 1 + {2.488450, 5.856625}, + {1.333584, 5.008840}, + {3.460720, 4.586599}, + {2.488450, 5.856625}, + // ring 2 + {5.039823, 4.229242}, + {5.561707, 1.825073}, + {7.103516, 1.503906}, + {7.190674, 4.025879}, + {5.998939, 5.653384}, + {5.039823, 4.229242}, + // ring 3 + {5.998939, 1.235638}, + {5.573720, 0.197808}, + {6.703534, 0.086693}, + {5.998939, 1.235638}, + // ring 4 + {2.088115, 4.541529}, + {1.034892, 3.530299}, + {2.415080, 2.896937}, + {3.208660, 3.745936}, + {2.088115, 4.541529}}); + auto multipolygons = multipoly_array.range(); + + auto bboxes = + rmm::device_uvector>(multipolygons.num_polygons(), this->stream()); + + cuspatial::polygon_bounding_boxes(multipolygons.part_offset_begin(), + multipolygons.part_offset_end(), + multipolygons.ring_offset_begin(), + multipolygons.ring_offset_end(), + multipolygons.point_begin(), + multipolygons.point_end(), + bboxes.begin(), + T{0}, + this->stream()); + + auto [poly_indices, quad_indices] = cuspatial::join_quadtree_and_bounding_boxes( + quadtree, bboxes.begin(), bboxes.end(), v_min, scale, max_depth, this->stream(), this->mr()); + + auto [poly_offset, point_offset] = cuspatial::quadtree_point_in_polygon(poly_indices.begin(), + poly_indices.end(), + quad_indices.begin(), + quadtree, + point_indices.begin(), + point_indices.end(), + points.begin(), + multipolygons, + this->stream()); + + auto expected_poly_offset = + make_device_vector({3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3}); + auto expected_point_offset = make_device_vector( + {28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 50, 51, 52, 54, 62, 60}); + + CUSPATIAL_EXPECT_VECTORS_EQUIVALENT(poly_offset, expected_poly_offset); + CUSPATIAL_EXPECT_VECTORS_EQUIVALENT(point_offset, expected_point_offset); +} diff --git a/cpp/tests/experimental/spatial/hausdorff_test.cu b/cpp/tests/experimental/spatial/hausdorff_test.cu index c7b10ea7b..96a80595b 100644 --- a/cpp/tests/experimental/spatial/hausdorff_test.cu +++ b/cpp/tests/experimental/spatial/hausdorff_test.cu @@ -167,6 +167,6 @@ void generic_hausdorff_test() TYPED_TEST(HausdorffTest, 500Spaces100Points) { generic_hausdorff_test(); } -TYPED_TEST(HausdorffTest, 10000Spaces10Points) { generic_hausdorff_test(); } +TYPED_TEST(HausdorffTest, 1000Spaces10Points) { generic_hausdorff_test(); } TYPED_TEST(HausdorffTest, 10Spaces10000Points) { generic_hausdorff_test(); } diff --git a/cpp/tests/experimental/spatial/point_bounding_boxes_test.cu b/cpp/tests/experimental/spatial/point_bounding_boxes_test.cu index a1b0a0377..c9d726e3f 100644 --- a/cpp/tests/experimental/spatial/point_bounding_boxes_test.cu +++ b/cpp/tests/experimental/spatial/point_bounding_boxes_test.cu @@ -60,13 +60,13 @@ struct PointBoundingBoxesTest : public ::testing::Test { using TestTypes = ::testing::Types; TYPED_TEST_CASE(PointBoundingBoxesTest, TestTypes); -TYPED_TEST(PointBoundingBoxesTest, OneMillionSmallTrajectories) { this->run_test(1'000'000, 50); } +TYPED_TEST(PointBoundingBoxesTest, TenThousandSmallTrajectories) { this->run_test(10'000, 50); } -TYPED_TEST(PointBoundingBoxesTest, OneHundredLargeTrajectories) { this->run_test(100, 1'000'000); } +TYPED_TEST(PointBoundingBoxesTest, OneHundredLargeTrajectories) { this->run_test(100, 10'000); } -TYPED_TEST(PointBoundingBoxesTest, OneVeryLargeTrajectory) { this->run_test(1, 100'000'000); } +TYPED_TEST(PointBoundingBoxesTest, OneVeryLargeTrajectory) { this->run_test(1, 1'000'000); } TYPED_TEST(PointBoundingBoxesTest, TrajectoriesWithExpansion) { - this->run_test(1'000'000, 50, TypeParam{0.5}); + this->run_test(10'000, 50, TypeParam{0.5}); } diff --git a/cpp/tests/experimental/spatial/point_distance_test.cu b/cpp/tests/experimental/spatial/point_distance_test.cu index a6d873a27..517a4e605 100644 --- a/cpp/tests/experimental/spatial/point_distance_test.cu +++ b/cpp/tests/experimental/spatial/point_distance_test.cu @@ -45,7 +45,8 @@ #include -namespace cuspatial { +using cuspatial::multipoint_range; +using cuspatial::vec_2d; /** * @brief Generate `num_points` points on device @@ -57,9 +58,9 @@ struct PairwisePointDistanceTest : public ::testing::Test { std::size_t seed, rmm::cuda_stream_view stream = rmm::cuda_stream_default) { - auto engine = deterministic_engine(0); - auto uniform = make_normal_dist(0.0, 1.0); - auto pgen = point_generator(T{0.0}, T{1.0}, engine, uniform); + auto engine = cuspatial::test::deterministic_engine(0); + auto uniform = cuspatial::test::make_normal_dist(0.0, 1.0); + auto pgen = cuspatial::test::point_generator(T{0.0}, T{1.0}, engine, uniform); rmm::device_vector> points(num_points); auto counting_iter = thrust::make_counting_iterator(seed); thrust::transform( @@ -174,8 +175,9 @@ TYPED_TEST(PairwisePointDistanceTest, Empty) rmm::device_vector expected{}; rmm::device_vector got(points1.size()); - auto multipoint_1 = multipoint_range{ - multipoint_geom1.begin(), multipoint_geom1.end(), points1.begin(), points1.end()}; + auto multipoint_1 = + multipoint_range{ + multipoint_geom1.begin(), multipoint_geom1.end(), points1.begin(), points1.end()}; auto multipoint_2 = multipoint_range{ multipoint_geom2.begin(), multipoint_geom2.end(), points2.begin(), points2.end()}; @@ -200,7 +202,7 @@ TYPED_TEST(PairwisePointDistanceTest, OnePairSingleComponent) rmm::device_vector expected{std::vector{std::sqrt(T{2.0})}}; rmm::device_vector got(points1.size()); - auto multipoint_1 = multipoint_range{ + auto multipoint_1 = multipoint_range, decltype(points1.begin())>{ multipoint_geom1, multipoint_geom1 + num_pairs + 1, points1.begin(), points1.end()}; auto multipoint_2 = multipoint_range{ multipoint_geom2, multipoint_geom2 + num_pairs + 1, points2.begin(), points2.end()}; @@ -385,8 +387,8 @@ TYPED_TEST(PairwisePointDistanceTest, SingleComponentCompareWithShapely) rmm::device_vector dx1(x1), dy1(y1), dx2(x2), dy2(y2); rmm::device_vector got(dx1.size()); - auto p1_begin = make_vec_2d_iterator(dx1.begin(), dy1.begin()); - auto p2_begin = make_vec_2d_iterator(dx2.begin(), dy2.begin()); + auto p1_begin = cuspatial::make_vec_2d_iterator(dx1.begin(), dy1.begin()); + auto p2_begin = cuspatial::make_vec_2d_iterator(dx2.begin(), dy2.begin()); auto multipoints_1 = make_multipoint_range(dx1.size(), p1_geom, dx1.size(), p1_begin); auto multipoints_2 = make_multipoint_range(dx2.size(), p2_geom, dx2.size(), p2_begin); @@ -449,5 +451,3 @@ TYPED_TEST(PairwisePointDistanceTest, MultiComponentRandom) CUSPATIAL_EXPECT_VECTORS_EQUIVALENT(expected, got); EXPECT_EQ(expected.size(), std::distance(got.begin(), ret_it)); } - -} // namespace cuspatial diff --git a/cpp/tests/experimental/trajectory/derive_trajectories_test.cu b/cpp/tests/experimental/trajectory/derive_trajectories_test.cu index ca4384703..20ffd32c9 100644 --- a/cpp/tests/experimental/trajectory/derive_trajectories_test.cu +++ b/cpp/tests/experimental/trajectory/derive_trajectories_test.cu @@ -43,9 +43,9 @@ struct DeriveTrajectoriesTest : public ::testing::Test { using TestTypes = ::testing::Types; TYPED_TEST_CASE(DeriveTrajectoriesTest, TestTypes); -TYPED_TEST(DeriveTrajectoriesTest, OneMillionSmallTrajectories) +TYPED_TEST(DeriveTrajectoriesTest, TenThousandSmallTrajectories) { - auto data = cuspatial::test::trajectory_test_data(1'000'000, 50); + auto data = cuspatial::test::trajectory_test_data(10'000, 50); auto traj_ids = rmm::device_vector(data.ids.size()); auto traj_points = rmm::device_vector>(data.points.size()); @@ -66,7 +66,7 @@ TYPED_TEST(DeriveTrajectoriesTest, OneMillionSmallTrajectories) TYPED_TEST(DeriveTrajectoriesTest, OneHundredLargeTrajectories) { - auto data = cuspatial::test::trajectory_test_data(100, 1'000'000); + auto data = cuspatial::test::trajectory_test_data(100, 10'000); auto traj_ids = rmm::device_vector(data.ids.size()); auto traj_points = rmm::device_vector>(data.points.size()); @@ -87,7 +87,7 @@ TYPED_TEST(DeriveTrajectoriesTest, OneHundredLargeTrajectories) TYPED_TEST(DeriveTrajectoriesTest, OneVeryLargeTrajectory) { - auto data = cuspatial::test::trajectory_test_data(1, 100'000'000); + auto data = cuspatial::test::trajectory_test_data(1, 1'000'000); auto traj_ids = rmm::device_vector(data.ids.size()); auto traj_points = rmm::device_vector>(data.points.size()); diff --git a/cpp/tests/experimental/trajectory/trajectory_distances_and_speeds_test.cu b/cpp/tests/experimental/trajectory/trajectory_distances_and_speeds_test.cu index bebef9a6f..aa91751a6 100644 --- a/cpp/tests/experimental/trajectory/trajectory_distances_and_speeds_test.cu +++ b/cpp/tests/experimental/trajectory/trajectory_distances_and_speeds_test.cu @@ -88,19 +88,19 @@ struct TrajectoryDistancesAndSpeedsTest : public ::testing::Test { using TestTypes = ::testing::Types; TYPED_TEST_CASE(TrajectoryDistancesAndSpeedsTest, TestTypes); -TYPED_TEST(TrajectoryDistancesAndSpeedsTest, OneMillionSmallTrajectories) +TYPED_TEST(TrajectoryDistancesAndSpeedsTest, TenThousandSmallTrajectories) { - CUSPATIAL_RUN_TEST(this->run_test, 1'000'000, 50); + CUSPATIAL_RUN_TEST(this->run_test, 10'000, 50); } TYPED_TEST(TrajectoryDistancesAndSpeedsTest, OneHundredLargeTrajectories) { - CUSPATIAL_RUN_TEST(this->run_test, 100, 1'000'000); + CUSPATIAL_RUN_TEST(this->run_test, 100, 10'000); } TYPED_TEST(TrajectoryDistancesAndSpeedsTest, OneVeryLargeTrajectory) { - CUSPATIAL_RUN_TEST(this->run_test, 1, 100'000'000); + CUSPATIAL_RUN_TEST(this->run_test, 1, 1'000'000); } struct time_point_generator { diff --git a/cpp/tests/join/point_in_polygon_test_large.cpp b/cpp/tests/join/point_in_polygon_test_large.cpp deleted file mode 100644 index 9afc54506..000000000 --- a/cpp/tests/join/point_in_polygon_test_large.cpp +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (c) 2020-2023, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -/* - * The test uses the same quadtree structure as in pip_refine_test_small. However, the number of - * randomly generated points under all quadrants (min_size) are increased to be more than the - * number of threads per-block. - */ - -constexpr cudf::test::debug_output_level verbosity{cudf::test::debug_output_level::ALL_ERRORS}; - -template -struct PIPRefineTestLarge : public cudf::test::BaseFixture { -}; - -TYPED_TEST_CASE(PIPRefineTestLarge, cudf::test::FloatingPointTypes); - -template -inline auto generate_points(std::vector> const& quads, uint32_t points_per_quad) -{ - std::vector point_x(quads.size() * points_per_quad); - std::vector point_y(quads.size() * points_per_quad); - for (uint32_t i = 0, pos = 0; i < quads.size(); i++, pos += points_per_quad) { - cudf::test::UniformRandomGenerator dist_x{quads[i][0], quads[i][1]}; - cudf::test::UniformRandomGenerator dist_y{quads[i][2], quads[i][3]}; - std::generate(point_x.begin() + pos, point_x.begin() + pos + points_per_quad, [&]() mutable { - return dist_x.generate(); - }); - std::generate(point_y.begin() + pos, point_y.begin() + pos + points_per_quad, [&]() mutable { - return dist_y.generate(); - }); - } - return std::make_pair(std::move(point_x), std::move(point_y)); -} - -TYPED_TEST(PIPRefineTestLarge, TestLarge) -{ - using T = TypeParam; - using namespace cudf::test; - - double const x_min{0.0}; - double const x_max{8.0}; - double const y_min{0.0}; - double const y_max{8.0}; - double const scale{1.0}; - uint32_t const max_depth{3}; - uint32_t const min_size{400}; - - std::vector> quads{{0, 2, 0, 2}, - {3, 4, 0, 1}, - {2, 3, 1, 2}, - {4, 6, 0, 2}, - {3, 4, 2, 3}, - {2, 3, 3, 4}, - {6, 7, 2, 3}, - {7, 8, 3, 4}, - {0, 4, 4, 8}}; - - auto host_points = generate_points(quads, min_size); - auto& h_x = std::get<0>(host_points); - auto& h_y = std::get<1>(host_points); - auto x = fixed_width_column_wrapper(h_x.begin(), h_x.end()); - auto y = fixed_width_column_wrapper(h_y.begin(), h_y.end()); - - auto quadtree_pair = cuspatial::quadtree_on_points( - x, y, x_min, x_max, y_min, y_max, scale, max_depth, min_size, this->mr()); - - auto& quadtree = std::get<1>(quadtree_pair); - auto& point_indices = std::get<0>(quadtree_pair); - auto points = cudf::gather( - cudf::table_view{{x, y}}, *point_indices, cudf::out_of_bounds_policy::DONT_CHECK, this->mr()); - - auto poly_offsets = fixed_width_column_wrapper({0, 1, 2, 3, 4}); - auto ring_offsets = fixed_width_column_wrapper({0, 4, 10, 14, 19}); - auto poly_x = fixed_width_column_wrapper({// ring 1 - 2.488450, - 1.333584, - 3.460720, - 2.488450, - // ring 2 - 5.039823, - 5.561707, - 7.103516, - 7.190674, - 5.998939, - 5.039823, - // ring 3 - 5.998939, - 5.573720, - 6.703534, - 5.998939, - // ring 4 - 2.088115, - 1.034892, - 2.415080, - 3.208660, - 2.088115}); - auto poly_y = fixed_width_column_wrapper({// ring 1 - 5.856625, - 5.008840, - 4.586599, - 5.856625, - // ring 2 - 4.229242, - 1.825073, - 1.503906, - 4.025879, - 5.653384, - 4.229242, - // ring 3 - 1.235638, - 0.197808, - 0.086693, - 1.235638, - // ring 4 - 4.541529, - 3.530299, - 2.896937, - 3.745936, - 4.541529}); - - auto polygon_bboxes = - cuspatial::polygon_bounding_boxes(poly_offsets, ring_offsets, poly_x, poly_y, 0.0, this->mr()); - - auto polygon_quadrant_pairs = cuspatial::join_quadtree_and_bounding_boxes( - *quadtree, *polygon_bboxes, x_min, x_max, y_min, y_max, scale, max_depth, this->mr()); - - auto point_in_polygon_pairs = cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, - *quadtree, - *point_indices, - x, - y, - poly_offsets, - ring_offsets, - poly_x, - poly_y, - this->mr()); - - auto poly_idx = point_in_polygon_pairs->get_column(0).view(); - auto point_idx = point_in_polygon_pairs->get_column(1).view(); - - auto actual_poly_indices = cudf::test::to_host(poly_idx).first; - auto actual_point_indices = cudf::test::to_host(point_idx).first; - - thrust::stable_sort_by_key( - actual_point_indices.begin(), actual_point_indices.end(), actual_poly_indices.begin()); - - { - // verify - - auto hits = cuspatial::point_in_polygon( - points->get_column(0), points->get_column(1), poly_offsets, ring_offsets, poly_x, poly_y); - - auto hits_host = cudf::test::to_host(hits->view()).first; - - std::vector expected_poly_indices; - std::vector expected_point_indices; - - for (int point_index = 0; point_index < hits->size(); point_index++) { - // iterate over set bits - std::uint32_t bits = hits_host[point_index]; - while (bits != 0) { - std::uint32_t t = bits & -bits; // get only LSB - std::uint32_t poly_index = __builtin_ctz(bits); // get index of LSB - expected_poly_indices.push_back(poly_index); - expected_point_indices.push_back(point_index); - bits ^= t; // reset LSB to zero to advance to next set bit - } - } - - thrust::stable_sort_by_key( - expected_point_indices.begin(), expected_point_indices.end(), expected_poly_indices.begin()); - - auto poly_a = fixed_width_column_wrapper(expected_poly_indices.begin(), - expected_poly_indices.end()); - auto poly_b = - fixed_width_column_wrapper(actual_poly_indices.begin(), actual_poly_indices.end()); - CUDF_TEST_EXPECT_COLUMNS_EQUAL(poly_a, poly_b, verbosity); - - auto point_a = fixed_width_column_wrapper(expected_point_indices.begin(), - expected_point_indices.end()); - auto point_b = fixed_width_column_wrapper(actual_point_indices.begin(), - actual_point_indices.end()); - CUDF_TEST_EXPECT_COLUMNS_EQUAL(point_a, point_b, verbosity); - } -} diff --git a/cpp/tests/join/point_in_polygon_test_small.cpp b/cpp/tests/join/point_in_polygon_test_small.cpp deleted file mode 100644 index e3eb5191a..000000000 --- a/cpp/tests/join/point_in_polygon_test_small.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2020, NVIDIA CORPORATION. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include - -/* - * A small test that it is suitable for manually visualizing point-polygon pairing results in a GIS - * environment GPU results are compared with expected values embedded in code However, the number of - * points in each quadrant is less than 32, the two kernels for point-in-polygon test are not fully - * tested. This is left for pip_refine_test_large. - */ -template -struct PIPRefineTestSmall : public cudf::test::BaseFixture { -}; - -TYPED_TEST_CASE(PIPRefineTestSmall, cudf::test::FloatingPointTypes); - -TYPED_TEST(PIPRefineTestSmall, TestSmall) -{ - using T = TypeParam; - using namespace cudf::test; - - double const x_min{0.0}; - double const x_max{8.0}; - double const y_min{0.0}; - double const y_max{8.0}; - double const scale{1.0}; - uint32_t const max_depth{3}; - uint32_t const min_size{12}; - - fixed_width_column_wrapper x( - {1.9804558865545805, 0.1895259128530169, 1.2591725716781235, 0.8178039499335275, - 0.48171647380517046, 1.3890664414691907, 0.2536015260915061, 3.1907684812039956, - 3.028362149164369, 3.918090468102582, 3.710910700915217, 3.0706987088385853, - 3.572744183805594, 3.7080407833612004, 3.70669993057843, 3.3588457228653024, - 2.0697434332621234, 2.5322042870739683, 2.175448214220591, 2.113652420701984, - 2.520755151373394, 2.9909779614491687, 2.4613232527836137, 4.975578758530645, - 4.07037627210835, 4.300706849071861, 4.5584381091040616, 4.822583857757069, - 4.849847745942472, 4.75489831780737, 4.529792124514895, 4.732546857961497, - 3.7622247877537456, 3.2648444465931474, 3.01954722322135, 3.7164018490892348, - 3.7002781846945347, 2.493975723955388, 2.1807636574967466, 2.566986568683904, - 2.2006520196663066, 2.5104987015171574, 2.8222482218882474, 2.241538022180476, - 2.3007438625108882, 6.0821276168848994, 6.291790729917634, 6.109985464455084, - 6.101327777646798, 6.325158445513714, 6.6793884701899, 6.4274219368674315, - 6.444584786789386, 7.897735998643542, 7.079453687660189, 7.430677191305505, - 7.5085184104988, 7.886010001346151, 7.250745898479374, 7.769497359206111, - 1.8703303641352362, 1.7015273093278767, 2.7456295127617385, 2.2065031771469, - 3.86008672302403, 1.9143371250907073, 3.7176098065039747, 0.059011873032214, - 3.1162712022943757, 2.4264509160270813, 3.154282922203257}); - - fixed_width_column_wrapper y( - {1.3472225743317712, 0.5431061133894604, 0.1448705855995005, 0.8138440641113271, - 1.9022922214961997, 1.5177694304735412, 1.8762161698642947, 0.2621847215928189, - 0.027638405909631958, 0.3338651960183463, 0.9937713340192049, 0.9376313558467103, - 0.33184908855075124, 0.09804238103130436, 0.7485845679979923, 0.2346381514128677, - 1.1809465376402173, 1.419555755682142, 1.2372448404986038, 1.2774712415624014, - 1.902015274420646, 1.2420487904041893, 1.0484414482621331, 0.9606291981013242, - 1.9486902798139454, 0.021365525588281198, 1.8996548860019926, 0.3234041700489503, - 1.9531893897409585, 0.7800065259479418, 1.942673409259531, 0.5659923375279095, - 2.8709552313924487, 2.693039435509084, 2.57810040095543, 2.4612194182614333, - 2.3345952955903906, 3.3999020934055837, 3.2296461832828114, 3.6607732238530897, - 3.7672478678985257, 3.0668114607133137, 3.8159308233351266, 3.8812819070357545, - 3.6045900851589048, 2.5470532680258002, 2.983311357415729, 2.2235950639628523, - 2.5239201807166616, 2.8765450351723674, 2.5605928243991434, 2.9754616970668213, - 2.174562817047202, 3.380784914178574, 3.063690547962938, 3.380489849365283, - 3.623862886287816, 3.538128217886674, 3.4154469467473447, 3.253257011908445, - 4.209727933188015, 7.478882372510933, 7.474216636277054, 6.896038613284851, - 7.513564222799629, 6.885401350515916, 6.194330707468438, 5.823535317960799, - 6.789029097334483, 5.188939408363776, 5.788316610960881}); - - auto quadtree_pair = cuspatial::quadtree_on_points( - x, y, x_min, x_max, y_min, y_max, scale, max_depth, min_size, this->mr()); - - auto& quadtree = std::get<1>(quadtree_pair); - auto& point_indices = std::get<0>(quadtree_pair); - - fixed_width_column_wrapper poly_offsets({0, 1, 2, 3, 4}); - fixed_width_column_wrapper ring_offsets({0, 4, 10, 14, 19}); - fixed_width_column_wrapper poly_x({// ring 1 - 2.488450, - 1.333584, - 3.460720, - 2.488450, - // ring 2 - 5.039823, - 5.561707, - 7.103516, - 7.190674, - 5.998939, - 5.039823, - // ring 3 - 5.998939, - 5.573720, - 6.703534, - 5.998939, - // ring 4 - 2.088115, - 1.034892, - 2.415080, - 3.208660, - 2.088115}); - fixed_width_column_wrapper poly_y({// ring 1 - 5.856625, - 5.008840, - 4.586599, - 5.856625, - // ring 2 - 4.229242, - 1.825073, - 1.503906, - 4.025879, - 5.653384, - 4.229242, - // ring 3 - 1.235638, - 0.197808, - 0.086693, - 1.235638, - // ring 4 - 4.541529, - 3.530299, - 2.896937, - 3.745936, - 4.541529}); - - auto polygon_bboxes = - cuspatial::polygon_bounding_boxes(poly_offsets, ring_offsets, poly_x, poly_y, 0.0, this->mr()); - - auto polygon_quadrant_pairs = cuspatial::join_quadtree_and_bounding_boxes( - *quadtree, *polygon_bboxes, x_min, x_max, y_min, y_max, scale, max_depth, this->mr()); - - auto point_in_polygon_pairs = cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, - *quadtree, - *point_indices, - x, - y, - poly_offsets, - ring_offsets, - poly_x, - poly_y, - this->mr()); - - CUSPATIAL_EXPECTS(point_in_polygon_pairs->num_columns() == 2, - "a polygon-quadrant pair table must have 2 columns"); - fixed_width_column_wrapper expected1( - {3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3}); - fixed_width_column_wrapper expected2( - {28, 29, 30, 31, 32, 33, 34, 35, 45, 46, 47, 48, 49, 50, 51, 52, 54, 62, 60}); - auto expected = cudf::table_view{{expected1, expected2}}; - CUDF_TEST_EXPECT_TABLES_EQUIVALENT(expected, *point_in_polygon_pairs); -} diff --git a/cpp/tests/join/quadtree_point_in_polygon_test.cpp b/cpp/tests/join/quadtree_point_in_polygon_test.cpp new file mode 100644 index 000000000..93b32ffa7 --- /dev/null +++ b/cpp/tests/join/quadtree_point_in_polygon_test.cpp @@ -0,0 +1,346 @@ +/* + * Copyright (c) 2023, NVIDIA CORPORATION. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include + +using T = float; + +template +using wrapper = cudf::test::fixed_width_column_wrapper; + +struct QuadtreePointInPolygonErrorTest : public ::testing::Test { + auto prepare_test(cudf::column_view const& x, + cudf::column_view const& y, + cudf::column_view const& polygon_offsets, + cudf::column_view const& ring_offsets, + cudf::column_view const& polygon_x, + cudf::column_view const& polygon_y, + cuspatial::vec_2d v_min, + cuspatial::vec_2d v_max, + T scale, + uint32_t max_depth, + uint32_t min_size, + T expansion_radius) + { + using namespace cudf::test; + + auto quadtree_pair = cuspatial::quadtree_on_points( + x, y, v_min.x, v_max.x, v_min.y, v_max.y, scale, max_depth, min_size); + + auto& quadtree = std::get<1>(quadtree_pair); + auto& point_indices = std::get<0>(quadtree_pair); + + auto polygon_bboxes = cuspatial::polygon_bounding_boxes( + polygon_offsets, ring_offsets, polygon_x, polygon_y, expansion_radius); + + auto polygon_quadrant_pairs = cuspatial::join_quadtree_and_bounding_boxes( + *quadtree, *polygon_bboxes, v_min.x, v_max.x, v_min.y, v_max.y, scale, max_depth); + + return std::make_tuple(std::move(quadtree), + std::move(point_indices), + std::move(polygon_bboxes), + std::move(polygon_quadrant_pairs)); + } + + void SetUp() override + { + using namespace cudf::test; + + cuspatial::vec_2d v_min{0.0, 0.0}; + cuspatial::vec_2d v_max{8.0, 8.0}; + double const scale{1.0}; + uint32_t const max_depth{3}; + uint32_t const min_size{12}; + double const expansion_radius{0.0}; + + auto x_col = + wrapper({1.9804558865545805, 0.1895259128530169, 1.2591725716781235, 0.8178039499335275}); + auto y_col = + wrapper({1.3472225743317712, 0.5431061133894604, 0.1448705855995005, 0.8138440641113271}); + + auto polygon_offsets_col = wrapper({0, 4, 10}); + auto ring_offsets_col = wrapper({0, 4, 10}); + auto polygon_x_col = wrapper({// ring 1 + 2.488450, + 1.333584, + 3.460720, + 2.488450, + // ring 2 + 5.039823, + 5.561707, + 7.103516, + 7.190674, + 5.998939, + 5.039823}); + auto polygon_y_col = wrapper({// ring 1 + 2.488450, + 1.333584, + 3.460720, + 2.488450, + // ring 2 + 5.039823, + 5.561707, + 7.103516, + 7.190674, + 5.998939, + 5.039823}); + + std::tie(quadtree, point_indices, polygon_bboxes, polygon_quadrant_pairs) = + prepare_test(x_col, + y_col, + polygon_offsets_col, + ring_offsets_col, + polygon_x_col, + polygon_y_col, + v_min, + v_max, + scale, + max_depth, + min_size, + expansion_radius); + + x = x_col.release(); + y = y_col.release(); + polygon_offsets = polygon_offsets_col.release(); + ring_offsets = ring_offsets_col.release(); + polygon_x = polygon_x_col.release(); + polygon_y = polygon_y_col.release(); + } + + void TearDown() override {} + + std::unique_ptr x; + std::unique_ptr y; + std::unique_ptr polygon_offsets; + std::unique_ptr ring_offsets; + std::unique_ptr polygon_x; + std::unique_ptr polygon_y; + std::unique_ptr point_indices; + std::unique_ptr quadtree; + std::unique_ptr polygon_bboxes; + std::unique_ptr polygon_quadrant_pairs; +}; + +// test cudf::quadtree_point_in_polygon with empty inputs +TEST_F(QuadtreePointInPolygonErrorTest, test_empty) +{ + // empty point data + { + auto empty_point_indices = wrapper({}); + auto empty_x = wrapper({}); + auto empty_y = wrapper({}); + + auto results = cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + empty_point_indices, + empty_x, + empty_y, + *polygon_offsets, + *ring_offsets, + *polygon_x, + *polygon_y); + + auto expected_poly_offset = wrapper({}); + auto expected_point_offset = wrapper({}); + + auto expected = cudf::table_view{ + {cudf::column_view(expected_poly_offset), cudf::column_view(expected_point_offset)}}; + + CUDF_TEST_EXPECT_TABLES_EQUIVALENT(expected, *results); + } + + // empty polygon data + { + auto empty_polygon_offsets = wrapper({}); + auto empty_ring_offsets = wrapper({}); + auto empty_polygon_x = wrapper({}); + auto empty_polygon_y = wrapper({}); + + auto results = cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + *x, + *y, + empty_polygon_offsets, + empty_ring_offsets, + empty_polygon_x, + empty_polygon_y); + + auto expected_poly_offset = wrapper({}); + auto expected_point_offset = wrapper({}); + + auto expected = cudf::table_view{ + {cudf::column_view(expected_poly_offset), cudf::column_view(expected_point_offset)}}; + + CUDF_TEST_EXPECT_TABLES_EQUIVALENT(expected, *results); + } +} + +TEST_F(QuadtreePointInPolygonErrorTest, type_mismatch) +{ + // x/y type mismatch + { + auto x_col = wrapper({1, 2, 3, 4}); + auto y_col = wrapper({1, 2, 3, 4}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + x_col, + y_col, + *polygon_offsets, + *ring_offsets, + *polygon_x, + *polygon_y), + cuspatial::logic_error); + } + + // polygon_x/polygon_y type mismatch + { + auto polygon_x_col = wrapper({1, 2, 3, 4}); + auto polygon_y_col = wrapper({1, 2, 3, 4}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + *x, + *y, + *polygon_offsets, + *ring_offsets, + polygon_x_col, + polygon_y_col), + cuspatial::logic_error); + } + + // x / polygon_x type mismatch + { + auto x_col = wrapper({1, 2, 3, 4}); + auto polygon_x_col = wrapper({1, 2, 3, 4}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + x_col, + *y, + *polygon_offsets, + *ring_offsets, + polygon_x_col, + *polygon_y), + cuspatial::logic_error); + } +} + +TEST_F(QuadtreePointInPolygonErrorTest, offset_type_error) +{ + { + auto polygon_offsets_col = wrapper({0, 4, 10}); + auto ring_offsets_col = wrapper({0, 4, 10}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + *x, + *y, + polygon_offsets_col, + ring_offsets_col, + *polygon_x, + *polygon_y), + cuspatial::logic_error); + } +} + +TEST_F(QuadtreePointInPolygonErrorTest, size_mismatch) +{ + { + auto polygon_offsets_col = wrapper({0, 4, 10}); + auto ring_offsets_col = wrapper({0, 4, 10}); + auto poly_x = wrapper({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + auto poly_y = wrapper({1, 2, 3, 4, 5, 6}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + *point_indices, + *x, + *y, + polygon_offsets_col, + ring_offsets_col, + poly_x, + poly_y), + cuspatial::logic_error); + } + { + auto point_indices = wrapper({0, 1, 2, 3, 4}); + auto x = wrapper({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + auto y = wrapper({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + point_indices, + x, + y, + *polygon_offsets, + *ring_offsets, + *polygon_x, + *polygon_y), + cuspatial::logic_error); + } + { + auto point_indices = wrapper({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + auto x = wrapper({1, 2, 3, 4, 5}); + auto y = wrapper({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + point_indices, + x, + y, + *polygon_offsets, + *ring_offsets, + *polygon_x, + *polygon_y), + cuspatial::logic_error); + } + { + auto point_indices = wrapper({0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + auto x = wrapper({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}); + auto y = wrapper({1, 2, 3, 4, 5}); + + EXPECT_THROW(cuspatial::quadtree_point_in_polygon(*polygon_quadrant_pairs, + *quadtree, + point_indices, + x, + y, + *polygon_offsets, + *ring_offsets, + *polygon_x, + *polygon_y), + cuspatial::logic_error); + } +} diff --git a/cpp/tests/utility_test/test_geometry_generators.cu b/cpp/tests/utility_test/test_geometry_generators.cu index 223eb6c73..5ecaab106 100644 --- a/cpp/tests/utility_test/test_geometry_generators.cu +++ b/cpp/tests/utility_test/test_geometry_generators.cu @@ -315,8 +315,8 @@ TEST_P(GeometryFactoryCountVerificationTest, CountsVerification) INSTANTIATE_TEST_SUITE_P( GeometryFactoryCountVerificationTests, GeometryFactoryCountVerificationTest, - ::testing::Combine(::testing::Values(1, 1000), // num_multipolygons - ::testing::Values(1, 30), // num_polygons_per_multipolygon - ::testing::Values(0, 100), // num_holes_per_polygon - ::testing::Values(3, 100) // num_sides_per_ring + ::testing::Combine(::testing::Values(1, 100), // num_multipolygons + ::testing::Values(1, 30), // num_polygons_per_multipolygon + ::testing::Values(0, 100), // num_holes_per_polygon + ::testing::Values(3, 100) // num_sides_per_ring )); diff --git a/dependencies.yaml b/dependencies.yaml index 5dcf27ecb..2dc4b7bb4 100644 --- a/dependencies.yaml +++ b/dependencies.yaml @@ -14,6 +14,7 @@ files: - py_version - run_python - test_python + - notebooks test_cpp: output: none includes: @@ -172,6 +173,7 @@ dependencies: - ipython - notebook - shapely + - pydeck py_version: specific: - output_types: conda diff --git a/docs/source/user_guide/cuspatial_api_examples.ipynb b/docs/source/user_guide/cuspatial_api_examples.ipynb index 761b11831..bd78b237f 100644 --- a/docs/source/user_guide/cuspatial_api_examples.ipynb +++ b/docs/source/user_guide/cuspatial_api_examples.ipynb @@ -889,6 +889,161 @@ "print(gpu_polygons.head())" ] }, + { + "cell_type": "markdown", + "id": "008d320d-ca47-459f-9fff-8769494c8a61", + "metadata": {}, + "source": [ + "### cuspatial.pairwise_point_polygon_distance\n", + "\n", + "Using WGS 84 Pseudo-Mercator, distances are in meters." + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "258c9a8c-7fe3-4047-80b7-00878d9fb2f1", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
pop_estcontinentnameiso_a3gdp_md_estgeometrydistance_fromdistance
0889953.0OceaniaFijiFJI5496MULTIPOLYGON (((20037508.343 -1812498.413, 200...Vatican City1.969350e+07
158005463.0AfricaTanzaniaTZA63177POLYGON ((3774143.866 -105758.362, 3792946.708...San Marino5.929777e+06
2603253.0AfricaW. SaharaESH907POLYGON ((-964649.018 3205725.605, -964597.245...Vaduz3.421172e+06
337589262.0North AmericaCanadaCAN1736425MULTIPOLYGON (((-13674486.249 6274861.394, -13...Lobamba1.296059e+07
4328239523.0North AmericaUnited States of AmericaUSA21433226MULTIPOLYGON (((-13674486.249 6274861.394, -13...Luxembourg8.174897e+06
\n", + "
" + ], + "text/plain": [ + " pop_est continent name iso_a3 gdp_md_est \\\n", + "0 889953.0 Oceania Fiji FJI 5496 \n", + "1 58005463.0 Africa Tanzania TZA 63177 \n", + "2 603253.0 Africa W. Sahara ESH 907 \n", + "3 37589262.0 North America Canada CAN 1736425 \n", + "4 328239523.0 North America United States of America USA 21433226 \n", + "\n", + " geometry distance_from \\\n", + "0 MULTIPOLYGON (((20037508.343 -1812498.413, 200... Vatican City \n", + "1 POLYGON ((3774143.866 -105758.362, 3792946.708... San Marino \n", + "2 POLYGON ((-964649.018 3205725.605, -964597.245... Vaduz \n", + "3 MULTIPOLYGON (((-13674486.249 6274861.394, -13... Lobamba \n", + "4 MULTIPOLYGON (((-13674486.249 6274861.394, -13... Luxembourg \n", + "\n", + " distance \n", + "0 1.969350e+07 \n", + "1 5.929777e+06 \n", + "2 3.421172e+06 \n", + "3 1.296059e+07 \n", + "4 8.174897e+06 \n", + "(GPU)" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "cities = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_cities\")).to_crs(3857)\n", + "countries = geopandas.read_file(geopandas.datasets.get_path(\"naturalearth_lowres\")).to_crs(3857)\n", + "\n", + "gpu_cities = cuspatial.from_geopandas(cities)\n", + "gpu_countries = cuspatial.from_geopandas(countries)\n", + "\n", + "dist = cuspatial.pairwise_point_polygon_distance(\n", + " gpu_cities.geometry[:len(gpu_countries)], gpu_countries.geometry\n", + ")\n", + "\n", + "gpu_countries[\"distance_from\"] = cities.name\n", + "gpu_countries[\"distance\"] = dist\n", + "\n", + "gpu_countries.head()" + ] + }, { "attachments": { "351aea0c-f37e-4ab9-bad2-c67bce69b5c3.png": { @@ -910,7 +1065,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 18, "id": "d1ade9da-c9e2-45c4-9685-dffeda3fd358", "metadata": { "tags": [] @@ -975,7 +1130,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 19, "id": "cc72a44d-a9bf-4432-9898-de899ac45869", "metadata": { "tags": [] @@ -993,7 +1148,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 20, "id": "1125fd17-afe1-4b9c-b48d-8842dd3700b3", "metadata": { "tags": [] @@ -1002,7 +1157,7 @@ { "data": { "text/plain": [ - "\n", + "\n", "[\n", " 0,\n", " 144\n", @@ -1010,7 +1165,7 @@ "dtype: int32" ] }, - "execution_count": 19, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -1023,7 +1178,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 21, "id": "b281e3bb-42d4-4d60-9cb2-b7dcc20b4776", "metadata": { "tags": [] @@ -1046,7 +1201,7 @@ "Length: 144, dtype: geometry" ] }, - "execution_count": 20, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -1058,7 +1213,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 22, "id": "e19873b9-2614-4242-ad67-caa47f807d04", "metadata": { "tags": [] @@ -1117,7 +1272,7 @@ "0 [9, 10, 10, 11, 11, 28, 12, 12, 13, 13, 14, 15... " ] }, - "execution_count": 21, + "execution_count": 22, "metadata": {}, "output_type": "execute_result" } @@ -1150,7 +1305,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 23, "id": "bf7b2256", "metadata": { "tags": [] @@ -1167,7 +1322,7 @@ "dtype: int64" ] }, - "execution_count": 22, + "execution_count": 23, "metadata": {}, "output_type": "execute_result" } @@ -1252,7 +1407,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 24, "id": "e3a0a9a3-0bdd-4f05-bcb5-7db4b99a44a3", "metadata": { "tags": [] @@ -1316,7 +1471,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 25, "id": "023bd25a-35be-435d-ab0b-ecbd7a47e147", "metadata": { "tags": [] @@ -1375,7 +1530,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 26, "id": "784aff8e-c9ed-4a81-aa87-bf301b3b90af", "metadata": { "tags": [] @@ -1390,7 +1545,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 27, "id": "fea24c78-cf5c-45c6-b860-338238e61323", "metadata": { "tags": [] diff --git a/notebooks/README.md b/notebooks/README.md index bd1835dbb..d0c2f430c 100644 --- a/notebooks/README.md +++ b/notebooks/README.md @@ -14,6 +14,7 @@ documentation tree, Notebook Title | Data set(s) | Notebook Description | External Download (Size) --- | --- | --- | --- [NYC Taxi Years Correlation](nyc_taxi_years_correlation.ipynb) | [NYC Taxi Yellow 01/2016, 01/2017, taxi zone data](https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page) | Demonstrates using Point in Polygon to correlate the NYC Taxi datasets pre-2017 `lat/lon` locations with the post-2017 `LocationID` for cross format comparisons. | Yes (~3GB) +[Stop Sign Counting By Zipcode Boundary](ZipCodes_Stops_PiP_cuSpatial.ipynb) | [Stop Sign Locations](https://wiki.openstreetmap.org/wiki/Tag:highway%3Dstop) [Zipcode Boundaries](https://catalog.data.gov/dataset/tiger-line-shapefile-2019-2010-nation-u-s-2010-census-5-digit-zip-code-tabulation-area-zcta5-na) [USA States Boundaries](https://wiki.openstreetmap.org/wiki/Tag:boundary%3Dadministrative) | Demonstrates Quadtree Point-in-Polygon to categorize stop signs by zipcode boundaries. | Yes (~1GB) ## For more details Many more examples can be found in the [RAPIDS Notebooks diff --git a/notebooks/ZipCodes_Stops_PiP_cuSpatial.ipynb b/notebooks/ZipCodes_Stops_PiP_cuSpatial.ipynb new file mode 100644 index 000000000..c47f47753 --- /dev/null +++ b/notebooks/ZipCodes_Stops_PiP_cuSpatial.ipynb @@ -0,0 +1,686 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "458fe838-b143-4d31-9ddd-8efd0217f4a7", + "metadata": {}, + "source": [ + "# Stop Sign Counting By Zipcode in California" + ] + }, + { + "cell_type": "markdown", + "id": "6931011f-0d83-45ce-b254-4b5424b82624", + "metadata": {}, + "source": [ + "This notebook demonstrates the use of geodataframe joins with point-in-polygon in cuSpatial\n", + "\n", + "## Prerequisite: Datasets\n", + "\n", + "Datasets used:\n", + "1. Stops (Signs and Stop lines) dataset from OpenStreetMap\n", + "2. USA ZipCode boundaries from US Census Bureau\n", + "3. USA States boundaries from OpenStreetMap\n", + "\n", + "- OpenStreetMap is open data, licensed under [Open Data Commons Open Database License (ODbL)](https://opendatacommons.org/licenses/odbl/) by the [OpenStreetMap Foundation (OSMF)](https://wiki.osmfoundation.org/wiki/Main_Page).\n", + "- US Census Bureau data is open and free to use: https://www.census.gov/about/policies/open-gov/open-data.html\n", + "- TIGER/Line Shapefile, 2019, 2010 nation, U.S., 2010 Census 5-Digit ZIP Code Tabulation Area (ZCTA5) National, Metadata Updated: November 1, 2022.\" Accessed March xx, 2023. https://catalog.data.gov/dataset/tiger-line-shapefile-2019-2010-nation-u-s-2010-census-5-digit-zip-code-tabulation-area-zcta5-na\n", + "\n", + "Disclaimer: Each user is responsible for checking the content of datasets and the applicable licenses and determining if suitable for the intended use." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "597750fe-518e-4944-8cbe-b84aea22481e", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "USA_States.csv found\n", + "USA_Stops_Vertices.csv found\n", + "USA_Zipcodes_2019_Tiger.csv found\n" + ] + } + ], + "source": [ + "# Download the datasets and save as:\n", + "# 1. USA_Stops_Vertices.csv\n", + "# 2. USA_Zipcodes_2019_Tiger.csv\n", + "# 3. USA_States.csv\n", + "\n", + "!if [ ! -f \"USA_States.csv\" ]; then curl \"https://data.rapids.ai/cuspatial/benchmark/USA_States.csv\" -o USA_States.csv; else echo \"USA_States.csv found\"; fi\n", + "!if [ ! -f \"USA_Stops_Vertices.csv\" ]; then curl \"https://data.rapids.ai/cuspatial/benchmark/USA_Stops_Vertices.csv\" -o USA_Stops_Vertices.csv; else echo \"USA_Stops_Vertices.csv found\"; fi\n", + "!if [ ! -f \"USA_Zipcodes_2019_Tiger.csv\" ]; then curl \"https://data.rapids.ai/cuspatial/benchmark/USA_Zipcodes_2019_Tiger.csv\" -o USA_Zipcodes_2019_Tiger.csv; else echo \"USA_Zipcodes_2019_Tiger.csv found\"; fi" + ] + }, + { + "cell_type": "markdown", + "id": "497810f3-acf0-4472-a187-322413c9db11", + "metadata": {}, + "source": [ + "## Overview\n", + "\n", + "Stop signs are an important symbol of city and road development in geographical information systems. This notebook processes all stop sign locations from the dataset, using spatial joins to locate them within the zipcode boundaries located within California. This notebook performs the following steps:\n", + "\n", + "1. Filters the zipcode boundaries located in California with spatial join.\n", + "2. Filters the stop signs located in all the zipcodes with spatial join.\n", + "3. Counts the stop signs by zipcode.\n", + "4. Visualize the result on map." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b2892e9a-ce32-4e5a-94a9-dd121d2a6ea3", + "metadata": {}, + "outputs": [], + "source": [ + "# Import Necessary Packages\n", + "import os\n", + "import cuspatial, cudf\n", + "import pandas as pd\n", + "import geopandas as gpd\n", + "import numpy as np\n", + "import cupy as cp\n", + "from shapely import wkt\n", + "import pydeck as pdk" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "086eda5a-8eda-46d8-8e90-54a2616799f8", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Root folder for datasets\n", + "DATASET_ROOT = \"./\"\n", + "\n", + "def path_of(dataset):\n", + " return os.path.join(DATASET_ROOT, dataset)" + ] + }, + { + "cell_type": "markdown", + "id": "044c84d9-2f82-4de5-a4c5-b7b9e5ef6b93", + "metadata": {}, + "source": [ + "## Load Dataset and Cleanup\n", + "\n", + "We load the datasets and store them as cuSpatial device dataframes. Note that the second cell below loads the dataset with cuDF, then adopts geopandas to parse the WKT (Well-Known Text) strings into shapely objects. This is a slow step performed on CPU and requires data transfer between device and host." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "fcb48a9c-f968-486c-8cb8-7e0de6cc7f1c", + "metadata": {}, + "outputs": [], + "source": [ + "# Import Stop Sign CSV\n", + "d_stops = cudf.read_csv(path_of(\"USA_Stops_Vertices.csv\"), usecols=[\"x\", \"y\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b12cfa00-ad8d-4b9c-93cf-c1a511f8d513", + "metadata": {}, + "outputs": [], + "source": [ + "#Import CSV of Zipcodes\n", + "d_zip = cudf.read_csv(\n", + " path_of(\"USA_Zipcodes_2019_Tiger.csv\"),\n", + " usecols=[\"WKT\", \"ZCTA5CE10\", \"INTPTLAT10\", \"INTPTLON10\"])\n", + "d_zip.INTPTLAT10 = d_zip.INTPTLAT10.astype(\"float\")\n", + "d_zip.INTPTLON10 = d_zip.INTPTLON10.astype(\"float\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "583856a2-0b29-48c1-ade7-3840f640c5e7", + "metadata": {}, + "outputs": [], + "source": [ + "# Load WKT as shapely objects\n", + "h_zip = d_zip.to_pandas()\n", + "h_zip[\"WKT\"] = h_zip[\"WKT\"].apply(wkt.loads)\n", + "h_zip = gpd.GeoDataFrame(h_zip, geometry=\"WKT\", crs='epsg:4326')\n", + "\n", + "# Transfer back to GPU with cuSpatial\n", + "d_zip = cuspatial.from_geopandas(h_zip)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "a13b228d-9a60-4f32-b548-fa6f4240e75e", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "# Load State Boundaries\n", + "states = gpd.read_file(\"USA_States.csv\", geometry='WKT', crs='epsg:4326')\n", + "d_states = cuspatial.from_geopandas(states)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "33da801e-01a3-4c9f-bbba-0c61dc7677d9", + "metadata": { + "tags": [] + }, + "outputs": [], + "source": [ + "class QuadTree:\n", + " \"\"\"Helper class to use cuspatial quadtree interface\n", + " \"\"\"\n", + " def __init__(self,\n", + " df,\n", + " x_column,\n", + " y_column,\n", + " x_min=None,\n", + " x_max=None,\n", + " y_min=None,\n", + " y_max=None,\n", + " scale = -1,\n", + " max_depth = 15,\n", + " min_size = 12):\n", + "\n", + " self.x_min = df[x_column].min() if not x_min else x_min\n", + " self.x_max = df[x_column].max() if not x_max else x_max\n", + " self.y_min = df[y_column].min() if not y_min else y_min\n", + " self.y_max = df[y_column].max() if not y_max else y_max\n", + " \n", + " self.scale = scale\n", + " self.max_depth = max_depth\n", + " self.min_size = min_size\n", + "\n", + " self.point_df = df\n", + " self.x_column = x_column\n", + " self.y_column = y_column\n", + " \n", + " self.polygon_point_mapping = None\n", + " \n", + " self.d_points = cuspatial.GeoSeries.from_points_xy(\n", + " cudf.DataFrame({\"x\": df[x_column], \"y\": df[y_column]}\n", + " ).interleave_columns())\n", + " \n", + " self.point_indices, self.quadtree = (\n", + " cuspatial.quadtree_on_points(self.d_points,\n", + " self.x_min,\n", + " self.x_max,\n", + " self.y_min,\n", + " self.y_max,\n", + " self.scale,\n", + " self.max_depth,\n", + " self.min_size))\n", + "\n", + " def set_polygon(self, df, poly_column):\n", + " polys = df[poly_column]\n", + "\n", + " parts = polys.polygons.part_offset\n", + " rings = polys.polygons.ring_offset\n", + " x = polys.polygons.x\n", + " y = polys.polygons.y\n", + " \n", + " single_polys = cuspatial.GeoSeries.from_polygons_xy(\n", + " polys.polygons.xy, rings, parts, cp.arange(len(parts))\n", + " )\n", + " \n", + " geometries = cudf.Series(polys.polygons.geometry_offset)\n", + " \n", + " poly_bboxes = cuspatial.polygon_bounding_boxes(single_polys)\n", + " intersections = cuspatial.join_quadtree_and_bounding_boxes(\n", + " self.quadtree, poly_bboxes, self.x_min, self.x_max, self.y_min, self.y_max, self.scale, self.max_depth\n", + " )\n", + " polygon_point_mapping = cuspatial.quadtree_point_in_polygon(\n", + " intersections,\n", + " self.quadtree,\n", + " self.point_indices,\n", + " self.d_points,\n", + " single_polys\n", + " )\n", + "\n", + " # Update Polygon Index to MultiPolygon Index\n", + " polygon_index = geometries.searchsorted(polygon_point_mapping.polygon_index, side=\"right\")-1\n", + " polygon_point_mapping.polygon_index = polygon_index\n", + "\n", + " self.polygon_point_mapping = polygon_point_mapping.reset_index(drop=True)\n", + " \n", + " # Remap point indices\n", + " idx_of_idx = self.point_indices.take(\n", + " self.polygon_point_mapping.point_index\n", + " ).reset_index(drop=True)\n", + " self.polygon_point_mapping.point_index = idx_of_idx\n", + "\n", + " self.polygon_df = df\n", + "\n", + " def _subset_geodf(self, geodf, columns):\n", + " res = cudf.DataFrame()\n", + " for col in columns:\n", + " res[col] = geodf[col]\n", + " return res\n", + "\n", + " def points(self, columns = None):\n", + " if self.polygon_point_mapping is None:\n", + " raise ValueError(\"First set polygon dataframe.\")\n", + " \n", + " if not columns:\n", + " df = self.point_df\n", + " else:\n", + " df = self._subset_geodf(self.point_df, columns)\n", + "\n", + " if any(dtype == \"geometry\" for dtype in df.dtypes):\n", + " df = cuspatial.GeoDataFrame(df)\n", + " \n", + " mapping = self.polygon_point_mapping\n", + " res = df.iloc[mapping.point_index]\n", + " res = res.reset_index(drop=True)\n", + " res[\"polygon_index\"] = mapping.polygon_index\n", + " res[\"point_index\"] = mapping.point_index\n", + " return res\n", + "\n", + " def polygons(self, columns = None):\n", + " if self.polygon_point_mapping is None:\n", + " raise ValueError(\"First set polygon dataframe.\")\n", + " \n", + " if not columns:\n", + " df = self.polygon_df\n", + " else:\n", + " df = self._subset_geodf(self.polygon_df, columns)\n", + " \n", + " if any(dtype == \"geometry\" for dtype in df.dtypes):\n", + " df = cuspatial.GeoDataFrame(df)\n", + " \n", + " mapping = self.polygon_point_mapping\n", + " res = df.iloc[mapping.polygon_index]\n", + " res = res.reset_index(drop=True)\n", + " res[\"polygon_index\"] = mapping.polygon_index\n", + " res[\"point_index\"] = mapping.point_index\n", + " return res\n", + " \n", + " def point_left_join_polygon(self, point_columns=None, polygon_columns=None):\n", + " points = self.points(point_columns)\n", + " polygons = self.polygons(polygon_columns)\n", + " joined = points.merge(polygons, on=[\"polygon_index\", \"point_index\"], how=\"left\")\n", + " joined = joined.drop([\"polygon_index\", \"point_index\"], axis=1)\n", + " return cuspatial.GeoDataFrame(joined)" + ] + }, + { + "cell_type": "markdown", + "id": "eda8fb4c-39ec-44e2-9163-cbbdd91eeb1d", + "metadata": {}, + "source": [ + "## Filtering Zipcode by its Geometric Center\n", + "\n", + "The Zipcode Dataset contains boundaries for all zipcodes in the US. The below uses the geometric center (encoded in `INTPTLON10` and `INTPTLAT10` column) for each zipcode and uses cuspatial's quadtree interface to filter zipcodes located only in California." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "c0cadafb-acae-41d6-bbca-c10a8201699c", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/raid/wangm/dev/rapids/cuspatial/python/cuspatial/cuspatial/core/spatial/indexing.py:174: UserWarning: scale -1 is less than required minimum scale 0.009837776664632286. Clamping to minimum scale\n", + " warnings.warn(\n", + "/raid/wangm/dev/rapids/cuspatial/python/cuspatial/cuspatial/core/spatial/join.py:150: UserWarning: scale -1 is less than required minimum scale 0.009837776664632286. Clamping to minimum scale\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# Use quadtree to filter zip codes\n", + "\n", + "# Build a point quadtree using the geometric center of the zip code region\n", + "zipcode_quadtree = QuadTree(d_zip, x_column=\"INTPTLON10\", y_column=\"INTPTLAT10\")\n", + "\n", + "# Pass boundary\n", + "zipcode_quadtree.set_polygon(d_states, poly_column='geometry')\n", + "\n", + "# Join state and zip code boundaries\n", + "zipcode_by_state = zipcode_quadtree.point_left_join_polygon([\"WKT\", \"ZCTA5CE10\"], [\"STUSPS\"])\n", + "\n", + "# Get Californian zipcodes\n", + "CA_zipcode = zipcode_by_state[zipcode_by_state.STUSPS == 'CA']" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "d2571a4a-a898-4e04-9fd2-21eb6b7a7f3e", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "(1762, 33144)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "len(CA_zipcode), len(d_zip)" + ] + }, + { + "cell_type": "markdown", + "id": "ab387f5a-cf7e-49d4-b3c8-c5b4b059cd4d", + "metadata": {}, + "source": [ + "From the 33K zipcode dataset, 1.7K of them belong to California." + ] + }, + { + "cell_type": "markdown", + "id": "6446d81b-006a-4a0b-995b-a001c9b7766f", + "metadata": {}, + "source": [ + "## Join stop signs dataset with California Zipcode boundaries\n", + "\n", + "The below joins the stop sign dataset (460K data points) with all zip code boundaries in California (1700 data points)." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "370ee37c-1311-4f54-9b0c-afd862c489aa", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/raid/wangm/dev/rapids/cuspatial/python/cuspatial/cuspatial/core/spatial/indexing.py:174: UserWarning: scale -1 is less than required minimum scale 0.0029100948550503493. Clamping to minimum scale\n", + " warnings.warn(\n", + "/raid/wangm/dev/rapids/cuspatial/python/cuspatial/cuspatial/core/spatial/join.py:150: UserWarning: scale -1 is less than required minimum scale 0.0029100948550503493. Clamping to minimum scale\n", + " warnings.warn(\n" + ] + } + ], + "source": [ + "# Build a second quadtree with all stop signs in the US\n", + "stop_quadtree = QuadTree(d_stops, x_column='x', y_column='y')\n", + "\n", + "# Pass zip code polygons\n", + "stop_quadtree.set_polygon(CA_zipcode, poly_column=\"WKT\")\n", + "\n", + "# Join the stop signs and the zip code dataframe\n", + "stop_by_zipcode = stop_quadtree.point_left_join_polygon([\"x\", \"y\"], [\"ZCTA5CE10\"])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "5674f74a-9315-4e1f-ac0d-c45a1b97ae3e", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
xyZCTA5CE10
0-121.85809437.28078795136
1-121.85664837.27829595136
2-121.85544137.28037595136
3-121.85634337.28319595136
4-121.85660437.28100595136
\n", + "
" + ], + "text/plain": [ + " x y ZCTA5CE10\n", + "0 -121.858094 37.280787 95136\n", + "1 -121.856648 37.278295 95136\n", + "2 -121.855441 37.280375 95136\n", + "3 -121.856343 37.283195 95136\n", + "4 -121.856604 37.281005 95136\n", + "(GPU)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "stop_by_zipcode.head()" + ] + }, + { + "cell_type": "markdown", + "id": "4b61f534-faa4-4465-b47b-fb717169f30e", + "metadata": {}, + "source": [ + "## Zipcode counting with cuDF\n", + "\n", + "The below uses [cuDF](https://docs.rapids.ai/api/cudf/stable/index.html) to count the number of stop signs per zip code. Then merge the geometry information from the zipcode dataset." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "247d716c-4718-4aba-8d4f-5f816852194d", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "data": { + "text/plain": [ + "ZCTA5CE10\n", + "94901 131\n", + "94535 205\n", + "95112 103\n", + "95407 126\n", + "93933 205\n", + "Name: stop_count, dtype: int32" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Count the Stop Signs by California Zip Codes\n", + "stop_counts = stop_by_zipcode.groupby(\"ZCTA5CE10\").x.count().rename(\"stop_count\")\n", + "stop_counts.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "ccf31694-275d-4987-a318-79bc1ea79e73", + "metadata": { + "tags": [] + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DataFrame Size: 1762\n" + ] + } + ], + "source": [ + "# Fetch the polygon boundaries\n", + "stop_counts_and_bounds = cuspatial.GeoDataFrame(CA_zipcode.merge(stop_counts, on=\"ZCTA5CE10\", how=\"left\"))\n", + "stop_counts_and_bounds[\"stop_count\"] = stop_counts_and_bounds[\"stop_count\"].astype(\"int\").fillna(0)\n", + "print(\"DataFrame Size: \", len(stop_counts_and_bounds))" + ] + }, + { + "cell_type": "markdown", + "id": "d1f2af42-affb-4e9e-ac24-b5583641a366", + "metadata": {}, + "source": [ + "## Visualization\n", + "\n", + "Now, we visualize the stop sign count results using [PyDeck](https://deckgl.readthedocs.io/en/latest/index.html).\n", + "Uncomment to run below:" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "6a9cb2d6-c7d3-4063-9b24-47101dba0044", + "metadata": {}, + "outputs": [], + "source": [ + "# # Visualize the Dataset\n", + "\n", + "# # Move dataframe to host for visualization\n", + "# host_df = stop_counts_and_bounds.to_geopandas()\n", + "# host_df = host_df.rename({\"WKT\": \"geometry\"}, axis=1)\n", + "# host_df.head()\n", + "\n", + "# # Geo Center of CA: 120°4.9'W 36°57.9'N\n", + "# view_state = pdk.ViewState(\n", + "# **{\"latitude\": 33.96500, \"longitude\": -118.08167, \"zoom\": 6, \"maxZoom\": 16, \"pitch\": 95, \"bearing\": 0}\n", + "# )\n", + "\n", + "# gpd_layer = pdk.Layer(\n", + "# \"GeoJsonLayer\",\n", + "# data=host_df[[\"geometry\", \"stop_count\", \"ZCTA5CE10\"]],\n", + "# get_polygon=\"geometry\",\n", + "# get_elevation=\"stop_count\",\n", + "# extruded=True,\n", + "# elevation_scale=50,\n", + "# get_fill_color=[227,74,51],\n", + "# get_line_color=[255, 255, 255],\n", + "# auto_highlight=True,\n", + "# filled=True,\n", + "# wireframe=True,\n", + "# pickable=True\n", + "# )\n", + "\n", + "# tooltip = {\"html\": \"Stop Sign Count: {stop_count}
ZipCode: {ZCTA5CE10}\"}\n", + "\n", + "# r = pdk.Deck(\n", + "# gpd_layer,\n", + "# initial_view_state=view_state,\n", + "# map_style=pdk.map_styles.LIGHT,\n", + "# tooltip=tooltip,\n", + "# )\n", + "\n", + "# r.to_html(\"geopandas_layer.html\", notebook_display=False)" + ] + }, + { + "cell_type": "markdown", + "id": "e05fc526-c935-417f-9f53-0f13a0c6d02a", + "metadata": {}, + "source": [ + "### Open geopandas_layer.html to see visualization result\n", + "\n", + "![stop_per_state_map](https://github.com/isVoid/cuspatial/raw/notebook/zipcode_counting/notebooks/stop_states.png)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7611be2-6dbe-40a5-ae9e-51283737d3f2", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/stop_states.png b/notebooks/stop_states.png new file mode 100644 index 0000000000000000000000000000000000000000..1fb3b1b5af65cfcdb8bb6db2d2500bbcad5a23b9 GIT binary patch literal 763237 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�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

s@^6Eg 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.hcZT_&{%Q60j|?1t*t-=8pnW9&u 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%0Ap&+OVBcSuE9j{G;8y(fJ#r&35 znD_a#aTFH;LO-a9QUzl$k;Pb5@(;*f`AEup&*kcEcxE zM+A;|s>6_JFaVVFB!|-)cThMd=+_W&ks7g*Ug((ZhLSuz7h7^%BBOkm9#OL*abe!P z`B)w1TIM$*5jVHqtFR-rdC3r5CcKbB$!dkAcik>352afZuX1G8WT8Gq4s%_Fe^98v zVU#FB=5ld|pS zRWd=uvV2#C_awl*6$60GjKsSLwTY%+0L(G;4OYDw$SPXiN)#l@#p@>DF@Mh=+c{id9k*QocvmOXIGg`nG7FbxE{FFA zDgjwkbTg6>MG?oJ5m=wt1O)W_Ut~Uh{BnKC^#r);HYNf?U8CISzKkbXt=;jxnNVrb z@V@bF(7&cwk-_*2Hs{}1N{!m9C~6^3Pv1z+?|CnRr>Yn#F=G$062wz}7^^E@B^A`d z$+haw4!<*6Wk^wTX2*gAm8e3A}a73WB}6}5OuhD zy2%JaEM5CIG%xw%Z^o`1JdjI(EeNR_Wg@F;Jd>m2EP2%m+aA%PDsQ{?V?mjLLXg*H zf_x{c&&kzn8^$`aZtvlEAZWvD_^mBZz~%eBBma%6bv-8!6Sot`VYJo;+e64BW|c+tN$i)2D{pqCB2HaBQJKs z3pG~T)iTAjGSlbUx=&e{f*G>}BDq%XNF#tGqJUg2)gqc;M7+!dO1nLA@6aaVbO!E# zVPw2}IhdG6^PrM9Y77>%&H~BBT?yIToG2Q2nwprb17qkRqZgTK5og8~WE6rukllP? zlRq#D%``JP1iKQ@S&=O4v21PMGYLtQL=sf|0vc?LMK~QvcyG19QgXxE?Q8ri3PmR_ zRIELWwl9nP;NV23_(R{TCpXLg`Wi#T8R;ai{)nOiW}!{RYKSd z1nHsv68%7EL@vzgK1wf>-{%=xj(*T=pICZ#PGcodtAgBt?PJdX>PEW4SnBhLm$^~h zJb*+Drwwx-W0R)q&GRbWY@mIAjDRfJq8>C&Tv)qgZcJKFM+wc)5uL z=#&(b87xsy@H>t3I7BI#`T+m+5koFpi@h!5-TmFVq+397?+0=49*WMKl44%A1o|HTc<(5ti#{=?_o|=Q z#X@+(Nvls|a}Ue-DLvGxR=*NII_I#W;=WZw_@z)l6*2!g#pHAVm)#K-pU=BCAtvOn z<6XqR8BvJg|AdP@Ux&uS#GVeq{}5)*GczCi$Xc3j9XmW*ofatLms ztqb=lM!xScmGu1vveR6w6GDx5?_GvnKw-iYA;3`MuZXO5aI3T1y>d`=qxI@!-B&N( zPm1&05i8lE3q%`h(?b0yRGB-OF7`Sb?rN2MQWH}=={pG9u*Qf~^WyR39;zz0DtoV0 zx*0LDnNDbfspJTuVyRGAf@@*>pS8V~p8t-1Z(maZ7-x#gu>G39F6_?n71S~N*wvZR zRVtV?jg%3gUg@-{`AWyuuzqpTCqR|`IGJ{ltG+p95c3iL-UJ(FJ7tfX91aS98x6rz z6}Oe)qIZ)N;;kg6-}VySjpUI)2ZDOp!dUU;6zDC_JBv_kqTdEIu4)A{va6FtaEj}e z0GEKusFd73ft$n*d|USRl~>(V1;F0Wkb+TwKr{jjhtscyj&onuRDa-y1==R41LFhK zIb+8(lK!Z6#nDV+(8)nlGwb$Y(l#M#ga~kY;a zpN=~X_ltB5=&qqe5<}(}%aV_OeCGMr`K{p1Qx8237ee#Zz@?cew>>ljd&2qfNWQBx z#s~g5uDD`l{uaCDq2azc%`}kZ{m`PzY~+bT>s_)A!mFhaIN1DVO4!AIztUedGiwCK zL*v~7Kfdyg-ViKANdM@KLIMU&k1I2zgbgDKy+k%7>-uKIFt;PhIxW)YbgGQ?=1&ga z&rc}P7k)c@)D&@=UTJ6Q4SjBAsa4PIc_u|4qV+Ch%x=s!%pmaw!5EQ~&lInx8HA7m zXqQ@p*N3HXI7Wv2Ch`YW{#FHoh;jk)9KodQwJp*Op{?7~W8Mn`n7|1Q7 z18xYA&1E#uI_eOAZju0?m_~3(%OZpG89!it-dVI!7bc8xfy^d#%HCO<2A%iiEItXvo(L>9>6gE3?i9UjJG>oGCNqcrHeQ@fC<@2Zg_2o# zUBJYy_1-<3^dj`d_p4eM*X@}={ zBsK+YbFF7?Cv$Gse>&K;7_?1M2e{1NuxYe<_-m(%R1jO#*3aCJP+ZexBa6@3@`ygW z?PE{+->v?NOfi%YT1$O5J&Bz{01;ca?+^m@V;`42CwKZ#SQ}P*2R~&Q5=crdIAt#V z)qfg`{30)(_49_%@6O|Jj;}@ZM#V%Kdi2#Gg|(+Sd!+*|XHr)m{4R(@`s^@d$fJUw zu<%W8dOh|#s*#%Q=^BjtS*Vq*VmmwUw#=b0n>QAdcg?)zgO}Y;Oewo@R4Q!*^aEOP zutB{i>BGgGVJO4!mO+vji5u8nGqm%6-K6&)u6yM&Pd?SI^k$Q} z+TVPPN&#Ba4_R4H+02Tb>8INyDvEMx@>HyPP8Go9c8*$Yj3112hB&5CKuQ>{Rh~Be z6H-C=XIXS40CzZ&Y5Wc|<~f@m5`?r^<+Iv$!XN9&{HJk44#9BN%1H)y5(et%Z`Dz} zY%UmNoVo^|1@aAXGLqH6!LJ0E_g(}>i$+>UeoqV@CWo8G9N#5}@V?3t)SHR|mA8AGB?4_zz*i$; zDhx`HHv8@nX5~$%ncGKL)od8W-;E>bm6IXbWY!H;6hIBkmP2$GkqU^(+c@zrK6t$Y zLYF|gbbZN4a`7Z*_q5bnk12`kZQ?4a;?ylE#-0`)sJAeRK zF!nvu2v(bhAd}WR*fc+)@Et!*O&=X61Yx|lHt;kjmMLx$v^~zG`drZI^Gz!d5Nk!% zBMe69Sh>a{i~#Zwo%Te|&`+hA7y$8taM=U{BRR64Q*|7K=`4-98TbG4?-wtQAblZ5 zFWk319bJCbR>ZTvV3zU>F@jDtoLp-f{+YCLwXK6%nw~CZCzU-C9C*cg3-eF7rey~t zS(%!%f;`Do7;DFFhL;O>Z%?1zD~A^@L#TP9YOB-TmgQOPsCqS1LMsc^G4?{w(b6}n zB>X#u_kcLJK@%^nzpcQ~C4|rAWNh^4s@ur$o8Ni0zUOJ?#7@(<3atCA%eA(DD@SP* zPe~e3>R>?ZcJuh>Cly==Lq&8d#AvHtY6Y1-Ps!;f?}Y`4+sSZf06GPoh6P>7rG6L_ zaYyq^B!FIz)gg59gFj;BPtOhGn^8XA?cdMhMN}_ZyDJQ5e#6=y&K$ZSA&V5x3y$!4 zDS;2y*TU;TOLf-E*g4DRU?wC=FcS#9pK*j6u<)g!hpUoSYJxa=bGhwDEG~e4xG#RE zGqf2aMy%jyMf`_16YhQ}*RD_Ze?NFrs*D7R7i2k^SS1N&lhN&WWH*A+&^%{p%mm@( zJYPa)%hdo{`_;CKQTKv9dQ0tZpCn{CX|6Sj=yo{PXantSHY@6DsO~Y}RiTTsijja> z7i!`Pse%DN)F>0Qw-gZZXY_zE?ooG`eJ}T-{r2y3s42f?6~mc25~Yx3#10WqG0&EF zM2HO##$cJGh5OuDZ3lNt0%p1tk`~WX4WT<38{J!N6TqCu!oL4KVXSWW)(29>VTMY( z!FS8v0Q8}`YEnzt$W?R=A5sqJ4?IL-nVmbQ*V zdEf#E#dv4CZpG5y@xox8M!M!goGC-F&_ZeQ+i$ywq_63a0@t5lrGQ{*mz3!Wo5pgMWbDgBYCRUmn^8qpFV^i&bJn;_ZZZE)zl?SUl{TTm}s0;op|7eLI;D zud_`L^#S8(`xE!b;KW z)2lx6*GP%X$Jk;ei7W-09QuvgwU`lHjGZJ~PVs$HZ5*Nx_b+!H36PNbLeeWH7w_@1 z*-{66)()>l=qyIa`k<5iq}A%}tXP@vIY$!TDtnf&BAf+gm~ar@FZeRg-cBCUb0GZG|Hq{ z21ftQe{v>{EHdqn5>RvPnS2+-U!h=XXU%S4cv|V3Bo)pAY1ezb`|-Elye7GDX(qDx z$fa5Qw=iIEoeAB%Vr&f$FC76zn8_j!=89FQ{#Qux-;~wk>L`W;qIi)vu|gw>xUt0d z(shMNEKT;Ca-c_1g1c=7L^F^242#OL1ko$NKyVrBkALwW)A|A8{Fe4z#foZiJMell zV)s@f1&S^OIfF}hcY5U2Zfm=t5C1{kuZYAdlITHroNdfV+;pA}nlU3B^YMZNlh{xNa2{rJ! zyF8agHh=zsU{*R6K<+#-@FU&^5VYW2wT1BcQ_Ef7uggOVMiKg%RvrsToC!YvrG_=h z3f%DL>3FchIbV`0fNqx z*Zk8w3rp7#jpTLka{r`XNzV;N_g8X%v}-K4r-kNo>YkYZ2#^16p`VQKDO8K|0ER(n zRUvZ!_)*Z=9o-%B(<>ddl%;vY zy3hG|3A0Lveg5F8hyO_{kP=JrEaTkp%!M$_j>C0!WoV1TFn!Y8R0!Io;`0V<%4A#l!#tJ;Y?z67PjGmm&{2x2q zefMuC{8c^2gl~6u>8K>F(rXE~a5N}o2+@SaIsL*44JPj`LaB?K@U~J*jAoB+< zV(li!ob&}s7Ad9N{VKdRZjGj55nC>R@=X8$J-uXjl@K@0$>DDm@lE)R?@H^e?=6qb ze)>hAT^A1Mf1c*IQZTnkw|o^f2205@OwlKPTQ>YZvWp3K|0LtfFDlA!j>2`=!kwk0 zbcWevRPlnVskCG1ojNRctv|WwJO9ukq*`=193c>JbwJ8&;RsnS<^GjclDA=r;qbj< zm!E_xBW?D{@Z@?YN2kqAgLB&_<3fQK>+YM38~}wDBav2<|GgX!u7p`Osa1vSxQ51N znrhDPLWnkjV|KmfxsrV0-pB2-q;vp^>TfJ>etGxgU*t4AWI_|>KKO5qHLUgd#5EM9 z!qL0D=y?o^BMv=u$Xv!<9R5v+4W0{qk1e8M132lMa|PHn z@W%yIdDTj2v)qVZe{-@wN_nX(7bA~p6d1Q7lWADaJ8F-`El4EF7r}6GHnG_MDORDV zd}6+a(@qgKsCCT&JuyFyY(Dtsqda(o=!~}A&cudB;EjpWo~d&uS5`W^Wh|(~^#;V5 zVRrWX=(r-t??oaI*pdF77Q3}Q9v5Y1&P5u_;|QciXvq`VsCP{>#6?r-6!?v<`mH#;gI)A7E45urg7%9y|HI%5y0k zfkY{{K`W;ysa4EOt2OMFKc({Nvll_1?0gc4i^6+^!hf>kS-{9(sqv$*Ad~b9sfe8X z-R+Zd_xrbEB>2eURU=3KHl+R9f@BfGJ95tdYKIvz?4lH%L)VKDq>zUCkDDKI1=-7I zBW0pf=(EeN4Ot1sUv7&QXZcQipLLu!ZtygAOV%MJOH7_ScYZz49G11AYQBFpIZ-_6?7ve{&i zu%aeGLXwoS>T)Qw5!Do7sOK96j}_1Ul6E;th!OJloJh+Qy`y-U--g1_SkCWCJn7N~ zQI}De^x%H}M2<|>5J}mtexlNnVWI>zY1Oil;rRpcs70ZAbAWifxmEhB019b1ZDhPU zq*mRNN@CSG9$CCi-xDXRBRh&C`#(uHK_GVoB%I=z=hM;clgHOR(JB!_Hlzi);Tg0K ziIC1T{q%goRmx^6Bs09r?GCE{PfN0ZU z=S!H_AEj)B;klqq%H_hkVdDO%u?`vAJgdk%9)Mo_&qUtI1xLo63`rQTq&Sg#LOVI& zAFi=5mn1%Zo=RajdT2iQ%YyriZUTf!Gm$kqb!(lURwwjYKPH4pHz2%U;I$m*G#=d- zJaPWRGD!qjQ$VHm+Zhrq*SNXpE~-wy=w0l`cCnt8ftzhce+t0nr4wh_RPQT90f+P+ zB9+UuwM3XxxAN2wH-ZERC}D!h(EHzR3{P#ytlk?FpmcHv$Nny{5aHRJcKhJ^0SqZ; zG19ZC+aaf{{JCUf)zO0@*7&j|K|bPPo6vFA)1Aa;E#%wwp=VBa$-eZ#%b=XWIJr8|-{s)oVlJpOku)3tyKhK-p4`w|#F8;z~MSNlLQH~X_h4#%yNeck7u<$(9 ziF{l-+~T9yrMUjS(k*AJqEO}Q9#03mx}R4253M(5dqoVfD}b-_%q+?g$uZSWs>L&4 zvFE$d5c!BL6-fvEMs-ndYPp2s`Gb{~gq7y;Zk6>^REar?sx@&ZeW=xpJCCB}Q#PN6 zm_x%knn#UaWdgnO;RReN#^7hOkRIt*Sa)I4t9awiyi)<6Wp`WjueXabYrkxS+!S52 z_zGj5uKYc9g;4=T`ahh_jqTZGv{8XpxD~8@9ZzoGnv0$fIoi4U@;z-;4kh#6ekP*2E>QydmFB-z>ZaV zhz-lilMwnE>nThEn<`3t+c@^}0l-a$DeHqD@=RX&-deZU>EmjOGKA(ZaB$kyy!s~N z#VP;Kiil5z=bhrL^S(@sJ^SwxYZvcA6{tpZ&NujDNe8D`<1^|gybxer9R&=)Tg$4v z&++?=`NipNuY3Gli6Jv$*>|v5@zzt#HvV;gPh~XJr0&QHSlq{Y-E*qa3&Wx5Qb%VB zj@szuG;Du6m6{S*LT24D?tCMa9-TnsG4GUqNT=bSAkG_F zs7G|I9)-XiY-N@b(b85Exdz?&oOQpNGLS)^;t3K?NzWD`Uao8Cd6^OY8ez@HFa|=Z zSI-$!-stqJyb^WQOP)z<)}(so+y4C@3c8Sgsx~2P!Yb=3 zhhi2N)n^peq(Og9$H)5SFaQM+ngV`#>JEo1!F^P#Mdq6>A;!XSu0yFSR?sbsMhL&@ zzX$Jg&J58$9y)cLM}TVe!-sx)6yvDua+(nyW2)>fN!Daec2RQ0S?>z=pK#5k+E*6^`gMe)q$c9o!)p}9KudfR2{KIG$>;J8wZ%brW&)j(INw~d@ zxL};5F)}iE9IJG!HhbQ*T#cHR?)v+L=&)`5xr%Nju-lska_Q!w7=iAjS5Vb@4Uk`q znSOWl_`x-o<}>-c4*O=#lhY1v(xZ zy)dW z23kRwio87d0KAZGfmZ?UtIK@{IbRjtXg};%ZSLdMDKaY5( zO$|l1z;*un!UyH0&(GkLL##JXhmkQ}c#ev%VneOAlS9@yNiQFU!Kj^K$aPb+CAc^t zcc4vyyh~J(1FLJ?6j16WE8)`$e;eGsMtBbhD%&;EoBCy1k0*FZJ>K0oQ!&u=P# z2-4z!Z1~!BU!FR)-rnSB35YNTBKY8Ilk+@DKP7yesxP*7vQ}RN4Rn8J7!Q&Psnc@N zaseCz;#49^-wkpXS`DAUJSRuy=Tn3KI)5W!dB}uNV5UKYRL`i$>*Bu>bx6g20|z8cyr~DQXoZJ2WQ~CZaFb@UX7;JS)*C zFCl%;h9X&IwFrUR@}<(=xz0x zP$1y%`y$I11O|Vpy~f0lFxZnfu80OK#bF3$F&Llj#K9HYMU`(X5TA149z*boC zqoS+$bOvh}(Rj2cJr>F+_lZyveQ3a-2nSSQrwZCF^~3X`i|T{@XQ1&Wo7dQXug~{& zb$#z6kKD?MGoWDKs|CVCuMUd{mQCO%y(}mxMK|#;?v+zxQO!fIWB?8q7w$I4Gx#X( z_#q8unL5A5)7! z3eQ3^#!XkX=$GzD;t>tyO|?^ds>O^GSAY6e;)LN$q?Db>5>!N8DZ!7A+|#7x@Aqjv zzU%iokNU!O9|U&NH^hCZ=Uw&Y*B0JDZFGEo$>aiT(+W%Rit%**?Qp1&BmgM!G{js~ z>oQ|qp4K(WtQUv#sI{BxUhCt8?$>-8T#VBvDA%rvj0BeL2*U-_0#j;r-Ic;v{%x_ zUXNzg0&C5vAjfnI)yfQW=$BHVarqK6xPi{z-!{ebwx`e1xv3p|vNSE~tU01W6?;6} zdP@Gr&s{c7wks~4jsLt@8=RrcCT`4 zR^g&#_&*9t=297LwLc#8seM1u9CY#27lsF`?I(gWj-}zVNpm|nRa;&rsoEOEgvVPa z3I@I|hgDtxypbAN4y4nbU8&8_r6ttCiE0H_p_B8=OrE1Fi;&aAlIgh8p88yMv z)d8WrpLUdkB|;zbVv8k`zx-ZVN*76uS+60 zjopzHKg8wcY!eT2OF2ua28#(NqRc*p1x_4V`KLX!xS~8*l?YZ89(3P?<%w5kCYSJI zhRrjmEjSfyHz7{g>O(cGtsX*sw4_)!75(I%-{_@virU-{LccgHZJobY-am5JyIi`* z0#R|>!PvHgR=_QET%YI*Gr=J)%`P2lgR45N^FvG>bumg7Djc;&BmJ-x%;JkTUAnqF`6WC_d}=$X5CxPsL*ep&~) z>RQJaJINA%C@EaW(?@ia(4wQ{nhE)4-ii7|r^*}?9DO7_7>K?id7lXs-96_78X5^- z9R~}tqvzs*YxUU-y-nB4DWJ*Fr3#aDK@*mu!6UTSAGCu_doEusB0CZQ}H;s@L1NGALMuXSbBJ_K$rJ3y%Bvao9w`n7@JfF{o$1L$xMclcs2whm6KIxf4k zzYl;DTbDim_U8{TX<;&?gM;^FHHUR+ciCbCXYo%3sQ9QfWaVyA27$SJ6|OKNxeDJz zo7L47|EM31CnX6f0iaGiqjb9{gpaQk}?D{JTm zMQYLVm(e>2>w_F1Cnc@{`3+PnniW!&XBbbJrTc>YY5mj-+nT({fXXh9{IoV0oB)!> zM6p#UT!u=$Trx)RQYW2whXw$wn^8dx7q_W|f^35O-6h~5M2aEQ>l7wr+n)C_`4Z6E zao(AeGz18!U-iCLSz^1u=JdC09Jzq^D$2q%y=~cSQw&67Qti06qJXXfVW?@P74%TN z<6&RC379jtC1>1Gyju!xdl5KVog3X&byuVOXRx`ys!_c-^s=y1?i5hk|_%k7@$;@OH zC;fEDa++MW6WBU)qG7<9!Rn5`P!;Wx;btaCwwyz0G=G)>|`-hZBPhm)5R&i;Y@2h(mjZ=5gdX*x=STmVe5%w&v;{nsS_Hq8| z73Yb=3Psd%reyqT9gY=-b?d__?Ts>P5NK_!AL&+CMe(RQ=E)RDD%CRN1aI>jsi=wI zLq7&?h&rVtKi6#wy*ILEO>vb&HrAE`@1E$_%A@vzpTo+1;guPeML(_s zF#*(?;rcq=K0a61FYT8Y48`coD1k164KXfhck+vs3+KpblMxJ=0}BmJAOf@30bxd^ zqyk>Wc~`nPzlNAhXoDCw{P{03|QhbG=pAePd}FLG*RKLC1YqThC+>}nyaL#m@(V)4gc!v?nDABLzq$Fl1Nf5BsRc$`x{3PMUIWbbG{aB14L^;7T~ zpABpx2Arsi!qKxaDn**Dl7&Ls1p8G)ZPyssZ6n4i}U75 z3-ocX4(?8$vZ4yW?>=%O?_v!WQo-(|ywUFjs6S?J3LiASp38pW&P-Zb_(qDtc{vL` z!IogM|5S_g0*ME@hMV{rldW$m!gsBe{as9Z?x{49bJ@86CuC|fFqZA z2o((dD$F_^E0F@GoTol*x!s3T(X7e#8Lu)0t6}&ke^*KJjiQEv{8O*zg0!omK!e;^ z{hke=mecmMfPXyOoo`G-xR>ff&LN8#MT5t>nwl8oV!sJoSPfWG#mRq88@K-!@K~jj577U+-oElh!&lH`5%F{1naiSj{7uJ5 z2$5ux_I~bk7zR4Go27-Y3!NdO7m=IjfvscYSda?s=`Ndc-R)BVLP(tQP=T{RaJ!~M zY`5tkk_r|+!(XD8p`;Lnl@la6l4W}A^_u3RD%L-*+c-)X06=~9n8#*i_qA}Nj)o#K zMUx$WL-~3F@bM+sl~0u?nWLGVfqrsXpD6PeEa2i(u01M%G6F|BLE_3E&t14jtwLTA z>yQ9o4h~~kr%y(Qj;=Eb)NIt+a$o5tV}9R$yZ3mf>GqQh zdxtV~{mG{4x{)qCwZoRt)ANB!`dtYb;9mD4#f%_!!(!6rOLTqFEVg_KFSBey971Y@bMRk++dxV1D62YodBI_mnGm`c-ZnkB_R46(UKS--?1TC#3(u$c-~ z3K$ckWDnOWmNbG{xKbl2ZY$XSrC{V&o)S(@>c=d3PLCC_pe~=+(4UdW$sE(Cky*9G z>eF^S|JS7TWb;S+(_nj6Wn_nLZl9+ydMG3c*g))InlUOl7wQ55EcKG2;l#nJ(sN)4 z0}Xu)0Bcj}B6LQr17l;Si7TzN}gDSJ6IvP%l+= zQmK&{5X~Jd zO#J8+@19|KqFt$+{MX$F8pNTu7Nf+RyXW;HEMNf0Fr%xsM|SNj?X@boLYld`PncIX zCzL|h9Pj{ur>)mh&WBnx@0jR&1iGL%G^7OwvSqSawW&ub;h@Gqezn6(Eg;)yOVC9n zhb6B#pQFcSHNIgD!H?0cCmCe1UJMgqH|T!-az2)oS&1L|!(*f@*u|qKc_{j6D44w^ zil#%Sl2}w%)W^QtFz@5XM^r6|bC+OZ8GX#H0V}VBY=J60Hqz@E!R5~W)E^iJ3w~Yw zi?1(S=hZNp<~>aPkobG*fi06sM{|_t+U2A6;UVPRVpE{O=Upho?e~l5{)T{`v>5zc z8DwQJt^pinh6ilUsNk!!eNIDSwT~$phNm!3qz*xsCg`Y+Cb*^k|4#%BHS0D37sFlX ztLFxZpI5@U1M&s*b9X=cgqlYQ&Tu_@(ma+L7fW(*lYj&Xtf3=tXcb{f^2K7hm0^;{ zsg70^!?24rjN(!Sly}mJXA3xPQ5@5r#J$L)l>v%!8c5O!R$>(sF4rJvGpEd-d{g`~ zK(Ti?SPg!0vCWIz6C~`sNJ=Ac z7l5`6W9JX%Rw@@DM7`P|;#0VFrm~_9={IQa2VL<+@=ke2{5{r2_EZ3MYGCiqd6Wjc z<26&sAn$`jd_p3JBk?fCmuzATP>t}vy!XLeCdGxdI!GL0Rgy=0VvFV0i<8w8w@Cxg z!AKy}DOhN0MZ$J*dQDZo}p8DSdMoP!dB%zNQyORD~?6f;#mRNPg?r;J zp+YT>;q0Wg;HWGLN#1%aZ+%RXC8j@hC(yM2p%pUB$gMGGhe+&mzE^`}&Bo*&N>n(J zk%&Vew#oeV+Qw`V8J1=P9w^l>ex}Qs9>A}7HD)Wkv zn$^-|Sq6e#W)$62%=Lm~#z+qL8ewcmHeWfL`B&(`?ZNx_$Fcbj-+*}}=_>xVG#W&T z{fG#OuG~YfpWT}x9u=GcJtK$+sITZ(0|E;@{1mAOP(KdzkN;3NHBM4>INB@dzxLl{ z;JOpD(&*esbeMl`Rjh(|SV(?_F4r9!bRiLtf`NtzwM8~npKIV88cVIFB9#e9kwN{3 zjALtE0nsyr-FN~Ds7hUe-nn3Kuc)s|2o&G>#mw<7lg;nzKEILv!TMs>6gzE8)!Kz@ zt4aU&aI?jRirU8CR^VqL#%0+IO`vpUD*X5CbTzLjeI^vM5X4!x-ZoheZ1=psfZj67 zSWkQ)1z#U981NUseD}DY=c$@YQ7~r`aFu0L-{xae!RWeCy_gcE?J_MXSBw`0?#Z*q z2#W^?8{aTs{7FxrW7L$A-JXDRv4IDKTbwSon;tE=hS%P|1UowU7k_IXj>XGNvbDAC zeeU{qaE~f>f?IjWx=7oa(f{qFQl-iu)CQ+g6F@%6;NmQh-ji2TE9K#El_K5gw7DZ> zg?4clMyir@oc9WLv+>p#5&%jpoF1(jqCJ1^3}oxE@)!*=Y3K~cmS$vx&kv*F>Ss)G z?)4BYp(cNtn8yKTSNC{LI@k zf#3(AE`f~)LOFhhlERK)Ca9>|so-=k#*F0h67E-mWcjfVydIi7Pqy0Ho{#A`A|R@t zya&;~Ye-^QaF!9v!SBWeyV-Vw1Ej(4ma-4Q5I$(~gXts%I+MVi2PmEy@ zzYN^6DEyG}cjdslb(n^lbx=+W;@e@DU>@h77+7(#m`GO|67~6yblb&N_33aYiv|u$ z5vT6Q9JRVq_dhXx{XTrGUUmugU0Kd}*fwbb>R6`6GjL730NhWK1Pl6cogS*fE5J1y zCI$I|BIS}n61XxGuDbkZx0t{w*i3$sGqzrj{sc+-Xqy-m1S^&!kwO!3@~F|9kSvE8 z3h9e@Iv5AVRVO}oB^}vS2;r}W;QUNc%56k={v z;?Zp|Z6#DT{Obsi>=$YI_A+ohH@o|iN%8Nz*}v76J`%`@dw1QqIh-$))TIocvw;T# z_(?o>IWm(b=wq}ptb!8-DW;FCon6;;9iAbj*MUenH$UujNO@q8f@d2KR(R0m^$>WP`&|uJ(&TW+OuZ#2E z;=-G1>0mg2tC=pK(#+91rC0Do2SB$a71nPU#JZ5yGP`a0(Al+mVxIfUhX19XPUKS9 z<-7B4sk9-#!tHTzKdoxscKrLRZJADY%;Ok2P^U%MXMqJ9x*z+LB{6~-Sg5QI^!f!? zXRz$F`8q`}a*f_WayzDm0;5I2}UoyBdBxl&QT;5y?*<6?V0X*QT9DopS6|D6#AIv1?+X%H*^AJV$WJB zD2g@eQck$1+5)bfH!qLdX*p=2Xx_dXu8AD5M-^Jnv;qPd+x3at>H|30P=eWU!|E-B zk3BvT3HE6Du)tZsa` z@GrBko$@;X3x+R1>3UxLpKTq#otsrL+Yt@(222cVO%#o1HnKg-Vk&?pHS4r$K%(4; zY4x;C!UuG-&(pU;ka9v~TDBoIfy5kYa)-3f`e~%7@fJ|@s!0pKG=~s zE$zj4z&-V5Z|8?!<%4BEfBWJ}y8sjn;{n zti##O&EDP)T%o8L`8UIPQ@Im=-)F09jB6X*_XosvXYE6TwdZ$74+T(6J-`&3$2WVr zR}owmonE&^hs(E_%6p}$S%BoP^kS=wlfPj6{CZ>HTJv@}HFH?dqrh3juGa3_?7I_f zgCA*e93!V!dr@m%0w(;-0w3@yR{i<>@nU#4eK_uJa@Ot+%#>1wFaanRoj}RTXz`wT zb+TD?PKK!^V7}XyKDazgRezg8BgFfRJU`Zc?&wDIRaY_X07HT!)?Gu5H@wjL_&JR! z;2#^f?tEvz0r6AV&>Im$l3MDavRr#D{=*$LEzu8WbF=pPC97=N#KzZ6mMyl#-w1Uo zB+Kk>B%_BfgX_6gkrrm%vDkEFQ@D{aSY>);Q_TMV4F4U==sSc{D$MVPx_b2ne3j)U zO0wB@QnI`Kv%=P`$*j+Wt2wNRTr!*Yr7eh^GQ@wpU)x~0?P}wan~qkS^=szKKdQ^M zvXlI%`NOVp6Le22&iyViAOla<%r|H;fh*5cm!Y>oi{C4inpe9N=b*9K0xf0)TfM_g zl15cVMMa@$fFTxkC}z;DkV+z~*$t8%)0Z?5`k;jDiv>d)72bl-G?Xgwa5Cf84YK=0 z`ZXLIBsI2-EUhW7IcVLYodp17v8z?mC+Aat7m@_Fc`3J_?;SMzUeu0)?)!+MU3SpY zUSIzI1WgxXKW4VMpj)9syC`=}{KOf7Bw5(E>o<8|N64KfuTfqnucN1OBqE3w= zwqCOxL2&;I^RB&VYde@UOJppV;?hmFpgOZ9bEu*aiWW%irXa;TnNehV429AzyC~I) zQyE6lhT$o^0Ua@6o^`W?kZ!dr)L3fCAw8akcNJB?vJNxNBO#rQbHZJw#fcKU@~~7_ zO_*F-MqoC2%-Oq&JerS(`j$UGrG;x^$KMgqF>k1_r1g}K_jzKJ`I9}-@6Zv_s4#3N z=AGdKAqb`%={^PUJ10?%{$gBqyrG&3k2PgH#pmAgborxiDeX9{Phy9y=V5qp22XC` zHq5_X9_ox)Yn%M}nBptl55{h!%01=pxdIMX*?V4)HN6L#j#4aAfsGW>XTcgrzy0kW zu}lQxyQ<%I`4IuX@zX%6@_DLJXU-)Y>}{L6RwntD48_DeV`BAx2Mytbl!8LNT%OCF z9t!p7jpc8JuuO+=VL4W1UQE8StxR$tXJx;qB<*-qnu;eZ=2`4yW1W@gdmgUGipd z*cxq&0WdPN9AtuMqPbY4M^&H0b;VssfV2pwz4HFqFoAluFL-vO+(Nz88dst81-dFK z`YB8t=wz_$wsA6np;r+wDE<0G7JZ(JMT!OD&LKQ7^GK1|oI?xv6kdwaU)(Oof(!_^ z$8Q#JLy|99>wMlAnk`~=?J#uF(9Gd;ub#19n{Rw1#M%(;W+nZ@@A%5VgVM#m`0oO3 zoKBf!3D^u_4|}Fs0inJ)IsBf}VE@$kVD8-=-uHmeL*)CU`!;!*^P=+cqqc{mbw(1_ ztQxGBx(^!D#t+h~gQN&9KkafwB@WDRA6gJ3#*(sxpyLKd$lb_4D8M58$;l;*DRZK62SPM_P-2aUbSe+LbJhQnfD8BUXX6Ni zRWc?yJQnnmA$CY^AxLwP>n-A!LQbPG-(GlmX4ow@#Xw&?P?^n=T+`ri60u%@6`wQG zLZ1yYEPl}YFZ(bYfN{VwL?yR0RaBMxQwicl6KH&rraUq;?UWfQWt;qU52oa+=CqOW z<>p_n*bPdl?}oKD&E6neFmM zp|=l<@|ZO24u5H(X(Jr~Y2iSm@R{&m#a6KU1DQdh>Q`FmXd%73elaU?s)V z!9+u5aAy1B2bWS(?}k3awjEy@X+br<9d!FUO%4UH;4UVQ3qLfFj7_PlFMRbg?@KY_ zd9_Jlyp0l*cEdd+rXoW$bKVOJAWcmdwPw3-QC%-+fw{8wIE;)%B-lXWQVMon%}KA! z7S0P5cRaT7u;V^+FJcvyyZA%yH3TghYqso{F4g9JTlLcO`eSd6Y}P+k@QW;hoL6mV zFnSSsQm4)&v*3fbRxW*IjVDX0S}q{TPe;+`-H| zM@_Wqeb%Yi{nQf^`m@rs|92{9dJpTzLjaicB`g_VfUOiv+~ZiUQ&*QG*z@l~u!`(` zGyK(0u6&{CXJO_3SVGTx+`L0qSBJte6nUko#yB7z)h~p-Z^g(k1wmXc1aEkjS5kq^qa}*S;lE zFQ~1F3`xm{7p}0~IlcF$J5c;r95m9#Zq4WW+=mYpy*Hbwo-?xkzy!ZIE*vt?P{2(VijBgnP;)EQ0grKos7e6M|w6&5JQeFNZ*^#2-H-CR5qweP& zAfQ~IJnTvFe0-YUQjucszWkygCWMh-{0GeC?xPQHU6$y-)lpNgG-5mX3jM0KW)-?U=e81X;W9m80iu&Z-HXRvlYb}hdM#Vav za$43Ti%Ia2NdyH$9zE2;v8y0i*P&jj)A8hmx58dqsuduxWPuw;0oUdfBhXR z{KE{b_hJHBa^7&e?vyPM|s!ejT| z=2kV)yx-xw3l^%7ZT^3~07CvvC5esI8tf{$;`os0{MFek-BhHj7x=z^i&K+(%7}y3 zWeDFa+f5JC1Omr%zDwuiPl3^kfoW-h1^gikf=w9s?NJr^{u)k=NcJa2EA=NN4_kh2 zois1pTAo=7)8Kk7zx^UgNb?6Ou(C471y9o;NiG}hN5Lf;?g7Wg(ou+6SV>xy-ri|5 zZGSozlJ3xJfg&TYq&j~aV_NYR+_BeF^hK6G^>es#K5(agNwKWdk4DcO`nIwhQTUVC z>Lp24I??kD%2i-##sf{zDqx}&YQ06-s0|78edgj{UclanBnzu#_8G&|SV8g<9j(Hmp4&q?zsp_kWdPN|rSA5FgKz~HJjem~Nk0$?YIoGFHyCWP zNvqXhHLQO$f_A#Ju7#hmLjUuj5jzRxPFHi_m^8own5 z^s#ZEyzRe;td~Lokb3#?g1hl(z=_@85H*1e5brhn5X$bl|7z@03;TahJ2!X=2C~o; zO!=zj_M0NnW2MQ4X%X}q?#9MUq|u7P9zGT-B@Ni$I?UwDilL0j!bpwzx`p4lkfgcq zFcG26chJ}i`0kSIvuwkzo-0fDqoHU)vjam*=$fIXaL`7y?9c#Mt_bTAnm>EA{5A{tJpAIvexn$BV zvRa}cV{e$yw&iZsa)~3p%;6W*$$nh7)A1!=uNq+ByAN}@Y2xr}YVPiSJtj+f^6_T# zEcGAL!t2OtJ8Y3uHkf$7o2FCFgRF4i#r^UvCXwIcD;=?8%>r1c>RUGMod=^kyXvCrhGhKwMlw2;2C64%nQ zYc%6%vqr`rT4nL8fH{wM3K%-sSz;t#;T1|YL%=?JV56>k=3>*0wM&iPf387MT8*(x zdA(7lIGGY@zQE(q<5DbF7fC4;1u121pVuji3Y!CnDgvY2SW-4j!8NGF$S zTumtpK{5n=*%c$yS~Q6E_PKYi5Fqw40pp30Qgk;|Je#edoMYSh)_5>6ac~GM$f4~| z1}(ewx*;#>-R~X$>QHvAf*|+AW{#QP9*kbd-Zt%(1>0Fsf-$2!9LK6G3rAv_a`RyIT11O*$+p9OzD#%~T zYJI;q>YEm6;>pG;2V-cKRO+=kO4l1~%uF6rjj*xPEKRUiR%&RTMO35}9hpc(J0k)( z;`M6mvxSnHmavtqkRQ*@=uQt=b(eU{zAb2BOD8~>XAO|n!8+>pB|^D!e3n)p-Kl7< z05HTOjh&!5#Xl6no_aXJ_OOj7YB{l-`CsMVfiQF^M6-5iP{RAL<@ws7gWoEwYM|dQ zRM0L8L?6kluA#YnKR~pXo~Q?d45bUP!_^pWP3Yjv*YMjQ4JGeyuT=tJ-~*x1B@}@P zw428H8d)Kni)_@;6Zp^oL^h-(3ltRf%9C<2BnL&@Q%)T;TPO7&n z%p=KD8po&IUG$UL*O9lw16eUjhv(v6EtL`=FAMz}=Tj)@q2iyDJ0vOpi1T2#W%n|fU$UaNXtz+GPh^%+skp6(|D{3oE_TdIHoD8 zEcF*GH}ER5&d{rS@ecv;J3kG@8xXIN)m2jReC(o6#Snckpy9HkhQn70FP=|ZAdxbO z$cP-|JCpPzK3A2OM@*qh&(JTv=71bxp34bXIvrhH+-z3y8CKSsGGff_GS+59YaQo0 zxB0{%?|aNBG4mMK9Wpv^MW_xzb;ih8DH6B-BB|8gDpnBL418FtD!&b?f9uIo}=X>%yVm2W6%G4E(S z%Ki1IEHx}O@#Bf>V@GO2QRZ=Cpljozg=M^fIWaJ`nCYl*ei~X-8%?+ z6OlD8i1&)m7#X|GKJ+t`y!y_iTFhPp-k(8*22XC$;?+@Ge@t zxi-E62g1DO1ux!D<}ZEgejGQ_&Wt(zzV&e?dXkcVvVs~kRThAiEub i)RhyJj<~ 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%0D}$Bq_u6$P@j=t?M0la`1mnmro{a@*WA>yK259G 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

Vmk{M;dQrmR^OwdGLR>4EP*3KZ27$p$$xs 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 collection_type_id.MULTI ) + + +cdef geometry_type_id geometry_type_py_to_c(typ : GeometryType): + return ( (typ.value)) + +cdef collection_type_id collection_type_py_to_c(typ : CollectionType): + return ( (typ.value)) diff --git a/python/cuspatial/cuspatial/core/binpreds/binpreds.py b/python/cuspatial/cuspatial/core/binpreds/binpreds.py index b5d4e6ba1..3e6c1654e 100644 --- a/python/cuspatial/cuspatial/core/binpreds/binpreds.py +++ b/python/cuspatial/cuspatial/core/binpreds/binpreds.py @@ -6,17 +6,40 @@ import cudf +import cuspatial from cuspatial.core._column.geocolumn import GeoColumn from cuspatial.core.binpreds.contains import contains_properly from cuspatial.utils.column_utils import ( contains_only_linestrings, contains_only_multipoints, + contains_only_points, contains_only_polygons, has_multipolygons, has_same_geometry, ) +class PreprocessorOutput: + """The output of the preprocess method of a binary predicate. + + This makes it possible to create a class that matches the necessary + signature of a geoseries.GeoColumnAccessor object. In some cases the + preprocessor may need to reorder the input data, in which case the + preprocessor will return a PreprocessorOutput object instead of a + GeoColumnAccessor.""" + + def __init__(self, coords, indices) -> None: + self.vertices = coords + self.indices = indices + + @property + def xy(self): + return self.vertices + + def point_indices(self): + return self.indices + + class BinaryPredicate(ABC): """BinaryPredicate is an abstract class that implements the binary predicate algorithm. The binary predicate algorithm is used to compute @@ -58,10 +81,12 @@ def preprocess(self, lhs, rhs): The right-hand-side of the internal binary predicate, may be reordered. """ - pass + return (lhs, rhs, cudf.RangeIndex(len(rhs))) @abstractmethod - def postprocess(self, point_indices, point_result): + def postprocess( + self, point_indices: cudf.Series, point_result: cudf.Series + ) -> cudf.Series: """Postprocess the output data for the binary predicate. This method should be implemented by subclasses. @@ -134,6 +159,15 @@ def __init__(self, lhs, rhs, align=True): (self.lhs, self.rhs) = lhs.align(rhs) if align else (lhs, rhs) self.align = align + def _cancel_op(self, lhs, rhs, result): + """Used to disable computation of the binary predicate. + + This occurs when the binary predicate is not supported for the + input types, and a final result can be computed only using + `preprocess` and `postprocess`.""" + self._op = lambda x, y: result + return (lhs, rhs, result) + def __call__(self) -> cudf.Series: """Return the result of the binary predicate.""" # Type disambiguation @@ -178,9 +212,9 @@ def preprocess(self, lhs, rhs): # Arrange into shape for calling point-in-polygon, intersection, or # equals point_indices = geom.point_indices() - from cuspatial.core.geoseries import GeoSeries - - final_rhs = GeoSeries(GeoColumn._from_points_xy(xy_points._column)) + final_rhs = cuspatial.core.geoseries.GeoSeries( + GeoColumn._from_points_xy(xy_points._column) + ) return (lhs, final_rhs, cudf.Series(point_indices)) def _should_use_quadtree(self): @@ -391,14 +425,16 @@ def _postprocess_brute_force_result(self, point_indices, point_result): # Result can be: # A Dataframe of booleans with n_points rows and up to 31 columns. - # Discrete math recombination if ( contains_only_linestrings(self.rhs) or contains_only_polygons(self.rhs) or contains_only_multipoints(self.rhs) ): - # process for completed linestrings, polygons, and multipoints. - # Not necessary for points. + # Compute the set of results for each point-in-polygon predicate. + # Group them by the original index, and sum the results. If the + # sum of points in the rhs feature is equal to the number of + # points found in the polygon, then the polygon contains the + # feature. point_result["idx"] = point_indices group_result = ( point_result.groupby("idx").sum().sort_index() @@ -487,3 +523,260 @@ def preprocess(self, lhs, rhs): if contains_only_polygons(rhs): (self.lhs, self.rhs) = (rhs, lhs) return super().preprocess(rhs, lhs) + + def postprocess(self, point_indices, point_result): + """Postprocess the output GeoSeries to ensure that they are of the + correct type for the predicate.""" + (hits, expected_count,) = self._count_results_in_multipoint_geometries( + point_indices, point_result + ) + result_df = hits.reset_index().merge( + expected_count.reset_index(), on="rhs_index" + ) + result_df["feature_in_polygon"] = ( + result_df["point_index_x"] >= result_df["point_index_y"] + ) + final_result = cudf.Series( + [False] * (point_indices.max().item() + 1) + ) # point_indices is zero index + final_result.loc[ + result_df["rhs_index"][result_df["feature_in_polygon"]] + ] = True + return final_result + + +class EqualsBinpred(BinaryPredicate): + def _offset_equals(self, lhs, rhs): + """Compute the pairwise length equality of two offset arrays""" + lhs_lengths = lhs[:-1] - lhs[1:] + rhs_lengths = rhs[:-1] - rhs[1:] + return lhs_lengths == rhs_lengths + + def _sort_interleaved_points_by_offset(self, coords, offsets, sort_order): + """Sort xy according to bins defined by offset. Sort order is a list + of column names to sort by. + + `_sort_interleaved_points_by_offset` creates a dataframe with the + following columns: + "sizes": an index for each object represented in `coords`. + "points": an index for each point in `coords`. + "xy_key": an index that maintains x/y ordering. + "xy": the x/y coordinates in `coords`. + + The dataframe is sorted according to keys passed in by the caller. + For sorting multipoints, the keys in order are "object_key", "xy", + "xy_key". This sorts the points in each multipoint into the same + bin defined by "object_key", then sorts the points in each bin by + x/y coordinates, and finally sorts the points in each bin by the + `xy_key` which maintains that the x coordinate precedes the y + coordinate. + + For sorting linestrings, the keys in order are "object_key", + "point_key", "xy_key". This sorts the points in each linestring + into the same bin defined by "object_key", then sorts the points + in each bin by point ordering, and finally sorts the points in + each bin by x/y ordering. + + Parameters + ---------- + coords : cudf.Series + interleaved x,y coordinates + offsets : cudf.Series + offsets into coords + sort_order : list + list of column names to sort by. One of "object_key", "point_key", + "xy_key", and "xy". + + Returns + ------- + cudf.Series + sorted interleaved x,y coordinates + """ + sizes = offsets[1:] - offsets[:-1] + object_key = ( + cudf.Series(cp.arange(len(sizes))) + .repeat(sizes * 2) + .reset_index(drop=True) + ) + point_key = cp.arange(len(coords) // 2).repeat(2)[::-1] + xy_key = cp.tile([0, 1], len(coords) // 2) + sorting_df = cudf.DataFrame( + { + "object_key": object_key, + "point_key": point_key, + "xy_key": xy_key, + "xy": coords, + } + ) + sorted_df = sorting_df.sort_values(by=sort_order).reset_index( + drop=True + ) + return sorted_df["xy"] + + def _sort_multipoint_series(self, coords, offsets): + """Sort xy according to bins defined by offset""" + result = self._sort_interleaved_points_by_offset( + coords, offsets, ["object_key", "xy", "xy_key"] + ) + result.name = None + return result + + def _sort_multipoints(self, lhs, rhs, initial): + lhs_sorted = self._sort_multipoint_series( + lhs.multipoints.xy, lhs.multipoints.geometry_offset + ) + rhs_sorted = self._sort_multipoint_series( + rhs.multipoints.xy, rhs.multipoints.geometry_offset + ) + lhs_result = cuspatial.core.geoseries.GeoSeries.from_multipoints_xy( + lhs_sorted, lhs.multipoints.geometry_offset + ) + rhs_result = cuspatial.core.geoseries.GeoSeries.from_multipoints_xy( + rhs_sorted, rhs.multipoints.geometry_offset + ) + lhs_result.index = lhs.index + rhs_result.index = rhs.index + return ( + lhs_result, + rhs_result, + initial, + ) + + def _reverse_linestrings(self, coords, offsets): + """Reverse the order of coordinates in a Arrow buffer of coordinates + and offsets.""" + result = self._sort_interleaved_points_by_offset( + coords, offsets, ["object_key", "point_key", "xy_key"] + ) + result.name = None + return result + + def _compare_linestrings_and_reversed(self, lhs, rhs, initial): + """Compare linestrings with their reversed counterparts.""" + lhs_xy = self._reverse_linestrings(lhs.xy, lhs.part_offset) + rhs_xy = self._reverse_linestrings(rhs.xy, rhs.part_offset) + return ( + PreprocessorOutput(lhs_xy, lhs.point_indices()), + PreprocessorOutput(rhs_xy, rhs.point_indices()), + initial, + ) + + def preprocess(self, lhs, rhs): + # Compare types + type_compare = lhs.feature_types == rhs.feature_types + # Any unmatched type is not equal + if (type_compare == False).all(): # noqa: E712 + # Override _op so that it will not be run. + return self._cancel_op(lhs, rhs, type_compare) + # Get indices of matching types + if contains_only_multipoints(lhs): + lengths_equal = self._offset_equals( + lhs.multipoints.geometry_offset, + rhs.multipoints.geometry_offset, + ) + if lengths_equal.any(): + # Multipoints are equal if they contains the + # same unordered points. + return self._sort_multipoints( + lhs[lengths_equal], + rhs[lengths_equal], + lengths_equal, + ) + else: + # No lengths are equal, so none can be equal. + return self._cancel_op(lhs, rhs, lengths_equal) + elif contains_only_linestrings(lhs): + lengths_equal = self._offset_equals( + lhs.lines.part_offset, rhs.lines.part_offset + ) + if lengths_equal.any(): + return ( + lhs[lengths_equal], + rhs[lengths_equal], + lengths_equal, + ) + else: + return self._cancel_op(lhs, rhs, lengths_equal) + elif contains_only_polygons(lhs): + raise NotImplementedError + elif contains_only_points(lhs): + return (lhs, rhs, type_compare) + + def postprocess(self, lengths_equal, point_result): + # if point_result is not a Series, preprocessing terminated + # the results early. + if isinstance(point_result, cudf.Series): + point_result = point_result.sort_index() + lengths_equal[point_result.index] = point_result + return cudf.Series(lengths_equal) + + def _vertices_equals(self, lhs, rhs): + """Compute the equals relationship between interleaved xy + coordinate buffers.""" + length = min(len(lhs), len(rhs)) + a = lhs[:length:2]._column == rhs[:length:2]._column + b = rhs[1:length:2]._column == lhs[1:length:2]._column + return a & b + + def _op(self, lhs, rhs): + if contains_only_linestrings(lhs): + # Linestrings can be compared either forward or + # reversed. We need to compare both directions. + lhs_reversed = self._reverse_linestrings( + lhs.lines.xy, lhs.lines.part_offset + ) + forward_result = self._vertices_equals(lhs.lines.xy, rhs.lines.xy) + reverse_result = self._vertices_equals(lhs_reversed, rhs.lines.xy) + result = forward_result | reverse_result + elif contains_only_multipoints(lhs): + result = self._vertices_equals( + lhs.multipoints.xy, rhs.multipoints.xy + ) + elif contains_only_points(lhs): + result = self._vertices_equals(lhs.points.xy, rhs.points.xy) + elif contains_only_polygons(lhs): + raise NotImplementedError + indices = lhs.point_indices + result_df = cudf.DataFrame( + {"idx": indices[: len(result)], "equals": result} + ) + gb_idx = result_df.groupby("idx") + result = (gb_idx.sum().sort_index() == gb_idx.count().sort_index())[ + "equals" + ] + result.index = lhs.index + result.index.name = None + result.name = None + return result + + +class CrossesBinpred(EqualsBinpred): + """An object is said to cross other if its interior intersects the + interior of the other but does not contain it, and the dimension of + the intersection is less than the dimension of the one or the other. + + This is only implemented for `points.crosses(points)` at this time. + """ + + def postprocess(self, point_indices, point_result): + if has_same_geometry(self.lhs, self.rhs) and contains_only_points( + self.lhs + ): + return cudf.Series([False] * len(self.lhs)) + df_result = cudf.DataFrame({"idx": point_indices, "pip": point_result}) + point_result = cudf.Series( + df_result["pip"], index=cudf.RangeIndex(0, len(df_result)) + ) + point_result.name = None + return point_result + + +class CoversBinpred(EqualsBinpred): + """An object A covers another B if no points of B lie in the exterior + of A, and at least one point of the interior of B lies in the interior + of A. + + This is only implemented for `points.covers(points)` at this time.""" + + def postprocess(self, point_indices, point_result): + return cudf.Series(point_result, index=point_indices) diff --git a/python/cuspatial/cuspatial/core/geoseries.py b/python/cuspatial/cuspatial/core/geoseries.py index 1cb6e0c85..41d5f7eb8 100644 --- a/python/cuspatial/cuspatial/core/geoseries.py +++ b/python/cuspatial/cuspatial/core/geoseries.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2022, NVIDIA CORPORATION +# Copyright (c) 2020-2023, NVIDIA CORPORATION from functools import cached_property from numbers import Integral @@ -28,10 +28,19 @@ from cuspatial.core._column.geometa import Feature_Enum, GeoMeta from cuspatial.core.binpreds.binpreds import ( ContainsProperlyBinpred, + CoversBinpred, + CrossesBinpred, + EqualsBinpred, IntersectsBinpred, OverlapsBinpred, WithinBinpred, ) +from cuspatial.utils.column_utils import ( + contains_only_linestrings, + contains_only_multipoints, + contains_only_points, + contains_only_polygons, +) T = TypeVar("T", bound="GeoSeries") @@ -95,6 +104,10 @@ def __init__( column, index, dtype=dtype, name=name, nan_as_null=nan_as_null ) + @property + def feature_types(self): + return self._column._meta.input_types + @property def type(self): gpu_types = cudf.Series(self._column._meta.input_types).astype("str") @@ -103,13 +116,27 @@ def type(self): "0": "Point", "1": "MultiPoint", "2": "Linestring", - "3": "MultiLinestring", - "4": "Polygon", - "5": "MultiPolygon", + "3": "Polygon", } ) return result + @property + def point_indices(self): + if contains_only_polygons(self): + return self.polygons.point_indices() + elif contains_only_linestrings(self): + return self.lines.point_indices() + elif contains_only_multipoints(self): + return self.multipoints.point_indices() + elif contains_only_points(self): + return self.points.point_indices() + else: + raise TypeError( + "GeoSeries must contain only Points, MultiPoints, Lines, or " + "Polygons to return point indices." + ) + class GeoColumnAccessor: def __init__(self, list_series, meta): self._series = list_series @@ -151,7 +178,7 @@ def point_indices(self): sizes = offsets[1:] - offsets[:-1] return cp.repeat(self._series.index, sizes) """ - return self._series.index + return self._meta.input_types.index[self._meta.input_types != -1] class MultiPointGeoColumnAccessor(GeoColumnAccessor): def __init__(self, list_series, meta): @@ -167,7 +194,7 @@ def point_indices(self): # MultiPoint GeoSeries that each individual point is member of. offsets = cp.array(self.geometry_offset) sizes = offsets[1:] - offsets[:-1] - return cp.repeat(self._series.index, sizes) + return cp.repeat(self._meta.input_types.index, sizes) class LineStringGeoColumnAccessor(GeoColumnAccessor): def __init__(self, list_series, meta): @@ -187,9 +214,9 @@ def part_offset(self): def point_indices(self): # Return a cupy.ndarray containing the index values from the # LineString GeoSeries that each individual point is member of. - offsets = self.part_offset.take(self.geometry_offset) + offsets = cp.array(self.part_offset) sizes = offsets[1:] - offsets[:-1] - return cp.repeat(self._series.index, sizes) + return cp.repeat(self._meta.input_types.index, sizes) class PolygonGeoColumnAccessor(GeoColumnAccessor): def __init__(self, list_series, meta): @@ -990,14 +1017,81 @@ def contains_properly(self, other, align=False, allpairs=False): `point_indices` and `polygon_indices`, each of which is a `Series` of `dtype('int32')` in the case of `allpairs=True`. """ + if contains_only_points(self) and contains_only_points(self): + return EqualsBinpred(self, other, align)() return ContainsProperlyBinpred(self, other, align, allpairs)() + def geom_equals(self, other, align=True): + """Compute if a GeoSeries of features A is equal to a GeoSeries of + features B. Features are equal if their vertices are equal. + + An object is equal to other if its set-theoretic boundary, interior, + and exterior coincide with those of the other object. + + Parameters + ---------- + other + a cuspatial.GeoSeries + align=True + to align the indices before computing .contains or not. If the + indices are not aligned, they will be compared based on their + implicit row order. + + Examples + -------- + Test if two points are equal: + >>> point = cuspatial.GeoSeries([Point(0, 0)]) + >>> point2 = cuspatial.GeoSeries([Point(0, 0)]) + >>> print(point.geom_equals(point2)) + 0 True + dtype: bool + + Test if two polygons are equal: + >>> polygon = cuspatial.GeoSeries([ + >>> Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + >>> ]) + >>> polygon2 = cuspatial.GeoSeries([ + >>> Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + >>> ]) + >>> print(polygon.geom_equals(polygon2)) + 0 True + dtype: bool + + Returns + ------- + + result : cudf.Series + A Series of boolean values indicating whether each feature in A + is equal to the corresponding feature in B. + """ + return EqualsBinpred(self, other, align)() + + def covers(self, other, align=True): + """Compute if a GeoSeries of features A covers a second GeoSeries of + features B. A covers B if no points on B lie in the exterior of A. + + Parameters + ---------- + other + a cuspatial.GeoSeries + align=True + align the GeoSeries indexes before calling the binpred + + Returns + ------- + result : cudf.Series + A Series of boolean values indicating whether each feature in the + input GeoSeries covers the corresponding feature in the other + GeoSeries. + """ + return CoversBinpred(self, other, align)() + def intersects(self, other, align=True): """Returns a `Series` of `dtype('bool')` with value `True` for each aligned geometry that intersects _other_. - A geometry intersects another geometry if its boundary or interior - intersect in any way with the other geometry. + An object is said to intersect _other_ if its _boundary_ and + _interior_ intersects in any way with those of other. Parameters ---------- @@ -1012,15 +1106,18 @@ def intersects(self, other, align=True): A Series of boolean values indicating whether the geometries of each row intersect. """ - return IntersectsBinpred(self, other, align)() + if contains_only_points(self) and contains_only_points(other): + return cudf.Series(EqualsBinpred(self, other, align)()) + else: + return IntersectsBinpred(self, other, align)() def within(self, other, align=True): """Returns a `Series` of `dtype('bool')` with value `True` for each aligned geometry that is within _other_. - A geometry is within another geometry if at least one of its points is - located in the interior of the other geometry and no points are - located in the exterior of the other geometry. + An object is said to be within other if at least one of its points + is located in the interior and no points are located in the exterior + of the other. Parameters ---------- @@ -1035,7 +1132,10 @@ def within(self, other, align=True): A Series of boolean values indicating whether each feature falls within the corresponding polygon in the input. """ - return WithinBinpred(self, other, align)() + if contains_only_points(self) and contains_only_points(other): + return cudf.Series(EqualsBinpred(self, other, align)()) + else: + return WithinBinpred(self, other, align)() def overlaps(self, other, align=True): """Returns True for all aligned geometries that overlap other, else @@ -1059,4 +1159,33 @@ def overlaps(self, other, align=True): A Series of boolean values indicating whether each geometry overlaps the corresponding geometry in the input.""" # Overlaps has the same requirement as crosses. - return OverlapsBinpred(self, other, align=align)() + if contains_only_points(self) and contains_only_points(other): + return cudf.Series([False] * len(self)) + else: + return OverlapsBinpred(self, other, align=align)() + + def crosses(self, other, align=True): + """Returns True for all aligned geometries that cross other, else + False. + + Geometries cross if they have some but not all interior points in + common, have the same dimension, and the intersection of the + interiors of the geometries has the dimension of the geometries + themselves minus one. + + Parameters + ---------- + other + a cuspatial.GeoSeries + align=True + align the GeoSeries indexes before calling the binpred + + Returns + ------- + result : cudf.Series + A Series of boolean values indicating whether each geometry + crosses the corresponding geometry in the input.""" + if contains_only_points(self) and contains_only_points(other): + return cudf.Series([False] * len(self)) + else: + return CrossesBinpred(self, other, align=align)() diff --git a/python/cuspatial/cuspatial/core/spatial/__init__.py b/python/cuspatial/cuspatial/core/spatial/__init__.py index b269707d6..ee07838f9 100644 --- a/python/cuspatial/cuspatial/core/spatial/__init__.py +++ b/python/cuspatial/cuspatial/core/spatial/__init__.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022, NVIDIA CORPORATION. +# Copyright (c) 2022-2023, NVIDIA CORPORATION. from .bounding import linestring_bounding_boxes, polygon_bounding_boxes from .distance import ( @@ -7,6 +7,7 @@ pairwise_linestring_distance, pairwise_point_distance, pairwise_point_linestring_distance, + pairwise_point_polygon_distance, ) from .filtering import points_in_spatial_window from .indexing import quadtree_on_points @@ -26,6 +27,7 @@ "sinusoidal_projection", "pairwise_point_distance", "pairwise_linestring_distance", + "pairwise_point_polygon_distance", "pairwise_point_linestring_distance", "pairwise_point_linestring_nearest_points", "polygon_bounding_boxes", diff --git a/python/cuspatial/cuspatial/core/spatial/distance.py b/python/cuspatial/cuspatial/core/spatial/distance.py index 9bf9afcdb..5d61e0564 100644 --- a/python/cuspatial/cuspatial/core/spatial/distance.py +++ b/python/cuspatial/cuspatial/core/spatial/distance.py @@ -10,16 +10,19 @@ pairwise_linestring_distance as cpp_pairwise_linestring_distance, pairwise_point_distance as cpp_pairwise_point_distance, pairwise_point_linestring_distance as c_pairwise_point_linestring_distance, + pairwise_point_polygon_distance as c_pairwise_point_polygon_distance, ) from cuspatial._lib.hausdorff import ( directed_hausdorff_distance as cpp_directed_hausdorff_distance, ) from cuspatial._lib.spatial import haversine_distance as cpp_haversine_distance +from cuspatial._lib.types import CollectionType from cuspatial.core.geoseries import GeoSeries from cuspatial.utils.column_utils import ( contains_only_linestrings, contains_only_multipoints, contains_only_points, + contains_only_polygons, ) @@ -382,6 +385,104 @@ def pairwise_point_linestring_distance( ) +def pairwise_point_polygon_distance(points: GeoSeries, polygons: GeoSeries): + """Compute distance between pairs of (multi)points and (multi)polygons + + The distance between a (multi)point and a (multi)polygon + is defined as the shortest distance between every point in the + multipoint and every edge of the (multi)polygon. If the multipoint and + multipolygon intersects, the distance is 0. + + This algorithm computes distance pairwise. The ith row in the result is + the distance between the ith (multi)point in `points` and the ith + (multi)polygon in `polygons`. + + Parameters + ---------- + points : GeoSeries + The (multi)points to compute the distance from. + polygons : GeoSeries + The (multi)polygons to compute the distance from. + + Returns + ------- + distance : cudf.Series + + Notes + ----- + The input `GeoSeries` must contain a single type geometry. + For example, `points` series cannot contain both points and polygons. + Currently, it is unsupported that `points` contains both points and + multipoints. + + Examples + -------- + Compute distance between a point and a polygon: + >>> from shapely.geometry import Point + >>> points = cuspatial.GeoSeries([Point(0, 0)]) + >>> polygons = cuspatial.GeoSeries([Point(1, 1).buffer(0.5)]) + >>> cuspatial.pairwise_point_polygon_distance(points, polygons) + 0 0.914214 + dtype: float64 + + Compute distance between a multipoint and a multipolygon + + >>> from shapely.geometry import MultiPoint + >>> mpoints = cuspatial.GeoSeries([MultiPoint([Point(0, 0), Point(1, 1)])]) + >>> mpolys = cuspatial.GeoSeries([ + ... MultiPoint([Point(2, 2), Point(1, 2)]).buffer(0.5)]) + >>> cuspatial.pairwise_point_polygon_distance(mpoints, mpolys) + 0 0.5 + dtype: float64 + """ + + if len(points) != len(polygons): + raise ValueError("Unmatched input geoseries length.") + + if len(points) == 0: + return cudf.Series(dtype=points.points.xy.dtype) + + if not contains_only_points(points): + raise ValueError("`points` array must contain only points") + + if not contains_only_polygons(polygons): + raise ValueError("`linestrings` array must contain only linestrings") + + if len(points.points.xy) > 0 and len(points.multipoints.xy) > 0: + raise NotImplementedError( + "Mixing point and multipoint geometries is not supported" + ) + + point_collection_type = ( + CollectionType.SINGLE + if len(points.points.xy > 0) + else CollectionType.MULTI + ) + + # Handle slicing in geoseries + points_column = ( + points._column.points._column + if point_collection_type == CollectionType.SINGLE + else points._column.mpoints._column + ) + points_column = points_column.take( + points._column._meta.union_offsets._column + ) + + polygon_column = polygons._column.polygons._column + polygon_column = polygon_column.take( + polygons._column._meta.union_offsets._column + ) + + return Series._from_data( + { + None: c_pairwise_point_polygon_distance( + point_collection_type, points_column, polygon_column + ) + } + ) + + def _flatten_point_series( points: GeoSeries, ) -> Tuple[ diff --git a/python/cuspatial/cuspatial/tests/binpreds/test_binpred_internals.py b/python/cuspatial/cuspatial/tests/binpreds/test_binpred_internals.py new file mode 100644 index 000000000..1c59e2882 --- /dev/null +++ b/python/cuspatial/cuspatial/tests/binpreds/test_binpred_internals.py @@ -0,0 +1,75 @@ +# Copyright (c) 2020-2023, NVIDIA CORPORATION + +import pandas as pd +from shapely.geometry import LineString + +import cuspatial + + +def test_internal_reversed_linestrings(): + linestring1 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + ] + ) + linestring2 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + ] + ) + from cuspatial.core.binpreds.binpreds import EqualsBinpred + + bp = EqualsBinpred(linestring1, linestring2) + got = bp._reverse_linestrings( + linestring1.lines.xy, linestring1.lines.part_offset + ).to_pandas() + expected = linestring2.lines.xy.to_pandas() + pd.testing.assert_series_equal(got, expected) + + +def test_internal_reversed_linestrings_pair(): + linestring1 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + LineString([(0, 0), (1, 1), (1, 0)]), + ] + ) + linestring2 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + LineString([(1, 0), (1, 1), (0, 0)]), + ] + ) + from cuspatial.core.binpreds.binpreds import EqualsBinpred + + bp = EqualsBinpred(linestring1, linestring2) + got = bp._reverse_linestrings( + linestring1.lines.xy, linestring1.lines.part_offset + ).to_pandas() + expected = linestring2.lines.xy.to_pandas() + pd.testing.assert_series_equal(got, expected) + + +def test_internal_reversed_linestrings_triple(): + linestring1 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + LineString([(0, 0), (1, 1), (1, 0)]), + LineString([(0, 0), (1, 1), (1, 0), (0, 0), (1, 1)]), + ] + ) + linestring2 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + LineString([(1, 0), (1, 1), (0, 0)]), + LineString([(1, 1), (0, 0), (1, 0), (1, 1), (0, 0)]), + ] + ) + from cuspatial.core.binpreds.binpreds import EqualsBinpred + + bp = EqualsBinpred(linestring1, linestring2) + got = bp._reverse_linestrings( + linestring1.lines.xy, linestring1.lines.part_offset + ).to_pandas() + expected = linestring2.lines.xy.to_pandas() + pd.testing.assert_series_equal(got, expected) diff --git a/python/cuspatial/cuspatial/tests/binpreds/test_equals_only_binpreds.py b/python/cuspatial/cuspatial/tests/binpreds/test_equals_only_binpreds.py new file mode 100644 index 000000000..84c4e0f25 --- /dev/null +++ b/python/cuspatial/cuspatial/tests/binpreds/test_equals_only_binpreds.py @@ -0,0 +1,787 @@ +# Copyright (c) 2020-2023, NVIDIA CORPORATION + +import cupy as cp +import geopandas as gpd +import pandas as pd +import pytest +from shapely.geometry import LineString, MultiPoint, Point, Polygon + +import cudf + +import cuspatial + + +def test_point_geom_equals_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.geom_equals(point2) + expected = gpdpoint1.geom_equals(gpdpoint2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.parametrize( + "lhs", + [ + [Point(0, 0), Point(0, 0), Point(0, 0)], + [Point(1, 1), Point(1, 1), Point(1, 1)], + [Point(2, 2), Point(2, 2), Point(2, 2)], + ], +) +def test_3_points_equals_3_points_one_equal(lhs): + gpdpoint1 = gpd.GeoSeries(lhs) + gpdpoint2 = gpd.GeoSeries([Point(0, 0), Point(1, 1), Point(2, 2)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.geom_equals(point2) + expected = gpdpoint1.geom_equals(gpdpoint2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_10000_points_geom_equals_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoints2 = gpd.GeoSeries([*point_generator(10000)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.geom_equals(points2) + expected = gpdpoints1.geom_equals(gpdpoints2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_linestring_geom_equals_linestring(): + gpdline1 = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]) + gpdline2 = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]) + line1 = cuspatial.from_geopandas(gpdline1) + line2 = cuspatial.from_geopandas(gpdline2) + got = line1.geom_equals(line2) + expected = gpdline1.geom_equals(gpdline2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_linestring_geom_equals_linestring_reversed(): + gpdline1 = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]) + gpdline2 = gpd.GeoSeries([LineString([(1, 1), (0, 0)])]) + line1 = cuspatial.from_geopandas(gpdline1) + line2 = cuspatial.from_geopandas(gpdline2) + got = line1.geom_equals(line2) + expected = gpdline1.geom_equals(gpdline2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.parametrize( + "lhs", + [ + [ + LineString([(0, 0), (1, 1)]), + LineString([(0, 0), (1, 1)]), + LineString([(0, 0), (1, 1)]), + ], + [ + LineString([(1, 1), (2, 2)]), + LineString([(1, 1), (2, 2)]), + LineString([(1, 1), (2, 2)]), + ], + [ + LineString([(2, 2), (3, 3)]), + LineString([(2, 2), (3, 3)]), + LineString([(2, 2), (3, 3)]), + ], + ], +) +def test_3_linestrings_equals_3_linestrings_one_equal(lhs): + gpdline1 = gpd.GeoSeries(lhs) + gpdline2 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 1)]), + LineString([(1, 1), (2, 2)]), + LineString([(2, 2), (3, 3)]), + ] + ) + line1 = cuspatial.from_geopandas(gpdline1) + line2 = cuspatial.from_geopandas(gpdline2) + got = line1.geom_equals(line2) + expected = gpdline1.geom_equals(gpdline2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_10_linestrings_geom_equals_10_linestrings(linestring_generator): + gpdlines1 = gpd.GeoSeries([*linestring_generator(11, 5)]) + gpdlines2 = gpd.GeoSeries([*linestring_generator(11, 5)]) + lines1 = cuspatial.from_geopandas(gpdlines1) + lines2 = cuspatial.from_geopandas(gpdlines2) + got = lines1.geom_equals(lines2) + expected = gpdlines1.geom_equals(gpdlines2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_10000_linestrings_geom_equals_10000_linestrings(linestring_generator): + gpdlines1 = gpd.GeoSeries([*linestring_generator(10000, 5)]) + gpdlines2 = gpd.GeoSeries([*linestring_generator(10000, 5)]) + lines1 = cuspatial.from_geopandas(gpdlines1) + lines2 = cuspatial.from_geopandas(gpdlines2) + got = lines1.geom_equals(lines2) + expected = gpdlines1.geom_equals(gpdlines2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_linestring_geom_equals_polygon(): + gpdline = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]) + gpdpolygon = gpd.GeoSeries(Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])) + line = cuspatial.from_geopandas(gpdline) + polygon = cuspatial.from_geopandas(gpdpolygon) + got = line.geom_equals(polygon) + expected = gpdline.geom_equals(gpdpolygon) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_10000_linestrings_geom_equals_10000_polygons( + polygon_generator, linestring_generator +): + gpdlines = gpd.GeoSeries([*linestring_generator(10000, 5)]) + gpdpolygons = gpd.GeoSeries([*polygon_generator(10000, 0)]) + lines = cuspatial.from_geopandas(gpdlines) + polygons = cuspatial.from_geopandas(gpdpolygons) + got = lines.geom_equals(polygons) + expected = gpdlines.geom_equals(gpdpolygons) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_polygon_geom_equals_linestring(): + gpdline = gpd.GeoSeries([LineString([(0, 0), (1, 1)])]) + gpdpolygon = gpd.GeoSeries(Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])) + line = cuspatial.from_geopandas(gpdline) + polygon = cuspatial.from_geopandas(gpdpolygon) + got = polygon.geom_equals(line) + expected = gpdpolygon.geom_equals(gpdline) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_10000_polygons_geom_equals_10000_linestrings( + polygon_generator, linestring_generator +): + gpdpolygons = gpd.GeoSeries([*polygon_generator(10000, 0)]) + gpdlines = gpd.GeoSeries([*linestring_generator(10000, 5)]) + polygons = cuspatial.from_geopandas(gpdpolygons) + lines = cuspatial.from_geopandas(gpdlines) + got = polygons.geom_equals(lines) + expected = gpdpolygons.geom_equals(gpdlines) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_point_contains_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.contains_properly(point2) + expected = gpdpoint1.contains(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_contains_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.contains_properly(point2) + expected = gpdpoint1.contains(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_contains_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoints2 = gpd.GeoSeries([*point_generator(10000)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.contains_properly(points2) + expected = gpdpoints1.contains(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_point_covers_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.covers(point2) + expected = gpdpoint1.covers(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_covers_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.covers(point2) + expected = gpdpoint1.covers(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_covers_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoints2 = gpd.GeoSeries([*point_generator(10000)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.covers(points2) + expected = gpdpoints1.covers(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_point_intersects_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.intersects(point2) + expected = gpdpoint1.intersects(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_intersects_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.intersects(point2) + expected = gpdpoint1.intersects(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_intersects_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoints2 = gpd.GeoSeries([*point_generator(10000)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.intersects(points2) + expected = gpdpoints1.intersects(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_point_within_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.within(point2) + expected = gpdpoint1.within(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_within_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.within(point2) + expected = gpdpoint1.within(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_within_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries(point_generator(10000)) + gpdpoints2 = gpd.GeoSeries(point_generator(10000)) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.within(points2).values_host + expected = gpdpoints1.within(gpdpoints2).values + assert (expected == got).all() + + +def test_point_crosses_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.crosses(point2) + expected = gpdpoint1.crosses(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_crosses_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.crosses(point2) + expected = gpdpoint1.crosses(gpdpoint2) + assert (got.values_host == expected.values).all() + + +@pytest.mark.parametrize( + "points", + [ + [Point(0, 0), Point(3, 3), Point(3, 3)], + [Point(3, 3), Point(1, 1), Point(3, 3)], + [Point(3, 3), Point(3, 3), Point(2, 2)], + ], +) +def test_three_points_crosses_three_points(points): + gpdpoints1 = gpd.GeoSeries(points) + gpdpoints2 = gpd.GeoSeries([Point(0, 0), Point(1, 1), Point(2, 2)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.crosses(points2) + expected = gpdpoints1.crosses(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_crosses_10000_points(point_generator): + gpdpoints1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoints2 = gpd.GeoSeries([*point_generator(10000)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.crosses(points2) + expected = gpdpoints1.crosses(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_point_overlaps_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(0, 0)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.overlaps(point2) + expected = gpdpoint1.overlaps(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_point_not_overlaps_point(): + gpdpoint1 = gpd.GeoSeries([Point(0, 0)]) + gpdpoint2 = gpd.GeoSeries([Point(1, 1)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.overlaps(point2) + expected = gpdpoint1.overlaps(gpdpoint2) + assert (got.values_host == expected.values).all() + + +@pytest.mark.parametrize( + "points", + [ + [Point(0, 0), Point(3, 3), Point(3, 3)], + [Point(3, 3), Point(1, 1), Point(3, 3)], + [Point(3, 3), Point(3, 3), Point(2, 2)], + ], +) +def test_three_points_overlaps_three_points(points): + gpdpoints1 = gpd.GeoSeries(points) + gpdpoints2 = gpd.GeoSeries([Point(0, 0), Point(1, 1), Point(2, 2)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.overlaps(points2) + expected = gpdpoints1.overlaps(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_10000_points_overlaps_10000_points(point_generator): + gpdpoint1 = gpd.GeoSeries([*point_generator(10000)]) + gpdpoint2 = gpd.GeoSeries([*point_generator(10000)]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.overlaps(point2) + expected = gpdpoint1.overlaps(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_multipoint_geom_equals_multipoint(): + gpdpoint1 = gpd.GeoSeries([MultiPoint([(0, 0), (1, 1)])]) + gpdpoint2 = gpd.GeoSeries([MultiPoint([(0, 0), (1, 1)])]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.geom_equals(point2) + expected = gpdpoint1.geom_equals(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_multipoint_not_geom_equals_multipoint(): + gpdpoint1 = gpd.GeoSeries([MultiPoint([(0, 0), (1, 1)])]) + gpdpoint2 = gpd.GeoSeries([MultiPoint([(0, 1), (1, 1)])]) + point1 = cuspatial.from_geopandas(gpdpoint1) + point2 = cuspatial.from_geopandas(gpdpoint2) + got = point1.geom_equals(point2) + expected = gpdpoint1.geom_equals(gpdpoint2) + assert (got.values_host == expected.values).all() + + +def test_10000_multipoints_geom_equals_10000_multipoints(multipoint_generator): + gpdpoints1 = gpd.GeoSeries([*multipoint_generator(10000, 10)]) + gpdpoints2 = gpd.GeoSeries([*multipoint_generator(10000, 10)]) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.geom_equals(points2) + expected = gpdpoints1.geom_equals(gpdpoints2) + assert (got.values_host == expected.values).all() + + +@pytest.mark.parametrize( + "lhs", + [ + [ + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + ], + [ + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 1), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + ], + [ + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 2), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + ], + ], +) +def test_3_multipoints_geom_equals_3_multipoints_one_equal(lhs): + gpdpoints1 = gpd.GeoSeries(lhs) + gpdpoints2 = gpd.GeoSeries( + [ + MultiPoint([(0, 0), (0, 1)]), + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 0), (2, 1)]), + ] + ) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.geom_equals(points2) + expected = gpdpoints1.geom_equals(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_3_multipoints_geom_equals_3_multipoints_misordered(): + gpdpoints1 = gpd.GeoSeries( + [ + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + MultiPoint([(0, 0), (1, 1)]), + ] + ) + gpdpoints2 = gpd.GeoSeries( + [ + MultiPoint([(1, 1), (0, 0)]), + MultiPoint([(1, 1), (0, 0)]), + MultiPoint([(1, 1), (0, 0)]), + ] + ) + points1 = cuspatial.from_geopandas(gpdpoints1) + points2 = cuspatial.from_geopandas(gpdpoints2) + got = points1.geom_equals(points2) + expected = gpdpoints1.geom_equals(gpdpoints2) + assert (got.values_host == expected.values).all() + + +def test_3_linestrings_geom_equals_3_linestrings_misordered(): + gpdline1 = gpd.GeoSeries( + [ + LineString([(1, 1), (0, 0)]), + LineString([(2, 2), (1, 1)]), + LineString([(3, 3), (2, 2)]), + ] + ) + gpdline2 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 1)]), + LineString([(1, 1), (2, 2)]), + LineString([(2, 2), (3, 3)]), + ] + ) + line1 = cuspatial.from_geopandas(gpdline1) + line2 = cuspatial.from_geopandas(gpdline2) + got = line1.geom_equals(line2) + expected = gpdline1.geom_equals(gpdline2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_3_linestrings_geom_equals_3_linestrings_longer(): + gpdline1 = gpd.GeoSeries( + [ + LineString([(1, 1), (0, 0), (0, 4)]), + LineString([(2, 2), (1, 1), (0, 4)]), + LineString([(3, 3), (2, 2), (0, 4)]), + ] + ) + gpdline2 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 1), (0, 4)]), + LineString([(1, 1), (2, 2), (0, 4)]), + LineString([(2, 2), (3, 3), (0, 4)]), + ] + ) + line1 = cuspatial.from_geopandas(gpdline1) + line2 = cuspatial.from_geopandas(gpdline2) + got = line1.geom_equals(line2) + expected = gpdline1.geom_equals(gpdline2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_pair_linestrings_different_last_two(): + gpdlinestring1 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 1), (2, 1)]), + ] + ) + gpdlinestring2 = gpd.GeoSeries( + [ + LineString([(0, 0), (2, 1), (1, 1)]), + ] + ) + linestring1 = cuspatial.from_geopandas(gpdlinestring1) + linestring2 = cuspatial.from_geopandas(gpdlinestring2) + got = linestring1.geom_equals(linestring2) + expected = gpdlinestring1.geom_equals(gpdlinestring2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_pair_polygons_different_ordering(): + gpdpoly1 = gpd.GeoSeries( + [ + Polygon([(0, 0), (1, 0), (1, 1), (0.5, 0.5), (0, 1), (0, 0)]), + ] + ) + gpdpoly2 = gpd.GeoSeries( + [ + Polygon([(0, 0), (0.5, 0.5), (1, 0), (1, 1), (0, 1), (0, 0)]), + ] + ) + poly1 = cuspatial.from_geopandas(gpdpoly1) + poly2 = cuspatial.from_geopandas(gpdpoly2) + got = poly1.geom_equals(poly2) + expected = gpdpoly1.geom_equals(gpdpoly2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_pair_polygons_different_winding(): + gpdpoly1 = gpd.GeoSeries( + [ + Polygon([(0, 0), (1, 0), (1, 1), (0.5, 0.5), (0, 1), (0, 0)]), + ] + ) + gpdpoly2 = gpd.GeoSeries( + [ + Polygon([(1, 0), (1, 1), (0.5, 0.5), (0, 1), (0, 0), (1, 0)]), + ] + ) + poly1 = cuspatial.from_geopandas(gpdpoly1) + poly2 = cuspatial.from_geopandas(gpdpoly2) + got = poly1.geom_equals(poly2) + expected = gpdpoly1.geom_equals(gpdpoly2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_3_polygons_geom_equals_3_polygons_misordered_corrected_vertex(): + gpdpoly1 = gpd.GeoSeries( + [ + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + ] + ) + gpdpoly2 = gpd.GeoSeries( + [ + Polygon([(0, 0), (1, 1), (0, 1), (0, 0)]), # Oppositely wound + Polygon([(1, 1), (0, 1), (0, 0), (1, 1)]), # Wound by +1 offset + Polygon([(0, 1), (0, 0), (1, 1), (0, 1)]), # Wound by -1 offset + ] + ) + poly1 = cuspatial.from_geopandas(gpdpoly1) + poly2 = cuspatial.from_geopandas(gpdpoly2) + got = poly1.geom_equals(poly2) + expected = gpdpoly1.geom_equals(gpdpoly2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_polygon_geom_equals_polygon(): + gpdpolygon1 = gpd.GeoSeries(Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])) + gpdpolygon2 = gpd.GeoSeries(Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])) + polygon1 = cuspatial.from_geopandas(gpdpolygon1) + polygon2 = cuspatial.from_geopandas(gpdpolygon2) + got = polygon1.geom_equals(polygon2) + expected = gpdpolygon1.geom_equals(gpdpolygon2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_polygon_geom_equals_polygon_swap_inner(): + gpdpolygon1 = gpd.GeoSeries(Polygon([[0, 0], [1, 0], [1, 1], [0, 0]])) + gpdpolygon2 = gpd.GeoSeries(Polygon([[0, 0], [1, 1], [1, 0], [0, 0]])) + polygon1 = cuspatial.from_geopandas(gpdpolygon1) + polygon2 = cuspatial.from_geopandas(gpdpolygon2) + got = polygon1.geom_equals(polygon2) + expected = gpdpolygon1.geom_equals(gpdpolygon2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +@pytest.mark.parametrize( + "lhs", + [ + [ + Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + ], + [ + Polygon([[0, 0], [2, 0], [2, 2], [0, 0]]), + Polygon([[0, 0], [2, 0], [2, 2], [0, 0]]), + Polygon([[0, 0], [2, 0], [2, 2], [0, 0]]), + ], + [ + Polygon([[0, 0], [3, 0], [3, 3], [0, 0]]), + Polygon([[0, 0], [3, 0], [3, 3], [0, 0]]), + Polygon([[0, 0], [3, 0], [3, 3], [0, 0]]), + ], + ], +) +def test_3_polygons_geom_equals_3_polygons_one_equal(lhs): + gpdpolygons1 = gpd.GeoSeries(lhs) + gpdpolygons2 = gpd.GeoSeries( + [ + Polygon([[0, 0], [1, 0], [1, 1], [0, 0]]), + Polygon([[0, 0], [2, 0], [2, 2], [0, 0]]), + Polygon([[0, 0], [3, 0], [3, 3], [0, 0]]), + ] + ) + polygons1 = cuspatial.from_geopandas(gpdpolygons1) + polygons2 = cuspatial.from_geopandas(gpdpolygons2) + got = polygons1.geom_equals(polygons2) + expected = gpdpolygons1.geom_equals(gpdpolygons2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_10000_polygons_geom_equals_10000_polygons(polygon_generator): + gpdpolygons1 = gpd.GeoSeries([*polygon_generator(10000, 0)]) + gpdpolygons2 = gpd.GeoSeries([*polygon_generator(10000, 0)]) + polygons1 = cuspatial.from_geopandas(gpdpolygons1) + polygons2 = cuspatial.from_geopandas(gpdpolygons2) + got = polygons1.geom_equals(polygons2) + expected = gpdpolygons1.geom_equals(gpdpolygons2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_3_polygons_geom_equals_3_polygons_different_sizes(): + gpdpoly1 = gpd.GeoSeries( + [ + Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]), # Length 5 + Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]), + Polygon([(0, 0), (0, 1), (1, 1), (1, 0)]), + ] + ) + gpdpoly2 = gpd.GeoSeries( + [ + Polygon( + [(0, 0), (1, 1), (1, 0), (0, 0)] + ), # Oppositely wound, length 4 + Polygon([(1, 1), (1, 0), (0, 0), (1, 1)]), # Wound by +1 offset + Polygon([(1, 0), (0, 0), (1, 1), (1, 0)]), # Wound by -1 offset + ] + ) + poly1 = cuspatial.from_geopandas(gpdpoly1) + poly2 = cuspatial.from_geopandas(gpdpoly2) + got = poly1.geom_equals(poly2) + expected = gpdpoly1.geom_equals(gpdpoly2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +@pytest.mark.skip(reason="NotImplemented: Depends on .contains") +def test_3_polygons_geom_equals_3_polygons_misordered(): + gpdpoly1 = gpd.GeoSeries( + [ + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + Polygon([(0, 0), (0, 1), (1, 1), (0, 0)]), + ] + ) + gpdpoly2 = gpd.GeoSeries( + [ + Polygon([(0, 0), (1, 1), (1, 0), (0, 0)]), # Oppositely wound + Polygon([(1, 1), (1, 0), (0, 0), (1, 1)]), # Wound by +1 offset + Polygon([(1, 0), (0, 0), (1, 1), (1, 0)]), # Wound by -1 offset + ] + ) + poly1 = cuspatial.from_geopandas(gpdpoly1) + poly2 = cuspatial.from_geopandas(gpdpoly2) + got = poly1.geom_equals(poly2) + expected = gpdpoly1.geom_equals(gpdpoly2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_linestring_orders(): + gpdlinestring1 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + ] + ) + gpdlinestring2 = gpd.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + ] + ) + linestring1 = cuspatial.from_geopandas(gpdlinestring1) + linestring2 = cuspatial.from_geopandas(gpdlinestring2) + got = linestring1.geom_equals(linestring2) + expected = gpdlinestring1.geom_equals(gpdlinestring2) + pd.testing.assert_series_equal(expected, got.to_pandas()) + + +def test_internal_reversed_linestrings(): + linestring1 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + ] + ) + linestring2 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + ] + ) + from cuspatial.core.binpreds.binpreds import EqualsBinpred + + bp = EqualsBinpred(linestring1, linestring2) + got = bp._reverse_linestrings( + linestring1.lines.xy, linestring1.lines.part_offset + ).to_pandas() + expected = linestring2.lines.xy.to_pandas() + pd.testing.assert_series_equal(got, expected) + + +def test_internal_reversed_linestrings_pair(): + linestring1 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 1), (1, 0), (0, 0)]), + LineString([(0, 0), (1, 1), (1, 0)]), + ] + ) + linestring2 = cuspatial.GeoSeries( + [ + LineString([(0, 0), (1, 0), (1, 1), (0, 0)]), + LineString([(1, 0), (1, 1), (0, 0)]), + ] + ) + from cuspatial.core.binpreds.binpreds import EqualsBinpred + + bp = EqualsBinpred(linestring1, linestring2) + got = bp._reverse_linestrings( + linestring1.lines.xy, linestring1.lines.part_offset + ).to_pandas() + expected = linestring2.lines.xy.to_pandas() + pd.testing.assert_series_equal(got, expected) + + +def test_from_points_xy_large(): + points = cuspatial.GeoSeries( + cuspatial.core._column.geocolumn.GeoColumn._from_points_xy( + cudf.core.column.column.as_column( + cp.arange(10000000, dtype="float64") + ) + ) + ) + assert points.geom_equals(points).all() diff --git a/python/cuspatial/cuspatial/tests/conftest.py b/python/cuspatial/cuspatial/tests/conftest.py index 4cb492e53..1c37cee77 100644 --- a/python/cuspatial/cuspatial/tests/conftest.py +++ b/python/cuspatial/cuspatial/tests/conftest.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020-2021, NVIDIA CORPORATION. +# Copyright (c) 2020-2023, NVIDIA CORPORATION. import geopandas as gpd import numpy as np @@ -305,3 +305,13 @@ def factory(length): return mask return factory + + +@pytest.fixture +def naturalearth_cities(): + return gpd.read_file(gpd.datasets.get_path("naturalearth_cities")) + + +@pytest.fixture +def naturalearth_lowres(): + return gpd.read_file(gpd.datasets.get_path("naturalearth_lowres")) diff --git a/python/cuspatial/cuspatial/tests/spatial/distance/test_pairwise_point_polygon_distance.py b/python/cuspatial/cuspatial/tests/spatial/distance/test_pairwise_point_polygon_distance.py new file mode 100644 index 000000000..199c41208 --- /dev/null +++ b/python/cuspatial/cuspatial/tests/spatial/distance/test_pairwise_point_polygon_distance.py @@ -0,0 +1,142 @@ +import geopandas as gpd +import pytest +from shapely.geometry import MultiPoint, MultiPolygon, Point, Polygon + +import cudf +from cudf.testing import assert_series_equal + +import cuspatial + + +def test_point_polygon_empty(): + lhs = cuspatial.GeoSeries.from_points_xy([]) + rhs = cuspatial.GeoSeries.from_polygons_xy([], [0], [0], [0]) + + got = cuspatial.pairwise_point_polygon_distance(lhs, rhs) + + expect = cudf.Series([], dtype="f8") + + assert_series_equal(got, expect) + + +def test_multipoint_polygon_empty(): + lhs = cuspatial.GeoSeries.from_multipoints_xy([], [0]) + rhs = cuspatial.GeoSeries.from_polygons_xy([], [0], [0], [0]) + + got = cuspatial.pairwise_point_polygon_distance(lhs, rhs) + + expect = cudf.Series([], dtype="f8") + + assert_series_equal(got, expect) + + +@pytest.mark.parametrize( + "points", [[Point(0, 0)], [MultiPoint([(1, 1), (2, 2)])]] +) +@pytest.mark.parametrize( + "polygons", + [ + [Polygon([(0, 1), (1, 0), (-1, 0), (0, 1)])], + [ + MultiPolygon( + [ + Polygon([(-2, 0), (-1, 0), (-1, -1), (-2, 0)]), + Polygon([(1, 0), (2, 0), (1, -1), (1, 0)]), + ] + ) + ], + ], +) +def test_one_pair(points, polygons): + lhs = gpd.GeoSeries(points) + rhs = gpd.GeoSeries(polygons) + + dlhs = cuspatial.GeoSeries(points) + drhs = cuspatial.GeoSeries(polygons) + + expect = lhs.distance(rhs) + got = cuspatial.pairwise_point_polygon_distance(dlhs, drhs) + + assert_series_equal(got, cudf.Series(expect)) + + +@pytest.mark.parametrize( + "points", + [ + [Point(0, 0), Point(3, -3)], + [MultiPoint([(1, 1), (2, 2)]), MultiPoint([(3, 3), (4, 4)])], + ], +) +@pytest.mark.parametrize( + "polygons", + [ + [ + Polygon([(0, 1), (1, 0), (-1, 0), (0, 1)]), + Polygon([(-4, -4), (-4, -5), (-5, -5), (-5, -4), (-5, -5)]), + ], + [ + MultiPolygon( + [ + Polygon([(0, 1), (1, 0), (-1, 0), (0, 1)]), + Polygon([(0, 1), (1, 0), (0, -1), (-1, 0), (0, 1)]), + ] + ), + MultiPolygon( + [ + Polygon( + [(-4, -4), (-4, -5), (-5, -5), (-5, -4), (-5, -5)] + ), + Polygon([(-2, 0), (-2, -2), (0, -2), (0, 0), (-2, 0)]), + ] + ), + ], + ], +) +def test_two_pair(points, polygons): + lhs = gpd.GeoSeries(points) + rhs = gpd.GeoSeries(polygons) + + dlhs = cuspatial.GeoSeries(points) + drhs = cuspatial.GeoSeries(polygons) + + expect = lhs.distance(rhs) + got = cuspatial.pairwise_point_polygon_distance(dlhs, drhs) + + assert_series_equal(got, cudf.Series(expect)) + + +def test_point_polygon_large(point_generator, polygon_generator): + N = 100 + points = gpd.GeoSeries(point_generator(N)) + polygons = gpd.GeoSeries(polygon_generator(N, 1.0, 1.5)) + + dpoints = cuspatial.from_geopandas(points) + dpolygons = cuspatial.from_geopandas(polygons) + + expect = points.distance(polygons) + got = cuspatial.pairwise_point_polygon_distance(dpoints, dpolygons) + + assert_series_equal(got, cudf.Series(expect)) + + +def test_point_polygon_geocities(naturalearth_cities, naturalearth_lowres): + N = 100 + gpu_cities = cuspatial.from_geopandas(naturalearth_cities.geometry) + gpu_countries = cuspatial.from_geopandas(naturalearth_lowres.geometry) + + print( + len(naturalearth_lowres), + len(naturalearth_lowres[: len(naturalearth_cities)]), + len(gpu_countries), + len(gpu_countries[: len(naturalearth_cities)]), + ) + + expect = naturalearth_cities.geometry[:N].distance( + naturalearth_lowres.geometry[:N] + ) + + got = cuspatial.pairwise_point_polygon_distance( + gpu_cities[:N], gpu_countries[:N] + ) + + assert_series_equal(cudf.Series(expect), got)