From 3d2ba62a77b1be9afda37c40dd63ae9637a3a48b Mon Sep 17 00:00:00 2001 From: Kristin Cowalcijk Date: Mon, 11 Nov 2024 14:02:40 +0800 Subject: [PATCH] Add documentation and python tests --- .../common/spider/DiagonalGenerator.java | 6 + docs/api/sql/Spider.md | 271 ++++++++++++++++++ docs/image/spider/spider-bit.png | Bin 0 -> 3777 bytes docs/image/spider/spider-diagonal.png | Bin 0 -> 4223 bytes docs/image/spider/spider-gaussian.png | Bin 0 -> 31518 bytes docs/image/spider/spider-parcel.png | Bin 0 -> 8647 bytes docs/image/spider/spider-quickstart.png | Bin 0 -> 105979 bytes docs/image/spider/spider-sierpinski.png | Bin 0 -> 8612 bytes docs/image/spider/spider-uniform-affine.png | Bin 0 -> 8157 bytes docs/image/spider/spider-uniform.png | Bin 0 -> 10217 bytes mkdocs.yml | 1 + python/tests/sql/test_spider.py | 73 +++++ 12 files changed, 351 insertions(+) create mode 100644 docs/api/sql/Spider.md create mode 100644 docs/image/spider/spider-bit.png create mode 100644 docs/image/spider/spider-diagonal.png create mode 100644 docs/image/spider/spider-gaussian.png create mode 100644 docs/image/spider/spider-parcel.png create mode 100644 docs/image/spider/spider-quickstart.png create mode 100644 docs/image/spider/spider-sierpinski.png create mode 100644 docs/image/spider/spider-uniform-affine.png create mode 100644 docs/image/spider/spider-uniform.png create mode 100644 python/tests/sql/test_spider.py diff --git a/common/src/main/java/org/apache/sedona/common/spider/DiagonalGenerator.java b/common/src/main/java/org/apache/sedona/common/spider/DiagonalGenerator.java index a28b5cf599..42eac79872 100644 --- a/common/src/main/java/org/apache/sedona/common/spider/DiagonalGenerator.java +++ b/common/src/main/java/org/apache/sedona/common/spider/DiagonalGenerator.java @@ -45,6 +45,12 @@ public static DiagonalParameter create(Map conf) { PointBasedParameter pointBasedParameter = PointBasedParameter.create(conf); double percentage = Double.parseDouble(conf.getOrDefault("percentage", "0.5")); double buffer = Double.parseDouble(conf.getOrDefault("buffer", "0.5")); + if (percentage < 0 || percentage > 1) { + throw new IllegalArgumentException("Percentage must be between 0 and 1"); + } + if (buffer < 0) { + throw new IllegalArgumentException("Buffer must be a non-negative number"); + } return new DiagonalParameter(pointBasedParameter, percentage, buffer); } } diff --git a/docs/api/sql/Spider.md b/docs/api/sql/Spider.md new file mode 100644 index 0000000000..0b313ff6fb --- /dev/null +++ b/docs/api/sql/Spider.md @@ -0,0 +1,271 @@ +Sedona offers a spatial data generator called Spider. It is a data source that generates random spatial data based on the user-specified parameters. + +## Quick Start + +Once you have your [`SedonaContext` object created](../Overview#quick-start), you can create a DataFrame with the `spider` data source. + +```python +df_random_points = sedona.read.format("spider").load(n=1000, distribution='uniform') +df_random_boxes = sedona.read.format("spider").load(n=1000, distribution='gaussian', geometryType='box', maxWidth=0.05, maxHeight=0.05) +df_random_polygons = sedona.read.format("spider").load(n=1000, distribution='bit', geometryType='polygon', minSegment=3, maxSegment=5, maxSize=0.1) +``` + +Now we have three DataFrames with random spatial data. We can show the first three rows of the `df_random_points` DataFrame to verify the data is generated correctly. + +```python +df_random_points.show(3, False) +``` + +Output: + +``` ++---+---------------------------------------------+ +|id |geometry | ++---+---------------------------------------------+ +|1 |POINT (0.8781393502074886 0.5925787985028703)| +|2 |POINT (0.3159498147172185 0.1907316577342276)| +|3 |POINT (0.2618294441170143 0.3623164670133922)| ++---+---------------------------------------------+ +only showing top 3 rows +``` + +The generated DataFrame has two columns: `id` and `geometry`. The `id` column is the unique identifier of each record, and the `geometry` column is the randomly generated spatial data. + +We can plot all 3 DataFrames using the following code. + +```python +import matplotlib.pyplot as plt +import geopandas as gpd + +# Convert DataFrames to GeoDataFrames +gdf_random_points = gpd.GeoDataFrame(df_random_points.toPandas(), geometry='geometry') +gdf_random_boxes = gpd.GeoDataFrame(df_random_boxes.toPandas(), geometry='geometry') +gdf_random_polygons = gpd.GeoDataFrame(df_random_polygons.toPandas(), geometry='geometry') + +# Create a figure and a set of subplots +fig, axes = plt.subplots(1, 3, figsize=(15, 5)) + +# Plot each GeoDataFrame on a different subplot +gdf_random_points.plot(ax=axes[0], color='blue', markersize=5) +axes[0].set_title('Random Points') + +gdf_random_boxes.boundary.plot(ax=axes[1], color='red') +axes[1].set_title('Random Boxes') + +gdf_random_polygons.boundary.plot(ax=axes[2], color='green') +axes[2].set_title('Random Polygons') + +# Adjust the layout +plt.tight_layout() + +# Show the plot +plt.show() +``` + +Output: + +![Random Spatial Data](../../image/spider/spider-quickstart.png) + +You can browse the [SpiderWeb](https://spider.cs.ucr.edu/) website to play with the parameters and see how they affect the generated data. Once you are satisfied with the parameters, you can use them in your Spider DataFrame creation code. The following sections will explain the parameters in detail. + +## Common Parameters + +The following parameters are common to all distributions. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| n | Number of records to generate | 100 | +| distribution | Distribution type. See [Distributions](#distributions) for details. | `uniform` | +| numPartitions | Number of partitions to generate | The default parallelism of your Spark Context | +| seed | Random seed | Current timestamp in milliseconds | + +!!! warning + The same `seed` parameter may produce different results with different Java versions or Sedona versions. + +## Distributions + +Spider supports generating random points, boxes and polygons under various distributions. You can explore the capabilities of Spider by visiting the [SpiderWeb](https://spider.cs.ucr.edu/) website. You can specify the distribution type using the `distribution` parameter. The parameters for each distribution are listed below. + +### Uniform Distribution + +The uniform distribution generates random geometries in the unit square `[0, 1] x [0, 1]`. This distribution can be selected by setting the `distribution` parameter to `uniform`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| geometryType | Geometry type, either `point`, `box` or `polygon` | `point` | +| maxWidth | Maximum width of the generated boxes | 0.01 | +| maxHeight | Maximum height of the generated boxes | 0.01 | +| minSegment | Minimum number of segments of the generated polygons | 3 | +| maxSegment | Maximum number of segments of the generated polygons | 3 | +| maxSize | Maximum size of the generated polygons | 0.01 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=300, distribution='uniform', geometryType='box', maxWidth=0.05, maxHeight=0.05) +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').boundary.plot() +``` + +![Uniform Distribution](../../image/spider/spider-uniform.png) + +### Gaussian Distribution + +The Gaussian distribution generates random geometries in a Gaussian distribution with mean `[0.5, 0.5]` and standard deviation `[0.1, 0.1]`. This distribution can be selected by setting the `distribution` parameter to `gaussian`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| geometryType | Geometry type, either `point`, `box` or `polygon` | `point` | +| maxWidth | Maximum width of the generated boxes | 0.01 | +| maxHeight | Maximum height of the generated boxes | 0.01 | +| minSegment | Minimum number of segments of the generated polygons | 3 | +| maxSegment | Maximum number of segments of the generated polygons | 3 | +| maxSize | Maximum size of the generated polygons | 0.01 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=300, distribution='gaussian', geometryType='polygon', maxSize=0.05) +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').boundary.plot() +``` + +![Gaussian Distribution](../../image/spider/spider-gaussian.png) + +### Bit Distribution + +The bit distribution generates random geometries in a bit distribution. This distribution can be selected by setting the `distribution` parameter to `bit`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| geometryType | Geometry type, either `point`, `box` or `polygon` | `point` | +| probability | Probability of setting a bit | 0.2 | +| digits | Number of digits in the generated data | 10 | +| maxWidth | Maximum width of the generated boxes | 0.01 | +| maxHeight | Maximum height of the generated boxes | 0.01 | +| minSegment | Minimum number of segments of the generated polygons | 3 | +| maxSegment | Maximum number of segments of the generated polygons | 3 | +| maxSize | Maximum size of the generated polygons | 0.01 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=300, distribution='bit', geometryType='point', probability=0.2, digits=10) +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').plot(markersize=1) +``` + +![Bit Distribution](../../image/spider/spider-bit.png) + +### Diagonal Distribution + +The diagonal distribution generates random geometries on the diagonal line `y = x` with some dispersion for geometries that are not exactly on the diagonal. This distribution can be selected by setting the `distribution` parameter to `diagonal`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| geometryType | Geometry type, either `point`, `box` or `polygon` | `point` | +| percentage | The percentage of records that are perfectly on the diagonal | 0.5 | +| buffer | For points not exactly on the diagonal, the buffer in which they are dispersed | 0.5 | +| maxWidth | Maximum width of the generated boxes | 0.01 | +| maxHeight | Maximum height of the generated boxes | 0.01 | +| minSegment | Minimum number of segments of the generated polygons | 3 | +| maxSegment | Maximum number of segments of the generated polygons | 3 | +| maxSize | Maximum size of the generated polygons | 0.01 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=300, distribution='diagonal', geometryType='point', percentage=0.5, buffer=0.5) +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').plot(markersize=1) +``` + +![Diagonal Distribution](../../image/spider/spider-diagonal.png) + +### Sierpinski Distribution + +The Sierpinski distribution generates random geometries distributed on a Sierpinski triangle. This distribution can be selected by setting the `distribution` parameter to `sierpinski`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| geometryType | Geometry type, either `point`, `box` or `polygon` | `point` | +| maxWidth | Maximum width of the generated boxes | 0.01 | +| maxHeight | Maximum height of the generated boxes | 0.01 | +| minSegment | Minimum number of segments of the generated polygons | 3 | +| maxSegment | Maximum number of segments of the generated polygons | 3 | +| maxSize | Maximum size of the generated polygons | 0.01 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=2000, distribution='sierpinski', geometryType='point') +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').plot(markersize=1) +``` + +![Sierpinski Distribution](../../image/spider/spider-sierpinski.png) + +### Parcel Distribution + +This generator produces boxes that resemble parcel areas. It works by recursively splitting the input domain (unit square) along the longest dimension and then randomly dithering each generated box to add some randomness. This generator can only generate boxes. This distribution can be selected by setting the `distribution` parameter to `parcel`. + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| dither | The amount of dithering as a ratio of the side length. Allowed range [0, 1] | 0.5 | +| splitRange | The allowed range for splitting boxes. Allowed range [0.0, 0.5] 0.0 means all values are allowed. 0.5 means always split in half. | 0.5 | + +Example: + +```python +import geopandas as gpd +df = sedona.read.format("spider").load(n=300, distribution='parcel', dither=0.5, splitRange=0.5) +gpd.GeoDataFrame(df.toPandas(), geometry='geometry').boundary.plot() +``` + +![Parcel Distribution](../../image/spider/spider-parcel.png) + +!!!note + The number of partitions generated by the `parcel` distribution is always power of 4. This is for guaranteeing the quality of the generated data. If the specified `numPartitions` is not a power of 4, it will be automatically adjusted to the nearest power of 4 smaller or equal to the specified value. + +## Affine Transformation + +The random spatial data generated by Spider are mostly in the unit square `[0, 1] x [0, 1]`. If you need to generate random spatial data in a different region, you can specify affine transformation parameters to scale and translate the data to the target region. + +The following code demonstrates how to generate random spatial data in a different region using affine transformation. + +The affine transformation parameters are: + +| Parameter | Description | Default Value | +| --------- | ----------- | ------------- | +| translateX | Translate the data horizontally | 0 | +| translateY | Translate the data vertically | 0 | +| scaleX | Scale the data horizontally | 1 | +| scaleY | Scale the data vertically | 1 | +| skewX | Skew the data horizontally | 0 | +| skewY | Skew the data vertically | 0 | + +The affine transformation is applied to the generated data as follows: + +``` +x' = translateX + scaleX * x + skewX * y +y' = translateY + skewY * x + scaleY * y +``` + +Example: + +```python +import geopandas as gpd +df_random_points = sedona.read.format("spider").load(n=1000, distribution='uniform', translateX=0.5, translateY=0.5, scaleX=2, scaleY=2) +gpd.GeoDataFrame(df_random_points.toPandas(), geometry='geometry').plot(markersize=1) +``` + +The data is now in the region `[0.5, 2.5] x [0.5, 2.5]`. + +![Affine Transformation](../../image/spider/spider-uniform-affine.png) + +## References + +- Puloma Katiyar, Tin Vu, Sara Migliorini, Alberto Belussi, Ahmed Eldawy. "SpiderWeb: A Spatial Data Generator on the Web", ACM SIGSPATIAL 2020, Seattle, WA +- Beast Spatial Data Generator: https://bitbucket.org/bdlabucr/beast/src/master/doc/spatial-data-generator.md +- SpiderWeb: A Spatial Data Generator on the Web: https://spider.cs.ucr.edu/ +- SpiderWeb YouTube Video: https://www.youtube.com/watch?v=h0xCG6Swdqw diff --git a/docs/image/spider/spider-bit.png b/docs/image/spider/spider-bit.png new file mode 100644 index 0000000000000000000000000000000000000000..e0ea2990108dabb40f60ab199006df3f9a008d2a GIT binary patch literal 3777 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 literal 0 HcmV?d00001 diff --git a/docs/image/spider/spider-diagonal.png b/docs/image/spider/spider-diagonal.png new file mode 100644 index 0000000000000000000000000000000000000000..719f10fc93c40bf5a155155c24e32cfb7ceab21e GIT binary patch literal 4223 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 Jg`8>d{{UOArqTca literal 0 HcmV?d00001 diff --git a/docs/image/spider/spider-quickstart.png b/docs/image/spider/spider-quickstart.png new file mode 100644 index 0000000000000000000000000000000000000000..3d6f0ca27465ea4cec9fdde35927d03bb78073e9 GIT binary patch literal 105979 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 z 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
2saS2vweRA|=?VaaF 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 literal 0 HcmV?d00001 diff --git a/docs/image/spider/spider-sierpinski.png b/docs/image/spider/spider-sierpinski.png new file mode 100644 index 0000000000000000000000000000000000000000..75606e76a4c56e9c97c875c80f5f5be4ce4ecddf GIT binary patch literal 8612 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 HwGRCs5={VE literal 0 HcmV?d00001 diff --git a/docs/image/spider/spider-uniform.png b/docs/image/spider/spider-uniform.png new file mode 100644 index 0000000000000000000000000000000000000000..491ecd40fdbff733b5c70bddf95bb18606f33f7d GIT binary patch literal 10217 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 FzW`*rZFT?v literal 0 HcmV?d00001 diff --git a/mkdocs.yml b/mkdocs.yml index 31928560b2..d19c5ba6e4 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -86,6 +86,7 @@ nav: - DataFrame Style functions: api/sql/DataFrameAPI.md - Query optimization: api/sql/Optimizer.md - Nearest-Neighbour searching: api/sql/NearestNeighbourSearching.md + - "Spider:Spatial Data Generator": api/sql/Spider.md - Reading Legacy Parquet Files: api/sql/Reading-legacy-parquet.md - Visualization: - SedonaPyDeck: api/sql/Visualization_SedonaPyDeck.md diff --git a/python/tests/sql/test_spider.py b/python/tests/sql/test_spider.py new file mode 100644 index 0000000000..21018ac0c2 --- /dev/null +++ b/python/tests/sql/test_spider.py @@ -0,0 +1,73 @@ +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +import pytest +from tests.test_base import TestBase + + +class TestSpider(TestBase): + def test_spider_uniform(self): + df = self.spark.read.format("spider").load( + n=1000, + distribution="uniform", + geometryType="box", + maxWidth=0.03, + maxHeight=0.02, + translateX=0.5, + translateY=0.5, + scaleX=2, + scaleY=2, + ) + assert df.count() == 1000 + + # Convert geometries to coordinates for bound checking + bounds_df = df.selectExpr( + "ST_XMin(geometry) as min_x", + "ST_XMax(geometry) as max_x", + "ST_YMin(geometry) as min_y", + "ST_YMax(geometry) as max_y", + ).collect()[0] + + # Check geometry bounds (should be within [0.5, 2.5] * [0.5, 2.5] with some tolerance) + assert bounds_df.min_x >= 0.4 + assert bounds_df.max_x <= 2.6 + assert bounds_df.min_y >= 0.4 + assert bounds_df.max_y <= 2.6 + + # Check box dimensions + dimensions_df = df.selectExpr( + "ST_XMax(geometry) - ST_XMin(geometry) as width", + "ST_YMax(geometry) - ST_YMin(geometry) as height", + ).collect() + + for row in dimensions_df: + assert row.width <= 0.06, f"Box width {row.width} exceeds maximum 0.06" + assert row.height <= 0.04, f"Box height {row.height} exceeds maximum 0.04" + + # Check mean width and height + mean_width = ( + df.selectExpr("AVG(ST_XMax(geometry) - ST_XMin(geometry)) as mean_width") + .collect()[0] + .mean_width + ) + mean_height = ( + df.selectExpr("AVG(ST_YMax(geometry) - ST_YMin(geometry)) as mean_height") + .collect()[0] + .mean_height + ) + assert abs(mean_width - 0.03) < 0.005 + assert abs(mean_height - 0.02) < 0.005