R TeX
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github add dotgithubfiles Sep 15, 2017
R also dont run within egs #76 Oct 10, 2017
data udpated all js libraries, bump patch version, update dates for new er… Jun 14, 2017
inst reduce img file sizes in tools/ remove images in inst/img Sep 15, 2017
man-roxygen fix #71 - also fix tests, add as.feature Jul 27, 2017
man also dont run within egs #76 Oct 10, 2017
tests woopsy fixed Oct 10, 2017
tools reduce img file sizes in tools/ remove images in inst/img Sep 15, 2017
vignettes tweaks, fixes, bjmp to v0.4 Sep 15, 2017
.Rbuildignore add dotgithubfiles Sep 15, 2017
.gitattributes Create .gitattributes (#77) May 31, 2018
.gitignore draft of materials for JOSS submission. Dec 16, 2016
.travis.yml dist: trusty Jan 5, 2018
CONDUCT.md add contributor code of conduct, removed install leaflet from github … Aug 24, 2015
DESCRIPTION bump to dev version Oct 15, 2017
LICENSE bump license year, library jsonlite for an eg that needs minify() Jan 13, 2017
NAMESPACE fix #74, added boolean_wihtin and lawn_pt2line_distance Sep 15, 2017
NEWS.md update to v0.4.2 udpate news and cran comments Oct 10, 2017
README.Rmd add cranchecks badge Aug 7, 2018
README.md add cranchecks badge Aug 7, 2018
appveyor.yml try removing v8 install from github see if appveyor does v8 install c… Mar 9, 2016
codemeta.json went verbose on Turf in the title Dec 22, 2016
cran-comments.md update to v0.4.2 udpate news and cran comments Oct 10, 2017
lawn.Rproj fixed link to my repo, and fixed issue with single point on buffer (t… Oct 19, 2016
paper.bib draft of materials for JOSS submission. Dec 16, 2016
paper.md Title Case on title... Jan 3, 2017

README.md

lawn

cran checks Build Status Build status codecov.io rstudio mirror downloads cran version

lawn is an R wrapper for the Javascript library turf.js. In addition, we have a few functions to interface with the geojson-random and geojsonhint Javascript libraries, for generating random GeoJSON objects and linting GeoJSON, respectively.

Install

The latest release of lawn is available from CRAN. To install:

install.packages("lawn")

To install the development version:

install.packages("devtools")
devtools::install_github("ropensci/lawn")
library("lawn")

count

Count number of points within polygons

lawn_count(lawn_data$polygons_count, lawn_data$points_count, 'population')
#> <FeatureCollection>
#>   Bounding box: -112.1 46.6 -112.0 46.6
#>   No. features: 2
#>   No. points: 20
#>   Properties: 
#>     values count
#> 1 200, 600     2
#> 2              0

average

Average value of a field for a set of points within a set of polygons

lawn_average(polygons = lawn_data$polygons_average, points = lawn_data$points_average, 'population')
#> <FeatureCollection>
#>   Bounding box: 10.7 59.9 10.9 59.9
#>   No. features: 2
#>   No. points: 20
#>   Properties: 
#>          values average
#> 1 200, 600, 100     300
#> 2      200, 300     250

distance

Define two points

from <- '{
 "type": "Feature",
 "properties": {},
 "geometry": {
   "type": "Point",
   "coordinates": [-75.343, 39.984]
 }
}'
to <- '{
  "type": "Feature",
  "properties": {},
  "geometry": {
    "type": "Point",
    "coordinates": [-75.534, 39.123]
  }
}'

Calculate distance, default units is kilometers (km)

lawn_distance(from, to)
#> [1] 97.15958

random set of points

lawn_random(n = 2)
#> <FeatureCollection>
#>   Bounding box: -103.8 -37.1 2.6 -36.2
#>   No. features: 2
#>   No. points: 4
#>   Properties: NULL
lawn_random(n = 5)
#> <FeatureCollection>
#>   Bounding box: -128.1 -78.3 113.0 78.7
#>   No. features: 5
#>   No. points: 10
#>   Properties: NULL

random features with geojson-random

Points

gr_point(2)
#> <FeatureCollection>
#>   Bounding box: -44.4 -78.3 113.9 40.9
#>   No. features: 2
#>   No. points: 4
#>   Properties: NULL

Positions

gr_position()
#> [1] -48.32684  71.47329

Polygons

gr_polygon(n = 1, vertices = 5, max_radial_length = 5)
#> <FeatureCollection>
#>   Bounding box: -35.9 -70.6 -31.4 -68.0
#>   No. features: 1
#>   No. points: 12
#>   Properties: NULL

sample from a FeatureCollection

dat <- lawn_data$points_average
lawn_sample(dat, 1)
#> <FeatureCollection>
#>   Bounding box: 10.7 59.9 10.7 59.9
#>   No. features: 1
#>   No. points: 2
#>   Properties: 
#>   population
#> 1        100
lawn_sample(dat, 2)
#> <FeatureCollection>
#>   Bounding box: 10.7 59.9 10.8 59.9
#>   No. features: 2
#>   No. points: 4
#>   Properties: 
#>   population
#> 1        600
#> 2        300
lawn_sample(dat, 3)
#> <FeatureCollection>
#>   Bounding box: 10.7 59.9 10.8 59.9
#>   No. features: 3
#>   No. points: 6
#>   Properties: 
#>   population
#> 1        300
#> 2        200
#> 3        600

extent

lawn_extent(lawn_data$points_average)
#> [1] 10.71579 59.90478 10.80643 59.93162

within

lawn_within(lawn_data$points_within, lawn_data$polygons_within)
#> <FeatureCollection>
#>   Bounding box: -46.6 -23.6 -46.6 -23.6
#>   No. features: 2
#>   No. points: 4
#>   Properties: NULL

buffer

dat <- '{
 "type": "Feature",
 "properties": {},
 "geometry": {
     "type": "Polygon",
     "coordinates": [[
       [-112.072391,46.586591],
       [-112.072391,46.61761],
       [-112.028102,46.61761],
       [-112.028102,46.586591],
       [-112.072391,46.586591]
     ]]
   }
}'
lawn_buffer(dat, 1, "miles")
#> <Feature>
#>   Type: Polygon
#>   Bounding box: -112.1 46.6 -112.0 46.6
#>   No. points: 74
#>   Properties: NULL

view

lawn includes a tiny helper function for visualizing geojson.

view(lawn_data$points_average)

map1

Or during process of manipulating geojson, view at mostly any time.

Here, we sample at random two points from the same dataset just viewed.

lawn_sample(lawn_data$points_average, 2) %>% view()

map1

Contributors

Meta

  • Please report any issues or bugs.
  • License: MIT
  • Get citation information for lawn in R doing citation(package = 'lawn')
  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Additional disclaimer

Portions of this code have been contributed by Jeff Hollister, US EPA. As such, that code is subjec to the following disclaimer: https://www.epa.gov/home/github-contribution-disclaimer

rofooter