| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- #' Maa-ameti ortofotod
- #'
- #' Maa-ameti ortofotode allalaadimine. Andmestruktuur: raster. Mõõtkava 1:10 000 (vaata ruudustiku infot \url{https://geoportaal.maaamet.ee/est/ruumiandmed/kaardilehtede-susteemid-p224.html}). Loe: \url{https://geoportaal.maaamet.ee/est/andmed-ja-kaardid/ortofotod-p99.html}. Andmed salvestatakse kataloogi (default = '~/ortofotod'). Eesti topokaardistuse tarbeks toodetud ortofotodes on piksli suurusega 20-40 cm ja katavad kogu riigi territooriumi. Andmete kasutamisel palume viidata Maa-ametile. Näiteks: 'Ortofoto, Maa-amet 2021'. Käsitsi allalaadimine /url{https://geoportaal.maaamet.ee/index.php?lang_id=1&page_id=610}.
- #' @importFrom magrittr %>%
- #' @param epk10t 5-kohaline number, mis vastab kaardi 1:10 000 ruudu numbrile \url{https://geoportaal.maaamet.ee/est/ruumiandmed/kaardilehtede-susteemid-p224.html}.
- #' @param dir GEOTIFF failide salvestamise kataloog.
- #' @param conf A list() of configuration variables. Default values \code{\link[ruut]{get_config}}.
- #' @return GEOTIFF file.
- #' @seealso [ruut::get_config()], [ruut::copy_shp_to_db()]
- #' @keywords maa-amet, ortofoto
- #' @export
- #' @examples
- #' \dontrun{
- #'
- #' conf <- ruut::get_config()
- #' maaamet_ortofotod(epk10t = 54711, dir = "~/ortofotod", conf = conf)
- #' }
- maaamet_ortofotod <-
- function(epk10t = NULL,
- dir = "~/ortofotod",
- conf = NULL) {
- # epk10t <- 54711; epk10t <- 65813
- # epk10t numbri õigsuse kontroll
- epk10t_all <-
- utils::read.csv(file = system.file("csv", "epk10t.csv", package = "estmap"),
- header = T)[, "nr"]
- if (!epk10t %in% epk10t_all) {
- cat(
- sprintf(
- "\n---------------\n\nValitud epk10t ruudu number %s ei ole \u00F5ige.\n",
- epk10t
- )
- )
- return()
- }
- # GEOTIFF fotode salvestamise kataloog.
- if (!dir.exists(dir))
- dir.create(dir, recursive = T)
- ## Geotiff failide allalaadimine
- # Näidis lehelt mille kaudu saab geotiff faile alla laadida.
- url_demo <- paste0(
- "https://geoportaal.maaamet.ee/index.php?",
- "lang_id=1&plugin_act=otsing&page_id=610&=&",
- "kaardiruut=62294&andmetyyp=ortofoto_eesti_rgb&_=1612349208090"
- )
- url_source <- urltools::url_decode(url_demo)
- params <- urltools::param_get(urls = url_source) # get params
- parsed_address <- urltools::url_parse(url_source)
- # Kui geotiff fail on olemas, siis me seda enam ei alla ei lae.
- if (length(list.files(path = dir, pattern = as.character(epk10t))) > 0) {
- cat(sprintf("\nFail %s on juba olemas.\n", epk10t))
- return(TRUE)
- }
- url_new <-
- urltools::param_set(url_source, key = "kaardiruut", value = epk10t)
- ## Allalaadimine
- html_file <- readLines(url_new)
- page <- xml2::read_html(html_file[1])
- website <- ""
- website <- page %>%
- rvest::html_nodes("li a") %>%
- rvest::html_attr("href")
- if (length(website) == 0) {
- return(NULL)
- }
- parsed_address$parameter <-
- stringr::str_split(website[1], "[?]")[[1]][2]
- geotiff_download_url <-
- urltools::url_compose(parsed_urls = parsed_address)
- save_to_file <- sprintf("%s/%s.zip", dir, epk10t)
- utils::download.file(
- url = geotiff_download_url,
- method = "curl",
- extra = "-L",
- destfile = save_to_file
- )
- # zip failide lahtpakkimine
- cmd <-
- sprintf("unzip %s -d %s/; mv %s /tmp", save_to_file, dir, save_to_file)
- system(cmd)
- cmd <- sprintf("mv %s/*.tab /tmp", dir)
- system(cmd)
- cmd <- sprintf("mv %s/*.tfw /tmp", dir)
- system(cmd)
- ls <-
- list.files(path = dir, pattern = sprintf("%s.tif", epk10t))
- if (length(ls) > 0) {
- cat(
- sprintf(
- "\n---------------\n\nValitud epk10t ruudu number %s eba\u00F5nnestus.\n",
- epk10t
- )
- )
- return (NULL)
- } else {
- cat(
- sprintf(
- "\n---------------\n\nValitud epk10t ruudu number %s \u00F5nnestus.\n",
- epk10t
- )
- )
- return(geotiff_download_url)
- }
- }
|