Codificación de una aplicación Leaflet Shiny para dibujar mapas de calor

En publicaciones anteriores, he demostrado cómo crear mapas de calor en R, usando p. Ej. deckgl, ggmap y folleto.

También he dado una descripción general de varios paquetes aplicables con el propósito de visualizar datos espaciales en R.

Esta publicación proporciona un breve ejemplo de codificación de cómo programar una pequeña aplicación Shiny en R, implementando el paquete Leaflet para visualizar mapas de calor en mosaicos de mapas Leaflet. El código para esto es el siguiente:

# cargando paquetes requeridos
library(shiny)
library(leaflet)
library(leaflet.extras)
library(jsonlite)

# INTERFAZ GRÁFICA DEL USUARIO
ui <- fluidPage(
  titlePanel("This is a simple visualization Shiny-App"),
  p("Please upload your input in a csv file"),
  p("The columns must contain a) longitude, b) latitude, c) observation intensity score or count for each location"),
  fileInput(inputId="input_file",label="Please upload input data",placeholder=""),
  checkboxInput(inputId="input_header",label="Does your .csv-file have headers?",value=TRUE),
  leafletOutput(outputId = "map_result"),
  p(""),
  actionButton(inputId="input_button",label="Visualize")
)

# SERVIDOR
server <- function(input,output){
  output$map_result <- renderLeaflet({
    # botón de llamada a la acción
    input$input_button
    
    # leer y procesar datos de entrada
    isolate({
      data_file <- req(input$input_file)
      if(is.null(data)){
        return(NULL)
      }else{
        data <- read.csv(file=data_file$datapath,header=input$input_header)
      }

      # visualizar datos de salida
      leaflet() %>% 
        addProviderTiles(provider=providers$Hydda) %>%
        setView(lng= mean(data[,1]), lat=mean(data[,2]), zoom=6) %>%
        addHeatmap(lng =data[,1] , lat=data[,2] , intensity=data[,3])
    })
  })
}


# APLICACIÓN
shinyApp(ui=ui,
         server=server)

La aplicación solicita un archivo csv como fuente de datos. Este archivo csv debe contener datos de longitud y latitud en columnas, para cada ubicación que debe ser considerada por el dibujo del mapa de calor. Además, el archivo csv debe contener la observación. A continuación, verá una captura de pantalla ejemplar:

You May Also Like

Leave a Reply

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.