Điều này đòi hỏi một kịch bản nhỏ. Để làm cho nó sanh sản nhiều tôi sẽ cố gắng để hoàn thành nó trong R . Cũng có thể với QGis và Sextante bằng cách sử dụng thực thi hàng loạt (nhấp chuột phải vào chức năng) trong mô hình Sextante. Ở đây trước tiên bạn có thể sử dụng công cụ giao nhau vectơ và sau đó một số loại tham gia không gian.
Trong R tôi sẽ thử nó như thế này. Bạn có thể phải sửa đổi mã vì tôi không biết cấu trúc dữ liệu và các biến của bạn.
library(raster);library(rgdal);library(sp) # Load in required packages
vegetation <- readOGR("H:/Examplefolder", # To load a vegetation polygon shape here
"vegi") # called vegi.shp
setwd(harddriveD) # Now, switch to the directory containing your species shapes
# and use the following code
species_files <- grep( ".shp", # to extract all shape names
dir(),
ignore.case=T,
value=T)
# Now read in your speciesfiles in a loop
for(name in species_files){ # and do a vegetation data
# overlay with your basename
spec_name <- strsplit(name,split=".shp")[[1]] # to get only the load in
# your species name shape.
spec_shp <- readOGR(".",spec_name) # I assume that you have point data. Otherwise change the code.
ov <- over(spec_shp,vegetation) # Make a overlay with your vegetation data,
# returns a dataframe of the overlaying vegetation shape attributes,
# which are within your species shape.
# This dataframe has the same number of rows as your input species shape.
cd <- coordinates(spec_shp); # Therefore you could just append the needed information to your species shape.
proj <- proj4string(spec_shp) # save coordinates and proj.
# Append your vegetation data to your species shape
spec_shp$Vegetation <- ov$ShrubSpecies # Or whatever you want to get.
spp <- SpatialPointsDataFrame( # In the end export your shape again.
coords=cd, # I would advise you to use a different folder.
data=as.data.frame(spec_shp), # In case you have polygons instead of Point data
proj4string=CRS(proj) ) # use the SpatialPolygonDataFrame function. -> help ?SpatialPolygonDataFrame
writeOGR(spp, #Should result in a new shape
"foldername", # which has your species name.
spec_name,
driver="ESRI Shapefile")
}
Tôi đã đưa ra nhiều giả định về mục tiêu của bạn và cấu trúc của tập dữ liệu của bạn. Nhiều khả năng bạn phải sửa mã theo nhu cầu của mình trước khi dùng thử.