【发布时间】:2020-06-14 21:33:25
【问题描述】:
我有一个包含 lat、long、物种名称、iucn_status、类的数据框,如下所示...
`1 -0.25 -80.75 Axoclinus cocoensis VU Actinopterygii
2 -0.75 -80.75 Axoclinus cocoensis VU Actinopterygii
3 -8.75 -172.25 Axoclinus cocoensis VU Actinopterygii
4 -9.25 -171.25 Axoclinus cocoensis VU Actinopterygii
5 -9.25 -171.75 Axoclinus cocoensis VU Actinopterygii
6 -13.75 -171.25 Axoclinus cocoensis VU Actinopterygii` #3,500,000 rows total
我想做的是为每个包含其分布的物种创建一个栅格(上面的 d.f 包含 516 个物种),然后将每个栅格转换/导出为 ASCII (.asc) 文件。我有一些代码,但似乎无法正确地将它们组合在一起......
`ids=unique(aqua_trim$Species) #I want to name each raster the species name
all_rasters <- list()
all_dfs <- list()
for (i in ids){
loopraster <- tempraster #tempraster is the empty raster of desired extent and resolution
tablepoints<-table(cellFromXY(tempraster, subset(aqua_trim, id==i)))
dfpoints<-as.data.frame(tablepoints)
dfpoints$Freq<-dfpoints$Freq/sum(dfpoints$Freq)
loopraster[as.numeric(names(tablepoints))]<-tablepoints
all_rasters[[i]] <- loopraster
all_dfs[[i]] <- dfpoints
print(i)
}`
上面创建了一个栅格列表,但是它们都是空的,编辑它后,它现在给出一个错误,Error in id == i :
comparison (1) is possible only for atomic and list types
我正在尝试调整的以前的问题和代码:
Writing a loop to create multiple dataframes and rasters from a SpatialPointsDataFrame
How to make raster from unique values?
我不会把我所做的所有尝试或错误都放在这里,但我们将不胜感激。
【问题讨论】:
标签: r dataframe ascii geospatial raster