spplit
allows you query species occurrence data sources in a variety of ways. One of them
is via a geospatial definition. This geospatial definition can be a variety of different
things:
While GBIF allows only WKT submitted to their API, the user here can pass in all the things above, and we internally convert to WKT.
While iDigBio allows only a bounding box submitted to their API, the user here can pass in all the things above, and we internally convert to a bounding box.
Thus, as you can pass a detailed and complex WKT geospatial definition to GBIF and it will get passed directlty to GBIF, that same complex WKT when passed to iDigBio will first be simplified to a bounding box.
A bounding box is a simple numeric vector of length 4, with the following format:
[min-longitude, min-latitude, max-longitude, max-latitude]
An example in R:
c(-120, 40, -100, 45)
where -120 is the min longitude, 40 is the min latitude, -100 is the max longitude and 45 is the max latitude.
You can pass a bounding box to the geometry
parameter in sp_occ_gbif()
, or
sp_occ_idigbio()
.
WKT is a text string, and is defined by a set of spatial classes. Check out the Wikipedia entry on WKT for more info (https://en.wikipedia.org/wiki/Well-known_text).
The only type of WKT class you can use here is POLYGON
. Other classes are defined in WKT,
but GBIF doesn't support any other class.
A simple example of a WKT string of a POLYGON
class is:
POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))
You can pass a WKT string for a POLYGON
to the geometry
parameter in sp_occ_gbif()
, or
sp_occ_idigbio()
.
An easy to use website for getting WKT after drawing a shape on a map is http://arthur-e.github.io/Wicket/sandbox-gmaps3.html.
You can get WKT from within R using the wellknown
package https://cran.r-project.org/package=wellknown. With wellknown
you can get
WKT from R objects, and convert GeoJSON to WKT as well. For example:
df <- us_cities[2:5,c('long','lat')]
df <- rbind(df, df[1,])
polygon(df, fmt=2)
#> [1] "POLYGON ((-81.52 41.08, -122.26 37.77, -84.18 31.58, -73.80 42.67, -81.52 41.08))"
SpatialPolygons
and SpatialPolygonsDataFrame
are two classes of object defined in the package sp
(https://cran.r-project.org/package=sp).
There are other object types defined in sp
, but only these two are supported here.
We take those inputs internally and convert to a WKT for GBIF or a bounding box for
iDigBio.
You can create a SpatialPolygons
object like:
library("sp")
poly <- SpatialPolygons(list(Polygons(list(Polygon(cbind(
c(-124.07, -119.99, -119.99, -124.07, -124.07),
c(41.48, 41.48, 35.57, 35.57, 41.48)
))), "s1")), 1L)
class(poly)
#> [1] "SpatialPolygons"
#> attr(,"package")
#> [1] "sp"
Then use the SpatialPolygons
class object for a geometry based search:
library("spplit")
sp_occ_gbif(geometry = poly, limit = 10)
#> Geometry [<geo1> (10)]
#> # A tibble: 10 × 70
#> name longitude latitude prov issues
#> <chr> <dbl> <dbl> <chr> <chr>
#> 1 Meconella californica -122.8204 38.16849 gbif cdround,gass84
#> 2 Brachythecium albicans -122.6965 38.92440 gbif cdrep,cdround
#> 3 Juncus capitatus -122.8963 39.10842 gbif cdrep,cdround
#> 4 Metaneckera menziesii -122.3766 41.20893 gbif cdrep
#> 5 Grimmia torquata -122.3766 41.20893 gbif cdrep
#> 6 Vaccinium cespitosum -122.4362 37.69014 gbif
#> 7 Fritillaria pluriflora -122.4809 38.80458 gbif cdround,gass84
#> 8 Orobanche fasciculata -120.9542 38.95750 gbif cdround,gass84
#> 9 Toxicoscordion fontanum -122.5999 38.40661 gbif cdround,gass84
#> 10 Angelica californica -122.6142 38.04393 gbif cdround,gass84
#> # ... with 65 more variables: key <int>, datasetKey <chr>,
#> # publishingOrgKey <chr>, publishingCountry <chr>, protocol <chr>,
#> # lastCrawled <chr>, lastParsed <chr>, extensions <chr>,
#> # basisOfRecord <chr>, taxonKey <int>, kingdomKey <int>,
#> # phylumKey <int>, classKey <int>, orderKey <int>, familyKey <int>,
#> # genusKey <int>, speciesKey <int>, scientificName <chr>, kingdom <chr>,
#> # phylum <chr>, order <chr>, family <chr>, genus <chr>, species <chr>,
#> # genericName <chr>, specificEpithet <chr>, taxonRank <chr>,
#> # elevation <dbl>, continent <chr>, stateProvince <chr>, year <int>,
#> # month <int>, day <int>, eventDate <date>, lastInterpreted <chr>,
#> # identifiers <chr>, facts <chr>, relations <chr>, geodeticDatum <chr>,
#> # class <chr>, countryCode <chr>, country <chr>, recordNumber <chr>,
#> # identifier <chr>, habitat <chr>, verbatimEventDate <chr>,
#> # nomenclaturalCode <chr>, higherGeography <chr>, institutionID <chr>,
#> # locality <chr>, county <chr>, collectionCode <chr>, gbifID <chr>,
#> # language <chr>, occurrenceID <chr>, type <chr>, catalogNumber <chr>,
#> # recordedBy <chr>, otherCatalogNumbers <chr>, institutionCode <chr>,
#> # startDayOfYear <chr>, verbatimElevation <chr>,
#> # higherClassification <chr>, identifiedBy <chr>,
#> # occurrenceRemarks <chr>
Same goes for SpatialPolygonsDataFrame
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.