首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在目录中搜索shapefile

在目录中搜索shapefile
EN

Stack Overflow用户
提问于 2014-04-14 05:11:30
回答 1查看 621关注 0票数 1

我有一个文件目录,其中有按年份和月份分列的激增数据及其影响的行政单位(例如1977年7月的激增和影响到的社区名单)。我也有一个按月和年分类的降水数据目录。我需要执行一个名为Near的GIS操作,然后对降水数据和浪涌数据进行表格连接,以便使浪涌月/年与精确月份/年相匹配。

通常,我所描述的过程的伪代码如下: for (1977-2006年激增){ if(surge==1977,7月){从NearFID }在文件附近运行的目录中查找1977年7月的降水,该目录由NearFID}将1977年7月的浪涌和7月的精确性连接起来。

如何在python中完成此过程,以及如何在目录中搜索必要的文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-19 15:23:03

给出所提供的信息,我们需要做一些假设:

  1. 所有的精确形状文件都在一个目录中。
  2. 精确文件的文件名中有一些随机元素,因此有必要在文件名内直接搜索形状文件。
  3. 精确文件在文件名中有可识别的月份和年份。

考虑到这些假设,我们可以使用Python的glob模块来查找特定月份和年份的形状文件。

给定目录(/path/to/喘振/)中的浪涌文件:

代码语言:javascript
复制
surge_july_2000.shp, surge_august_2000.shp,etc.

和目录(/path/to/精确p)中的精确文件:

代码语言:javascript
复制
precip_random123_july_2000.shp, precip_random8482_august_2000.shp, etc

我们可以修改您的伪代码,如下所示:

代码语言:javascript
复制
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,其他的都是琐碎的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23052379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档