我有一个文件目录,按年份和月份以及他们受影响的行政单位(例如1977年7月的激增以及它影响的公社名单)都有激增数据。我还有月份和年份的降水数据目录。我需要执行一个名为Near的GIS操作,然后制作降水数据和浪涌数据的表格连接,以便激增月/年与沉淀月/年相匹配。
通常,我所描述的流程的伪代码如下: for(从1977年到2006年激增){ if(surge == 1977年7月){ 从目录中找到1977年7月的降水 在找到的文件上运行Near 1977年7月和1977年7月由NearFID制作表格 } }
如何在python中执行此过程以及如何在目录中搜索必要的文件?
答案 0 :(得分:1)
提供所提供的信息,我们需要做出一些假设:
鉴于这些假设,我们可以使用Python的glob模块来查找特定月份和年份的形状文件。
在目录中给出喘振文件(/ path / to / surge /):
surge_july_2000.shp, surge_august_2000.shp,etc.
和目录中的沉淀文件(/ path / to / precip):
precip_random123_july_2000.shp, precip_random8482_august_2000.shp, etc
我们可以修改你的伪代码看起来像这样:
import glob
for curSurge in glob.glob("/path/to/surges/*.shp"):
blah, month, year = curSurge.split('.')[0].split('_')
matches = glob.glob('/path/to/precip/*_%s_%s.shp'%(month, year))
if len(matches) != 1:
raise Exception, "Oh No!, We found %d matches instead of 1!"%(len(matches))
run_near_and_make_tabular_join(curSurge, matches[0])
很难绕过假设#3,但其他假设是微不足道的。