Geralmente em estudos e aplicações de meteorologia precisamos apresentar nossa região de estudo. Se o estudo for observacional, provavelmente seu mapa da localização da região de estudo incluirá os pontos de medida. Neste tutorial eu mostro como você pode fazer um mapa simples da localização de estações meteorológicas da região de interesse.
# install.packages(c("easypackages", "tidyverse"))
#devtools::install_github("dkahle/ggmap")
#devtools::install_github("lhmet/inmetr", force = TRUE)
pcks <- c("tidyverse", "ggmap", "inmetr")
easypackages::libraries(pcks)
All packages loaded successfully
Os dados usados no exemplo são de coordenadas de estações meteorológicas de superfície do INMET. Eles são disponibilizados com o pacote inmetr.
Começamos obtendo uma estimativa do ponto central da distribuição espacial das estações meteorológicas. Essa coordenada de referência para geração do mapa será determinada a partir do ponto médio do intervalo de variação da coordenada. Isso é o que faz a função mid_range() abaixo.
# tabela de coordanas
bdmep_meta
# função para calcular o ponto médio do intervalo de variação
mid_range <- function(x) min(x) + diff(range(x, na.rm = TRUE))/2
# coord central (aproximadamente)
ll0 <- apply(bdmep_meta[, c("lon", "lat")], 2, mid_range)
ll0
lon lat
-53.75833 -15.35000
O mapa é gerado a partir de um ponto de referência. No exemplo, usamos ll0 como ponto de referência. Teste valores do parâmetro zoom conforme sua preferência. Os limites de zoom variam de 3 (scala de continente) à 21 (escala de prédio).
# mapa com a imagem do Google Maps como plano de fundo
mapa_base <- get_map(location = as.vector(ll0),
source = "google",
# definido por tentativa erro
zoom = 4,
color = "color",
maptype = "terrain")
Source : https://maps.googleapis.com/maps/api/staticmap?center=-15.35,-53.758333&zoom=4&size=640x640&scale=2&maptype=terrain&language=en-EN
No mapa acima, faça testes variando o parâmetro maptype de acordo com sua preferência. Veja o resultado no mapa final (mapa_loc) usando as demais opções, como: “terrain-background”, “satellite”, “roadmap”, “hybrid” (google maps), “terrain”, “watercolor”, e “toner”.
mapa_loc <- ggmap(mapa_base, dev = "extent") +
geom_point(data = bdmep_meta,
aes(x = lon, y = lat),
colour = "red",
size = 1) #+
#geom_text(x = lon0, y = lat0, label="CAS")
mapa_loc
Feito! Agora você pode customizar o seu mapa. Veja o help da função ?ggmap para mais informações.
sessionInfo()
R version 3.4.3 (2017-11-30)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.5 LTS
Matrix products: default
BLAS: /usr/lib/openblas-base/libblas.so.3
LAPACK: /usr/lib/lapack/liblapack.so.3.0
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=pt_BR.UTF-8
[4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=pt_BR.UTF-8 LC_MESSAGES=en_US.UTF-8
[7] LC_PAPER=pt_BR.UTF-8 LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=pt_BR.UTF-8 LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] inmetr_0.2.6.9000 ggmap_2.7.900 forcats_0.2.0 stringr_1.3.0
[5] dplyr_0.7.4 purrr_0.2.4 readr_1.2.0 tidyr_0.8.0
[9] tibble_1.4.2 ggplot2_2.2.1.9000 tidyverse_1.2.1
loaded via a namespace (and not attached):
[1] reshape2_1.4.3 haven_1.1.0 lattice_0.20-35 colorspace_1.3-3
[5] htmltools_0.3.6 yaml_2.1.18 base64enc_0.1-3 rlang_0.2.0.9000
[9] pillar_1.2.1 foreign_0.8-69 glue_1.2.0.9000 withr_2.1.1.9000
[13] modelr_0.1.1 readxl_1.0.0 bindrcpp_0.2 jpeg_0.1-8
[17] bindr_0.1 plyr_1.8.4 munsell_0.4.3 gtable_0.2.0
[21] cellranger_1.1.0 rvest_0.3.2 RgoogleMaps_1.4.2 devtools_1.13.4
[25] psych_1.7.8 memoise_1.1.0 evaluate_0.10.1 labeling_0.3
[29] knitr_1.20 parallel_3.4.3 broom_0.4.3 Rcpp_0.12.16
[33] backports_1.1.2 scales_0.5.0.9000 jsonlite_1.5 mnormt_1.5-5
[37] easypackages_0.1.0 rjson_0.2.15 png_0.1-7 hms_0.4.2
[41] digest_0.6.15 stringi_1.1.7 grid_3.4.3 rprojroot_1.3-2
[45] bitops_1.0-6 cli_1.0.0 tools_3.4.3 magrittr_1.5
[49] lazyeval_0.2.1 crayon_1.3.4 pkgconfig_2.0.1 rsconnect_0.8.5
[53] xml2_1.2.0 lubridate_1.7.3 assertthat_0.2.0 rmarkdown_1.9.3
[57] httr_1.3.1 rstudioapi_0.7 R6_2.2.2 nlme_3.1-131
[61] compiler_3.4.3