Извините, так как я немного новичок в ГИС-функциях в R, поэтому любая помощь и объяснения будут очень полезны!
Я скачал этот файл формы (Simple Feature Polygon) из источника примерно так:
fire <-tempfile()
download.file("http://frap.fire.ca.gov/webdata/data/statewide/fhszs.sn.zip",destfile = fire)
unzip(fire,exdir = ".")
fire_map<-read_shape("fhszs06_3.shp")
Карта имеет небольшие полигоны на основе кода опасности (т.е. 1,2,3)
У меня также есть внутренний фрейм данных, который составляет около 15 переменных с 3584 строками, у меня также есть широта / долгота для всех точек (коммерческая недвижимость в Калифорнии), которые я пытаюсь преобразовать в пространственные точки DF или в простую функцию по порядку. выяснить, какие свойства находятся в коде опасности.
Пример файла свойств:
ln_bal<- c(500000,200000,6000000,12000,130000)
ln_city <-c('Ventura','Torrance','Buena Park','Concord','Lake View Terrace')
lon <- c(-119.213504,-118.311072,-117.985452,-122.057139,-116.893845)
lat <-c(34.278122,33.844817,33.846594,37.979995,32.844287)
cmbs3 <- data.frame(ln_bal,ln_city,lon,lat)
Я думаю, что моя проблема - получить правильный CRS и затем сопоставить его с файлом формы.
Карта CA Fire имеет следующее:
epsg (SRID): NA
proj4string: +proj=aea +lat_1=34 +lat_2=40.5 +lat_0=0 +lon_0=-120 +x_0=0 +y_0=-4000000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs
Я пробовал sf_intersect, создавая точки SF DF:
fire_map <-st_read("fhszs06_3.shp")%>%
st_transform(4326) #need to set CRS the same as your dataframe below
#transforms coordinates to ellips code and creates matching values with fire_map:
proj4string(cmbs3)<-CRS("+proj=longlat +datum=WGS84")
cmbs3 <- spTransform(cmbs3, CRS("+proj=utm +zone=51 ellps=WGS84"))
#fire_map is a simple feature data frame need to convert our data to this, and then match
cmbs3<-st_as_sf(cmbs3,precision=0)
cmbs3<-st_set_crs(cmbs3,4326)
inters <- st_intersection(cmbs3,fire_map)
Ожидаемые (потенциальные) результаты:
ln_bal ln_city lon lat HAZ_CODE HAZ_CLASS
12000 Concord -122.057139 37.97 1 Moderate