สิ่งนี้เรียกร้องให้สคริปต์เล็กน้อย เพื่อให้สามารถทำซ้ำได้ฉันจะพยายามที่จะประสบความสำเร็จในการวิจัย ควรเป็นไปได้กับ QGis และ Sextante โดยใช้ batch-execution (rightclick on function) ในรูปแบบ Sextante ที่นี่คุณสามารถใช้เครื่องมือตัดเวกเตอร์ก่อนแล้วจึงเข้าร่วมเชิงพื้นที่บางชนิด
ใน R ฉันจะลองแบบนี้ คุณอาจจะต้องแก้ไขโค้ดเพราะฉันไม่รู้โครงสร้างข้อมูลและตัวแปรของคุณ
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")
}
ฉันได้ตั้งสมมติฐานมากมายเกี่ยวกับเป้าหมายและโครงสร้างของชุดข้อมูลของคุณ เป็นไปได้มากว่าคุณจะต้องแก้ไขรหัสตามความต้องการของคุณก่อนลองใช้งาน