Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] Download previous versions of the data from geofabrik #295

Open
juanfonsecaLS1 opened this issue Sep 5, 2024 · 2 comments
Open
Assignees

Comments

@juanfonsecaLS1
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Sometimes is useful to have access to previous versions of the OSM data. Currently osmextract gets the most recent version
from different providers.

Describe the solution you'd like
oe_get could use a parameter to indicate if the user wants a previous version of the data from geofabrik. Alternatively,
a vignette can be created explaining how to do it.

Describe alternatives you've considered
This is some code that works for getting an arbitrary version of the pbf file of Colombia

library(osmextract)
#> Data (c) OpenStreetMap contributors, ODbL 1.0. https://www.openstreetmap.org/copyright.
#> Check the package website, https://docs.ropensci.org/osmextract/, for more details.
library(rvest)

col_match <- oe_match("Colombia",provider = "geofabrik")
#> The input place was matched with: Colombia

u <- dirname(col_match$url)
f <- basename(col_match$url)

id_files <- gsub("latest\\.osm\\.pbf",replacement = "",f)

files_table <- (read_html(u) |> html_table())[[1]]

head(files_table)
#> # A tibble: 6 × 5
#>   ``    Name                                `Last modified`    Size  Description
#>   <lgl> <chr>                               <chr>              <chr> <lgl>      
#> 1 NA    ""                                  ""                 ""    NA         
#> 2 NA    "Parent Directory"                  ""                 "-"   NA         
#> 3 NA    "argentina-140101-free.shp.zip"     "2018-04-27 06:55" "99M" NA         
#> 4 NA    "argentina-140101-free.shp.zip.md5" "2018-05-03 17:18" "64"  NA         
#> 5 NA    "argentina-140101.osm.pbf"          "2014-01-01 23:35" "58M" NA         
#> 6 NA    "argentina-150101-free.shp.zip"     "2018-04-27 06:51" "133… NA

available_versions <- files_table$Name[grep(paste0(id_files,"\\d{6}\\.osm\\.pbf$"),files_table$Name)]

head(available_versions)
#> [1] "colombia-140101.osm.pbf" "colombia-150101.osm.pbf"
#> [3] "colombia-160101.osm.pbf" "colombia-170101.osm.pbf"
#> [5] "colombia-180101.osm.pbf" "colombia-190101.osm.pbf"

net_old <- do.call(oe_read,
                   list(file_path = paste0(u,"/",available_versions[10]))
                   )
#> The chosen file was already detected in the download directory. Skip downloading.
#> The corresponding gpkg file was already detected. Skip vectortranslate operations.
#> Reading layer `lines' from data source 
#>   `C:\Users\...\Documents\OSMEXT_downloads\geofabrik_colombia-230101.gpkg' 
#>   using driver `GPKG'
#> Simple feature collection with 1087521 features and 9 fields
#> Geometry type: LINESTRING
#> Dimension:     XY
#> Bounding box:  xmin: -85.94982 ymin: -4.503316 xmax: -66.57158 ymax: 26.00379
#> Geodetic CRS:  WGS 84

Created on 2024-09-05 with reprex v2.1.1

Additional context
Add any other context or screenshots about the feature request here.

@Robinlovelace
Copy link
Member

👍

@agila5
Copy link
Collaborator

agila5 commented Sep 5, 2024

Thank you very much for your suggestion! I think it's a nice and reasonable idea, I'll do my best to implement it as soon as possible (maybe as an additional argument to oe_match & parents).

@agila5 agila5 self-assigned this Sep 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants