From 4888b5fa8bf8cd87925453f0eecf6688a3b60abb Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 11:00:36 +0100 Subject: [PATCH 01/12] trigger GHA From 785bdcbf307d4339f4bd782a80a87ce7fd7658e8 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 11:04:58 +0100 Subject: [PATCH 02/12] trigger GHA --- README.Rmd | 1 + 1 file changed, 1 insertion(+) diff --git a/README.Rmd b/README.Rmd index df110d26..da4162e7 100644 --- a/README.Rmd +++ b/README.Rmd @@ -246,3 +246,4 @@ By contributing to this project, you agree to abide by its terms. + From 7c0347e0e2c619e2a94d907f3cda2f331fd5bfcb Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:14:54 +0100 Subject: [PATCH 03/12] polish news --- NEWS.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/NEWS.md b/NEWS.md index ebbf7f14..16425b6a 100644 --- a/NEWS.md +++ b/NEWS.md @@ -4,13 +4,13 @@ * Bump minimum R version from 3.5.0 to 3.6.0 since that's a requirement for one of our indirect dependencies (i.e. [evaluate](https://cran.r-project.org/package=evaluate)). * Adjusted the SQL syntax used inside `oe_get_network` so that the queries are compatible with GDAL 3.10 ([#298](https://github.com/ropensci/osmextract/issues/291)). -* The output of `oe_get_network` does not drop elements tagged as `access = 'no'` as long as the `foot`/`bicycle`/`motor_vehicle` (according to the chosen mode of transport) key is equal to `yes`, `permissive`, or `designated` ([#289](https://github.com/ropensci/osmextract/issues/289)). +* The output of `oe_get_network` does not drop elements tagged as `access = 'no'` as long as the `foot`/`bicycle`/`motor_vehicle` key (according to the chosen mode of transport) is equal to `yes`, `permissive`, or `designated` ([#289](https://github.com/ropensci/osmextract/issues/289)). ### MINOR CHANGES * Updated the `osmconf.ini` file to be in synch with the GDAL version. -* Added `oneway` as column by default when using `oe_get_network(mode = "driving")`, which indicates if a link represents an uni-directional road ([#296](https://github.com/ropensci/osmextract/issues/296)) -* Furthermore, `oe_get_network(mode = "driving")` also include the `motor_vehicle` field (see [#303](https://github.com/ropensci/osmextract/pull/303)). +* Added `oneway` column by default when using `oe_get_network(mode = "driving")`, which indicates if a link represents a uni-directional road ([#296](https://github.com/ropensci/osmextract/issues/296)) +* Furthermore, `oe_get_network(mode = "driving")` always include the `motor_vehicle` field (see [#303](https://github.com/ropensci/osmextract/pull/303)). # osmextract 0.5.1 From 8cdc27bbab3614a16e364e63ba22a18b82e23b50 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:15:26 +0100 Subject: [PATCH 04/12] update README --- README.md | 11 ++++++----- man/figures/README-iow1-1.png | Bin 13364 -> 13371 bytes man/figures/README-points-lines-iow-1.png | Bin 19003 -> 19017 bytes man/figures/README-points-lines-iow-2.png | Bin 11099 -> 11044 bytes 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 41bfc330..c6e73618 100644 --- a/README.md +++ b/README.md @@ -118,7 +118,7 @@ attaching this geographic data package as follows: ``` r library(sf) -#> Linking to GEOS 3.11.2, GDAL 3.6.2, PROJ 9.2.0; sf_use_s2() is TRUE +#> Linking to GEOS 3.11.2, GDAL 3.7.2, PROJ 9.3.0; sf_use_s2() is TRUE ``` ### Warnings: @@ -149,9 +149,9 @@ can be read-in by changing the `layer` argument: osm_lines = oe_get("Isle of Wight", stringsAsFactors = FALSE, quiet = TRUE) osm_points = oe_get("Isle of Wight", layer = "points", stringsAsFactors = FALSE, quiet = TRUE) nrow(osm_lines) -#> [1] 51226 +#> [1] 51875 nrow(osm_points) -#> [1] 67783 +#> [1] 68660 par(mar = rep(0, 4)) plot(st_geometry(osm_lines), xlim = c(-1.59, -1.1), ylim = c(50.5, 50.8)) plot(st_geometry(osm_points), xlim = c(-1.59, -1.1), ylim = c(50.5, 50.8)) @@ -167,7 +167,8 @@ roads. The column names in the `osm_lines` object are as follows: ``` r names(osm_lines) # default variable names #> [1] "osm_id" "name" "highway" "waterway" "aerialway" -#> [6] "barrier" "man_made" "z_order" "other_tags" "geometry" +#> [6] "barrier" "man_made" "railway" "z_order" "other_tags" +#> [11] "geometry" ``` Once imported, you can use all functions for data frames in base R and @@ -266,7 +267,6 @@ states that > terms of: - 1. This License; - - 2. A later version of this License similar in spirit to this See the [Introducing osmextract @@ -324,3 +324,4 @@ project, you agree to abide by its terms. + diff --git a/man/figures/README-iow1-1.png b/man/figures/README-iow1-1.png index 76635e2b5b4ecb6423cd8d2de289d8e739cda374..3977e53d11be590aa3c99a7c8139ee33f3cf011e 100644 GIT binary patch delta 12684 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 ZQxOc({wE#11_9|1 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 AX8-^I literal 19003 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 ub&@MBJD;WGsE%njgjjVqAP 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 From 005c71e6d5c6518700af56b231194eb6dda6afde Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:15:39 +0100 Subject: [PATCH 05/12] fix broken link --- R/vectortranslate.R | 2 +- man/oe_vectortranslate.Rd | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/R/vectortranslate.R b/R/vectortranslate.R index 1010bbab..fec9ea65 100644 --- a/R/vectortranslate.R +++ b/R/vectortranslate.R @@ -79,7 +79,7 @@ #' for the `.osm.pbf` file and change the `CONFIG` file (in case the user #' asks for any extra tag or a totally different CONFIG file); #' * `"-lco", "GEOMETRY_NAME=geometry"` is used to change the -#' [layer creation options](https://gdal.org/drivers/vector/gpkg.html?highlight=gpkg#layer-creation-options) +#' [layer creation options](https://gdal.org/en/latest/drivers/vector/gpkg.html#layer-creation-options) #' for the `.gpkg` file and modify the name of the geometry column; #' * `layer` indicates which layer should be converted. #' diff --git a/man/oe_vectortranslate.Rd b/man/oe_vectortranslate.Rd index 6d0dad96..a5482de2 100644 --- a/man/oe_vectortranslate.Rd +++ b/man/oe_vectortranslate.Rd @@ -154,7 +154,7 @@ it empty; for the \code{.osm.pbf} file and change the \code{CONFIG} file (in case the user asks for any extra tag or a totally different CONFIG file); \item \verb{"-lco", "GEOMETRY_NAME=geometry"} is used to change the -\href{https://gdal.org/drivers/vector/gpkg.html?highlight=gpkg#layer-creation-options}{layer creation options} +\href{https://gdal.org/en/latest/drivers/vector/gpkg.html#layer-creation-options}{layer creation options} for the \code{.gpkg} file and modify the name of the geometry column; \item \code{layer} indicates which layer should be converted. } From c44f012a6dffec3a21cc47c3de9752eda974014e Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:48:38 +0100 Subject: [PATCH 06/12] fix invalid URLs --- R/get-key-values.R | 2 +- R/get-network.R | 2 +- R/get.R | 4 ++-- R/vectortranslate.R | 10 +++++----- README.Rmd | 2 +- README.md | 4 ++-- man/oe_get.Rd | 4 ++-- man/oe_get_keys.Rd | 2 +- man/oe_get_network.Rd | 2 +- man/oe_read.Rd | 4 ++-- man/oe_vectortranslate.Rd | 14 +++++++------- vignettes/osmextract.Rmd | 14 +++++++------- 12 files changed, 32 insertions(+), 32 deletions(-) diff --git a/R/get-key-values.R b/R/get-key-values.R index cb271fce..76462263 100644 --- a/R/get-key-values.R +++ b/R/get-key-values.R @@ -12,7 +12,7 @@ #' be explicitly added to the `.gpkg` file. All the other keys are #' automatically stored using an `other_tags` field with a syntax compatible #' with the PostgreSQL HSTORE type. See -#' [here](https://gdal.org/drivers/vector/osm.html#driver-capabilities) for +#' [here](https://gdal.org/en/stable/drivers/vector/osm.html#driver-capabilities) for #' more details. #' #' When the argument `values` is `TRUE`, then the function returns a named diff --git a/R/get-network.R b/R/get-network.R index 1c35bb85..658c9672 100644 --- a/R/get-network.R +++ b/R/get-network.R @@ -17,7 +17,7 @@ #' #' @details The definition of usable transport network was taken from the Python #' packages -#' [osmnx](https://github.com/gboeing/osmnx/blob/main/osmnx/_downloader.py) and +#' [osmnx](https://raw.githubusercontent.com/gboeing/osmnx/refs/heads/main/osmnx/_overpass.py) and #' [pyrosm](https://pyrosm.readthedocs.io/en/latest/) and several other #' documents found online, i.e. #' , diff --git a/R/get.R b/R/get.R index 3031bce8..891561ea 100644 --- a/R/get.R +++ b/R/get.R @@ -54,7 +54,7 @@ #' argument `options`. Set by default. Check details in the introductory #' vignette and the help page of [oe_vectortranslate()]. #' @param osmconf_ini The configuration file. See documentation at -#' [gdal.org](https://gdal.org/drivers/vector/osm.html). Check details in the +#' [gdal.org](https://gdal.org/en/stable/drivers/vector/osm.html). Check details in the #' introductory vignette and the help page of [oe_vectortranslate()]. Set by #' default. #' @param extra_tags Which additional columns, corresponding to OSM tags, should @@ -86,7 +86,7 @@ #' @param boundary_type A character vector of length 1 specifying the type of #' spatial filter. The `spat` filter selects only those features that #' intersect a given area, while `clipsrc` also clips the geometries. Check -#' the examples and also [here](https://gdal.org/programs/ogr2ogr.html) for +#' the examples and also [here](https://gdal.org/en/stable/programs/ogr2ogr.html) for #' more details. #' @param download_only Boolean. If `TRUE`, then the function only returns the #' path where the matched file is stored, instead of reading it. `FALSE` by diff --git a/R/vectortranslate.R b/R/vectortranslate.R index fec9ea65..ee668b0b 100644 --- a/R/vectortranslate.R +++ b/R/vectortranslate.R @@ -2,7 +2,7 @@ #' #' This function is used to translate a `.osm.pbf` file into `.gpkg` format. #' The conversion is performed using -#' [ogr2ogr](https://gdal.org/programs/ogr2ogr.html#ogr2ogr) via the +#' [ogr2ogr](https://gdal.org/en/stable/programs/ogr2ogr.html) via the #' `vectortranslate` utility in [sf::gdal_utils()] . It was created following #' [the #' suggestions](https://github.com/OSGeo/gdal/issues/2100#issuecomment-565707053) @@ -18,7 +18,7 @@ #' The `.osm.pbf` files processed by GDAL are usually categorized into 5 #' layers, named `points`, `lines`, `multilinestrings`, `multipolygons` and #' `other_relations`. Check the first paragraphs -#' [here](https://gdal.org/drivers/vector/osm.html) for more details. This +#' [here](https://gdal.org/en/stable/drivers/vector/osm.html) for more details. This #' function can covert only one layer at a time, and the parameter `layer` is #' used to specify which layer of the `.osm.pbf` file should be converted. #' Several layers with different names can be stored in the same `.gpkg` file. @@ -75,11 +75,11 @@ #' * `"-overwrite` is used to delete an existing layer and recreate #' it empty; #' * `"-oo", paste0("CONFIG_FILE=", osmconf_ini)` is used to set the -#' [Open Options](https://gdal.org/drivers/vector/osm.html#open-options) +#' [Open Options](https://gdal.org/en/stable/drivers/vector/osm.html#open-options) #' for the `.osm.pbf` file and change the `CONFIG` file (in case the user #' asks for any extra tag or a totally different CONFIG file); #' * `"-lco", "GEOMETRY_NAME=geometry"` is used to change the -#' [layer creation options](https://gdal.org/en/latest/drivers/vector/gpkg.html#layer-creation-options) +#' [layer creation options](https://gdal.org/en/stable/drivers/vector/gpkg.html#layer-creation-options) #' for the `.gpkg` file and modify the name of the geometry column; #' * `layer` indicates which layer should be converted. #' @@ -100,7 +100,7 @@ #' introductory vignette. #' #' See also the help page of [`sf::gdal_utils()`] and -#' [ogr2ogr](https://gdal.org/programs/ogr2ogr.html) for more examples and +#' [ogr2ogr](https://gdal.org/en/stable/programs/ogr2ogr.html) for more examples and #' extensive documentation on all available options that can be tuned during #' the vectortranslate process. #' diff --git a/README.Rmd b/README.Rmd index da4162e7..2106b6c3 100644 --- a/README.Rmd +++ b/README.Rmd @@ -74,7 +74,7 @@ knitr::include_graphics("man/figures/89990770-22bf2480-dc83-11ea-9092-7645945349 The package is designed to complement `osmdata`, which has advantages over `osmextract` for small datasets: `osmdata` is likely to be quicker for datasets less than a few MB in size, provides up-to-date data and has an intuitive interface. `osmdata` can provide data in a range of formats, while `osmextract` only returns [`sf`](https://github.com/r-spatial/sf) objects. -`osmextract`'s niche is that it provides a fast way to download large OSM datasets in the highly compressed `pbf` format and read them in via the fast C library [GDAL](https://gdal.org/drivers/vector/osm.html) and the popular R package for working with geographic data [`sf`](https://github.com/r-spatial/sf). +`osmextract`'s niche is that it provides a fast way to download large OSM datasets in the highly compressed `pbf` format and read them in via the fast C library [GDAL](https://gdal.org/en/stable/drivers/vector/osm.html) and the popular R package for working with geographic data [`sf`](https://github.com/r-spatial/sf). ## Installation diff --git a/README.md b/README.md index c6e73618..213dc0d4 100644 --- a/README.md +++ b/README.md @@ -84,8 +84,8 @@ formats, while `osmextract` only returns [`sf`](https://github.com/r-spatial/sf) objects. `osmextract`’s niche is that it provides a fast way to download large OSM datasets in the highly compressed `pbf` format and read them in via the fast C library -[GDAL](https://gdal.org/drivers/vector/osm.html) and the popular R -package for working with geographic data +[GDAL](https://gdal.org/en/stable/drivers/vector/osm.html) and the +popular R package for working with geographic data [`sf`](https://github.com/r-spatial/sf). ## Installation diff --git a/man/oe_get.Rd b/man/oe_get.Rd index f9ca3dc4..274ac595 100644 --- a/man/oe_get.Rd +++ b/man/oe_get.Rd @@ -90,7 +90,7 @@ argument \code{options}. Set by default. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}.} \item{osmconf_ini}{The configuration file. See documentation at -\href{https://gdal.org/drivers/vector/osm.html}{gdal.org}. Check details in the +\href{https://gdal.org/en/stable/drivers/vector/osm.html}{gdal.org}. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}. Set by default.} @@ -114,7 +114,7 @@ can be chosen using the argument \code{boundary_type}.} \item{boundary_type}{A character vector of length 1 specifying the type of spatial filter. The \code{spat} filter selects only those features that intersect a given area, while \code{clipsrc} also clips the geometries. Check -the examples and also \href{https://gdal.org/programs/ogr2ogr.html}{here} for +the examples and also \href{https://gdal.org/en/stable/programs/ogr2ogr.html}{here} for more details.} \item{download_only}{Boolean. If \code{TRUE}, then the function only returns the diff --git a/man/oe_get_keys.Rd b/man/oe_get_keys.Rd index e16dde4f..da1fbfae 100644 --- a/man/oe_get_keys.Rd +++ b/man/oe_get_keys.Rd @@ -95,7 +95,7 @@ items, namely a \code{key} and a \code{value}. The conversion between \code{.osm be explicitly added to the \code{.gpkg} file. All the other keys are automatically stored using an \code{other_tags} field with a syntax compatible with the PostgreSQL HSTORE type. See -\href{https://gdal.org/drivers/vector/osm.html#driver-capabilities}{here} for +\href{https://gdal.org/en/stable/drivers/vector/osm.html#driver-capabilities}{here} for more details. When the argument \code{values} is \code{TRUE}, then the function returns a named diff --git a/man/oe_get_network.Rd b/man/oe_get_network.Rd index ccfed1f6..bfab4795 100644 --- a/man/oe_get_network.Rd +++ b/man/oe_get_network.Rd @@ -33,7 +33,7 @@ to each each mode of transport. \details{ The definition of usable transport network was taken from the Python packages -\href{https://github.com/gboeing/osmnx/blob/main/osmnx/_downloader.py}{osmnx} and +\href{https://raw.githubusercontent.com/gboeing/osmnx/refs/heads/main/osmnx/_overpass.py}{osmnx} and \href{https://pyrosm.readthedocs.io/en/latest/}{pyrosm} and several other documents found online, i.e. \url{https://wiki.openstreetmap.org/wiki/OSM_tags_for_routing/Access_restrictions}, diff --git a/man/oe_read.Rd b/man/oe_read.Rd index c9ac9fb2..da9ffb55 100644 --- a/man/oe_read.Rd +++ b/man/oe_read.Rd @@ -73,7 +73,7 @@ argument \code{options}. Set by default. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}.} \item{osmconf_ini}{The configuration file. See documentation at -\href{https://gdal.org/drivers/vector/osm.html}{gdal.org}. Check details in the +\href{https://gdal.org/en/stable/drivers/vector/osm.html}{gdal.org}. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}. Set by default.} @@ -102,7 +102,7 @@ can be chosen using the argument \code{boundary_type}.} \item{boundary_type}{A character vector of length 1 specifying the type of spatial filter. The \code{spat} filter selects only those features that intersect a given area, while \code{clipsrc} also clips the geometries. Check -the examples and also \href{https://gdal.org/programs/ogr2ogr.html}{here} for +the examples and also \href{https://gdal.org/en/stable/programs/ogr2ogr.html}{here} for more details.} \item{quiet}{Boolean. If \code{FALSE}, the function prints informative messages. diff --git a/man/oe_vectortranslate.Rd b/man/oe_vectortranslate.Rd index a5482de2..38a658c9 100644 --- a/man/oe_vectortranslate.Rd +++ b/man/oe_vectortranslate.Rd @@ -33,7 +33,7 @@ argument \code{options}. Set by default. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}.} \item{osmconf_ini}{The configuration file. See documentation at -\href{https://gdal.org/drivers/vector/osm.html}{gdal.org}. Check details in the +\href{https://gdal.org/en/stable/drivers/vector/osm.html}{gdal.org}. Check details in the introductory vignette and the help page of \code{\link[=oe_vectortranslate]{oe_vectortranslate()}}. Set by default.} @@ -62,7 +62,7 @@ can be chosen using the argument \code{boundary_type}.} \item{boundary_type}{A character vector of length 1 specifying the type of spatial filter. The \code{spat} filter selects only those features that intersect a given area, while \code{clipsrc} also clips the geometries. Check -the examples and also \href{https://gdal.org/programs/ogr2ogr.html}{here} for +the examples and also \href{https://gdal.org/en/stable/programs/ogr2ogr.html}{here} for more details.} \item{quiet}{Boolean. If \code{FALSE}, the function prints informative messages. @@ -77,7 +77,7 @@ Character string representing the path of the \code{.gpkg} file. \description{ This function is used to translate a \code{.osm.pbf} file into \code{.gpkg} format. The conversion is performed using -\href{https://gdal.org/programs/ogr2ogr.html#ogr2ogr}{ogr2ogr} via the +\href{https://gdal.org/en/stable/programs/ogr2ogr.html}{ogr2ogr} via the \code{vectortranslate} utility in \code{\link[sf:gdal_utils]{sf::gdal_utils()}} . It was created following \href{https://github.com/OSGeo/gdal/issues/2100#issuecomment-565707053}{the suggestions} of the maintainers of GDAL. See Details and Examples to understand the basic @@ -93,7 +93,7 @@ customized in several ways modifying the parameters \code{layer}, \code{extra_ta The \code{.osm.pbf} files processed by GDAL are usually categorized into 5 layers, named \code{points}, \code{lines}, \code{multilinestrings}, \code{multipolygons} and \code{other_relations}. Check the first paragraphs -\href{https://gdal.org/drivers/vector/osm.html}{here} for more details. This +\href{https://gdal.org/en/stable/drivers/vector/osm.html}{here} for more details. This function can covert only one layer at a time, and the parameter \code{layer} is used to specify which layer of the \code{.osm.pbf} file should be converted. Several layers with different names can be stored in the same \code{.gpkg} file. @@ -150,11 +150,11 @@ Explanation: \item \verb{"-overwrite} is used to delete an existing layer and recreate it empty; \item \verb{"-oo", paste0("CONFIG_FILE=", osmconf_ini)} is used to set the -\href{https://gdal.org/drivers/vector/osm.html#open-options}{Open Options} +\href{https://gdal.org/en/stable/drivers/vector/osm.html#open-options}{Open Options} for the \code{.osm.pbf} file and change the \code{CONFIG} file (in case the user asks for any extra tag or a totally different CONFIG file); \item \verb{"-lco", "GEOMETRY_NAME=geometry"} is used to change the -\href{https://gdal.org/en/latest/drivers/vector/gpkg.html#layer-creation-options}{layer creation options} +\href{https://gdal.org/en/stable/drivers/vector/gpkg.html#layer-creation-options}{layer creation options} for the \code{.gpkg} file and modify the name of the geometry column; \item \code{layer} indicates which layer should be converted. } @@ -174,7 +174,7 @@ different default options). Check Examples in \code{oe_get()} and the introductory vignette. See also the help page of \code{\link[sf:gdal_utils]{sf::gdal_utils()}} and -\href{https://gdal.org/programs/ogr2ogr.html}{ogr2ogr} for more examples and +\href{https://gdal.org/en/stable/programs/ogr2ogr.html}{ogr2ogr} for more examples and extensive documentation on all available options that can be tuned during the vectortranslate process. } diff --git a/vignettes/osmextract.Rmd b/vignettes/osmextract.Rmd index 1e0cb07d..02c622ea 100644 --- a/vignettes/osmextract.Rmd +++ b/vignettes/osmextract.Rmd @@ -312,7 +312,7 @@ Beware that the `oe_download()` functions internally sets a time-out value for t The `oe_vectortranslate()` function translates a `.pbf` file into `.gpkg` format^[The GeoPackage (`.gpkg`) is an *open, standards-based, platform-independent, portable, self-descripting, compact format for transferring geospatial information*. See [here](http://www.geopackage.org/).]. It takes in input a string representing the path to an existing `.pbf` file, and it returns the path to the newly generated `.gpkg` file. The `.gpkg` file is created in the same directory as the input `.pbf` file and with the same name. -The conversion is performed using [ogr2ogr](https://gdal.org/programs/ogr2ogr.html#ogr2ogr) through `vectortranslate` utility in `sf::gdal_utils()`. +The conversion is performed using [ogr2ogr](https://gdal.org/en/stable/programs/ogr2ogr.html#ogr2ogr) through `vectortranslate` utility in `sf::gdal_utils()`. We decided to adopt this approach following [the suggestions](https://github.com/OSGeo/gdal/issues/2100#issuecomment-565707053) of the maintainers of GDAL. Moreover, GeoPackage files have database capabilities like random access and querying that are extremely important for OSM data (see below). @@ -345,7 +345,7 @@ The vectortranslate operation can be customised in several ways modifying the pa ### `layer` argument -The `.pbf` files processed by GDAL are usually categorized into 5 layers, named `points`, `lines`, `multilinestrings`, `multipolygons` and `other_relations`^[Check the first paragraphs [here](https://gdal.org/drivers/vector/osm.html) for more details.]. +The `.pbf` files processed by GDAL are usually categorized into 5 layers, named `points`, `lines`, `multilinestrings`, `multipolygons` and `other_relations`^[Check the first paragraphs [here](https://gdal.org/en/stable/drivers/vector/osm.html) for more details.]. The `oe_vectortranslate()` function can covert only one layer at a time. Nevertheless, several layers with different names can be stored in the same `.gpkg` file. By default, the function will convert the `lines` layer (which is the most common one according to our experience), but you can change that using the parameter `layer`. @@ -384,7 +384,7 @@ If `osmconf_ini` is equal to `NULL` (the default), then `oe_vectortranslate()` f Another example can be presented as follows. OSM data is usually described using several [*tags*](https://wiki.openstreetmap.org/wiki/Tags), i.e. pairs of two items: a *key* and a *value*. -The code at lines 33, 53, 85, 103, and 121 of the default `CONFIG` file determines, for each layer, which tags are explicitly reported as fields, while all the other tags are stored in the `other_tags` column (see [here](https://gdal.org/drivers/vector/osm.html#other-tags-field) for more details). +The code at lines 33, 53, 85, 103, and 121 of the default `CONFIG` file determines, for each layer, which tags are explicitly reported as fields, while all the other tags are stored in the `other_tags` column (see [here](https://gdal.org/en/stable/drivers/vector/osm.html#other-tags-field) for more details). The parameter `extra_tags` (default value: `NULL`) governs which tags are explicitly reported in the `.gpkg` file and omitted from the `other_tags` field. The default tags are always included (unless you modify the `CONFIG` file or the `vectortranslate_options`). Please note that the argument `extra_tags` is ignored if `osmconf_ini` is not `NULL` (since we cannot not know how you generated the new `osmconf.ini` file). @@ -422,8 +422,8 @@ Explanation: * `"-f", "GPKG"` says that the output format is `GPKG`. This is mandatory for GDAL < 2.3; * `"-overwrite` is used to delete an existing layer and recreate it empty; -* `"-oo", paste0("CONFIG_FILE=", osmconf_ini)` is used to modify the [open options](https://gdal.org/drivers/vector/osm.html#open-options) for the `.osm.pbf` file and set the path of the `CONFIG` file; -* `"-lco", "GEOMETRY_NAME=geometry"` adjust the [layer creation options](https://gdal.org/drivers/vector/gpkg.html?highlight=gpkg#layer-creation-options) for the `.gpkg` file, modifying the name of the geometry column; +* `"-oo", paste0("CONFIG_FILE=", osmconf_ini)` is used to modify the [open options](https://gdal.org/en/stable/drivers/vector/osm.html#open-options) for the `.osm.pbf` file and set the path of the `CONFIG` file; +* `"-lco", "GEOMETRY_NAME=geometry"` adjust the [layer creation options](https://gdal.org/en/stable/drivers/vector/gpkg.html?highlight=gpkg#layer-creation-options) for the `.gpkg` file, modifying the name of the geometry column; * `layer` indicates which layer should be converted. Starting from version 0.3.0, the options `c("-f", "GPKG", "-overwrite", "-oo", "CONFIG_FILE=", paste0("CONFIG_FILE=", osmconf_ini), "-lco", "GEOMETRY_NAME=geometry", layer)` are always appended at the end of `vectortranslate_options` unless you explicitly set different default parameters for the arguments `-f`, `-oo` and `-lco`. @@ -576,7 +576,7 @@ oe_get("ITS Leeds", provider = "test", osmconf_ini = temp_ini, quiet = FALSE, ex ### `vectortranslate_options` + `boundary` and `boundary_type` -The parameter `vectortranslate_options` is used to modify the options that are passed to [ogr2ogr](https://gdal.org/programs/ogr2ogr.html#ogr2ogr). +The parameter `vectortranslate_options` is used to modify the options that are passed to [ogr2ogr](https://gdal.org/en/stable/programs/ogr2ogr.html#ogr2ogr). This is extremely important because if we tune the `vectortranslate_options` parameter, then we can analyse small parts of an enormous `.pbf` files without fully reading it in memory. The first example, reported in the following chunk, shows how to use the argument `-t_srs` to modify the CRS of the output `.gpkg` object (i.e. transform from [`EPSG:4326`](https://epsg.io/4326) to [`EPSG:27700`](https://epsg.io/27700)) while performing vectortranslate operations: @@ -593,7 +593,7 @@ Please note that the default options (i.e. `c("-f", "GPKG", "-overwrite", "-oo", The next example illustrates how to apply an SQL-like query during the vectortranslate process. More precisely, we can use the arguments `-select` and `-where` to create an SQL-like query that is run during the vectortranslate process. -Check [here](https://gdal.org/user/ogr_sql_dialect.html) for more details on the OGR SQL dialect. +Check [here](https://gdal.org/en/stable/user/ogr_sql_dialect.html) for more details on the OGR SQL dialect. First of all, we need to build a character vector with the options that will be passed to `ogr2ogr: ` From 3315f0691f7e675e41a1ff008a66d6f5da29864e Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:48:57 +0100 Subject: [PATCH 07/12] update CRAN comments --- cran-comments.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/cran-comments.md b/cran-comments.md index 89eef1cf..998c8950 100644 --- a/cran-comments.md +++ b/cran-comments.md @@ -1,7 +1,8 @@ ## Release summary -- Following the previous reviews, we fixed the invalid URLs (also in the vignette) and added the URI protocol when relevant. Apologies for these troubles. -- We fixed a bug to preserve compatibility with GDAL 3.9 and slightly adjust an error message. We also updated the Open Street Map databases within the package. +- Fixed the invalid language tag in DESCRIPTION file. +- Fixed a bug to preserve compatibility with GDAL 3.10. +- Several minor improvements. ## Test environments From f999d4aea87652e7dba75206de11f6aff45010a7 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:54:07 +0100 Subject: [PATCH 08/12] update WORDLIST --- inst/WORDLIST | 1 + 1 file changed, 1 insertion(+) diff --git a/inst/WORDLIST b/inst/WORDLIST index d02f9639..968b13e4 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -55,6 +55,7 @@ ogr openstreetmap org osm +osmapi osmdata osmnx param From aee7f0bfb7a0476fc1722844bc51fdc930244590 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 14:54:28 +0100 Subject: [PATCH 09/12] ops typo --- inst/WORDLIST | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/inst/WORDLIST b/inst/WORDLIST index 968b13e4..3b1992d1 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -55,7 +55,7 @@ ogr openstreetmap org osm -osmapi +osmapiR osmdata osmnx param From 1596aadab41d7d027512ca9c0663e95003b78db4 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 15:02:36 +0100 Subject: [PATCH 10/12] bump version --- DESCRIPTION | 2 +- NEWS.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DESCRIPTION b/DESCRIPTION index e0fa1dbb..ec0cffb4 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: osmextract Type: Package Title: Download and Import Open Street Map Data Extracts -Version: 0.5.1.900 +Version: 0.5.2 Authors@R: c( person("Andrea", "Gilardi", email = "andrea.gilardi@polimi.it", role=c("aut", "cre"), comment = c(ORCID = "0000-0002-9424-7439")), diff --git a/NEWS.md b/NEWS.md index 16425b6a..ff30829e 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,4 +1,4 @@ -# osmextract (development version) +# osmextract 0.5.2 ### MAJOR CHANGES From 09a9038d49bd0852a5221cede42b40638f83e648 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 15:02:50 +0100 Subject: [PATCH 11/12] update codemeta --- codemeta.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/codemeta.json b/codemeta.json index 790e8682..b8315ebc 100644 --- a/codemeta.json +++ b/codemeta.json @@ -8,7 +8,7 @@ "codeRepository": "https://github.com/ropensci/osmextract", "issueTracker": "https://github.com/ropensci/osmextract/issues", "license": "https://spdx.org/licenses/GPL-3.0", - "version": "0.5.1", + "version": "0.5.2", "programmingLanguage": { "@type": "ComputerLanguage", "name": "R", @@ -121,7 +121,7 @@ "@type": "SoftwareApplication", "identifier": "R", "name": "R", - "version": ">= 3.5.0" + "version": ">= 3.6.0" }, "2": { "@type": "SoftwareApplication", @@ -172,7 +172,7 @@ }, "SystemRequirements": null }, - "fileSize": "3676.091KB", + "fileSize": "3678.118KB", "releaseNotes": "https://github.com/ropensci/osmextract/blob/master/NEWS.md", "readme": "https://github.com/ropensci/osmextract/blob/master/README.md", "contIntegration": ["https://github.com/ropensci/osmextract/actions", "https://app.codecov.io/gh/ropensci/osmextract?branch=master"], From 35f1434c0091ba1534e8801e760b559cc940bb85 Mon Sep 17 00:00:00 2001 From: Andrea Gilardi Date: Fri, 22 Nov 2024 15:54:27 +0100 Subject: [PATCH 12/12] Increment version number to 0.5.2.9000 --- DESCRIPTION | 2 +- NEWS.md | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/DESCRIPTION b/DESCRIPTION index ec0cffb4..25041222 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,7 +1,7 @@ Package: osmextract Type: Package Title: Download and Import Open Street Map Data Extracts -Version: 0.5.2 +Version: 0.5.2.9000 Authors@R: c( person("Andrea", "Gilardi", email = "andrea.gilardi@polimi.it", role=c("aut", "cre"), comment = c(ORCID = "0000-0002-9424-7439")), diff --git a/NEWS.md b/NEWS.md index ff30829e..a7ce7eaa 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,5 @@ +# osmextract (development version) + # osmextract 0.5.2 ### MAJOR CHANGES