Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
b6d4b32
adding docs and navigation for second bug bash
kadolor Sep 9, 2025
276b74b
adding Apache license
kadolor Sep 9, 2025
ea72545
fixing pre-commit
kadolor Sep 9, 2025
d2719cd
fixing pre-commit
kadolor Sep 9, 2025
5483ce8
[DOCS] changing import statements for notebook and README
kadolor Sep 11, 2025
ec1ab95
making markdown docs version of notebook with narrative
kadolor Sep 11, 2025
f75ebe7
additional changes, removal of .ipynb
kadolor Sep 11, 2025
ccc81ff
Merge branch 'main' into bug-bash
kadolor Sep 11, 2025
e2a1a71
continued fixes, removing interactive mode
kadolor Sep 12, 2025
bece094
changing introduction
kadolor Sep 12, 2025
a5cbc3e
adding markdown file of python quickstart
kadolor Sep 12, 2025
c40f423
Adding link to downloadable ipynb
kadolor Sep 12, 2025
227c617
Merge branch 'main' into bug-bash
kadolor Sep 12, 2025
67c3077
Finish applying stashed changes and resolve conflict
kadolor Sep 16, 2025
2590c99
Finish applying stashed changes and resolve conflict
kadolor Sep 16, 2025
02fa793
fixing
kadolor Sep 16, 2025
7136a7d
fix notebook
kadolor Sep 16, 2025
b10b081
Update docs/index.md
kadolor Sep 16, 2025
00961d1
fixing styling
kadolor Sep 16, 2025
1f9e342
adding lint to check for pre-commit, adding navigation styling, addin…
kadolor Sep 16, 2025
6b9a819
fixing notebook command
kadolor Sep 16, 2025
f677012
adding file
kadolor Sep 16, 2025
5cbbd6f
adding generated file from notebook
kadolor Sep 16, 2025
9d59ae4
adding to requirements.txt
kadolor Sep 16, 2025
9c7d825
changing lint file
kadolor Sep 16, 2025
10c011a
integrating feedback
kadolor Sep 17, 2025
1e99545
changing lint file
kadolor Sep 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions docs/geopandas-interop.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": null,
"id": "0434bead-2628-4844-a3f6-2f9c15a21899",
"metadata": {},
"outputs": [],
"source": [
"import sedonadb\n",
"import sedona.db\n",
"import geopandas as gpd\n",
"\n",
"sd = sedonadb.connect()"
"sd = sedona.db.connect()"
]
},
{
Expand Down
49 changes: 26 additions & 23 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
hide:
- navigation

title: Introducing SedonaDB
---

<!---
Expand All @@ -22,13 +24,30 @@ hide:
under the License.
-->

# SedonaDB
SedonaDB is a high-performance, dependency-free geospatial compute engine designed for single-node processing, making it ideal for smaller datasets on local machines or cloud instances.

The initial `0.1` release supports a core set of vector operations, with comprehensive vector and raster computation capabilities planned for the near future.

## Key features

SedonaDB has several advantages:

* **Exceptional Performance:** Built in Rust to process massive geospatial datasets with exceptional speed.
* **Unified Geospatial Toolkit:** Access a comprehensive suite of functions for both vector and raster data in a single, powerful library.
* **Seamless Ecosystem Integration:** Built on Apache Arrow for smooth interoperability with popular data science libraries like GeoPandas, DuckDB, and Polars.
* **Flexible APIs:** Effortlessly switch between Python and SQL interfaces to match your preferred workflow and skill set.
* **Guaranteed CRS Propagation:** Automatically manages coordinate reference systems (CRS) to ensure spatial accuracy and prevent common errors.
* **Broad File Format Support:** Work with a wide range of both modern and legacy geospatial file formats like geoparquet.
* **Highly Extensible:** Easily customize and extend the library's functionality to meet your project's unique requirements.

## Run a query in SQL, Python, or Rust

SedonaDB is a high-performance, dependency-free geospatial compute engine.
SedonaDB offers a flexible query interface in SQL, Python, or Rust.

You can easily run SedonaDB locally or in the cloud. The first release supports a core set of vector operations, but the full-suite of common vector and raster computations will be supported soon.
Engineered for speed, SedonaDB provides performant geospatial processing on a single machine. This makes it perfect for the rapid analysis of smaller datasets, whether you're working locally or on a cloud server. While the initial release focuses on core vector operations, a full suite of vector and raster computations is on the roadmap.

SedonaDB only runs on a single machine, so it’s perfect for processing smaller datasets. You can use SedonaSpark, SedonaFlink, or SedonaSnow for operations on larger datasets.
For massive, distributed workloads, you can leverage the power of SedonaSpark,
SedonaFlink, or SedonaSnow.

=== "SQL"

Expand Down Expand Up @@ -67,21 +86,9 @@ SedonaDB only runs on a single machine, so it’s perfect for processing smaller
sd_sql("SELECT ST_Point(0, 1) as geom")
```

## Key features

SedonaDB has several advantages:

* **Blazing-Fast Performance:** Built in Rust to process massive geospatial datasets with exceptional speed.
* **Unified Geospatial Toolkit:** Access a comprehensive suite of functions for both vector and raster data in a single, powerful library.
* **Seamless Ecosystem Integration:** Built on Apache Arrow for smooth interoperability with popular data science libraries like GeoPandas, DuckDB, and Polars.
* **Flexible APIs:** Effortlessly switch between Python and SQL interfaces to match your preferred workflow and skillset.
* **Guaranteed CRS Propagation:** Automatically manages coordinate reference systems (CRS) to ensure spatial accuracy and prevent common errors.
* **Broad File Format Support:** Work with a wide range of both modern and legacy geospatial file formats like geoparquet.
* **Highly Extensible:** Easily customize and extend the library's functionality to meet your project's unique requirements.
## Install SedonaDB

## Installation

Here’s how to install SedonaDB with various build tools:
Here's how to install SedonaDB with various build tools:

=== "pip"

Expand All @@ -95,12 +102,8 @@ Here’s how to install SedonaDB with various build tools:
install.packages("sedonadb", repos = "https://community.r-multiverse.org")
```

## SedonaDB example with vector data

TODO

## Have questions?

Feel free to start a GitHub Discussion or join the Discord community to ask the developers any questions you may have.
Start a [GitHub Discussion](https://github.com/apache/sedona-db/issues) or join the [Discord community](https://discord.com/invite/9A3k5dEBsY) and ask the developers any questions you may have.

We look forward to collaborating with you!
48 changes: 27 additions & 21 deletions docs/programming-guide.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
"\n",
"You will learn how to create SedonaDB DataFrames, run spatial queries, and perform I/O operations with various types of files.\n",
"\n",
"Lets start by establishing a SedonaDB connection.\n",
"Let's start by establishing a SedonaDB connection.\n",
"\n",
"## Establish SedonaDB connection\n",
"\n",
"Heres how to create the SedonaDB connection:"
"Here's how to create the SedonaDB connection:"
]
},
{
Expand All @@ -25,23 +25,23 @@
"metadata": {},
"outputs": [],
"source": [
"import sedonadb\n",
"import sedona.db\n",
"\n",
"sd = sedonadb.connect()"
"sd = sedona.db.connect()"
]
},
{
"cell_type": "markdown",
"id": "7aeaa60f-2325-418c-8e72-4344bd4a75fe",
"metadata": {},
"source": [
"Now lets see how to create SedonaDB DataFrames.\n",
"Now, let's see how to create SedonaDB dataframes.\n",
Comment thread
kadolor marked this conversation as resolved.
"\n",
"## Create SedonaDB DataFrame\n",
"\n",
"**Manually creating SedonaDB DataFrame**\n",
"\n",
"Heres how to manually create a SedonaDB DataFrame:"
"Here's how to manually create a SedonaDB DataFrame:"
]
},
{
Expand Down Expand Up @@ -95,7 +95,7 @@
"source": [
"**Create SedonaDB DataFrame from files in S3**\n",
"\n",
"For most production applications, you will create SedonaDB DataFrames by reading data from a file. Lets see how to read GeoParquet files in AWS S3 into a SedonaDB DataFrame."
"For most production applications, you will create SedonaDB DataFrames by reading data from a file. Let's see how to read GeoParquet files in AWS S3 into a SedonaDB DataFrame."
]
},
{
Expand All @@ -116,7 +116,7 @@
"id": "858fcc66-816d-4c71-8875-82b74169eccd",
"metadata": {},
"source": [
"Let’s now run some spatial queries.\n",
"Now, let's run some spatial queries.\n",
"\n",
"**Read from GeoPandas DataFrame**\n",
"\n",
Expand Down Expand Up @@ -181,11 +181,11 @@
"source": [
"## Spatial queries\n",
"\n",
"Lets see how to run spatial operations like filtering, joins, and clustering algorithms.\n",
"Let's see how to run spatial operations like filtering, joins, and clustering algorithms.\n",
"\n",
"***Spatial filtering***\n",
"**Spatial filtering**\n",
"\n",
"Lets run a spatial filtering operation to fetch all the objects in the following polygon:"
"Let's run a spatial filtering operation to fetch all the objects in the following polygon:"
]
},
{
Expand Down Expand Up @@ -232,21 +232,21 @@
"source": [
"You can see it only includes the divisions in the Nova Scotia area. Skip to the visualization section to see how this data can be graphed on a map.\n",
"\n",
"***K-nearest neighbors (KNN) joins***\n",
"**K-nearest neighbors (KNN) joins**\n",
"\n",
"Create `restaurants` and `customers` tables so we can demonstrate the KNN join functionality."
]
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": null,
"id": "deaa36db-2fee-4ba2-ab79-1dc756cb1655",
"metadata": {},
"outputs": [],
"source": [
"df = sd.sql(\"\"\"\n",
"SELECT name, ST_Point(lng, lat) AS location\n",
"FROM (VALUES \n",
"FROM (VALUES\n",
" (101, -74.0, 40.7, 'Pizza Palace'),\n",
" (102, -73.99, 40.69, 'Burger Barn'),\n",
" (103, -74.02, 40.72, 'Taco Town'),\n",
Expand All @@ -259,7 +259,7 @@
"\n",
"df = sd.sql(\"\"\"\n",
"SELECT name, ST_Point(lng, lat) AS location\n",
"FROM (VALUES \n",
"FROM (VALUES\n",
" (1, -74.0, 40.7, 'Alice'),\n",
" (2, -73.9, 40.8, 'Bob'),\n",
" (3, -74.1, 40.6, 'Carol')\n",
Expand Down Expand Up @@ -349,17 +349,23 @@
"id": "2e93fe6a-b0a7-4ec0-952c-dde9edcacdc4",
"metadata": {},
"source": [
"Notice how each customer has two rows - one for each of the two closest restaurants.\n",
"\n",
"## Files\n",
"Notice how each customer has two rows - one for each of the two closest restaurants."
]
},
{
"cell_type": "markdown",
"id": "3cb1e53b",
"metadata": {},
"source": [
"## GeoParquet support\n",
"\n",
"You can read GeoParquet files with SedonaDB, see the following example:\n",
"You can also read GeoParquet files with SedonaDB with `read_parquet()`\n",
"\n",
"```python\n",
"df = sd.read_parquet(\"some_file.parquet\")\n",
"df = sd.read_parquet(\"DATA_FILE.parquet\")\n",
"```\n",
"\n",
"Once you read the file, you can easily expose it as a view and query it with spatial SQL, as we demonstrated in the example above."
"Once you read the file, you can easily expose it as a view and query it with spatial SQL, as we demonstrated in the example above.\n"
]
}
],
Expand Down
94 changes: 0 additions & 94 deletions docs/quickstart-cli.md

This file was deleted.

Loading