This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/sedona-db.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 13b7dde Deployed d9df380 to 0.1.0 with MkDocs 1.6.1 and mike 2.1.3
13b7dde is described below
commit 13b7ddeb42d13a9d4b511ccfc3e555f11d74a044
Author: GitHub Actions <[email protected]>
AuthorDate: Mon Sep 22 06:39:01 2025 +0000
Deployed d9df380 to 0.1.0 with MkDocs 1.6.1 and mike 2.1.3
---
0.1.0/404.html | 27 +-
0.1.0/contributors-guide/index.html | 33 +-
0.1.0/crs-examples.ipynb | 481 ++++++++++++++++++
.../{quickstart-python => crs-examples}/index.html | 560 ++++++++++++---------
0.1.0/geopandas-interop/index.html | 27 +-
0.1.0/image/sedonadb-architecture.svg | 117 +++++
0.1.0/index.html | 131 +++--
0.1.0/overture-examples/index.html | 27 +-
0.1.0/programming-guide/index.html | 31 +-
0.1.0/quickstart-python/index.html | 33 +-
0.1.0/reference/python/index.html | 33 +-
0.1.0/reference/sql-joins/index.html | 27 +-
0.1.0/reference/sql/index.html | 27 +-
0.1.0/search/search_index.json | 2 +-
0.1.0/sitemap.xml | 26 +-
0.1.0/sitemap.xml.gz | Bin 314 -> 318 bytes
0.1.0/tags/index.html | 27 +-
0.1.0/working-with-parquet-files/index.html | 27 +-
18 files changed, 1305 insertions(+), 331 deletions(-)
diff --git a/0.1.0/404.html b/0.1.0/404.html
index f72bc7c..3fad8bc 100644
--- a/0.1.0/404.html
+++ b/0.1.0/404.html
@@ -217,7 +217,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -434,7 +434,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -602,6 +602,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="/sedonadb/latest/crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/contributors-guide/index.html
b/0.1.0/contributors-guide/index.html
index 2e15373..2c1a41c 100644
--- a/0.1.0/contributors-guide/index.html
+++ b/0.1.0/contributors-guide/index.html
@@ -13,7 +13,7 @@
<link rel="prev" href="../working-with-parquet-files/">
- <link rel="next" href="../reference/python/">
+ <link rel="next" href="../crs-examples/">
<link rel="icon" href="../image/sedona_logo_symbol.png">
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -796,6 +796,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
@@ -1556,13 +1579,13 @@ save and load various baselines).</p>
- <a href="../reference/python/" class="md-footer__link
md-footer__link--next" aria-label="Next: Python Functions">
+ <a href="../crs-examples/" class="md-footer__link
md-footer__link--next" aria-label="Next: CRS Examples">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
- Python Functions
+ CRS Examples
</div>
</div>
<div class="md-footer__button md-icon">
diff --git a/0.1.0/crs-examples.ipynb b/0.1.0/crs-examples.ipynb
new file mode 100644
index 0000000..74192a3
--- /dev/null
+++ b/0.1.0/crs-examples.ipynb
@@ -0,0 +1,481 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "91910e50-a5ae-4d5a-a431-62ac5fbc11ca",
+ "metadata": {},
+ "source": [
+ "# Coordinate Reference System (CRS) Examples\n",
+ "\n",
+ "This example demonstrates how one table with an EPSG 4326 CRS cannot be
joined with another table that uses EPSG 3857."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "be8ffe47-dc89-4842-bb1e-1e8640afffc3",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import sedonadb\n",
+ "\n",
+ "sd = sedonadb.connect()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "54b48173-6be0-4827-ac42-1439eb31e9f7",
+ "metadata": {},
+ "source": [
+ "Read a table with a geometry column that uses EPSG 4326.\n",
+ "\n",
+ "Note how SedonaDB reads the CRS specified in the Parquet file."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "id": "143f00d5-6878-4dab-a82c-c9fb4dbfaf00",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "countries = sd.read_parquet(\n",
+ "
\"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "8ef94b7b-b65d-4da5-9443-3253e84e2e7f",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SedonaSchema with 3 fields:\n",
+ " name: Utf8View\n",
+ " continent: Utf8View\n",
+ " geometry: wkb_view <epsg:4326>"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "countries.schema"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "12d94c4f-5e7f-47c6-b5cc-3a3363bbc290",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cities = sd.sql(\"\"\"\n",
+ "SELECT city, ST_SetSRID(ST_GeomFromText(wkt), 3857) AS geometry FROM
(VALUES\n",
+ " ('New York', 'POINT(-8238310.24 4969803.34)'),\n",
+ " ('Los Angeles', 'POINT(-13153204.78 4037636.04)'),\n",
+ " ('Chicago', 'POINT(-9757148.04 5138517.44)'))\n",
+ "AS t(city, wkt)\"\"\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "36e53438-c2d2-444e-9f34-d391f0f3f588",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SedonaSchema with 2 fields:\n",
+ " city: Utf8\n",
+ " geometry: wkb <epsg:3857>"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cities.schema"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "id": "62c87571-50aa-4f57-a7dd-4afa3210320a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cities.to_view(\"cities\", overwrite=True)\n",
+ "countries.to_view(\"countries\", overwrite=True)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "561b3c8c-4952-4fa7-9fe1-3fa0522b0d9f",
+ "metadata": {},
+ "source": [
+ "## Join with mismatched CRSs\n",
+ "\n",
+ "The cities and countries tables have different CRSs.\n",
+ "\n",
+ "The cities table uses EPSG:3857 and the countries table uses
EPSG:4326.\n",
+ "\n",
+ "Let's confirm that the code errors out if we try to join the mismatched
tables."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "906bad37-4f3f-4028-82b4-487fabe5957f",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "SedonaError",
+ "evalue": "type_coercion\ncaused by\nError during planning: Mismatched
CRS arguments: epsg:3857 vs epsg:4326\nUse ST_Transform() or ST_SetSRID() to
ensure arguments are compatible.",
+ "output_type": "error",
+ "traceback": [
+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mSedonaError\u001b[0m
Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[7], line 6\u001b[0m\n\u001b[1;32m 1\u001b[0m
\u001b[38;5;66;03m# join doesn't work when CRSs don't
match\u001b[39;00m\n\u001b[1;32m 2\u001b[0m
\u001b[43msd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msql\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\"\"\u001b[39;49m\n\u001b[1;32m
3\u001b[0m \u001b[38;5;124;43mselect * from
cities\u001b[39;49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;124;43mjoin
countries\u001b[39;49m\n\u001b[1;32m [...]
+ "File
\u001b[0;32m/opt/miniconda3/lib/python3.12/site-packages/sedonadb/dataframe.py:297\u001b[0m,
in \u001b[0;36mDataFrame.show\u001b[0;34m(self, limit, width,
ascii)\u001b[0m\n\u001b[1;32m 272\u001b[0m
\u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Print the first limit rows
to the console\u001b[39;00m\n\u001b[1;32m 273\u001b[0m \n\u001b[1;32m
274\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m
(...)\u001b[0m\n\u001b[1;32m 294\u001b[0m \n\u001b[1;32 [...]
+ "\u001b[0;31mSedonaError\u001b[0m: type_coercion\ncaused by\nError
during planning: Mismatched CRS arguments: epsg:3857 vs epsg:4326\nUse
ST_Transform() or ST_SetSRID() to ensure arguments are compatible."
+ ]
+ }
+ ],
+ "source": [
+ "# join doesn't work when CRSs don't match\n",
+ "sd.sql(\"\"\"\n",
+ "select * from cities\n",
+ "join countries\n",
+ "where ST_Intersects(cities.geometry, countries.geometry)\n",
+ "\"\"\").show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "41e6f59f-5217-40b2-b05a-9c95eae29df8",
+ "metadata": {},
+ "source": [
+ "## Convert CRS and then join\n",
+ "\n",
+ "Let's convert the cities table to use EPSG:4326 and then perform the join
with the two tables once they have matching CRSs."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 13,
+ "id": "122857c1-f68d-4037-9787-54c20706e60f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# update cities to use 4326\n",
+ "cities = sd.sql(\"\"\"\n",
+ "SELECT city, ST_Transform(geometry, 'EPSG:4326') as geometry\n",
+ "FROM cities\n",
+ "\"\"\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "947e085c-62a4-4315-b155-007a95156964",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SedonaSchema with 2 fields:\n",
+ " city: Utf8\n",
+ " geometry: wkb <ogc:crs84>"
+ ]
+ },
+ "execution_count": 14,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "cities.schema"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "id": "3bcbaf7a-ec40-4b7e-85c2-db5ef1e3232e",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "cities.to_view(\"cities\", overwrite=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "id": "819c8d04-fa03-4ef8-aecb-e79d48f0b820",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+
"┌─────────────┬──────────────────────┬──────────────────────┬───────────────┬──────────────────────┐\n",
+ "│ city ┆ geometry ┆ name ┆
continent ┆ geometry │\n",
+ "│ utf8 ┆ geometry ┆ utf8view ┆
utf8view ┆ geometry │\n",
+
"╞═════════════╪══════════════════════╪══════════════════════╪═══════════════╪══════════════════════╡\n",
+ "│ New York ┆ POINT(-74.006000039… ┆ United States of Am… ┆ North
America ┆ MULTIPOLYGON(((-122… │\n",
+
"├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+ "│ Los Angeles ┆ POINT(-118.15724889… ┆ United States of Am… ┆ North
America ┆ MULTIPOLYGON(((-122… │\n",
+
"├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+ "│ Chicago ┆ POINT(-87.649952137… ┆ United States of Am… ┆ North
America ┆ MULTIPOLYGON(((-122… │\n",
+
"└─────────────┴──────────────────────┴──────────────────────┴───────────────┴──────────────────────┘\n"
+ ]
+ }
+ ],
+ "source": [
+ "# join works when CRSs match\n",
+ "sd.sql(\"\"\"\n",
+ "select * from cities\n",
+ "join countries\n",
+ "where ST_Intersects(cities.geometry, countries.geometry)\n",
+ "\"\"\").show()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "5279bebd-1d8d-4f33-bcd9-2c1e93ff7221",
+ "metadata": {},
+ "source": [
+ "## Example #2: Joining two tables with different CRSs\n",
+ "\n",
+ "This example shows how to join a `vermont` table with an EPSG 32618 CRS
with a `buildings` table that uses an EPSG 4326 CRS.\n",
+ "\n",
+ "The example highlights the following features:\n",
+ "\n",
+ "1. SedonaDB reads the CRS stored in the files\n",
+ "2. SedonaDB protects you from accidentally joining files with mismatched
CRSs\n",
+ "3. It's easy to convert a GeoPandas DataFrame => a SedonaDB DataFrame and
maintain the CRS"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "id": "d9ea1469-8e6d-4ef1-a440-5573c1345f0d",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "import geopandas as gpd\n",
+ "\n",
+ "path =
\"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/example-crs/files/example-crs_vermont-utm.fgb\"\n",
+ "gdf = gpd.read_file(path)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "id": "46660482-3fed-4e6c-b37a-2947326e884a",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "vermont = sd.create_data_frame(gdf)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "id": "1571aa5e-638c-493a-90a1-0cffbeea0bd9",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SedonaSchema with 1 field:\n",
+ " geometry: wkb <epsg:32618>"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "vermont.schema"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "id": "eb4b33f1-972e-4c18-bdbd-fd4fe268b339",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "buildings = sd.read_parquet(\n",
+ "
\"https://github.com/geoarrow/geoarrow-data/releases/download/v0.2.0/microsoft-buildings_point_geo.parquet\"\n",
+ ")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "id": "22baf082-736e-4881-9704-d57eea07068c",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "┌─────────────────────────────────┐\n",
+ "│ geometry │\n",
+ "│ geometry │\n",
+ "╞═════════════════════════════════╡\n",
+ "│ POINT(-77.10109681 42.53495524) │\n",
+ "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+ "│ POINT(-77.10048552 42.53695011) │\n",
+ "├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤\n",
+ "│ POINT(-77.10096508 42.53681338) │\n",
+ "└─────────────────────────────────┘\n"
+ ]
+ }
+ ],
+ "source": [
+ "buildings.show(3)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "id": "e1d2d89d-8227-43ea-8507-fd6524fe2ac5",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "SedonaSchema with 1 field:\n",
+ " geometry: wkb_view <ogc:crs84>"
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "buildings.schema"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "id": "e959081e-3a8d-4041-b00f-a19bca10be39",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "129735970"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "buildings.count()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "id": "d9ef702f-e424-4e53-9629-da6ed256ee7f",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "buildings.to_view(\"buildings\", overwrite=True)\n",
+ "vermont.to_view(\"vermont\", overwrite=True)"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 12,
+ "id": "0c300dad-aa60-4291-a10b-d2a332b37593",
+ "metadata": {},
+ "outputs": [
+ {
+ "ename": "SedonaError",
+ "evalue": "type_coercion\ncaused by\nError during planning: Mismatched
CRS arguments: ogc:crs84 vs epsg:32618\nUse ST_Transform() or ST_SetSRID() to
ensure arguments are compatible.",
+ "output_type": "error",
+ "traceback": [
+
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mSedonaError\u001b[0m
Traceback (most recent call last)",
+ "Cell \u001b[0;32mIn[12], line 5\u001b[0m\n\u001b[1;32m 1\u001b[0m
\u001b[43msd\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msql\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\"\"\u001b[39;49m\n\u001b[1;32m
2\u001b[0m \u001b[38;5;124;43mselect count(*) from
buildings\u001b[39;49m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;124;43mjoin
vermont\u001b[39;49m\n\u001b[1;32m 4\u001b[0m \u001b[38;5;124;43mwhere
ST_Intersects(buildings.geometry, vermont.geometry)\u [...]
+ "File
\u001b[0;32m/opt/miniconda3/lib/python3.12/site-packages/sedonadb/dataframe.py:297\u001b[0m,
in \u001b[0;36mDataFrame.show\u001b[0;34m(self, limit, width,
ascii)\u001b[0m\n\u001b[1;32m 272\u001b[0m
\u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"Print the first limit rows
to the console\u001b[39;00m\n\u001b[1;32m 273\u001b[0m \n\u001b[1;32m
274\u001b[0m \u001b[38;5;124;03mArgs:\u001b[39;00m\n\u001b[0;32m
(...)\u001b[0m\n\u001b[1;32m 294\u001b[0m \n\u001b[1;32 [...]
+ "\u001b[0;31mSedonaError\u001b[0m: type_coercion\ncaused by\nError
during planning: Mismatched CRS arguments: ogc:crs84 vs epsg:32618\nUse
ST_Transform() or ST_SetSRID() to ensure arguments are compatible."
+ ]
+ }
+ ],
+ "source": [
+ "sd.sql(\"\"\"\n",
+ "select count(*) from buildings\n",
+ "join vermont\n",
+ "where ST_Intersects(buildings.geometry, vermont.geometry)\n",
+ "\"\"\").show()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 14,
+ "id": "648984ce-ac7a-4f76-ac9f-17bd5c628bd0",
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "┌──────────┐\n",
+ "│ count(*) │\n",
+ "│ int64 │\n",
+ "╞══════════╡\n",
+ "│ 361856 │\n",
+ "└──────────┘\n"
+ ]
+ }
+ ],
+ "source": [
+ "sd.sql(\"\"\"\n",
+ "select count(*) from buildings\n",
+ "join vermont\n",
+ "where ST_Intersects(buildings.geometry, ST_Transform(vermont.geometry,
'EPSG:4326'))\n",
+ "\"\"\").show()"
+ ]
+ }
+ ],
+ "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.12.4"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/0.1.0/quickstart-python/index.html b/0.1.0/crs-examples/index.html
similarity index 56%
copy from 0.1.0/quickstart-python/index.html
copy to 0.1.0/crs-examples/index.html
index c8b731a..be5f278 100644
--- a/0.1.0/quickstart-python/index.html
+++ b/0.1.0/crs-examples/index.html
@@ -7,13 +7,13 @@
- <link rel="canonical"
href="https://sedona.apache.org/sedonadb/latest/quickstart-python/">
+ <link rel="canonical"
href="https://sedona.apache.org/sedonadb/latest/crs-examples/">
- <link rel="prev" href="..">
+ <link rel="prev" href="../contributors-guide/">
- <link rel="next" href="../programming-guide/">
+ <link rel="next" href="../reference/python/">
<link rel="icon" href="../image/sedona_logo_symbol.png">
@@ -21,7 +21,7 @@
- <title>Python Quickstart - SedonaDB</title>
+ <title>CRS Examples - SedonaDB</title>
@@ -86,7 +86,7 @@
<div data-md-component="skip">
- <a href="#python-quickstart" class="md-skip">
+ <a href="#coordinate-reference-system-crs-examples" class="md-skip">
Skip to content
</a>
@@ -125,7 +125,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
- Python Quickstart
+ CRS Examples
</span>
</div>
@@ -228,17 +228,15 @@
-
-
- <li class="md-tabs__item md-tabs__item--active">
- <a href="./" class="md-tabs__link">
+ <li class="md-tabs__item">
+ <a href="../quickstart-python/" class="md-tabs__link">
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -249,10 +247,12 @@
+
+
- <li class="md-tabs__item">
+ <li class="md-tabs__item md-tabs__item--active">
<a href="../programming-guide/" class="md-tabs__link">
@@ -447,80 +447,20 @@
-
-
- <li class="md-nav__item md-nav__item--active">
-
- <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
-
-
-
-
-
- <label class="md-nav__link md-nav__link--active" for="__toc">
-
-
-
- <span class="md-ellipsis">
- Python Quickstart
-
- </span>
-
-
- <span class="md-nav__icon md-icon"></span>
- </label>
-
- <a href="./" class="md-nav__link md-nav__link--active">
+ <li class="md-nav__item">
+ <a href="../quickstart-python/" class="md-nav__link">
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
</a>
-
-
-
-<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
-
-
-
-
-
-
- <label class="md-nav__title" for="__toc">
- <span class="md-nav__icon md-icon"></span>
- Table of contents
- </label>
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
-
- <li class="md-nav__item">
- <a href="#point-in-polygon-join" class="md-nav__link">
- <span class="md-ellipsis">
- Point in polygon join
- </span>
- </a>
-
-</li>
-
- <li class="md-nav__item">
- <a href="#manually-create-sedonadb-dataframes" class="md-nav__link">
- <span class="md-ellipsis">
- Manually create SedonaDB DataFrames
- </span>
- </a>
-
-</li>
-
- </ul>
-
-</nav>
-
</li>
@@ -529,6 +469,8 @@
+
+
@@ -536,19 +478,22 @@
+
+
+
- <li class="md-nav__item md-nav__item--nested">
+ <li class="md-nav__item md-nav__item--active md-nav__item--section
md-nav__item--nested">
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3">
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3"
checked>
- <label class="md-nav__link" for="__nav_3" id="__nav_3_label"
tabindex="0">
+ <label class="md-nav__link" for="__nav_3" id="__nav_3_label"
tabindex="">
@@ -561,7 +506,7 @@
<span class="md-nav__icon md-icon"></span>
</label>
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label"
aria-expanded="false">
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label"
aria-expanded="true">
<label class="md-nav__title" for="__nav_3">
<span class="md-nav__icon md-icon"></span>
SedonaDB Guides
@@ -683,6 +628,98 @@
+
+
+
+
+
+
+
+
+ <li class="md-nav__item md-nav__item--active">
+
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
+
+
+
+
+
+ <label class="md-nav__link md-nav__link--active" for="__toc">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ <span class="md-nav__icon md-icon"></span>
+ </label>
+
+ <a href="./" class="md-nav__link md-nav__link--active">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+
+
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+
+
+
+
+
+
+ <label class="md-nav__title" for="__toc">
+ <span class="md-nav__icon md-icon"></span>
+ Table of contents
+ </label>
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+
+ <li class="md-nav__item">
+ <a href="#join-with-mismatched-crss" class="md-nav__link">
+ <span class="md-ellipsis">
+ Join with mismatched CRSs
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#convert-crs-and-then-join" class="md-nav__link">
+ <span class="md-ellipsis">
+ Convert CRS and then join
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#example-2-joining-two-tables-with-different-crss"
class="md-nav__link">
+ <span class="md-ellipsis">
+ Example #2: Joining two tables with different CRSs
+ </span>
+ </a>
+
+</li>
+
+ </ul>
+
+</nav>
+
+ </li>
+
+
+
+
</ul>
</nav>
@@ -1026,18 +1063,27 @@
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
- <a href="#point-in-polygon-join" class="md-nav__link">
+ <a href="#join-with-mismatched-crss" class="md-nav__link">
+ <span class="md-ellipsis">
+ Join with mismatched CRSs
+ </span>
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
+ <a href="#convert-crs-and-then-join" class="md-nav__link">
<span class="md-ellipsis">
- Point in polygon join
+ Convert CRS and then join
</span>
</a>
</li>
<li class="md-nav__item">
- <a href="#manually-create-sedonadb-dataframes" class="md-nav__link">
+ <a href="#example-2-joining-two-tables-with-different-crss"
class="md-nav__link">
<span class="md-ellipsis">
- Manually create SedonaDB DataFrames
+ Example #2: Joining two tables with different CRSs
</span>
</a>
@@ -1059,7 +1105,7 @@
- <a
href="https://github.com/apache/sedona-db/blob/main/docs/quickstart-python.md"
title="Edit this page" class="md-content__button md-icon" rel="edit">
+ <a
href="https://github.com/apache/sedona-db/blob/main/docs/crs-examples.md"
title="Edit this page" class="md-content__button md-icon" rel="edit">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M10
20H6V4h7v5h5v3.1l2-2V8l-6-6H6c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h4zm10.2-7c.1 0
.3.1.4.2l1.3 1.3c.2.2.2.6 0 .8l-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2m0 3.9L14.1
23H12v-2.1l6.1-6.1z"></path></svg>
</a>
@@ -1067,198 +1113,220 @@
-<!---
- 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
+<h1 id="coordinate-reference-system-crs-examples">Coordinate Reference System
(CRS) Examples<a class="headerlink"
href="#coordinate-reference-system-crs-examples" title="Permanent
link">¶</a></h1>
+<p>This example demonstrates how one table with an EPSG 4326 CRS cannot be
joined with another table that uses EPSG 3857.</p>
+<div class="highlight"><pre><span></span><code><span
class="kn">import</span><span class="w"> </span><span class="nn">sedonadb</span>
- 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.
---><h1 id="python-quickstart">Python Quickstart<a class="headerlink"
href="#python-quickstart" title="Permanent link">¶</a></h1>
-<p>SedonaDB for Python can be installed from <a
href="https://pypi.org">PyPI</a>:</p>
-<div class="highlight"><pre><span></span><code>pip<span class="w">
</span>install<span class="w"> </span><span
class="s2">"apache-sedona[db]"</span>
+<span class="n">sd</span> <span class="o">=</span> <span
class="n">sedonadb</span><span class="o">.</span><span
class="n">connect</span><span class="p">()</span>
+</code></pre></div>
+<p>Read a table with a geometry column that uses EPSG 4326.</p>
+<p>Note how SedonaDB reads the CRS specified in the Parquet file.</p>
+<div class="highlight"><pre><span></span><code><span
class="n">countries</span> <span class="o">=</span> <span
class="n">sd</span><span class="o">.</span><span
class="n">read_parquet</span><span class="p">(</span>
+ <span
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet"</span>
+<span class="p">)</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><span
class="n">countries</span><span class="o">.</span><span class="n">schema</span>
+</code></pre></div>
+<div class="codehilite"><pre><span></span><code>SedonaSchema with 3 fields:
+ name: Utf8View
+ continent: Utf8View
+ geometry: wkb_view <epsg:4326>
</code></pre></div>
-<p>If you can import the module and connect to a new session, you're good to
go!</p>
-<div class="highlight"><pre><span></span><code><span
class="kn">import</span><span class="w"> </span><span
class="nn">sedona.db</span>
-<span class="n">sd</span> <span class="o">=</span> <span
class="n">sedona</span><span class="o">.</span><span class="n">db</span><span
class="o">.</span><span class="n">connect</span><span class="p">()</span>
-<span class="n">sd</span><span class="o">.</span><span
class="n">sql</span><span class="p">(</span><span class="s2">"SELECT
ST_Point(0, 1) as geom"</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
+<div class="highlight"><pre><span></span><code><span class="n">cities</span>
<span class="o">=</span> <span class="n">sd</span><span class="o">.</span><span
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
+<span class="s2">SELECT city, ST_SetSRID(ST_GeomFromText(wkt), 3857) AS
geometry FROM (VALUES</span>
+<span class="s2"> ('New York', 'POINT(-8238310.24 4969803.34)'),</span>
+<span class="s2"> ('Los Angeles', 'POINT(-13153204.78 4037636.04)'),</span>
+<span class="s2"> ('Chicago', 'POINT(-9757148.04 5138517.44)'))</span>
+<span class="s2">AS t(city, wkt)"""</span><span class="p">)</span>
</code></pre></div>
-<div class="codehilite"><pre><span></span><code>┌────────────┐
-│ geom │
-│ geometry │
-╞════════════╡
-│ POINT(0 1) │
-└────────────┘
+<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span class="n">schema</span>
+</code></pre></div>
+<div class="codehilite"><pre><span></span><code>SedonaSchema with 2 fields:
+ city: Utf8
+ geometry: wkb <epsg:3857>
</code></pre></div>
-<h2 id="point-in-polygon-join">Point in polygon join<a class="headerlink"
href="#point-in-polygon-join" title="Permanent link">¶</a></h2>
-<div class="highlight"><pre><span></span><code><span class="n">cities</span>
<span class="o">=</span> <span class="n">sd</span><span class="o">.</span><span
class="n">read_parquet</span><span class="p">(</span>
- <span
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_cities_geo.parquet"</span>
-<span class="p">)</span>
+<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"cities"</span><span class="p">,</span> <span
class="n">overwrite</span><span class="o">=</span><span
class="kc">True</span><span class="p">)</span>
+<span class="n">countries</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"countries"</span><span class="p">,</span> <span
class="n">overwrite</span><span class="o">=</span><span
class="kc">True</span><span class="p">)</span>
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span class="n">show</span><span
class="p">()</span>
+<h2 id="join-with-mismatched-crss">Join with mismatched CRSs<a
class="headerlink" href="#join-with-mismatched-crss" title="Permanent
link">¶</a></h2>
+<p>The cities and countries tables have different CRSs.</p>
+<p>The cities table uses EPSG:3857 and the countries table uses EPSG:4326.</p>
+<p>Let's confirm that the code errors out if we try to join the mismatched
tables.</p>
+<div class="highlight"><pre><span></span><code><span class="c1"># join doesn't
work when CRSs don't match</span>
+<span class="n">sd</span><span class="o">.</span><span
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
+<span class="s2">select * from cities</span>
+<span class="s2">join countries</span>
+<span class="s2">where ST_Intersects(cities.geometry,
countries.geometry)</span>
+<span class="s2">"""</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
-<div
class="codehilite"><pre><span></span><code>┌──────────────┬───────────────────────────────┐
-│ name ┆ geometry │
-│ utf8view ┆ geometry │
-╞══════════════╪═══════════════════════════════╡
-│ Vatican City ┆ POINT(12.4533865 41.9032822) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ San Marino ┆ POINT(12.4417702 43.9360958) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Vaduz ┆ POINT(9.5166695 47.1337238) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Lobamba ┆ POINT(31.1999971 -26.4666675) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Luxembourg ┆ POINT(6.1300028 49.6116604) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Palikir ┆ POINT(158.1499743 6.9166437) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Majuro ┆ POINT(171.3800002 7.1030043) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Funafuti ┆ POINT(179.2166471 -8.516652) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Melekeok ┆ POINT(134.6265485 7.4873962) │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Bir Lehlou ┆ POINT(-9.6525222 26.1191667) │
-└──────────────┴───────────────────────────────┘
+<div class="codehilite"><pre><span></span><code><span
class="o">---------------------------------------------------------------------------</span>
+
+<span class="nx">SedonaError</span><span class="w">
</span><span class="nx">Traceback</span><span class="w"> </span><span
class="p">(</span><span class="nx">most</span><span class="w"> </span><span
class="nx">recent</span><span class="w"> </span><span
class="nx">call</span><span class="w"> </span><span class="nx">last</span><span
class="p">)</span>
+
+<span class="nx">Cell</span><span class="w"> </span><span
class="nx">In</span><span class="p">[</span><span class="mi">7</span><span
class="p">],</span><span class="w"> </span><span class="nx">line</span><span
class="w"> </span><span class="mi">6</span>
+<span class="w"> </span><span class="mi">1</span><span class="w">
</span><span class="err">#</span><span class="w"> </span><span
class="nx">join</span><span class="w"> </span><span
class="nx">doesn</span><span class="err">'</span><span class="nx">t</span><span
class="w"> </span><span class="nx">work</span><span class="w"> </span><span
class="nx">when</span><span class="w"> </span><span class="nx">CRSs</span><span
class="w"> </span><span class="nx">don</span><span class="err">'</span [...]
+<span class="w"> </span><span class="mi">2</span><span class="w">
</span><span class="nx">sd</span><span class="p">.</span><span
class="nx">sql</span><span class="p">(</span><span class="s">"""</span>
+<span class="s"> 3 select * from cities</span>
+<span class="s"> 4 join countries</span>
+<span class="s"> 5 where ST_Intersects(cities.geometry,
countries.geometry)</span>
+<span class="s">----> 6 """</span><span class="p">).</span><span
class="nx">show</span><span class="p">()</span>
+
+
+<span class="nx">File</span><span class="w"> </span><span
class="o">/</span><span class="nx">opt</span><span class="o">/</span><span
class="nx">miniconda3</span><span class="o">/</span><span
class="nx">lib</span><span class="o">/</span><span
class="nx">python3</span><span class="m m-Double">.12</span><span
class="o">/</span><span class="nx">site</span><span class="o">-</span><span
class="nx">packages</span><span class="o">/</span><span
class="nx">sedonadb</span><span class="o">/</span><s [...]
+<span class="w"> </span><span class="mi">272</span><span class="w">
</span><span class="s">"""Print the first limit rows to the console</span>
+<span class="s"> 273 </span>
+<span class="s"> 274 Args:</span>
+<span class="s"> (...)</span>
+<span class="s"> 294 </span>
+<span class="s"> 295 """</span>
+<span class="w"> </span><span class="mi">296</span><span class="w">
</span><span class="nx">width</span><span class="w"> </span><span
class="p">=</span><span class="w"> </span><span
class="nx">_out_width</span><span class="p">(</span><span
class="nx">width</span><span class="p">)</span>
+<span class="o">--</span><span class="p">></span><span class="w">
</span><span class="mi">297</span><span class="w"> </span><span
class="nx">print</span><span class="p">(</span><span
class="kp">self</span><span class="p">.</span><span
class="nx">_impl</span><span class="p">.</span><span
class="nx">show</span><span class="p">(</span><span class="kp">self</span><span
class="p">.</span><span class="nx">_ctx</span><span class="p">,</span><span
class="w"> </span><span class="nx">limit</spa [...]
+
+
+<span class="nx">SedonaError</span><span class="p">:</span><span class="w">
</span><span class="nx">type_coercion</span>
+<span class="nx">caused</span><span class="w"> </span><span
class="nx">by</span>
+<span class="nx">Error</span><span class="w"> </span><span
class="nx">during</span><span class="w"> </span><span
class="nx">planning</span><span class="p">:</span><span class="w"> </span><span
class="nx">Mismatched</span><span class="w"> </span><span
class="nx">CRS</span><span class="w"> </span><span
class="nx">arguments</span><span class="p">:</span><span class="w">
</span><span class="nx">epsg</span><span class="p">:</span><span
class="mi">3857</span><span class="w"> </span><span class [...]
+<span class="nx">Use</span><span class="w"> </span><span
class="nx">ST_Transform</span><span class="p">()</span><span class="w">
</span><span class="k">or</span><span class="w"> </span><span
class="nx">ST_SetSRID</span><span class="p">()</span><span class="w">
</span><span class="nx">to</span><span class="w"> </span><span
class="nx">ensure</span><span class="w"> </span><span
class="nx">arguments</span><span class="w"> </span><span
class="nx">are</span><span class="w"> </span><span class= [...]
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span
class="n">countries</span> <span class="o">=</span> <span
class="n">sd</span><span class="o">.</span><span
class="n">read_parquet</span><span class="p">(</span>
- <span
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/natural-earth/files/natural-earth_countries_geo.parquet"</span>
-<span class="p">)</span>
+<h2 id="convert-crs-and-then-join">Convert CRS and then join<a
class="headerlink" href="#convert-crs-and-then-join" title="Permanent
link">¶</a></h2>
+<p>Let's convert the cities table to use EPSG:4326 and then perform the join
with the two tables once they have matching CRSs.</p>
+<div class="highlight"><pre><span></span><code><span class="c1"># update
cities to use 4326</span>
+<span class="n">cities</span> <span class="o">=</span> <span
class="n">sd</span><span class="o">.</span><span class="n">sql</span><span
class="p">(</span><span class="s2">"""</span>
+<span class="s2">SELECT city, ST_Transform(geometry, 'EPSG:4326') as
geometry</span>
+<span class="s2">FROM cities</span>
+<span class="s2">"""</span><span class="p">)</span>
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span
class="n">countries</span><span class="o">.</span><span
class="n">show</span><span class="p">()</span>
+<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span class="n">schema</span>
</code></pre></div>
-<div
class="codehilite"><pre><span></span><code>┌─────────────────────────────┬───────────────┬────────────────────────────────────────────────────┐
-│ name ┆ continent ┆ geometry
│
-│ utf8view ┆ utf8view ┆ geometry
│
-╞═════════════════════════════╪═══════════════╪════════════════════════════════════════════════════╡
-│ Fiji ┆ Oceania ┆ MULTIPOLYGON(((180
-16.067132663642447,180 -16.55… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United Republic of Tanzania ┆ Africa ┆ POLYGON((33.90371119710453
-0.9500000000000001,34… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Western Sahara ┆ Africa ┆ POLYGON((-8.665589565454809
27.656425889592356,-8… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Canada ┆ North America ┆
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ United States of America ┆ North America ┆
MULTIPOLYGON(((-122.84000000000003 49.00000000000… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Kazakhstan ┆ Asia ┆ POLYGON((87.35997033076265
49.21498078062912,86.5… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Uzbekistan ┆ Asia ┆ POLYGON((55.96819135928291
41.30864166926936,55.9… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Papua New Guinea ┆ Oceania ┆
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Indonesia ┆ Asia ┆
MULTIPOLYGON(((141.00021040259185 -2.600151055515… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Argentina ┆ South America ┆
MULTIPOLYGON(((-68.63401022758323 -52.63637045887… │
-└─────────────────────────────┴───────────────┴────────────────────────────────────────────────────┘
+<div class="codehilite"><pre><span></span><code>SedonaSchema with 2 fields:
+ city: Utf8
+ geometry: wkb <ogc:crs84>
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"cities"</span><span class="p">)</span>
-<span class="n">countries</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"countries"</span><span class="p">)</span>
+<div class="highlight"><pre><span></span><code><span
class="n">cities</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"cities"</span><span class="p">,</span> <span
class="n">overwrite</span><span class="o">=</span><span
class="kc">True</span><span class="p">)</span>
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="c1"># join the
cities and countries tables</span>
+<div class="highlight"><pre><span></span><code><span class="c1"># join works
when CRSs match</span>
<span class="n">sd</span><span class="o">.</span><span
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
<span class="s2">select * from cities</span>
<span class="s2">join countries</span>
<span class="s2">where ST_Intersects(cities.geometry,
countries.geometry)</span>
<span class="s2">"""</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
-<div
class="codehilite"><pre><span></span><code>┌───────────────┬──────────────────────┬─────────────────────┬───────────────┬─────────────────────┐
-│ name ┆ geometry ┆ name ┆ continent ┆
geometry │
-│ utf8view ┆ geometry ┆ utf8view ┆ utf8view ┆
geometry │
-╞═══════════════╪══════════════════════╪═════════════════════╪═══════════════╪═════════════════════╡
-│ Suva ┆ POINT(178.4417073 -… ┆ Fiji ┆ Oceania ┆
MULTIPOLYGON(((180… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Dodoma ┆ POINT(35.7500036 -6… ┆ United Republic of… ┆ Africa ┆
POLYGON((33.903711… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Dar es Salaam ┆ POINT(39.266396 -6.… ┆ United Republic of… ┆ Africa ┆
POLYGON((33.903711… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Bir Lehlou ┆ POINT(-9.6525222 26… ┆ Western Sahara ┆ Africa ┆
POLYGON((-8.665589… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Ottawa ┆ POINT(-75.7019612 4… ┆ Canada ┆ North America ┆
MULTIPOLYGON(((-12… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Vancouver ┆ POINT(-123.1235901 … ┆ Canada ┆ North America ┆
MULTIPOLYGON(((-12… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Toronto ┆ POINT(-79.389458554… ┆ Canada ┆ North America ┆
MULTIPOLYGON(((-12… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ San Francisco ┆ POINT(-122.39959956… ┆ United States of A… ┆ North America ┆
MULTIPOLYGON(((-12… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Denver ┆ POINT(-104.9859618 … ┆ United States of A… ┆ North America ┆
MULTIPOLYGON(((-12… │
-├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ Houston ┆ POINT(-95.348436256… ┆ United States of A… ┆ North America ┆
MULTIPOLYGON(((-12… │
-└───────────────┴──────────────────────┴─────────────────────┴───────────────┴─────────────────────┘
+<div
class="codehilite"><pre><span></span><code>┌─────────────┬──────────────────────┬──────────────────────┬───────────────┬──────────────────────┐
+│ city ┆ geometry ┆ name ┆ continent ┆
geometry │
+│ utf8 ┆ geometry ┆ utf8view ┆ utf8view ┆
geometry │
+╞═════════════╪══════════════════════╪══════════════════════╪═══════════════╪══════════════════════╡
+│ New York ┆ POINT(-74.006000039… ┆ United States of Am… ┆ North America ┆
MULTIPOLYGON(((-122… │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Los Angeles ┆ POINT(-118.15724889… ┆ United States of Am… ┆ North America ┆
MULTIPOLYGON(((-122… │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ Chicago ┆ POINT(-87.649952137… ┆ United States of Am… ┆ North America ┆
MULTIPOLYGON(((-122… │
+└─────────────┴──────────────────────┴──────────────────────┴───────────────┴──────────────────────┘
+</code></pre></div>
+
+<h2 id="example-2-joining-two-tables-with-different-crss">Example #2: Joining
two tables with different CRSs<a class="headerlink"
href="#example-2-joining-two-tables-with-different-crss" title="Permanent
link">¶</a></h2>
+<p>This example shows how to join a <code>vermont</code> table with an EPSG
32618 CRS with a <code>buildings</code> table that uses an EPSG 4326 CRS.</p>
+<p>The example highlights the following features:</p>
+<ol>
+<li>SedonaDB reads the CRS stored in the files</li>
+<li>SedonaDB protects you from accidentally joining files with mismatched
CRSs</li>
+<li>It's easy to convert a GeoPandas DataFrame => a SedonaDB DataFrame and
maintain the CRS</li>
+</ol>
+<div class="highlight"><pre><span></span><code><span
class="kn">import</span><span class="w"> </span><span
class="nn">geopandas</span><span class="w"> </span><span
class="k">as</span><span class="w"> </span><span class="nn">gpd</span>
+
+<span class="n">path</span> <span class="o">=</span> <span
class="s2">"https://raw.githubusercontent.com/geoarrow/geoarrow-data/v0.2.0/example-crs/files/example-crs_vermont-utm.fgb"</span>
+<span class="n">gdf</span> <span class="o">=</span> <span
class="n">gpd</span><span class="o">.</span><span
class="n">read_file</span><span class="p">(</span><span
class="n">path</span><span class="p">)</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><span class="n">vermont</span>
<span class="o">=</span> <span class="n">sd</span><span class="o">.</span><span
class="n">create_data_frame</span><span class="p">(</span><span
class="n">gdf</span><span class="p">)</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><span
class="n">vermont</span><span class="o">.</span><span class="n">schema</span>
+</code></pre></div>
+<div class="codehilite"><pre><span></span><code>SedonaSchema with 1 field:
+ geometry: wkb <epsg:32618>
</code></pre></div>
-<h2 id="manually-create-sedonadb-dataframes">Manually create SedonaDB
DataFrames<a class="headerlink" href="#manually-create-sedonadb-dataframes"
title="Permanent link">¶</a></h2>
-<p>Let's create a DataFrame with one string column and one geometry column to
show some of the functionality of the SedonaDB Python interface.</p>
-<div class="highlight"><pre><span></span><code><span class="n">df</span> <span
class="o">=</span> <span class="n">sd</span><span class="o">.</span><span
class="n">sql</span><span class="p">(</span><span class="s2">"""</span>
-<span class="s2">SELECT * FROM (VALUES</span>
-<span class="s2"> ('one', ST_GeomFromWkt('POINT(1 2)')),</span>
-<span class="s2"> ('two', ST_GeomFromWkt('POLYGON((-74.0 40.7, -74.0 40.8,
-73.9 40.8, -73.9 40.7, -74.0 40.7))')),</span>
-<span class="s2"> ('three', ST_GeomFromWkt('LINESTRING(-74.0060 40.7128,
-73.9352 40.7306, -73.8561 40.8484)')))</span>
-<span class="s2">AS t(val, point)"""</span><span class="p">)</span>
+<div class="highlight"><pre><span></span><code><span
class="n">buildings</span> <span class="o">=</span> <span
class="n">sd</span><span class="o">.</span><span
class="n">read_parquet</span><span class="p">(</span>
+ <span
class="s2">"https://github.com/geoarrow/geoarrow-data/releases/download/v0.2.0/microsoft-buildings_point_geo.parquet"</span>
+<span class="p">)</span>
+</code></pre></div>
+<div class="highlight"><pre><span></span><code><span
class="n">buildings</span><span class="o">.</span><span
class="n">show</span><span class="p">(</span><span class="mi">3</span><span
class="p">)</span>
+</code></pre></div>
+<div
class="codehilite"><pre><span></span><code>┌─────────────────────────────────┐
+│ geometry │
+│ geometry │
+╞═════════════════════════════════╡
+│ POINT(-77.10109681 42.53495524) │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ POINT(-77.10048552 42.53695011) │
+├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
+│ POINT(-77.10096508 42.53681338) │
+└─────────────────────────────────┘
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="n">df</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
+
+<div class="highlight"><pre><span></span><code><span
class="n">buildings</span><span class="o">.</span><span class="n">schema</span>
</code></pre></div>
-<div
class="codehilite"><pre><span></span><code>┌───────┬──────────────────────────────────────────────────────────────────────────────────────────┐
-│ val ┆ point
│
-│ utf8 ┆ binary
│
-╞═══════╪══════════════════════════════════════════════════════════════════════════════════════════╡
-│ one ┆ 0101000000000000000000f03f0000000000000040
│
-├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ two ┆
0103000000010000000500000000000000008052c09a9999999959444000000000008052c06666666666664…
│
-├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ three ┆
010200000003000000aaf1d24d628052c05e4bc8073d5b444007ce1951da7b52c0933a014d845d4440c286a…
│
-└───────┴──────────────────────────────────────────────────────────────────────────────────────────┘
+<div class="codehilite"><pre><span></span><code>SedonaSchema with 1 field:
+ geometry: wkb_view <ogc:crs84>
</code></pre></div>
-<p>Verify that this object is a SedonaDB DataFrame.</p>
-<div class="highlight"><pre><span></span><code><span
class="nb">type</span><span class="p">(</span><span class="n">df</span><span
class="p">)</span>
+<div class="highlight"><pre><span></span><code><span
class="n">buildings</span><span class="o">.</span><span
class="n">count</span><span class="p">()</span>
</code></pre></div>
-<div class="codehilite"><pre><span></span><code>sedonadb.dataframe.DataFrame
+<div class="codehilite"><pre><span></span><code><span
class="mf">129735970</span>
</code></pre></div>
-<p>Expose the DataFrame as a view and run a SQL operation on the geometry
data.</p>
-<div class="highlight"><pre><span></span><code><span class="n">df</span><span
class="o">.</span><span class="n">to_view</span><span class="p">(</span><span
class="s2">"fun_table"</span><span class="p">)</span>
+<div class="highlight"><pre><span></span><code><span
class="n">buildings</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"buildings"</span><span class="p">,</span> <span
class="n">overwrite</span><span class="o">=</span><span
class="kc">True</span><span class="p">)</span>
+<span class="n">vermont</span><span class="o">.</span><span
class="n">to_view</span><span class="p">(</span><span
class="s2">"vermont"</span><span class="p">,</span> <span
class="n">overwrite</span><span class="o">=</span><span
class="kc">True</span><span class="p">)</span>
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="n">sd</span><span
class="o">.</span><span class="n">sql</span><span class="p">(</span><span
class="s2">"DESCRIBE fun_table"</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
+<div class="highlight"><pre><span></span><code><span class="n">sd</span><span
class="o">.</span><span class="n">sql</span><span class="p">(</span><span
class="s2">"""</span>
+<span class="s2">select count(*) from buildings</span>
+<span class="s2">join vermont</span>
+<span class="s2">where ST_Intersects(buildings.geometry,
vermont.geometry)</span>
+<span class="s2">"""</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
-<div class="codehilite"><pre><span></span><code><span
class="err">┌─────────────┬───────────┬─────────────┐</span>
-<span class="err">│</span><span class="w"> </span><span
class="nx">column_name</span><span class="w"> </span><span
class="err">┆</span><span class="w"> </span><span
class="nx">data_type</span><span class="w"> </span><span
class="err">┆</span><span class="w"> </span><span
class="nx">is_nullable</span><span class="w"> </span><span class="err">│</span>
-<span class="err">│</span><span class="w"> </span><span
class="nx">utf8</span><span class="w"> </span><span
class="err">┆</span><span class="w"> </span><span
class="nx">utf8</span><span class="w"> </span><span class="err">┆</span><span
class="w"> </span><span class="nx">utf8</span><span class="w">
</span><span class="err">│</span>
-<span class="err">╞═════════════╪═══════════╪═════════════╡</span>
-<span class="err">│</span><span class="w"> </span><span
class="nx">val</span><span class="w"> </span><span
class="err">┆</span><span class="w"> </span><span class="nx">Utf8</span><span
class="w"> </span><span class="err">┆</span><span class="w"> </span><span
class="nx">YES</span><span class="w"> </span><span class="err">│</span>
-<span class="err">├╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌┤</span>
-<span class="err">│</span><span class="w"> </span><span
class="nx">point</span><span class="w"> </span><span
class="err">┆</span><span class="w"> </span><span class="nx">Binary</span><span
class="w"> </span><span class="err">┆</span><span class="w"> </span><span
class="nx">YES</span><span class="w"> </span><span class="err">│</span>
-<span class="err">└─────────────┴───────────┴─────────────┘</span>
+<div class="codehilite"><pre><span></span><code><span
class="o">---------------------------------------------------------------------------</span>
+
+<span class="nx">SedonaError</span><span class="w">
</span><span class="nx">Traceback</span><span class="w"> </span><span
class="p">(</span><span class="nx">most</span><span class="w"> </span><span
class="nx">recent</span><span class="w"> </span><span
class="nx">call</span><span class="w"> </span><span class="nx">last</span><span
class="p">)</span>
+
+<span class="nx">Cell</span><span class="w"> </span><span
class="nx">In</span><span class="p">[</span><span class="mi">12</span><span
class="p">],</span><span class="w"> </span><span class="nx">line</span><span
class="w"> </span><span class="mi">5</span>
+<span class="w"> </span><span class="mi">1</span><span class="w">
</span><span class="nx">sd</span><span class="p">.</span><span
class="nx">sql</span><span class="p">(</span><span class="s">"""</span>
+<span class="s"> 2 select count(*) from buildings</span>
+<span class="s"> 3 join vermont</span>
+<span class="s"> 4 where ST_Intersects(buildings.geometry,
vermont.geometry)</span>
+<span class="s">----> 5 """</span><span class="p">).</span><span
class="nx">show</span><span class="p">()</span>
+
+
+<span class="nx">File</span><span class="w"> </span><span
class="o">/</span><span class="nx">opt</span><span class="o">/</span><span
class="nx">miniconda3</span><span class="o">/</span><span
class="nx">lib</span><span class="o">/</span><span
class="nx">python3</span><span class="m m-Double">.12</span><span
class="o">/</span><span class="nx">site</span><span class="o">-</span><span
class="nx">packages</span><span class="o">/</span><span
class="nx">sedonadb</span><span class="o">/</span><s [...]
+<span class="w"> </span><span class="mi">272</span><span class="w">
</span><span class="s">"""Print the first limit rows to the console</span>
+<span class="s"> 273 </span>
+<span class="s"> 274 Args:</span>
+<span class="s"> (...)</span>
+<span class="s"> 294 </span>
+<span class="s"> 295 """</span>
+<span class="w"> </span><span class="mi">296</span><span class="w">
</span><span class="nx">width</span><span class="w"> </span><span
class="p">=</span><span class="w"> </span><span
class="nx">_out_width</span><span class="p">(</span><span
class="nx">width</span><span class="p">)</span>
+<span class="o">--</span><span class="p">></span><span class="w">
</span><span class="mi">297</span><span class="w"> </span><span
class="nx">print</span><span class="p">(</span><span
class="kp">self</span><span class="p">.</span><span
class="nx">_impl</span><span class="p">.</span><span
class="nx">show</span><span class="p">(</span><span class="kp">self</span><span
class="p">.</span><span class="nx">_ctx</span><span class="p">,</span><span
class="w"> </span><span class="nx">limit</spa [...]
+
+
+<span class="nx">SedonaError</span><span class="p">:</span><span class="w">
</span><span class="nx">type_coercion</span>
+<span class="nx">caused</span><span class="w"> </span><span
class="nx">by</span>
+<span class="nx">Error</span><span class="w"> </span><span
class="nx">during</span><span class="w"> </span><span
class="nx">planning</span><span class="p">:</span><span class="w"> </span><span
class="nx">Mismatched</span><span class="w"> </span><span
class="nx">CRS</span><span class="w"> </span><span
class="nx">arguments</span><span class="p">:</span><span class="w">
</span><span class="nx">ogc</span><span class="p">:</span><span
class="nx">crs84</span><span class="w"> </span><span class [...]
+<span class="nx">Use</span><span class="w"> </span><span
class="nx">ST_Transform</span><span class="p">()</span><span class="w">
</span><span class="k">or</span><span class="w"> </span><span
class="nx">ST_SetSRID</span><span class="p">()</span><span class="w">
</span><span class="nx">to</span><span class="w"> </span><span
class="nx">ensure</span><span class="w"> </span><span
class="nx">arguments</span><span class="w"> </span><span
class="nx">are</span><span class="w"> </span><span class= [...]
</code></pre></div>
-<div class="highlight"><pre><span></span><code><span class="n">sd</span><span
class="o">.</span><span class="n">sql</span><span class="p">(</span><span
class="s2">"SELECT *, ST_Centroid(ST_GeomFromWKB(point)) as centroid from
fun_table"</span><span class="p">)</span><span class="o">.</span><span
class="n">show</span><span class="p">()</span>
+<div class="highlight"><pre><span></span><code><span class="n">sd</span><span
class="o">.</span><span class="n">sql</span><span class="p">(</span><span
class="s2">"""</span>
+<span class="s2">select count(*) from buildings</span>
+<span class="s2">join vermont</span>
+<span class="s2">where ST_Intersects(buildings.geometry,
ST_Transform(vermont.geometry, 'EPSG:4326'))</span>
+<span class="s2">"""</span><span class="p">)</span><span
class="o">.</span><span class="n">show</span><span class="p">()</span>
</code></pre></div>
-<div
class="codehilite"><pre><span></span><code>┌───────┬─────────────────────────────────────────────┬────────────────────────────────────────────┐
-│ val ┆ point ┆
centroid │
-│ utf8 ┆ binary ┆
geometry │
-╞═══════╪═════════════════════════════════════════════╪════════════════════════════════════════════╡
-│ one ┆ 0101000000000000000000f03f0000000000000040 ┆ POINT(1 2)
│
-├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ two ┆ 0103000000010000000500000000000000008052c0… ┆ POINT(-73.95 40.75)
│
-├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤
-│ three ┆ 010200000003000000aaf1d24d628052c05e4bc807… ┆
POINT(-73.92111155675562 40.7664673976246… │
-└───────┴─────────────────────────────────────────────┴────────────────────────────────────────────┘
+<div class="codehilite"><pre><span></span><code>┌──────────┐
+│ count(*) │
+│ int64 │
+╞══════════╡
+│ 361856 │
+└──────────┘
</code></pre></div>
@@ -1280,7 +1348,7 @@
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1
7.5 7.1 7.9l-.1.2z"></path></svg>
</span>
- <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 18, 2025 00:36:42
UTC">September 18, 2025 00:36:42</span>
+ <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 22, 2025 04:01:07
UTC">September 22, 2025 04:01:07</span>
</span>
@@ -1316,7 +1384,7 @@
<nav class="md-footer__inner md-grid" aria-label="Footer">
- <a href=".." class="md-footer__link md-footer__link--prev"
aria-label="Previous: SedonaDB">
+ <a href="../contributors-guide/" class="md-footer__link
md-footer__link--prev" aria-label="Previous: Contributors Guide">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24
24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8
11z"></path></svg>
@@ -1326,20 +1394,20 @@
Previous
</span>
<div class="md-ellipsis">
- SedonaDB
+ Contributors Guide
</div>
</div>
</a>
- <a href="../programming-guide/" class="md-footer__link
md-footer__link--next" aria-label="Next: Working with Vector Data">
+ <a href="../reference/python/" class="md-footer__link
md-footer__link--next" aria-label="Next: Python Functions">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
- Working with Vector Data
+ Python Functions
</div>
</div>
<div class="md-footer__button md-icon">
diff --git a/0.1.0/geopandas-interop/index.html
b/0.1.0/geopandas-interop/index.html
index 8f68325..dea9033 100644
--- a/0.1.0/geopandas-interop/index.html
+++ b/0.1.0/geopandas-interop/index.html
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -697,6 +697,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/image/sedonadb-architecture.svg
b/0.1.0/image/sedonadb-architecture.svg
new file mode 100644
index 0000000..ee28c35
--- /dev/null
+++ b/0.1.0/image/sedonadb-architecture.svg
@@ -0,0 +1,117 @@
+<svg width="1146" height="652" viewBox="0 0 1146 652" fill="none"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<rect width="1146" height="652" fill="white"/>
+<rect y="72" width="1146" height="580" rx="20" fill="#EFEAEA"/>
+<rect x="373" width="734" height="88" rx="10" fill="#E7F5FD"/>
+<rect x="393" y="16" width="160" height="56" rx="5" fill="white"
fill-opacity="0.8"/>
+<path d="M453.56 36.72H460.28C461.64 36.72 462.7 37.0533 463.46 37.72C464.233
38.3867 464.62 39.3 464.62 40.46C464.62 41.3267 464.42 42.0867 464.02
42.74C463.633 43.3933 463.007 43.84 462.14 44.08V44.12C462.553 44.2 462.887
44.3333 463.14 44.52C463.407 44.7067 463.613 44.9333 463.76 45.2C463.92 45.4533
464.033 45.74 464.1 46.06C464.18 46.38 464.24 46.7133 464.28 47.06C464.307
47.4067 464.327 47.76 464.34 48.12C464.353 48.48 464.387 48.8333 464.44
49.18C464.493 49.5267 464.567 49.86 464.6 [...]
+<rect x="571" y="16" width="160" height="56" rx="5" fill="white"
fill-opacity="0.8"/>
+<path d="M607.656 31.9C607.549 30.8733 607.176 30.1333 606.536 29.68C605.909
29.2133 605.103 28.98 604.116 28.98C603.716 28.98 603.323 29.02 602.936
29.1C602.549 29.18 602.203 29.3133 601.896 29.5C601.603 29.6867 601.363 29.94
601.176 30.26C601.003 30.5667 600.916 30.9533 600.916 31.42C600.916 31.86
601.043 32.22 601.296 32.5C601.563 32.7667 601.909 32.9867 602.336
33.16C602.776 33.3333 603.269 33.48 603.816 33.6C604.363 33.7067 604.916
33.8267 605.476 33.96C606.049 34.0933 606.609 34.25 [...]
+<rect x="749" y="16" width="160" height="56" rx="5" fill="white"
fill-opacity="0.8"/>
+<path d="M800.96 43.56H804.68C805.76 43.5733 806.547 43.3533 807.04
42.9C807.547 42.4467 807.8 41.7933 807.8 40.94C807.8 40.0867 807.547 39.44
807.04 39C806.547 38.5467 805.76 38.32 804.68 38.32H800.96V43.56ZM799.06
36.72H805.32C806.76 36.72 807.847 37.0933 808.58 37.84C809.327 38.5733 809.7
39.6067 809.7 40.94C809.7 42.2733 809.327 43.3133 808.58 44.06C807.847 44.8067
806.76 45.1733 805.32 45.16H800.96V51H799.06V36.72ZM815.809 52.38C815.609
52.8867 815.409 53.3133 815.209 53.66C815.022 [...]
+<rect x="927" y="16" width="160" height="56" rx="5" fill="white"
fill-opacity="0.8"/>
+<path d="M1001.56 36.72H1008.28C1009.64 36.72 1010.7 37.0533 1011.46
37.72C1012.23 38.3867 1012.62 39.3 1012.62 40.46C1012.62 41.3267 1012.42
42.0867 1012.02 42.74C1011.63 43.3933 1011.01 43.84 1010.14 44.08V44.12C1010.55
44.2 1010.89 44.3333 1011.14 44.52C1011.41 44.7067 1011.61 44.9333 1011.76
45.2C1011.92 45.4533 1012.03 45.74 1012.1 46.06C1012.18 46.38 1012.24 46.7133
1012.28 47.06C1012.31 47.4067 1012.33 47.76 1012.34 48.12C1012.35 48.48 1012.39
48.8333 1012.44 49.18C1012.49 49.5267 [...]
+<rect x="373.5" y="108.5" width="735" height="163" rx="9.5" fill="white"/>
+<rect x="373.5" y="108.5" width="735" height="163" rx="9.5"
stroke="url(#paint0_linear_490_50)"/>
+<path d="M584.526 133.38C584.398 132.148 583.95 131.26 583.182 130.716C582.43
130.156 581.462 129.876 580.278 129.876C579.798 129.876 579.326 129.924 578.862
130.02C578.398 130.116 577.982 130.276 577.614 130.5C577.262 130.724 576.974
131.028 576.75 131.412C576.542 131.78 576.438 132.244 576.438 132.804C576.438
133.332 576.59 133.764 576.894 134.1C577.214 134.42 577.63 134.684 578.142
134.892C578.67 135.1 579.262 135.276 579.918 135.42C580.574 135.548 581.238
135.692 581.91 135.852C582.5 [...]
+<rect x="395" y="168" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M417.08 190.3C417.067 191.033 417.18 191.647 417.42 192.14C417.66
192.633 417.987 193.027 418.4 193.32C418.827 193.613 419.327 193.827 419.9
193.96C420.473 194.08 421.087 194.14 421.74 194.14C422.113 194.14 422.52
194.087 422.96 193.98C423.4 193.873 423.807 193.707 424.18 193.48C424.567
193.24 424.887 192.94 425.14 192.58C425.393 192.207 425.52 191.76 425.52
191.24C425.52 190.84 425.427 190.493 425.24 190.2C425.067 189.907 424.833
189.66 424.54 189.46C424.26 189.26 423.947 189.1 [...]
+<rect x="572.333" y="168" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M601.913 190.3C601.9 191.033 602.013 191.647 602.253 192.14C602.493
192.633 602.82 193.027 603.233 193.32C603.66 193.613 604.16 193.827 604.733
193.96C605.307 194.08 605.92 194.14 606.573 194.14C606.947 194.14 607.353
194.087 607.793 193.98C608.233 193.873 608.64 193.707 609.013 193.48C609.4
193.24 609.72 192.94 609.973 192.58C610.227 192.207 610.353 191.76 610.353
191.24C610.353 190.84 610.26 190.493 610.073 190.2C609.9 189.907 609.667 189.66
609.373 189.46C609.093 189.26 608.7 [...]
+<rect x="749.667" y="168" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M781.747 190.3C781.733 191.033 781.847 191.647 782.087 192.14C782.327
192.633 782.653 193.027 783.067 193.32C783.493 193.613 783.993 193.827 784.567
193.96C785.14 194.08 785.753 194.14 786.407 194.14C786.78 194.14 787.187
194.087 787.627 193.98C788.067 193.873 788.473 193.707 788.847 193.48C789.233
193.24 789.553 192.94 789.807 192.58C790.06 192.207 790.187 191.76 790.187
191.24C790.187 190.84 790.093 190.493 789.907 190.2C789.733 189.907 789.5
189.66 789.207 189.46C788.927 189. [...]
+<rect x="927" y="168" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M966.94 180.72H968.3V188.4L976.6 180.72H978.44L972.06 186.62L978.74
195H976.98L971.04 187.56L968.3 190.1V195H966.94V180.72ZM979.889
180.72H981.409L989.729 192.8H989.769V180.72H991.129V195H989.609L981.289
182.92H981.249V195H979.889V180.72ZM993.971 180.72H995.491L1003.81
192.8H1003.85V180.72H1005.21V195H1003.69L995.371
182.92H995.331V195H993.971V180.72ZM1019.4 180.72H1020.76V191.02C1020.76 191.753
1020.69 192.387 1020.54 192.92C1020.39 193.453 1020.15 193.893 1019.82
194.24C1019.5 [...]
+<rect x="395" y="214" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M423.4 226.72L428.14 239.24L433.06
226.72H435.06V241H433.7V228.66H433.66L428.78 241H427.5L422.8
228.66H422.76V241H421.4V226.72H423.4ZM437.506 233.84C437.546 233.24 437.672
232.72 437.886 232.28C438.099 231.84 438.386 231.48 438.746 231.2C439.119
230.92 439.552 230.713 440.046 230.58C440.539 230.447 441.086 230.38 441.686
230.38C442.139 230.38 442.592 230.427 443.046 230.52C443.499 230.6 443.906
230.76 444.266 231C444.626 231.24 444.919 231.58 445.146 232.02C445.372 232.447
445.4 [...]
+<rect x="572.333" y="214" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M631.253 226.72H632.773L641.093
238.8H641.133V226.72H642.493V241H640.973L632.653
228.92H632.613V241H631.253V226.72ZM645.355 226.72H650.295C652.469 226.773
654.102 227.387 655.195 228.56C656.302 229.72 656.855 231.487 656.855
233.86C656.855 236.233 656.302 238.007 655.195 239.18C654.102 240.34 652.469
240.947 650.295 241H645.355V226.72ZM646.715 239.84H649.615C650.642 239.84
651.522 239.733 652.255 239.52C653.002 239.293 653.615 238.94 654.095
238.46C654.575 237.98 654.929 237.36 [...]
+<rect x="749.667" y="214" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M809.567 226.72L814.307 239.24L819.227
226.72H821.227V241H819.867V228.66H819.827L814.947 241H813.667L808.967
228.66H808.927V241H807.567V226.72H809.567ZM823.673 233.84C823.713 233.24
823.839 232.72 824.053 232.28C824.266 231.84 824.553 231.48 824.913
231.2C825.286 230.92 825.719 230.713 826.213 230.58C826.706 230.447 827.253
230.38 827.853 230.38C828.306 230.38 828.759 230.427 829.213 230.52C829.666
230.6 830.073 230.76 830.433 231C830.793 231.24 831.086 231.58 831.313
232.02C831 [...]
+<rect x="927" y="214" width="160" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M958.74 226.72H969.02V227.92L959.62
239.84H969.22V241H958.1V239.8L967.5 227.88H958.74V226.72ZM975.044
231.44C974.444 231.44 973.918 231.567 973.464 231.82C973.011 232.073 972.631
232.407 972.324 232.82C972.031 233.233 971.804 233.707 971.644 234.24C971.498
234.76 971.424 235.293 971.424 235.84C971.424 236.387 971.498 236.927 971.644
237.46C971.804 237.98 972.031 238.447 972.324 238.86C972.631 239.273 973.011
239.607 973.464 239.86C973.918 240.113 974.444 240.24 975.044 240.24C97 [...]
+<rect x="373.5" y="287.5" width="735" height="162" rx="9.5" fill="white"/>
+<rect x="373.5" y="287.5" width="735" height="162" rx="9.5"
stroke="url(#paint1_linear_490_50)"/>
+<path d="M576.311 312.38C576.183 311.148 575.735 310.26 574.967
309.716C574.215 309.156 573.247 308.876 572.063 308.876C571.583 308.876 571.111
308.924 570.647 309.02C570.183 309.116 569.767 309.276 569.399 309.5C569.047
309.724 568.759 310.028 568.535 310.412C568.327 310.78 568.223 311.244 568.223
311.804C568.223 312.332 568.375 312.764 568.679 313.1C568.999 313.42 569.415
313.684 569.927 313.892C570.455 314.1 571.047 314.276 571.703 314.42C572.359
314.548 573.023 314.692 573.695 314.85 [...]
+<path d="M515.237 430.358L515.237 381.611C515.237 380.796 514.577 380.136
513.762 380.136L497.392 380.136C497.068 380.136 496.753 380.029 496.496
379.833L478.548 366.124M472.482 366.124L454.534 379.833C453.17 380.874 448.809
378.951 448.809 381.611V394.037M448.809 394.037L462.1 416.371C462.27 416.656
462.36 416.982 462.36 417.314V430.358M448.809 394.037L435.964 416.38C435.803
416.659 435.719 416.976 435.719 417.299V430.358M448.809 394.037H468.075M472.482
394.037H476.003M480.336 394.037H4 [...]
+<circle cx="515.089" cy="394.129" r="6.91383" fill="#CCF5FC" stroke="black"
stroke-width="1.47495"/>
+<circle cx="448.901" cy="394.129" r="6.91383" fill="#CCF5FC" stroke="black"
stroke-width="1.47495"/>
+<mask id="path-34-inside-1_490_50" fill="white">
+<path d="M468.456 353.405C466.049 355.102 464.251 357.528 463.328
360.326C462.405 363.123 462.406 366.143 463.33 368.939C464.254 371.736 466.053
374.162 468.461 375.858C470.868 377.555 473.758 378.432 476.703 378.361C479.647
378.29 482.491 377.275 484.814 375.464C487.138 373.654 488.818 371.144 489.606
368.306C490.394 365.468 490.25 362.452 489.193 359.702C488.136 356.953 486.224
354.616 483.737 353.036L476.372 364.63L468.456 353.405Z"/>
+</mask>
+<path d="M468.456 353.405C466.049 355.102 464.251 357.528 463.328
360.326C462.405 363.123 462.406 366.143 463.33 368.939C464.254 371.736 466.053
374.162 468.461 375.858C470.868 377.555 473.758 378.432 476.703 378.361C479.647
378.29 482.491 377.275 484.814 375.464C487.138 373.654 488.818 371.144 489.606
368.306C490.394 365.468 490.25 362.452 489.193 359.702C488.136 356.953 486.224
354.616 483.737 353.036L476.372 364.63L468.456 353.405Z" fill="#B6BCCF"
stroke="black" stroke-width="2.9499" [...]
+<circle cx="515.089" cy="416.622" r="6.91383" fill="#89DF8F" stroke="black"
stroke-width="1.47495"/>
+<circle cx="488.724" cy="416.622" r="6.91383" fill="#70A6EF" stroke="black"
stroke-width="1.47495"/>
+<circle cx="462.36" cy="416.622" r="6.91383" fill="#EE6A69" stroke="black"
stroke-width="1.47495"/>
+<circle cx="435.626" cy="416.622" r="6.91383" fill="#ECBB57" stroke="black"
stroke-width="1.47495"/>
+<path d="M463.005 344.995L469.33 338.922C469.708 338.56 470.211 338.357
470.735 338.357H481.808C482.341 338.357 482.853 338.567 483.232 338.942L489.37
344.995V350.71C489.37 351.83 488.462 352.738 487.342 352.738H465.033C463.913
352.738 463.005 351.83 463.005 350.71V344.995Z" fill="#D9D9D9"/>
+<path d="M463.005 344.995V350.71C463.005 351.83 463.913 352.738 465.033
352.738H487.342C488.462 352.738 489.37 351.83 489.37 350.71V344.995M463.005
344.995L469.33 338.922C469.708 338.56 470.211 338.357 470.735
338.357H481.808C482.341 338.357 482.853 338.567 483.232 338.942L489.37
344.995M463.005 344.995H471.762M489.37 344.995H481.073M471.762
344.995V352.738M471.762 344.995H481.073M481.073 344.995V352.738" stroke="black"
stroke-width="1.47495" stroke-linecap="round"/>
+<rect x="571" y="346" width="516" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M662.08 368.3C662.067 369.033 662.18 369.647 662.42 370.14C662.66
370.633 662.987 371.027 663.4 371.32C663.827 371.613 664.327 371.827 664.9
371.96C665.473 372.08 666.087 372.14 666.74 372.14C667.113 372.14 667.52
372.087 667.96 371.98C668.4 371.873 668.807 371.707 669.18 371.48C669.567
371.24 669.887 370.94 670.14 370.58C670.393 370.207 670.52 369.76 670.52
369.24C670.52 368.84 670.427 368.493 670.24 368.2C670.067 367.907 669.833
367.66 669.54 367.46C669.26 367.26 668.947 367.1 [...]
+<rect x="571" y="392" width="516" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M645.08 414.3C645.067 415.033 645.18 415.647 645.42 416.14C645.66
416.633 645.987 417.027 646.4 417.32C646.827 417.613 647.327 417.827 647.9
417.96C648.473 418.08 649.087 418.14 649.74 418.14C650.113 418.14 650.52
418.087 650.96 417.98C651.4 417.873 651.807 417.707 652.18 417.48C652.567
417.24 652.887 416.94 653.14 416.58C653.393 416.207 653.52 415.76 653.52
415.24C653.52 414.84 653.427 414.493 653.24 414.2C653.067 413.907 652.833
413.66 652.54 413.46C652.26 413.26 651.947 413.1 [...]
+<rect x="373.5" y="465.5" width="735" height="159" rx="9.5" fill="white"/>
+<rect x="373.5" y="465.5" width="735" height="159" rx="9.5"
stroke="url(#paint2_linear_490_50)"/>
+<path d="M590.213 490.524C589.957 489.308 589.389 488.396 588.509
487.788C587.645 487.18 586.613 486.876 585.413 486.876C584.389 486.876 583.509
487.068 582.773 487.452C582.053 487.836 581.453 488.356 580.973 489.012C580.509
489.652 580.165 490.388 579.941 491.22C579.717 492.052 579.605 492.916 579.605
493.812C579.605 494.788 579.717 495.716 579.941 496.596C580.165 497.46 580.509
498.22 580.973 498.876C581.453 499.516 582.061 500.028 582.797 500.412C583.533
500.796 584.413 500.988 585.43 [...]
+<path fill-rule="evenodd" clip-rule="evenodd" d="M449.764 509.849L449.789
509.861V526.896L449.764 526.908L435.306 534L421.211 526.895V509.861L435.287
503.009L435.306 503L449.764 509.849ZM423.175 525.784L434.339
531.186V517.556L434.314 517.544L423.175 512.2V525.784ZM436.418 517.544L436.393
517.556V531.186L447.557 525.784V512.2L436.418 517.544ZM435.287 505.175L424.369
510.484L435.306 515.893L446.409 510.484L435.306 505.166L435.287 505.175Z"
fill="url(#paint3_linear_490_50)"/>
+<path d="M414.744 552H413.016L409 540.576H410.632L413.896
550.48H413.928L417.224 540.576H418.808L414.744 552ZM424.354 547.072C424.333
546.752 424.258 546.448 424.13 546.16C424.013 545.872 423.848 545.627 423.634
545.424C423.432 545.211 423.186 545.045 422.898 544.928C422.621 544.8 422.312
544.736 421.97 544.736C421.618 544.736 421.298 544.8 421.01 544.928C420.733
545.045 420.493 545.211 420.29 545.424C420.088 545.637 419.928 545.888 419.81
546.176C419.693 546.453 419.624 546.752 419.602 [...]
+<rect x="500" y="508.5" width="31.1561" height="24" rx="1.5"
fill="url(#pattern0_490_50)"/>
+<rect x="500" y="508.5" width="31.1561" height="24" rx="1.5" fill="white"
fill-opacity="0.3" style="mix-blend-mode:plus-lighter"/>
+<rect x="500" y="508.5" width="31.1561" height="24" rx="1.5" stroke="#3477B2"/>
+<path d="M502 506.5H529" stroke="#3477B2" stroke-linecap="round"/>
+<path d="M504 504.5H528" stroke="#3477B2" stroke-linecap="round"/>
+<path d="M489.748 540.576H495.124C496.212 540.576 497.06 540.843 497.668
541.376C498.287 541.909 498.596 542.64 498.596 543.568C498.596 544.261 498.436
544.869 498.116 545.392C497.807 545.915 497.305 546.272 496.612
546.464V546.496C496.943 546.56 497.209 546.667 497.412 546.816C497.625 546.965
497.791 547.147 497.908 547.36C498.036 547.563 498.127 547.792 498.18
548.048C498.244 548.304 498.292 548.571 498.324 548.848C498.345 549.125 498.361
549.408 498.372 549.696C498.383 549.984 498.409 [...]
+<path d="M421.836
566.856H418.028V565.576H427.164V566.856H423.356V577H421.836V566.856ZM429.327
567.24H427.967V565.576H429.327V567.24ZM427.967
568.728H429.327V577H427.967V568.728ZM431.114
568.728H432.394V569.944H432.426C433.045 569.005 433.935 568.536 435.098
568.536C435.61 568.536 436.074 568.643 436.49 568.856C436.906 569.069 437.199
569.432 437.37 569.944C437.647 569.496 438.01 569.149 438.458 568.904C438.917
568.659 439.418 568.536 439.962 568.536C440.378 568.536 440.751 568.584 441.0
[...]
+<path d="M495.912 570.488H498.952C499.816 570.488 500.434 570.339 500.808
570.04C501.192 569.731 501.384 569.272 501.384 568.664C501.384 568.259 501.32
567.939 501.192 567.704C501.064 567.469 500.888 567.288 500.664 567.16C500.44
567.032 500.178 566.952 499.88 566.92C499.592 566.877 499.282 566.856 498.952
566.856H495.912V570.488ZM494.392 565.576H498.536C498.781 565.576 499.042
565.581 499.32 565.592C499.608 565.592 499.89 565.608 500.168 565.64C500.445
565.661 500.701 565.699 500.936 56 [...]
+<path d="M424.656
590.856H420.848V589.576H429.984V590.856H426.176V601H424.656V590.856ZM434.67
596.072C434.649 595.752 434.574 595.448 434.446 595.16C434.329 594.872 434.164
594.627 433.95 594.424C433.748 594.211 433.502 594.045 433.214 593.928C432.937
593.8 432.628 593.736 432.286 593.736C431.934 593.736 431.614 593.8 431.326
593.928C431.049 594.045 430.809 594.211 430.606 594.424C430.404 594.637 430.244
594.888 430.126 595.176C430.009 595.453 429.94 595.752 429.918
596.072H434.67ZM435.9 [...]
+<path d="M484.45 589.576H486.066L492.082
598.84H492.114V589.576H493.554V601H491.89L485.922
591.832H485.89V601H484.45V589.576ZM502.317 601H501.037V599.688H501.005C500.717
600.2 500.349 600.579 499.901 600.824C499.453 601.059 498.925 601.176 498.317
601.176C497.773 601.176 497.319 601.107 496.957 600.968C496.594 600.819 496.301
600.611 496.077 600.344C495.853 600.077 495.693 599.763 495.597 599.4C495.511
599.027 495.469 598.616 495.469 598.168V592.728H496.829V598.328C496.829 598.84
496.978 [...]
+<rect x="571" y="521" width="252" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M631.08 543.3C631.067 544.033 631.18 544.647 631.42 545.14C631.66
545.633 631.987 546.027 632.4 546.32C632.827 546.613 633.327 546.827 633.9
546.96C634.473 547.08 635.087 547.14 635.74 547.14C636.113 547.14 636.52
547.087 636.96 546.98C637.4 546.873 637.807 546.707 638.18 546.48C638.567
546.24 638.887 545.94 639.14 545.58C639.393 545.207 639.52 544.76 639.52
544.24C639.52 543.84 639.427 543.493 639.24 543.2C639.067 542.907 638.833
542.66 638.54 542.46C638.26 542.26 637.947 542.1 [...]
+<rect x="835" y="521" width="252" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M878.46 542.4H884.08L881.32 535.08L878.46 542.4ZM880.62
533.72H882.14L887.74 548H886.28L884.54 543.56H878.04L876.32 548H874.88L880.62
533.72ZM888.798 537.68H889.958V540.1H889.998C890.318 539.26 890.811 538.613
891.478 538.16C892.158 537.707 892.964 537.5 893.898 537.54V538.8C893.324
538.773 892.804 538.853 892.338 539.04C891.871 539.213 891.464 539.467 891.118
539.8C890.784 540.133 890.524 540.533 890.338 541C890.151 541.453 890.058
541.953 890.058 542.5V548H888.798V537.68ZM895. [...]
+<rect x="571" y="567" width="252" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M628.08 589.3C628.067 590.033 628.18 590.647 628.42 591.14C628.66
591.633 628.987 592.027 629.4 592.32C629.827 592.613 630.327 592.827 630.9
592.96C631.473 593.08 632.087 593.14 632.74 593.14C633.113 593.14 633.52
593.087 633.96 592.98C634.4 592.873 634.807 592.707 635.18 592.48C635.567
592.24 635.887 591.94 636.14 591.58C636.393 591.207 636.52 590.76 636.52
590.24C636.52 589.84 636.427 589.493 636.24 589.2C636.067 588.907 635.833
588.66 635.54 588.46C635.26 588.26 634.947 588.1 [...]
+<rect x="835" y="567" width="252" height="38" rx="5" fill="#880C06"
fill-opacity="0.1"/>
+<path d="M913.88 584.04C913.76 583.493 913.56 583.007 913.28 582.58C913.013
582.14 912.68 581.773 912.28 581.48C911.893 581.187 911.46 580.967 910.98
580.82C910.513 580.66 910.02 580.58 909.5 580.58C908.553 580.58 907.74 580.76
907.06 581.12C906.38 581.48 905.82 581.96 905.38 582.56C904.953 583.147 904.633
583.813 904.42 584.56C904.22 585.307 904.12 586.073 904.12 586.86C904.12
587.633 904.22 588.4 904.42 589.16C904.633 589.907 904.953 590.58 905.38
591.18C905.82 591.767 906.38 592.24 90 [...]
+<g clip-path="url(#clip0_490_50)">
+<path d="M74.8799 154.095L78.3921 156.501L84.6997 152.166L99.6435
161.27V166.164L84.6653 157.157L78.3921 161.331L63.8365 151.359L41
165.922V161.02L63.9204 146.403L74.8799 154.095Z" fill="#F37021"/>
+<path d="M78.2269 165.846L84.4442 161.671L99.6435 171.014V175.904L84.4102
166.661L78.1929 170.836L63.7671 160.863L41 175.513V170.61L63.8502
155.907L78.2269 165.846Z" fill="#FCBA1D"/>
+<path d="M77.7398 139.776L84.0462 126.682L99.796 156.397L84.6329
147.012L82.3974 148.514L82.2438 148.618L82.2442 148.619L78.2656 151.311L63.9203
141.316L40.9993 155.788L63.0815 111L77.7398 139.776Z" fill="#ED1C24"/>
+</g>
+<path d="M125.995 171.63C123.625 171.63 121.525 171.21 119.695 170.37C117.865
169.53 116.425 168.3 115.375 166.68C114.355 165.03 113.845 163.035 113.845
160.695V159.57H118.66V160.695C118.66 162.915 119.32 164.58 120.64 165.69C121.99
166.8 123.775 167.355 125.995 167.355C128.245 167.355 129.94 166.89 131.08
165.96C132.22 165 132.79 163.77 132.79 162.27C132.79 161.28 132.52 160.47
131.98 159.84C131.44 159.21 130.675 158.715 129.685 158.355C128.695 157.965
127.51 157.605 126.13 157.275L124. [...]
+<path d="M114.42 131L118.42 117H122.22L126.2 131H123.98L123.06
127.7H117.58L116.66 131H114.42ZM118.12 125.7H122.52L120.48 118.34H120.16L118.12
125.7ZM128.157 135V121.14H130.177V122.56H130.497C130.75 122.12 131.13 121.727
131.637 121.38C132.157 121.033 132.897 120.86 133.857 120.86C134.683 120.86
135.437 121.06 136.117 121.46C136.81 121.86 137.363 122.44 137.777
123.2C138.203 123.947 138.417 124.853 138.417 125.92V126.22C138.417 127.287
138.21 128.2 137.797 128.96C137.383 129.707 136.83 1 [...]
+<path d="M725 447.538L740.5 434L756 447.538H749.8V471.5H731.2V447.538H725Z"
fill="url(#paint4_linear_490_50)"/>
+<path d="M725 271.538L740.5 258L756 271.538H749.8V295.5H731.2V271.538H725Z"
fill="url(#paint5_linear_490_50)"/>
+<defs>
+<pattern id="pattern0_490_50" patternContentUnits="objectBoundingBox"
width="1" height="1">
+<use xlink:href="#image0_490_50" transform="matrix(0.00289017 0 0 0.00371747
-0.239884 0)"/>
+</pattern>
+<linearGradient id="paint0_linear_490_50" x1="373" y1="190" x2="1109" y2="190"
gradientUnits="userSpaceOnUse">
+<stop stop-color="#ED1C24"/>
+<stop offset="1" stop-color="#FCBA1D"/>
+</linearGradient>
+<linearGradient id="paint1_linear_490_50" x1="373" y1="368.5" x2="1109"
y2="368.5" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ED1C24"/>
+<stop offset="1" stop-color="#FCBA1D"/>
+</linearGradient>
+<linearGradient id="paint2_linear_490_50" x1="373" y1="545" x2="1109" y2="545"
gradientUnits="userSpaceOnUse">
+<stop stop-color="#ED1C24"/>
+<stop offset="1" stop-color="#FCBA1D"/>
+</linearGradient>
+<linearGradient id="paint3_linear_490_50" x1="427.5" y1="503" x2="444.5"
y2="534" gradientUnits="userSpaceOnUse">
+<stop stop-color="#ED1C24"/>
+<stop offset="1" stop-color="#FCBA1D"/>
+</linearGradient>
+<linearGradient id="paint4_linear_490_50" x1="740.5" y1="434" x2="740.5"
y2="471.5" gradientUnits="userSpaceOnUse">
+<stop offset="0.293265" stop-color="#F37021"/>
+<stop offset="1" stop-color="white"/>
+</linearGradient>
+<linearGradient id="paint5_linear_490_50" x1="740.5" y1="258" x2="740.5"
y2="295.5" gradientUnits="userSpaceOnUse">
+<stop offset="0.293265" stop-color="#F37021"/>
+<stop offset="1" stop-color="white"/>
+</linearGradient>
+<clipPath id="clip0_490_50">
+<rect width="58.6435" height="65" fill="white" transform="translate(41 111)"/>
+</clipPath>
+<image id="image0_490_50" width="512" height="512" preserveAspectRatio="none"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAIAAAB7GkOtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACAKADAAQAAAABAAACAAAAAAAL+LWFAABAAElEQVR4Acy9WY9sWXYeFnGmmHO4U1V1Td3V1dUDh2bLJgnBkGFLMi1bFgw+Gn71b/CD/4B/ggDDMOA3v9CAaRMCLYhqwZZIdrNJsZtssseq6ppu3TEzI2M8k78TO2LFd/Y5X2ZE1W1Zgaqba6+99pr2PJ7u7/6Pf9DZ/brd7g7slMEeDkpDS6AscxEXCHwh8Iq+nbzYq+kR3MKf
[...]
+</defs>
+</svg>
diff --git a/0.1.0/index.html b/0.1.0/index.html
index 0cefa2f..4f71758 100644
--- a/0.1.0/index.html
+++ b/0.1.0/index.html
@@ -84,7 +84,7 @@
<div data-md-component="skip">
- <a href="#key-features" class="md-skip">
+ <a href="#architecture" class="md-skip">
Skip to content
</a>
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -471,6 +471,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+ <li class="md-nav__item">
+ <a href="#architecture" class="md-nav__link">
+ <span class="md-ellipsis">
+ Architecture
+ </span>
+ </a>
+
+</li>
+
<li class="md-nav__item">
<a href="#key-features" class="md-nav__link">
<span class="md-ellipsis">
@@ -490,9 +499,9 @@
</li>
<li class="md-nav__item">
- <a href="#run-a-query-in-sql-python-rust-or-r" class="md-nav__link">
+ <a href="#run-a-query" class="md-nav__link">
<span class="md-ellipsis">
- Run a query in SQL, Python, Rust, or R
+ Run a query
</span>
</a>
@@ -527,7 +536,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -695,6 +704,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
@@ -1035,6 +1067,15 @@
</label>
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
+ <li class="md-nav__item">
+ <a href="#architecture" class="md-nav__link">
+ <span class="md-ellipsis">
+ Architecture
+ </span>
+ </a>
+
+</li>
+
<li class="md-nav__item">
<a href="#key-features" class="md-nav__link">
<span class="md-ellipsis">
@@ -1054,9 +1095,9 @@
</li>
<li class="md-nav__item">
- <a href="#run-a-query-in-sql-python-rust-or-r" class="md-nav__link">
+ <a href="#run-a-query" class="md-nav__link">
<span class="md-ellipsis">
- Run a query in SQL, Python, Rust, or R
+ Run a query
</span>
</a>
@@ -1114,20 +1155,46 @@
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
---><p>SedonaDB is a single-node analytical database engine with geospatial as
the first-class citizen.</p>
-<p>Fast and dependency-free, SedonaDB is ideal for working with smaller
datasets located on local machines or cloud instances.</p>
-<p>The initial <code>0.1</code> release supports a core set of vector
operations, with comprehensive vector and raster computation capabilities
planned for the near future.</p>
-<p>For distributed workloads, you can still leverage the power of SedonaSpark,
SedonaFlink, or SedonaSnow.</p>
+--><p>SedonaDB is an open-source single-node analytical database engine with
<strong>geospatial as the first-class citizen</strong>. It aims to deliver the
fastest spatial analytics query speed and the most comprehensive function
coverage available.</p>
+<p>SedonaDB is perfect for processing smaller to medium datasets on local
machines or cloud instances. For distributed workloads, you can leverage the
power of SedonaSpark, SedonaFlink, or SedonaSnow.</p>
+<h2 id="architecture">Architecture<a class="headerlink" href="#architecture"
title="Permanent link">¶</a></h2>
+<p><a class="glightbox" data-type="image" data-width="100%" data-height="auto"
href="image/sedonadb-architecture.svg" data-desc-position="bottom"><img
alt="SedonaDB Architecture" src="image/sedonadb-architecture.svg"></a></p>
+<ul>
+<li>
+<p><strong>Columnar in-memory datasets</strong></p>
+<ul>
+<li>Spatial indexing</li>
+<li>Spatial statistics</li>
+<li>CRS tracking</li>
+<li>Arrow format and zero serialization overhead</li>
+</ul>
+</li>
+<li>
+<p><strong>Spatial query optimization</strong></p>
+<ul>
+<li>Spatial-aware heuristic based optimization</li>
+<li>Spatial-aware cost based optimization</li>
+</ul>
+</li>
+<li>
+<p><strong>Spatial query processing</strong></p>
+<ul>
+<li>Spatial range query, KNN query, spatial join query, KNN join query</li>
+<li>Map algebra, NDVI, mask, zonal statistics</li>
+</ul>
+</li>
+</ul>
+<p>Raster functions are coming soon. We expect SedonaDB Raster will match all
raster functions provided in <a
href="https://sedona.apache.org/latest/api/sql/Raster-operators/">SedonaSpark</a>.</p>
<h2 id="key-features">Key features<a class="headerlink" href="#key-features"
title="Permanent link">¶</a></h2>
<p>SedonaDB has several advantages:</p>
<ul>
-<li><strong>Exceptional Performance:</strong> Built in Rust to process massive
geospatial datasets with exceptional speed.</li>
-<li><strong>Unified Geospatial Toolkit:</strong> Access a comprehensive suite
of functions for both vector and raster data in a single, powerful library.</li>
-<li><strong>Extensive Ecosystem Integration:</strong> Built on Apache Arrow
for smooth interoperability with popular data science libraries like GeoPandas,
DuckDB, and Polars.</li>
-<li><strong>Flexible APIs:</strong> Effortlessly switch between Python and SQL
interfaces to match your preferred workflow and skill set.</li>
-<li><strong>Guaranteed CRS Propagation:</strong> Automatically manages
coordinate reference systems (CRS) to ensure spatial accuracy and prevent
common errors.</li>
-<li><strong>Broad File Format Support:</strong> Work with a wide range of both
modern and legacy geospatial file formats like geoparquet.</li>
-<li><strong>Highly Extensible:</strong> Easily customize and extend the
library's functionality to meet your project's unique requirements.</li>
+<li><strong>🚀 High Performance:</strong> Built in Rust for exceptional speed
and memory efficiency</li>
+<li><strong>🗺️ Comprehensive Spatial Toolkit:</strong> Supports both vector
and raster functions in a single library</li>
+<li><strong>🌍 CRS Propagation:</strong> Always maintains coordinate reference
system information</li>
+<li><strong>📁 Format Flexibility:</strong> Supports legacy and modern file
formats including GeoParquet, Shapefile, GeoJSON</li>
+<li><strong>⚡ Dual APIs:</strong> Python and SQL interfaces for seamless
workflow integration</li>
+<li><strong>🔧 Extensible:</strong> Easily customizable and extensible
architecture</li>
+<li><strong>🔗 Ecosystem Integration:</strong> Interoperable with
PyArrow-compatible libraries like GeoPandas, DuckDB, and Polars</li>
</ul>
<h2 id="install-sedonadb">Install SedonaDB<a class="headerlink"
href="#install-sedonadb" title="Permanent link">¶</a></h2>
<p>Here's how to install SedonaDB with various build tools:</p>
@@ -1143,15 +1210,11 @@
</div>
</div>
</div>
-<h2 id="run-a-query-in-sql-python-rust-or-r">Run a query in SQL, Python, Rust,
or R<a class="headerlink" href="#run-a-query-in-sql-python-rust-or-r"
title="Permanent link">¶</a></h2>
+<h2 id="run-a-query">Run a query<a class="headerlink" href="#run-a-query"
title="Permanent link">¶</a></h2>
<p>SedonaDB offers a flexible query interface.</p>
-<div class="tabbed-set tabbed-alternate" data-tabs="2:4"><input
checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio"><input
id="__tabbed_2_2" name="__tabbed_2" type="radio"><input id="__tabbed_2_3"
name="__tabbed_2" type="radio"><input id="__tabbed_2_4" name="__tabbed_2"
type="radio"><div class="tabbed-labels"><label
for="__tabbed_2_1">SQL</label><label for="__tabbed_2_2">Python</label><label
for="__tabbed_2_3">Rust</label><label for="__tabbed_2_4">R</label></div>
+<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input
checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio"><input
id="__tabbed_2_2" name="__tabbed_2" type="radio"><div
class="tabbed-labels"><label for="__tabbed_2_1">Python</label><label
for="__tabbed_2_2">R</label></div>
<div class="tabbed-content">
<div class="tabbed-block">
-<div class="highlight"><pre><span></span><code><span
class="k">SELECT</span><span class="w"> </span><span
class="n">ST_Point</span><span class="p">(</span><span class="mi">0</span><span
class="p">,</span><span class="w"> </span><span class="mi">1</span><span
class="p">)</span><span class="w"> </span><span class="k">as</span><span
class="w"> </span><span class="n">geom</span>
-</code></pre></div>
-</div>
-<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><span
class="kn">import</span><span class="w"> </span><span
class="nn">sedona.db</span>
<span class="n">sd</span> <span class="o">=</span> <span
class="n">sedona</span><span class="o">.</span><span class="n">db</span><span
class="o">.</span><span class="n">connect</span><span class="p">()</span>
@@ -1159,18 +1222,6 @@
</code></pre></div>
</div>
<div class="tabbed-block">
-<div class="highlight"><pre><span></span><code><span class="k">use</span><span
class="w"> </span><span class="n">datafusion</span><span
class="p">::</span><span class="n">prelude</span><span class="p">::</span><span
class="o">*</span>
-<span class="k">use</span><span class="w"> </span><span
class="n">sedona</span><span class="p">::</span><span
class="n">context</span><span class="p">{</span><span
class="n">SedonaContext</span><span class="p">,</span><span class="w">
</span><span class="n">SedonaDataFrame</span><span class="p">};</span>
-
-<span class="kd">let</span><span class="w"> </span><span
class="n">ctx</span><span class="w"> </span><span class="o">=</span><span
class="w"> </span><span class="n">SedonaContext</span><span
class="p">::</span><span class="n">new_local_interactive</span><span
class="p">().</span><span class="k">await</span><span class="o">?</span><span
class="p">;</span>
-<span class="w"> </span><span class="kd">let</span><span class="w">
</span><span class="n">batches</span><span class="w"> </span><span
class="o">=</span><span class="w"> </span><span class="n">ctx</span>
-<span class="w"> </span><span class="p">.</span><span
class="n">sql</span><span class="p">(</span><span class="s">"SELECT ST_Point(0,
1) as geom"</span><span class="p">)</span>
-<span class="w"> </span><span class="p">.</span><span
class="k">await</span><span class="o">?</span>
-<span class="w"> </span><span class="p">.</span><span
class="n">show_sedona</span><span class="p">(</span><span
class="o">&</span><span class="n">cts</span><span class="p">,</span><span
class="w"> </span><span class="nb">None</span><span class="p">,</span><span
class="w"> </span><span class="nb">Default</span><span class="p">::</span><span
class="n">default</span><span class="p">())</span>
-<span class="w"> </span><span class="p">.</span><span
class="k">await</span><span class="o">?</span><span class="p">;</span>
-</code></pre></div>
-</div>
-<div class="tabbed-block">
<div class="highlight"><pre><span></span><code><span
class="nf">library</span><span class="p">(</span><span
class="n">sedonadb</span><span class="p">)</span>
<span class="w"> </span><span class="nf">sd_sql</span><span
class="p">(</span><span class="s">"SELECT ST_Point(0, 1) as geom"</span><span
class="p">)</span>
@@ -1179,7 +1230,7 @@
</div>
</div>
<h2 id="have-questions">Have questions?<a class="headerlink"
href="#have-questions" title="Permanent link">¶</a></h2>
-<p>Start a <a href="https://github.com/apache/sedona-db/issues">GitHub
Discussion</a> or join the <a
href="https://discord.com/invite/9A3k5dEBsY">Discord community</a> and ask the
developers any questions you may have.</p>
+<p>Start a <a href="https://github.com/apache/sedona/discussions">GitHub
Discussion</a> or join the <a
href="https://discord.com/invite/9A3k5dEBsY">Discord community</a> and ask the
developers any questions you may have.</p>
<p>We look forward to collaborating with you!</p>
@@ -1201,7 +1252,7 @@
<span class="md-icon" title="Last update">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M21
13.1c-.1 0-.3.1-.4.2l-1 1 2.1 2.1 1-1c.2-.2.2-.6
0-.8l-1.3-1.3c-.1-.1-.2-.2-.4-.2m-1.9 1.8-6.1 6V23h2.1l6.1-6.1zM12.5 7v5.2l4
2.4-1 1L11 13V7zM11 21.9c-5.1-.5-9-4.8-9-9.9C2 6.5 6.5 2 12 2c5.3 0 9.6 4.1 10
9.3-.3-.1-.6-.2-1-.2s-.7.1-1 .2C19.6 7.2 16.2 4 12 4c-4.4 0-8 3.6-8 8 0 4.1 3.1
7.5 7.1 7.9l-.1.2z"></path></svg>
</span>
- <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 19, 2025 07:13:30
UTC">September 19, 2025 07:13:30</span>
+ <span class="git-revision-date-localized-plugin
git-revision-date-localized-plugin-datetime" title="September 22, 2025 05:56:45
UTC">September 22, 2025 05:56:45</span>
</span>
@@ -1238,13 +1289,13 @@
- <a href="quickstart-python/" class="md-footer__link
md-footer__link--next" aria-label="Next: Python Quickstart">
+ <a href="quickstart-python/" class="md-footer__link
md-footer__link--next" aria-label="Next: Quickstart">
<div class="md-footer__title">
<span class="md-footer__direction">
Next
</span>
<div class="md-ellipsis">
- Python Quickstart
+ Quickstart
</div>
</div>
<div class="md-footer__button md-icon">
diff --git a/0.1.0/overture-examples/index.html
b/0.1.0/overture-examples/index.html
index 6dcc7be..fb962f6 100644
--- a/0.1.0/overture-examples/index.html
+++ b/0.1.0/overture-examples/index.html
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -688,6 +688,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/programming-guide/index.html
b/0.1.0/programming-guide/index.html
index 9205296..85980b0 100644
--- a/0.1.0/programming-guide/index.html
+++ b/0.1.0/programming-guide/index.html
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -736,6 +736,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
@@ -1397,7 +1420,7 @@
<nav class="md-footer__inner md-grid" aria-label="Footer">
- <a href="../quickstart-python/" class="md-footer__link
md-footer__link--prev" aria-label="Previous: Python Quickstart">
+ <a href="../quickstart-python/" class="md-footer__link
md-footer__link--prev" aria-label="Previous: Quickstart">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24
24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8
11z"></path></svg>
@@ -1407,7 +1430,7 @@
Previous
</span>
<div class="md-ellipsis">
- Python Quickstart
+ Quickstart
</div>
</div>
</a>
diff --git a/0.1.0/quickstart-python/index.html
b/0.1.0/quickstart-python/index.html
index c8b731a..fc772b3 100644
--- a/0.1.0/quickstart-python/index.html
+++ b/0.1.0/quickstart-python/index.html
@@ -21,7 +21,7 @@
- <title>Python Quickstart - SedonaDB</title>
+ <title>Quickstart - SedonaDB</title>
@@ -125,7 +125,7 @@
<div class="md-header__topic" data-md-component="header-topic">
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
</div>
@@ -238,7 +238,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -464,7 +464,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -477,7 +477,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -683,6 +683,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/reference/python/index.html
b/0.1.0/reference/python/index.html
index b49726a..c9138a7 100644
--- a/0.1.0/reference/python/index.html
+++ b/0.1.0/reference/python/index.html
@@ -10,7 +10,7 @@
<link rel="canonical"
href="https://sedona.apache.org/sedonadb/latest/reference/python/">
- <link rel="prev" href="../../contributors-guide/">
+ <link rel="prev" href="../../crs-examples/">
<link rel="next" href="../sql/">
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -457,7 +457,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -625,6 +625,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
@@ -3499,7 +3522,7 @@ DBAPI is experimental.</p>
<nav class="md-footer__inner md-grid" aria-label="Footer">
- <a href="../../contributors-guide/" class="md-footer__link
md-footer__link--prev" aria-label="Previous: Contributors Guide">
+ <a href="../../crs-examples/" class="md-footer__link
md-footer__link--prev" aria-label="Previous: CRS Examples">
<div class="md-footer__button md-icon">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24
24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8
11z"></path></svg>
@@ -3509,7 +3532,7 @@ DBAPI is experimental.</p>
Previous
</span>
<div class="md-ellipsis">
- Contributors Guide
+ CRS Examples
</div>
</div>
</a>
diff --git a/0.1.0/reference/sql-joins/index.html
b/0.1.0/reference/sql-joins/index.html
index 98fc4a3..4b9f7ca 100644
--- a/0.1.0/reference/sql-joins/index.html
+++ b/0.1.0/reference/sql-joins/index.html
@@ -234,7 +234,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -623,6 +623,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/reference/sql/index.html b/0.1.0/reference/sql/index.html
index 32ebb49..958b88f 100644
--- a/0.1.0/reference/sql/index.html
+++ b/0.1.0/reference/sql/index.html
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -457,7 +457,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -625,6 +625,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/search/search_index.json b/0.1.0/search/search_index.json
index bcc87cc..a7bd978 100644
--- a/0.1.0/search/search_index.json
+++ b/0.1.0/search/search_index.json
@@ -1 +1 @@
-{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introducing
SedonaDB","text":"<p>SedonaDB is a single-node analytical database engine with
geospatial as the first-class citizen.</p> <p>Fast and dependency-free,
SedonaDB is ideal for working with smaller datasets located on local machines
or cloud instances.</p> <p>The initial <code>0.1</code> release supports a core
set of vector operations, with comprehensive vector and ras [...]
\ No newline at end of file
+{"config":{"lang":["en"],"separator":"[\\s\\-]+","pipeline":["stopWordFilter"]},"docs":[{"location":"","title":"Introducing
SedonaDB","text":"<p>SedonaDB is an open-source single-node analytical
database engine with geospatial as the first-class citizen. It aims to deliver
the fastest spatial analytics query speed and the most comprehensive function
coverage available.</p> <p>SedonaDB is perfect for processing smaller to medium
datasets on local machines or cloud instances. For distribut [...]
\ No newline at end of file
diff --git a/0.1.0/sitemap.xml b/0.1.0/sitemap.xml
index 542648c..f282627 100644
--- a/0.1.0/sitemap.xml
+++ b/0.1.0/sitemap.xml
@@ -2,46 +2,50 @@
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://sedona.apache.org/sedonadb/latest/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/contributors-guide/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
+ </url>
+ <url>
+ <loc>https://sedona.apache.org/sedonadb/latest/crs-examples/</loc>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/geopandas-interop/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/overture-examples/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/programming-guide/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/quickstart-python/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/tags/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/working-with-parquet-files/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/reference/python/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/reference/sql-joins/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
<url>
<loc>https://sedona.apache.org/sedonadb/latest/reference/sql/</loc>
- <lastmod>2025-09-19</lastmod>
+ <lastmod>2025-09-22</lastmod>
</url>
</urlset>
\ No newline at end of file
diff --git a/0.1.0/sitemap.xml.gz b/0.1.0/sitemap.xml.gz
index e4e4e02..47f6c7a 100644
Binary files a/0.1.0/sitemap.xml.gz and b/0.1.0/sitemap.xml.gz differ
diff --git a/0.1.0/tags/index.html b/0.1.0/tags/index.html
index 6537967..09212c8 100644
--- a/0.1.0/tags/index.html
+++ b/0.1.0/tags/index.html
@@ -227,7 +227,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -444,7 +444,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -612,6 +612,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>
diff --git a/0.1.0/working-with-parquet-files/index.html
b/0.1.0/working-with-parquet-files/index.html
index 6b01c70..409d8b3 100644
--- a/0.1.0/working-with-parquet-files/index.html
+++ b/0.1.0/working-with-parquet-files/index.html
@@ -236,7 +236,7 @@
- Python Quickstart
+ Quickstart
</a>
</li>
@@ -455,7 +455,7 @@
<span class="md-ellipsis">
- Python Quickstart
+ Quickstart
</span>
@@ -688,6 +688,29 @@
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="../crs-examples/" class="md-nav__link">
+
+
+
+ <span class="md-ellipsis">
+ CRS Examples
+
+ </span>
+
+
+ </a>
+ </li>
+
+
+
+
</ul>
</nav>