Я загрузил шейп-файл, но слияние с внутренним набором данных на основе геометрии не удается - PullRequest
0 голосов
/ 01 апреля 2019

Извините, так как я немного новичок в ГИС-функциях в 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
...