2016-09-07 8 views
0

Я пытаюсь создать список шейп-файлов в среде Geospatial, используя list.vector. Что работает и производит следующий список.Определить список шейп-файлов в той же папке (List.Vector), которая будет использоваться в For Loop - Geospatial Modeling Environment

list.vector(in="D:\Buffers", match="*.shp"); 

D:\Buffers\OBJECTID_1.shp, D:\Buffers\OBJECTID_10.shp, D:\Buffers\OBJECTID_100.shp,
D:\Buffers\OBJECTID_1000.shp, D:\Buffers\OBJECTID_10000.shp......

Я бы тогда как в цикле через различные шейпфайлов используя isectpolypoly функцию. В настоящее время мой код:

list<-list.vector(in="D:\Buffers", match="*.shp"); 

for (i in 1:length(list)) { 

isectpolypoly(in=paste(i), poly="D:\Polygons\agri.shp", field="P_", thematic=TRUE, proportion=TRUE); 

}; 

Я получаю следующее сообщение об ошибке.

Error: The for loop has not been specified correctly. The length function does not appear to refer to a defined vector.

Так появляется, как будто я не определяет «список» правильно, чтобы иметь возможность использовать его в петлю. Я не могу найти четких ответов на вопрос о том, как это сделать.

Может ли кто-нибудь помочь мне изменить свой код, чтобы я мог определить список шейп-файлов, а затем прокрутить шейп-файлы в списке?

ответ

0

В случае, если кто-либо заинтересован, мне удалось решить мою собственную проблему.

Я не смог успешно запомнить список, и поскольку каждый из моих шейп-файлов имел уникальный идентификатор номера, можно было просто прокрутить числа.

wd<-"D:\Buffers\"; 
for (i in 10001:10006); 
{ 
isectpolypoly(in=paste(wd,"OBJECTID_",i,".shp"), 
poly="D:\Polygons\agri.shp", 
field=“CLASS”, 
prefix="P_", 
thematic=TRUE, proportion=TRUE) 
};