geoarrow

Extension types for geospatial data for use with 'Arrow'

https://github.com/geoarrow/geoarrow-r

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary

Keywords from Contributors

tidy-data
Last synced: 10 months ago · JSON representation

Repository

Extension types for geospatial data for use with 'Arrow'

Basic Info
Statistics
  • Stars: 170
  • Watchers: 7
  • Forks: 7
  • Open Issues: 13
  • Releases: 3
Created over 4 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License

README.Rmd

---
output: github_document
---



```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "man/figures/README-",
  out.width = "100%"
)
```

# geoarrow


[![Codecov test coverage](https://codecov.io/gh/geoarrow/geoarrow-r/branch/main/graph/badge.svg)](https://app.codecov.io/gh/geoarrow/geoarrow-r?branch=main)


The goal of geoarrow is to leverage the features of the [arrow](https://arrow.apache.org/docs/r/) package and larger [Apache Arrow](https://arrow.apache.org/) ecosystem for geospatial data. The geoarrow package provides an R implementation of the [GeoParquet](https://github.com/opengeospatial/geoparquet) file format of and the draft [geoarrow data specification](https://geoarrow.org), defining extension array types for vector geospatial data.

## Installation

You can install the released version of geoarrow from [CRAN](https://cran.r-project.org/) with:

``` r
install.packages("geoarrow")
```

You can install the development version of geoarrow from [GitHub](https://github.com/) with:

``` r
# install.packages("pak")
pak::pak("geoarrow/geoarrow-r")
```

## Example

The geoarrow package implements conversions to/from various geospatial types (e.g., sf, sfc, s2, wk) with various Arrow representations (e.g., arrow, nanoarrow). The most useful conversions are between the **arrow** and **sf** packages, which in most cases allow sf objects to be passed to **arrow** functions directly after `library(geoarrow)` or `requireNamespace("geoarrow")` has been called.

```{r example}
library(geoarrow)
library(arrow, warn.conflicts = FALSE)
library(sf)

nc <- read_sf(system.file("gpkg/nc.gpkg", package = "sf"))
tf <- tempfile(fileext = ".parquet")

nc |> 
  tibble::as_tibble() |> 
  write_parquet(tf)

open_dataset(tf) |> 
  dplyr::filter(startsWith(NAME, "A")) |>
  dplyr::select(NAME, geom) |> 
  st_as_sf()
```

By default, arrow objects are converted to a neutral wrapper around chunked Arrow memory, which in turn implements conversions to most spatial types:

```{r}
df <- read_parquet(tf)
df$geom
st_as_sfc(df$geom)
```

The entry point to creating arrays is `as_geoarrow_vctr()`:

```{r}
as_geoarrow_vctr(c("POINT (0 1)", "POINT (2 3)"))
```

By default these do not attempt to create a new storage type; however, you can request a storage type or infer one from the data:

```{r}
as_geoarrow_vctr(c("POINT (0 1)", "POINT (2 3)"), schema = geoarrow_native("POINT"))

vctr <- as_geoarrow_vctr(c("POINT (0 1)", "POINT (2 3)"))
as_geoarrow_vctr(vctr, schema = infer_geoarrow_schema(vctr))
```

There are a number of files to use as examples at  that can be read with `arrow::read_ipc_file()`:

```{r}
url <- "https://github.com/geoarrow/geoarrow-data/releases/download/v0.1.0/ns-water-basin_point.arrow"
tab <- read_ipc_file(url, as_data_frame = FALSE)
tab$geometry$type
```

Owner

  • Name: geoarrow
  • Login: geoarrow
  • Kind: organization

GitHub Events

Total
  • Create event: 1
  • Release event: 1
  • Issues event: 9
  • Watch event: 19
  • Issue comment event: 11
  • Push event: 27
  • Pull request event: 22
  • Fork event: 1
Last Year
  • Create event: 1
  • Release event: 1
  • Issues event: 9
  • Watch event: 19
  • Issue comment event: 11
  • Push event: 27
  • Pull request event: 22
  • Fork event: 1

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 425
  • Total Committers: 3
  • Avg Commits per committer: 141.667
  • Development Distribution Score (DDS): 0.005
Past Year
  • Commits: 20
  • Committers: 2
  • Avg Commits per committer: 10.0
  • Development Distribution Score (DDS): 0.05
Top Committers
Name Email Commits
Dewey Dunnington d****y@f****t 423
olivroy 5****y 1
Michael Mahoney m****8@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 26
  • Total pull requests: 53
  • Average time to close issues: 2 months
  • Average time to close pull requests: 2 days
  • Total issue authors: 12
  • Total pull request authors: 3
  • Average comments per issue: 2.42
  • Average comments per pull request: 0.09
  • Merged pull requests: 50
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 6
  • Pull requests: 22
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 1 hour
  • Issue authors: 3
  • Pull request authors: 1
  • Average comments per issue: 1.67
  • Average comments per pull request: 0.09
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • paleolimbot (8)
  • JosiahParry (5)
  • tim-salabim (2)
  • rouault (2)
  • bjyberg (1)
  • fBedecarrats (1)
  • zackarno (1)
  • rsbivand (1)
  • kylebutts (1)
  • PaulC91 (1)
  • ambarja (1)
  • andrewmaclachlan (1)
Pull Request Authors
  • paleolimbot (65)
  • olivroy (2)
  • mikemahoney218 (1)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • cran 801 last-month
  • Total docker downloads: 14
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 0
    (may contain duplicates)
  • Total versions: 6
  • Total maintainers: 1
proxy.golang.org: github.com/geoarrow/geoarrow-r
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.5%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 11 months ago
cran.r-project.org: geoarrow

Extension Types for Spatial Data for Use with 'Arrow'

  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 801 Last month
  • Docker Downloads: 14
Rankings
Dependent packages count: 28.8%
Dependent repos count: 35.5%
Average: 49.9%
Downloads: 85.4%
Maintainers (1)
Last synced: 11 months ago

Dependencies

DESCRIPTION cran
  • R >= 2.10 depends
  • narrow * imports
  • wk >= 0.6.0 imports
  • R6 * suggests
  • arrow >= 8.0.0 suggests
  • covr * suggests
  • dplyr * suggests
  • jsonlite * suggests
  • sf * suggests
  • testthat >= 3.0.0 suggests
  • tibble * suggests
  • vctrs * suggests
.github/workflows/R-CMD-check.yaml actions
  • actions/checkout v2 composite
  • actions/upload-artifact main composite
  • r-lib/actions/check-r-package v1 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-r-dependencies v1 composite
.github/workflows/pkgdown.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/setup-pandoc v1 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-r-dependencies v1 composite
.github/workflows/test-coverage.yaml actions
  • actions/checkout v2 composite
  • r-lib/actions/setup-r v1 composite
  • r-lib/actions/setup-r-dependencies v1 composite