alex_bn_lee

导航

【814】Static hotspot analysis and emerging hotspot analysis based on the R library of sfdep

Ref: Emerging Hot Spot Analysis

Ref:

Ref:


Static hotspot analysis

library (tidyverse)
library (sf)
library (openxlsx)
library (ggplot2)
library (tmap)
tmap_mode ( "view" )
library (sfhotspot)

# Set default work directory
setwd ( "/Users/libingnan/Documents/09-Samsung/12-Polygon-based emerging hotspot analysis" )

hist <-  read.xlsx ( "epiwatch_monkeypox.xlsx" ) %>%
  mutate (PubDate   =  as.Date (`insert-timestamp`, origin =  "1899-12-30" )) %>%
  # filter(PubDate >= as.Date("2020-01-01")) %>%
  mutate (Longitude =  as.numeric (long),
         Latitude  =  as.numeric (lat)) %>%
  drop_na (Longitude, Latitude) %>%
  # filter(diseases == "covid19") %>%
  # line below removes diseases with less than 5 occurrences
  # group_by(diseases) %>% filter(n() >=5) %>% ungroup() %>%
  #drop_na(diseases) %>%
  st_as_sf (coords =  c ( "Longitude" ,  "Latitude" ), crs = 4326) %>%
  st_transform (3857)

results <-  hotspot_classify (data = hist,
                            time = PubDate,
                            period =  "1 week" ,
                            cell_size = 500000,  # 500 km
                            #cell_size = 200000, # 200 km
                            quiet = F,
                            params =  hotspot_classify_params (
                              nb_dist = 0.1)  # default is to use points outside of cell.
                            # changed to minimum distance to reduce confusion
)


#autoplot(results)

tm_shape (results, name =  "Hotspot Detection" ) +
  tm_polygons ( "hotspot_category" , title =  "Hotspot Category" ,
              palette =  c ( "persistent hotspot" =  "red" ,
                          "emerging hotspot" =  "orange" ,
                          "intermittent hotspot" =  "yellow" ,
                          "former hotspot" =  "darkgreen" ,
                          "no pattern" =  NA ),
              alpha = 0.7, lwd = 0.8) +
 
  tm_shape (hist, name =  "Reports" ) +
  tm_dots (jitter=0.1)

结果显示:

Emerging hotspot analysis

library (tidyverse)
library (sf)
library (openxlsx)
library (ggplot2)
library (tmap)
tmap_mode ( "view" )
library (sfhotspot)
library (sfdep)
library (dplyr)

# get directories of files
df_fp <-  system.file ( "extdata" ,  "bos-ecometric.csv" , package =  "sfdep" )
geo_fp <-  system.file ( "extdata" ,  "bos-ecometric.geojson" , package =  "sfdep" )

# read in data
df <- readr:: read_csv (df_fp, col_types =  "ccidD" )

geo <- sf:: read_sf (geo_fp)

# Create spacetime object called `bos`
bos <-  spacetime (df, geo,
                 .loc_col =  ".region_id" ,
                 .time_col =  "time_period" )

# conduct EHSA
ehsa <-  emerging_hotspot_analysis (
  x = bos,
  .var =  "value" ,
  k = 1,
  nsim = 9
)

# should put geo in the first place, otherwise it will triger the projection error
geo_ehsa <-  merge (geo, ehsa, by.x= ".region_id" , by.y= "location" )

# tm_shape: Specify the shape object
# tm_polygons: Draw polygons
# "clssification" is a column of hotspot_results

tm_shape (geo_ehsa, name =  "Hotspot Detection" ) +
  tm_polygons ( "classification" , title =  "Hotspot Category" ,
              palette =  c ( "no pattern detected" =  "#4576b5" ),
              alpha = 0.7, lwd = 0.8)

结果显示: 

 

posted on 2023-03-10 13:29  McDelfino  阅读(50)  评论(0)    收藏  举报