es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La consulta R osmdata devuelve un objeto contaminado con resultados de una consulta antigua.

He realizado la siguiente consulta utilizando el paquete osmdata:

library(osmdata)
library(sf)

Obtener los límites del mapa para el Reino Unido:

bb <- getbb ('uk', format_out = 'polygon')

Obtener datos para los límites seleccionados de osmdata:

ukbasemap <- opq(bbox = bb) %>%
  add_osm_feature(key = 'admin_level', value = '4') %>%
  osmdata_sf() %>%
  trim_osmdata (bb)

Esto devolvió una advertencia, pero de lo contrario creó el objeto sf sin problemas aparentes:

bb_poly tiene más de un polígono; se seleccionará el primero.

Luego intenté graficar los datos, pero el siguiente código produce un gráfico en blanco:

sf::plot_sf(ukbasemap$osm_lines)
sf::plot_sf(ukbasemap$osm_polygons)
sf::plot_sf(ukbasemap$osm_multipolygons)
sf::plot_sf(ukbasemap$osm_points)

Cuando inspeccioné el objeto sf, me sorprendió ver algunos nombres de lugares de la República Centroafricana en él. Hice una consulta para la CAR hace unos meses, y lo único que puedo pensar es que configuré accidentalmente algunas opciones globales para hacer referencia a datos de la CAR, pero no recuerdo haber hecho eso. Aquí hay un fragmento de cómo se ve el objeto sf:

ukbasemap$osm_points
Simple feature collection with 2 features and 23 fields
Geometry type: POINT
Dimension:     XY
Bounding box:  xmin: 20.54475 ymin: 5.768001 xmax: 20.67557 ymax: 6.311055
Geodetic CRS:  WGS 84
               osm_id    name   GNS.id alt_name capital created_by  ele ford is_in.continent
2222388003 2222388003   Ouaka     <na>     <na>    <na>       <na> <na> <na>            <na>
4680378478 4680378478 Bambari -1339188     <na>       4       <na> <na> <na>            <na>
           is_in.country name.de name.en   name.ko  name.ru name.sg  name.uk place
2222388003          <na>    <na>    <na>      <na> Центральная  Вака  state
4680378478          <na>    <na>    <na> Оуака”‪     <na>    <na>     <na>  city
           population  ref source state_code wikidata wikipedia                  geometry
2222388003       <na>   UK   <na>         UK  Q848560  fr:Ouaka POINT (20.54475 6.311055)
4680378478      41356 <na>    GNS       <na>  Q805946      <na> POINT (20.67557 5.768001)

“Ouaka” y “Bambari” son nombres de lugares en la República Centroafricana.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que las opciones globales en su entorno R se hayan establecido para hacer referencia a la República Centroafricana debido a una consulta previa. Una forma de probar esta teoría es reiniciar su sesión R e intentar la consulta nuevamente.

    Si el problema persiste, puede intentar establecer explícitamente la fuente de la consulta osmdata agregando el argumento source = "openstreetmap". Esto asegura que la consulta solo esté extrayendo datos de OpenStreetMap y no de otras fuentes. Por ejemplo:

    ukbasemap <- opq(bbox = bb, source = "openstreetmap") %>% # establecer fuente de OpenStreetMap
      add_osm_feature(key = 'admin_level', value = '4') %>%
      osmdata_sf() %>%
      trim_osmdata(bb)
    

    Si esto no funciona, es posible que deba investigar más a fondo la configuración de su entorno R o considerar comunicarse con los mantenedores del paquete osmdata para obtener ayuda.

Comments are closed.