Code
library(httr)
library(jsonlite)
library(knitr)
library(sf)
sf_use_s2(FALSE)
library(tmap)
tmap_mode('view')
library(tidyverse)
options(knitr.kable.NA = '')
options(scipen=999)
library(httr)
library(jsonlite)
library(knitr)
library(sf)
sf_use_s2(FALSE)
library(tmap)
tmap_mode('view')
library(tidyverse)
options(knitr.kable.NA = '')
options(scipen=999)
<- function(place_ids, preferred_place_id){
getTwoTaxaPerState
# preferred_place_id 7259 for common name = Uruguay
<- tibble(place_id = numeric(),
twoTaxaPerState taxon_name = character(),
iconic_taxon_name = character(),
common_name = character(),
observations_place = numeric(),
observations_iNat = numeric())
<- 'https://api.inaturalist.org/v1/observations/species_counts'
api <- '&page=1&per_page=10'
page
for(place_id in place_ids) {
for(taxon_id in c(1, 47126)){ # Animalia, Plantae
<- str_glue('{api}?verifiable=true&place_id={place_id}&rank=species&taxon_id={taxon_id}&locale=es&preferred_place_id={preferred_place_id}&include_ancestors=false')
call_url_obs
<- GET(url = call_url_obs) %>%
get_json_call_observations content(as = "text") %>% fromJSON(flatten = TRUE)
<- as_tibble(get_json_call_observations$results) %>%
results slice_head(n=1)
<- tibble(place_id = place_id,
taxaPerState_i kingdom = ifelse(taxon_id == 1, 'Animalia', 'Plantae'),
taxon_name = results$taxon.name,
iconic_taxon_name = results$taxon.iconic_taxon_name,
common_name = results$taxon.preferred_common_name,
observations_place = results$count,
observations_iNat = results$taxon.observations_count)
<- rbind(twoTaxaPerState, taxaPerState_i)
twoTaxaPerState
}
}return(twoTaxaPerState)
}<- function(species_list, place_id, license){
getPhotoFromiNat
<- tibble(taxon_name = character(),
species_photos taxon_id = numeric(),
observation_url = character(),
photo_url = character())
<- 'https://api.inaturalist.org/v1/observations'
api <- '&page=1&per_page=10'
page
for(species_name in species_list){
<- str_glue('{api}?photo_license={license}&place_id={place_id}&q={species_name}&order=desc&order_by=votes{page}')
call_url
<- GET(url = URLencode(call_url)) %>%
get_json_call content(as = "text") %>% fromJSON(flatten = TRUE)
<- as_tibble(get_json_call$results) %>%
results slice_head(n=1)
<- tibble(taxon_name = species_name,
species_photos_i taxon_id = results$taxon.id,
user_login = results$user.login,
observation_url = str_replace(results$uri,
'inaturalist.org',
'naturalista.uy'),
photo_url = results$photos)
<- rbind(species_photos, species_photos_i)
species_photos
}
<- species_photos %>%
species_photos unnest_wider(photo_url, names_sep = "_") %>%
unnest_wider(col=c(photo_url_license_code, photo_url_url), names_sep = "_") %>%
select(-c(photo_url_id, photo_url_attribution,
photo_url_flags, photo_url_moderator_actions,
photo_url_hidden, photo_url_original_dimensions.width, %>%
photo_url_original_dimensions.height)) relocate(starts_with('photo_url_url'),
.before = starts_with('photo_url_license')) %>%
rename_with(~ str_replace(.x, 'photo_url_url_', 'photo_url_'),
starts_with('photo_url_url_')) %>%
rename_with(~ str_replace(.x, 'photo_url_license', 'photo_license'),
starts_with('photo_url_license'))
return(species_photos)
}
<- tibble(departamento =
place_ids_departamento c('Artigas', 'Salto', 'Rivera',
'Tacuarembó', 'Paysandú',
'Cerro Largo', 'Río Negro', 'Durazno',
'Treinta y Tres', 'Soriano',
'Florida', 'Flores', 'Rocha',
'Lavalleja', 'Colonia', 'San José',
'Maldonado', 'Canelones', 'Montevideo'),
place_id = c(12409, 12421, 12418, 12424,
12417, 12411, 12419, 12412,
12425, 12423, 7534, 12413,
12420, 12414, 8007, 12422,
12415, 12410, 12416))
<- getTwoTaxaPerState(place_ids = place_ids_departamento$place_id,
dos_taxa_por_depto preferred_place_id = 7259)
<- left_join(place_ids_departamento,
dos_taxa_por_depto
dos_taxa_por_depto)
<- getPhotoFromiNat(species_list = unique(dos_taxa_por_depto$taxon_name),
dos_taxa_por_depto_fotos place_id = 7259,
license = 'cc-by')
<- left_join(dos_taxa_por_depto,
dos_taxa_por_depto
dos_taxa_por_depto_fotos)
%>%
dos_taxa_por_depto select(departamento, kingdom, iconic_taxon_name,
taxon_name, common_name, observations_place,%>%
observation_url, photo_url_1) mutate(photo_url_1 = '') %>%
rename(Departamento = departamento,
Reino = kingdom,
Grupo = iconic_taxon_name,
Especie = taxon_name,
`Nombre común` = common_name,
`N observaciones` = observations_place,
URL = observation_url,
Imagen = photo_url_1) %>%
::kable() %>%
kableExtra::column_spec(7, link = dos_taxa_por_depto$observation_url) %>%
kableExtra::column_spec(8, image = kableExtra::spec_image(dos_taxa_por_depto$photo_url_1, 280, 200)) kableExtra
Departamento | Reino | Grupo | Especie | Nombre común | N observaciones | URL | Imagen |
---|---|---|---|---|---|---|---|
Artigas | Animalia | Amphibia | Rhinella diptycha | Cururú | 35 | https://www.naturalista.uy/observations/192809014 | |
Artigas | Plantae | Plantae | Myrcia selloi | Cambuí | 19 | https://www.naturalista.uy/observations/139880873 | |
Salto | Animalia | Aves | Rhea americana | Ñandú | 45 | https://www.naturalista.uy/observations/196953351 | |
Salto | Plantae | Plantae | Parodia mammulosa | 23 | https://www.naturalista.uy/observations/193116458 | ||
Rivera | Animalia | Aves | Hirundinea ferruginea | Viudita colorada | 16 | https://www.naturalista.uy/observations/264568608 | |
Rivera | Plantae | Plantae | Aloysia gratissima | Vara dulce | 12 | https://www.naturalista.uy/observations/264102350 | |
Tacuarembó | Animalia | Aves | Theristicus caudatus | Bandurria baya | 35 | https://www.naturalista.uy/observations/108657606 | |
Tacuarembó | Plantae | Plantae | Lithraea molleoides | chichita | 21 | https://www.naturalista.uy/observations/191840390 | |
Paysandú | Animalia | Aves | Sporophila cinnamomea | Capuchino corona gris | 24 | https://www.naturalista.uy/observations/104898265 | |
Paysandú | Plantae | Plantae | Butia yatay | Palmera yatay | 23 | https://www.naturalista.uy/observations/203461200 | |
Cerro Largo | Animalia | Amphibia | Boana pulchella | Ranita del zarzal | 50 | https://www.naturalista.uy/observations/36323790 | |
Cerro Largo | Plantae | Plantae | Parodia erinaceus | 51 | https://www.naturalista.uy/observations/276534175 | ||
Río Negro | Animalia | Mammalia | Axis axis | Axis | 38 | https://www.naturalista.uy/observations/248297709 | |
Río Negro | Plantae | Plantae | Geoffroea decorticans | Chañar | 27 | https://www.naturalista.uy/observations/203924577 | |
Durazno | Animalia | Aves | Paroaria coronata | Cardenal copete rojo | 10 | https://www.naturalista.uy/observations/170642751 | |
Durazno | Plantae | Plantae | Echium plantagineum | Viborera | 7 | https://www.naturalista.uy/observations/106017904 | |
Treinta y Tres | Animalia | Aves | Sporophila palustris | Capuchino pecho blanco | 19 | https://www.naturalista.uy/observations/169177445 | |
Treinta y Tres | Plantae | Plantae | Radlkoferotoma cistifolium | 23 | https://www.naturalista.uy/observations/147293154 | ||
Soriano | Animalia | Amphibia | Boana pulchella | Ranita del zarzal | 79 | https://www.naturalista.uy/observations/36323790 | |
Soriano | Plantae | Plantae | Vachellia caven | Espinillo | 11 | https://www.naturalista.uy/observations/245327426 | |
Florida | Animalia | Aves | Geranoaetus melanoleucus | Águila mora | 26 | https://www.naturalista.uy/observations/190576580 | |
Florida | Plantae | Plantae | Glandularia peruviana | margarita punzó | 12 | https://www.naturalista.uy/observations/60470439 | |
Flores | Animalia | Aves | Paroaria coronata | Cardenal copete rojo | 27 | https://www.naturalista.uy/observations/170642751 | |
Flores | Plantae | Plantae | Schinus longifolia | Molle | 19 | https://www.naturalista.uy/observations/245927978 | |
Rocha | Animalia | Aves | Spheniscus magellanicus | Pingüino de Magallanes | 181 | https://www.naturalista.uy/observations/229745150 | |
Rocha | Plantae | Plantae | Stevia satureiifolia | 87 | https://www.naturalista.uy/observations/106247762 | ||
Lavalleja | Animalia | Reptilia | Salvator merianae | Lagarto Overo | 43 | https://www.naturalista.uy/observations/65443175 | |
Lavalleja | Plantae | Plantae | Parodia erinaceus | 26 | https://www.naturalista.uy/observations/276534175 | ||
Colonia | Animalia | Aves | Furnarius rufus | Hornero | 70 | https://www.naturalista.uy/observations/62363056 | |
Colonia | Plantae | Plantae | Erythrina crista-galli | Ceibo | 64 | https://www.naturalista.uy/observations/64559085 | |
San José | Animalia | Aves | Hymenops perspicillatus | Pico de plata | 35 | https://www.naturalista.uy/observations/272512696 | |
San José | Plantae | Plantae | Schinus longifolia | Molle | 31 | https://www.naturalista.uy/observations/245927978 | |
Maldonado | Animalia | Aves | Larus dominicanus | Gaviota cocinera | 218 | http://www.naturalista.uy/observations/87239 | |
Maldonado | Plantae | Plantae | Parodia erinaceus | 232 | https://www.naturalista.uy/observations/276534175 | ||
Canelones | Animalia | Insecta | Harmonia axyridis | Catarina asiática | 120 | https://www.naturalista.uy/observations/118261158 | |
Canelones | Plantae | Plantae | Carpobrotus edulis | Garra de León | 96 | https://www.naturalista.uy/observations/198304124 | |
Montevideo | Animalia | Aves | Furnarius rufus | Hornero | 169 | https://www.naturalista.uy/observations/62363056 | |
Montevideo | Plantae | Plantae | Senecio crassiflorus | 156 | https://www.naturalista.uy/observations/193761839 |
<- geodata::gadm(country = 'UY',
uruguay level = 1, path = 'data/') %>%
st_as_sf() %>% st_cast()
<- left_join(uruguay %>%
planta_por_depto select(departamento=NAME_1),
%>%
dos_taxa_por_depto filter(kingdom=='Plantae'))
<- left_join(uruguay %>%
animal_por_depto select(departamento=NAME_1),
%>%
dos_taxa_por_depto filter(kingdom=='Animalia'))
<- colorRampPalette(RColorBrewer::brewer.pal(10, 'Paired'))( 19 ) ## (n) palete
tm_shape(planta_por_depto %>%
select(Departamento = departamento,
Grupo = iconic_taxon_name,
Especie = taxon_name,
`Nombre común` = common_name,
`N observaciones` = observations_place)) +
tm_polygons(fill = 'Especie',
fill.scale = tm_scale_categorical(values=palete),
fill.legend = tm_legend_hide()) +
tm_text('Especie', fontfamily = 'monospace',
options = opt_tm_text(remove_overlap = TRUE))
tm_shape(animal_por_depto %>%
select(Departamento = departamento,
Grupo = iconic_taxon_name,
Especie = taxon_name,
`Nombre común` = common_name,
`N observaciones` = observations_place)) +
tm_polygons(fill = 'Especie',
fill.scale = tm_scale_categorical(values=palete),
fill.legend = tm_legend_hide()) +
tm_text('Especie', fontfamily = 'monospace',
options = opt_tm_text(remove_overlap = TRUE))