2017-08-13 16:10:01 +02:00
# opensensmapr
2018-01-14 21:48:46 +01:00
2018-10-20 11:47:10 +02:00
[![CRAN status ](https://www.r-pkg.org/badges/version/opensensmapr )](https://cran.r-project.org/package=opensensmapr)
[![Travis build status ](https://travis-ci.org/sensebox/opensensmapR.svg?branch=master )](https://travis-ci.org/sensebox/opensensmapR)
[![AppVeyor Build status ](https://ci.appveyor.com/api/projects/status/dtad4ves48gebss7/branch/master?svg=true )](https://ci.appveyor.com/project/noerw/opensensmapr/branch/master)
2018-01-14 21:48:46 +01:00
2018-06-26 23:57:39 +02:00
This R package ingests data from the API of [opensensemap.org][osem] for analysis in R.
Features include:
- `osem_boxes()` : fetch sensor station ("box") metadata, with various filters
- `osem_measurements()` : fetch measurements by phenomenon, with various filters such as submitting spatial extent, time range, sensor type, box, exposure..
- no time frame limitation through request paging!
- many helper functions to help understand the queried data
- caching queries for reproducibility
The package aims to be compatible with the [`tidyverse` ][tidy] and [`sf` ][sf],
so it is easy to analyze or vizualize the data with state of the art packages.
[osem]: https://opensensemap.org/
[sf]: https://github.com/r-spatial/sf
[tidy]: https://www.tidyverse.org/
## Usage
Complete documentation is provided via the R help system:
Each function's documentation can be viewed with `?<function-name>` .
A comprehensive overview of all functions is given in `?opensensmapr` .
There are also vignettes showcasing applications of this package:
- [Visualising the History of openSenseMap.org][osem-history]: Showcase of `opensensmapr` with `dplyr` + `ggplot2`
- [Exploring the openSenseMap dataset][osem-intro]: Showcase of included helper functions
- [Caching openSenseMap Data for reproducibility][osem-serialization]
2023-02-08 12:00:45 +01:00
[osem-intro]: https://sensebox.github.io/opensensmapR/inst/doc/osem-intro.html
[osem-history]: https://sensebox.github.io/opensensmapR/inst/doc/osem-history.html
[osem-serialization]: https://sensebox.github.io/opensensmapR/inst/doc/osem-serialization.html
2018-06-26 23:57:39 +02:00
If you used this package for an analysis and think it could serve as a good
example or showcase, feel free to add a vignette to the package via a [PR ](#contribute )!
2017-08-14 13:10:43 +02:00
## Installation
2018-01-14 21:48:46 +01:00
2018-05-07 18:32:53 +02:00
The package is available on CRAN, install it via
```r
install.packages('opensensmapr')
```
2018-06-26 23:57:39 +02:00
To install the very latest versions from GitHub, run:
2017-08-14 13:10:43 +02:00
```r
install.packages('devtools')
2018-09-05 10:27:55 +02:00
devtools::install_github('sensebox/opensensmapr@master ') # latest stable version
devtools::install_gi thub('sensebox/opensensmapr@development ') # bleeding edge version
2017-08-14 13:10:43 +02:00
```
2017-11-30 01:05:44 +01:00
## Changelog
2018-01-14 21:48:46 +01:00
2023-02-23 15:18:10 +01:00
This project adheres to semantic versioning, for changes in recent versions please consult [NEWS.md ](NEWS.md ).
2017-11-30 01:05:44 +01:00
2018-05-07 18:32:53 +02:00
## Contributing & Development
2017-08-14 13:10:43 +02:00
2018-05-07 18:32:53 +02:00
Contributions are very welcome!
2023-02-23 17:21:56 +01:00
When submitting a patch, please follow the existing code stlye,
2018-05-07 18:32:53 +02:00
and run `R CMD check --no-vignettes .` on the package.
2018-06-26 23:57:39 +02:00
Where feasible, also add tests for the added / changed functionality in `tests/testthat` .
2018-01-14 21:48:46 +01:00
2023-02-23 17:21:56 +01:00
Please note that this project is released with a Contributor Code of Conduct.
2018-01-14 21:48:46 +01:00
By participating in this project you agree to abide by its terms.
2018-10-20 01:51:17 +02:00
### development environment
To set up the development environment for testing and checking, all suggested packages should be installed.
On linux, these require some system dependencies:
```sh
# install dependencies for sf (see https://github.com/r-spatial/sf#installing)
sudo dnf install gdal-devel proj-devel proj-epsg proj-nad geos-devel udunits2-devel
# install suggested packages
R -e "install.packages(c('maps', 'maptools', 'tibble', 'rgeos', 'sf',
'knitr', 'rmarkdown', 'lubridate', 'units', 'jsonlite', 'ggplot2',
'zoo', 'lintr', 'testthat', 'covr')"
```
2018-09-21 12:21:22 +02:00
### build
To build the package, either use `devtools::build()` or run
```sh
R CMD build .
```
2018-10-20 01:51:17 +02:00
Next, run the **tests and checks** :
2018-09-21 12:21:22 +02:00
```sh
R CMD check --as-cran ../opensensmapr_*.tar.gz
# alternatively, if you're in a hurry:
R CMD check --no-vignettes ../opensensmapr_*.tar.gz
```
2018-10-20 01:51:17 +02:00
### release
To create a release:
2023-02-23 11:28:27 +01:00
0. make sure you are on master branch
2018-10-20 01:51:17 +02:00
1. run the tests and checks as described above
2. bump the version in `DESCRIPTION`
2023-02-23 15:18:10 +01:00
3. update `NEWS.md`
2018-10-20 01:51:17 +02:00
3. rebuild the documentation: `R -e 'devtools::document()'`
4. build the package again with the new version: `R CMD build . --no-build-vignettes`
5. tag the commit with the new version: `git tag v0.5.0`
6. push changes: `git push && git push --tags`
7. wait for *all* CI tests to complete successfully (helps in the next step)
8. [upload the new release to CRAN ](https://cran.r-project.org/submit.html )
9. get back to the enjoyable parts of your life & hope you won't get bad mail next week.
2017-08-14 13:10:43 +02:00
## License
2018-01-14 21:48:46 +01:00
2017-08-14 13:10:43 +02:00
GPL-2.0 - Norwin Roosen