-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #26 from R-ArcGIS/img-paths
Clean repository fix image paths
- Loading branch information
Showing
208 changed files
with
68 additions
and
32,357 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
{ | ||
"hash": "29163babe547980fa6c9bfdb373117b4", | ||
"result": { | ||
"engine": "knitr", | ||
"markdown": "---\ntitle: \"`arcgislayers`: an open source package for ArcGIS Location Services\"\nauthors:\n name: Josiah Parry\n affiliation: Environmental Systems Research Institute, Redlands, CA, USA\nfreeze: true\n---\n\n\n## Summary\n\narcgislayers is an open source package as part of Environmental Systems Research Institute's (Esri) R-ArcGIS Bridge project. arcgislayers enables developers to interact with ArcGIS data services directly from R. With arcgislayers, users can read, write, and administer remotely hosted data directly from R using native objects. \n\n## Statement of need\n\nIn the evolving landscape of geospatial analysis, a critical shift towards cloud-native infrastructure has emerged, characterized by the exposure of data via REST APIs. Esri's ArcGIS Location Services characterized by ArcGIS Platform embody this transition. Location services are accessible via REST API endpoints which which are language agnostic. \n\nWhile existing solutions like arcgisbinding enable reading and writing of ArcGIS hosted data, they present limitations (Aydin et al.). Notably, arcgisbinding relies on an ArcGIS Pro license which is confined to a Windows operating system, and does not support any additional administration of hosted data services.\n\nMoreover, the community-driven endeavors such as esri2sf, arcpullr, among others, strive to bridge this gap (CITE). However, these efforts fall short in delivering comprehensive, officially supported, and high-performance alternatives.\n\narcgislayers is an official, Esri-backed, open-source R package designed to interact with ArcGIS Image Servers and Feature Services. Leveraging the REST services offered by ArcGIS, arcgislayers empowers developers to seamlessly administer, read, and write data without the constraints of proprietary licenses or operating systems.\n\n\n# Implementation \n\narcgislayers supports both Image Servers and Feature Services. When reading raster imagery, arcgislayers returns objects of class `SpatRaster` from the terra package. arcgislayers' vector capabilities are much more sophisticated, however. \n\nIn the r-spatial ecosystem, sf objects are the de facto representation of geometric objects with associated attributes. As such, arcgislayers utilizes sf objects and data.frames to represent spatial and a-spatial data respectively. Due to the ubiquity of sf objects additional geometry types are not supported directly but can be via wk (edzer, probably bivand somewhere inhere dunnington).\n\nThe ArcGIS REST API defines a number of JSON objects that are understood by the endpoints. Notably, the REST APIs have their own definitions for geometries objects. Underpinning arcgislayers is the R package arcgisutils which is used for serializing data.frame and sf objects into Esri JSON formats. arcgisutils also provides utilities for deserializing Esri JSON returned from the REST APIs into sf or data.frame objects. \n\nThe de/serialization provided by arcgisutils enables seamless reading and writing of geospatial data with ArcGIS Location Services. \n\n\n::: {.cell}\n\n```{.r .cell-code}\nsf::st_point(c(3.0, 0.14)) |> \n arcgisutils::as_esri_geometry() |> \n jsonify::pretty_json()\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n{\n \"x\": 3.0,\n \"y\": 0.14\n}\n```\n\n\n:::\n:::\n\n\n\n## Example usage \n\n\n::: {.cell}\n\n```{.r .cell-code}\nlibrary(arcgislayers)\n\nurl <- \"https://services3.arcgis.com/ZvidGQkLaDJxRSJ2/arcgis/rest/services/PLACES_LocalData_for_BetterHealth/FeatureServer/0\"\n\nflayer <- arc_open(url)\nflayer\n```\n\n::: {.cell-output .cell-output-stdout}\n\n```\n<FeatureLayer>\nName: PlacePoints\nGeometry Type: esriGeometryPoint\nCRS: 3785\nCapabilities: Query,Extract\n```\n\n\n:::\n:::\n\n\n\n\n------- \n\nNotes \n\n\n\n- Aydin et al introduce arcgisbinding which provides a binding to ArcGIS pro enabling the reading and writing of ArcGIS Proprietary data formats and on the fly geospatial transformations using the transformation engine\n- We're seeing a shift towards cloud-native geospatial analysis data infrastructure which are exposed via rest apis\n- Esri provides very useful technology via ArcGIS Location Services. Location services are exposed via rest APIs which are well documented. Endpoints can be both public or private depending on the hosting solution and authentication used. \n- REST services provide a language agnostic interface to proprietary code allowing the development of completely open source bindings to the services\n\n- While arcgisbinding provides a way for users of R _and_ ArcGIS Pro to read image and feature services it is fairly limited. Noteably, the use of arcgisbinding requires an ArcGIS Pro license which itself requires a window machine. Further, arcgisbinding does not provide further capabilities for hosted data management. \n\n- arcgislayers builds upon the REST service provided by ArcGIS. arcgislayers is an open source R package for interacting with ArcGIS image servers and Feature services. \n\n- there are a number of community driven efforts to address this gap which are notably esri2sf, arcpullr, among others. \n\n- arcgislayers is an official, esri supported, and highly performant alternative to these packages\n\n", | ||
"supporting": [], | ||
"filters": [ | ||
"rmarkdown/pagebreak.lua" | ||
], | ||
"includes": {}, | ||
"engineDependencies": {}, | ||
"preserve": {}, | ||
"postProcess": true | ||
} | ||
} |
Oops, something went wrong.