alex_bn_lee

导航

【819】emerging hotspot analysis数据集

参考:Emerging Hot Spot Analysis(前半部分是static hotspot analysis)

参考:dplyr 说明文档


运行例子里面的数据集可以,但是自己的数据集死活不行,开始以为是数据的问题,也就是计算中出错,各种修改数据都是无法运行,后面我就想,我制作一个跟例子数据集一模一样的数据集,只有polygons是不同的,但是还是不行,我考虑了投影关系,切换投影还是不行,我考虑polygon大小的问题,把大小调整到例子的大小,还是不行,然后我考虑替换某几个例子的polygon和我的数据集,奇怪的事情发生了,替换少的时候可以运行程序成功,但是替换多的话就不行了,于是我考虑问题可能是我的数据的polygon过于复杂,于是我用simplify的方法把polygon简化,结果的确出现了可以正常运行的数据集,最终问题解决,就是过于复杂的边界导致计算内容过于复杂而无法运行这个方法,所以解决方案就是将图形简化。

df_eu_sim.csv, geo_eu_sim.gpkg: df_geo_eu_sim.zip

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

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

#df <- readr::read_csv("df_official.csv", col_types = "ccidD") 
df <- readr::  read_csv  (  "df_eu_sim.csv" , col_types =   "Ddc" ) 

df$ecometric <-   NULL
df$year <-   NULL

#geo_fp <- system.file("extdata", "bos-ecometric.geojson", package = "sfdep")
#geo <- sf::read_sf(geo_fp)
geo <- sf::  read_sf  (  "geo_eu_sim.gpkg" )



# 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
)

ehsa

说明:

  • df:包含polygon地理数据的ID值、time_period的值,具体的value
  • geo:包含不重复的polygon地理数据的ID值以及对应的polygon的具体经纬度信息

df:

geo:

注意参数 nsim,如果值过小可能就无法分出结果,设置为 199 或者 999 就可以很容易得到丰富的结果!

 

posted on 2023-03-13 15:22  McDelfino  阅读(60)  评论(0)    收藏  举报