Opt mii | R-bloggeri

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe r.iresmi.netși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

O fotografie a muntelui K2

K2 – CC BY-NC-ND de Marcelo Aguilar

Ziua 1 din 30DayMapChallenge: « Puncte ».

Cartografierea vârfurilor de peste 8000 m, cunoscute și sub numele de opt mii.

Config

library(httr)
library(glue)
library(dplyr)
library(tidyr)
library(purrr)
library(tibble)
library(stringr)
library(sf)
library(leaflet)

Mai multe opțiuni non-triviale pentru obținerea datelor:

  • Wikipedia în engleză nu are coordonatele geografice pentru a răzui (deși Wikipedia în alte limbi au);
  • Nu pot obține o interogare SPARQL funcțională pe Wikidata (lipsa de cunoștințe de la mine) chiar și cu ajutorul SPINACH Wikidata Agent;
  • nu există o relație ușoară cu OpenStreetMap de importat;
  • așa că în cele din urmă am recurs să fac un apel direct API Overpass, deși și {osmdata} ar fi trebuit să funcționeze.

Folosind o cutie de delimitare Himalaya și Karakoram, menținem vârfurile peste 8000 m având o proeminență > 500 m (vârfuri majore, altfel am obține câteva vârfuri secundare).

Ar trebui să dureze aproximativ 1 minut…

overpass_query <- URLencode(r"((out:json)(timeout:250);
node
  ("natural"="peak")
  (25,70,38,98)
  ("ele")
  ("prominence") 
  (if:number(t("prominence")) > 500 && number(t("ele")) > 8000);
out body;)", reserved = TRUE) 

summits <- GET(glue("https://overpass-api.de/api/interpreter?data={overpass_query}"))

summits_sf <- content(summits) |> 
  pluck("elements") |> 
  map(unlist) |> 
  map(enframe) |> 
  map(pivot_wider) |> 
  list_rbind() |> 
  rename_with((x) str_replace(x, "^tags\.", "")) |> 
  st_as_sf(coords = c("lon", "lat"), crs = "EPSG:4326")

Tabelul 1: Cei opt mii

Simple feature collection with 14 features and 2 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 74.58954 ymin: 27.70301 xmax: 88.14748 ymax: 35.88168
Geodetic CRS:  WGS 84
# A tibble: 14 × 3
   name          elevation            geometry
                         
 1 Mount Everest 8848.86   (86.92521 27.98806)
 2 K2            8611      (76.51333 35.88168)
 3 Kangchenjunga 8586      (88.14748 27.70301)
 4 Lhotse        8516       (86.9325 27.96199)
 5 Mount Makalu  8485      (87.08844 27.89144)
 6 Cho Oyu       8201      (86.65963 28.09675)
 7 Dhaulagiri    8167      (83.48949 28.69761)
 8 Manaslu       8163      (84.55973 28.54998)
 9 Nanga Parbat  8126      (74.58954 35.23846)
10 Annapurna I   8091      (83.81992 28.59581)
11 Gasherbrum I  8080      (76.69762 35.72468)
12 Broad Peak    8051      (76.56556 35.81369)
13 Gasherbrum II 8034      (76.65327 35.75773)
14 Shishapangma  8027      (85.78207 28.35176)
summits_sf |> 
  leaflet() |> 
  addTiles(attribution = r"(
           r.iresmi.net.
           data and map: OpenStreetMap)") |> 
  addCircleMarkers(popup = ~ glue("{name} ({`name:en`})
{ele} m"), clusterOptions = markerClusterOptions())

Figura 1: Cei opt mii

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.