用于执行生态水文数据准备工作流的库和命令行脚本。

ecohydrolib的Python项目详细描述


EcoHydrolib{index}
==



此软件根据新的BSD许可证免费提供。请参见
以下许可信息:

版权所有(c)2013-2015北卡罗来纳大学教堂山分校
保留所有权利。

允许在源代码和二进制格式中重新分配和使用,无论是否进行
修改,前提是以下条件满足:
-源代码的重新分发必须保留上述版权
注意,此条件列表和以下免责声明。
-二进制形式的重新分发必须复制上述版权
注意,此条件列表和以下免责声明R在随分发文件提供的
文档和/或其他材料中。
-北卡罗莱纳大学教堂山分校的名称或其贡献者的名称均不得用于认可或推广从本软件衍生的产品
特定的事先书面许可。

本软件由版权所有者和贡献者"按原样"提供,并且
不接受任何明示或默示保证,包括但不限于对适销性和特定用途适用性的默示保证。在任何情况下,北卡罗来纳大学教堂山分校均不对任何直接、间接、附带、特殊、惩戒性或后果性损害(包括但不限于采购替代品、货物或服务、使用损失、数据或利润或业务中断)负责。选项)
无论是何种原因引起的,基于任何责任理论,无论是在合同中,严格的
责任,或因使用本软件而产生的侵权行为(包括疏忽或其他),即使被告知此类损害的可能性。



les<;brian_miles@unc.edu>;

lawrence e.band<;lband@email.unc.edu>;


IVE研究:互操作性
评估集成
现有能力的分层体系结构的试验台

-第0940841号奖励-数据网联盟财团。

-第1148090号奖励-协作研究:SI2-SSI:交互式软件
基础设施在
水文科学



工作流子组件通过由ecohydroib.metadata包提供的元数据持久性存储进行编排。这些脚本构建在python包中定义的一系列面向任务的api之上。工作流脚本提供下载和
操作运行生态水文模型所需的地理空间数据,
信息,例如:数字高程模型(DEM)、土壤、土地覆盖,
和植被叶面积索引。这些数据既可以从
国家空间数据基础设施(nlcd,ssurgo)中提取,也可以从定制的
本地数据集中提取。

元数据存储用于编排一系列用于为生态水文模型准备数据的工作流脚本。当前的
实现使用python configparser键值存储
机制将元数据持久化到磁盘,但是可以使用任何
键值存储。元数据包含与研究区域相关的信息(例如边界框、空间参考、DEM
分辨率),以及导入的每个空间数据
层的出处信息,以及记录用于调用每个工作流脚本的参数
的处理历史;证明南斯通知ation表示为dublin core attributes的子集(http://dublincore.org)。当在
独立环境中使用工作流脚本时,元数据存储提供了
了解生态水文学输入数据来自何处以及
对数据进行了哪些转换所必需的信息。当工作流
脚本集成到数据网格或工作流环境
(例如irods)中时,元数据存储可以作为
元数据和出处信息的暂存区域,这些元数据和出处信息将注册到
正式工作流环境中。

任何生态水文学建模工作流程都要定义感兴趣的研究区域(roi)。在EcoHydrolib中,ROI被简单定义为WGS84经纬度坐标的边界框(例如,左上角和右下角的坐标)。对于使用国家水文数据集(NHD)的工作流,
ROI边界框可以使用与特定测量仪上游河段相关联的汇水多边形
导出。
用户首先选择nhd
数据集中列出的流量表。EcoHydrolib可以确定数据的上游河段
,然后选择与每个上游河段
相关联的集水区多边形。从这些多边形中,可以很容易地计算通过流量计排放的
土地区域的边界框。


一旦ROI已知,EcoHydrolib可以提取研究区域特定的数据集(DEM、土壤、
等)。其中一些数据集是从国家空间数据的静态本地副本中提取的(例如NLCD),而另一些数据集是通过Web服务接口从联邦机构数据中心(例如美国农业部的Ssurgo土壤数据)或第三方数据中心(Geobrain的DEM Explorer)检索的。但是,用户也可以为给定的数据类型(例如基于本地激光雷达的DEM)注册自己的自定义数据。[图1生态水文学模型数据准备工作流软件堆栈,描述了生态水文学作为原始数据、派生数据子集和特定生态水文学模型之间的中介的作用](ecohydrolib architecture.png)



s://github.com/selimnairb/ecohydrolib.

kflows)。

以下说明只能由高级用户使用。

使用简易安装:

。这可以通过指定--script dir选项来轻松安装
(请参见上文)来完成。


,我已经从依赖项列表中删除了
pyspacealite。如果需要使用gnchd数据,可以使用以下步骤手动安装pyspatialite(可以在安装ecohydrolib之前或之后进行):
-在此处手动下载pyspatialite:
https://pypi.python.org/pypi/pyspatialite/3.0.1
-对pysp应用以下补丁atialite的设置。py:
https://code.google.com/p/pyspacealite/issues/detail?id=9
-安装pyspacealite
-如上所述安装ecohydrolib





二进制文件:
-gdal/ogr 1.9或更高版本(throught)
-sqlite3(throught)
-seven-zip(如果使用nhdplusv2setup/nhdplusv2setup.py)
-spacealite(如果使用ghcndsetup.py/getghcndailyclimatedata*.py)
-unix find(如果使用nhdplusv2setup/nhdplusv2setup.py)


本地ORD
----
-NLCD 2006光栅(http://www.mrlc.gov/nlcd06廑u data.php)
-hydro1k北美数据集(http://eros.usgs.gov//find廑u data/products廑u and廑u data廑u available/gtopo30/hydro/namerica)
-nhdplus v2数据集(http://www.horizon-systems.com/nhdplus/nhdplusv2廑home.php)



nhdplus v2数据库设置
——
——在EcoHydrolib能够使用nhdplus
数据集提取研究区域的投资回报率之前,必须有nhdplus数据集的本地副本。
由于nhdplus数据集的大小很大,这些数据是
dis作为一系列压缩档案分为几个
地区供美国大陆使用。有两种选择可获得
NHDPlus,其格式可由EcoHydrolib使用(作为几个Sqlite3
数据库)。一个国家级数据集(即覆盖整个
美国大陆)可在这里下载:

http://…


下载后,提取存档并将其位置记录在
EcoHydrolib配置文件中;有关更多信息,请参阅"配置文件"部分
n.

如果您希望构建自己的数据库副本(即对于美国国家的子集
),则
bin/nhdplusv2setup/nhdplusv2setup.py中提供了用于从下载的
nhdplus v2 7z存档构建数据集的脚本。需要以下NHDPlus v2
数据集:

-NHDPlusv21_nationaldata_gageinfo_02.7z
-NHDPlusv21_nationaldata_gageloc_01.7z
-NHDPlusv21_nationaldata_gageloc_01.7z
-NHDPlusv21_21????NHDPlusAttributes??.7z
-nhdplusv21_uu????NHDPlus集水区??.7z
-nhdplusv21_uu????NHDSnapshot??.7z

请注意,NHDPlusAttributes、NHDPlusSuccession和NHDPlusSnapshot
数据是作为区域子集发布的(由于数据的大小和复杂性)。nhdplusv2setup.py可以为任意数量的区域构建其nhdplus
sqlite3数据库;所需
区域数量的所有数据将合并到一个数据库中。


nhdplusv2网站(见上文)存档,并将存档存储在单个
目录中。nhdplusv2setup.py会将这些存档文件解压到指定的输出位置,然后将未存档的文件处理到以下数据库中:-coupside.sqlite(包含选定nhd区域中所有集水区多边形的空间数据集);-
gageloc.sqlite(空间数据集包含国家NHD数据集的流量测量点的数据集;-nhdplusdb.sqlite(包含EcoHydrolib所需的其他NHD数据的表格数据集)。

确保编辑配置文件以包含这些文件的绝对路径(见下文)。

al nhd coverage,coupside.sqlite超过8GB,而
nhdplusdb.sqlite超过2GB,因此您需要一个内核和
文件系统,它具有大型文件支持来构建和使用这些
数据集。此外,创建这些数据集可能需要一个多小时;建议使用8
GB或更大的内存来高效地构建数据集。
但是,数据库设置是一个一次性过程,只要安装了sqlite3
,您就可以使用在其他计算机上的一台计算机上创建的数据库。nhdplusv2setup.py使用EcoHydrolib所需的
索引创建每个数据库,因此查找非常快。



hydro1k北美
---------
若要使用hydro1k盆地形状文件,必须先将
na_bas.e00.gz解压缩到na_bas.e00。然后,必须使用以下命令将e00(arc
交换文件)转换为shapefileg一个工具,如arcgis。



ghcn气候数据
----
要下载ncdc全球历史气候网络(ghcn)数据集
对于每日气候数据,必须首先创建ecohydroib使用
空间que来查找气候站的空间数据库
里斯。此数据库使用
bin/ghcndsetup/ghcndsetup.py创建。脚本的输出将是一个
spacealite数据库。请确保编辑您的配置文件,并将工作站数据库的路径设置为此空间数据库的绝对路径(请参见下文)。





指定ecohydrogy工作流库所需的可执行文件和数据集的位置。配置
文件可以通过环境变量
ecohydrolib_cfg或通过命令行选项指定。下面是一个示例
配置文件:

[gdal/ogr]
ogr2ogr的路径=/library/frameworks/gdal.framework/versions/current/programs/ogr2ogr
gdal光栅化的路径=/library/frameworks/gdal.framework/versions/current/programs/gdal光栅化
gdal扭曲的路径=/library/frameworks/gdal.framework/versions/current/programs/gdalwarp

NHDPlus2圮u集水区的路径=/users/<;username>;/研究/数据/gis/NHDPlusv21/national/集水区.sqlite
NHDPlus2圮u gageloc的路径=/users/<;username>;/研究/数据/gis/NHDPlusv21/national/gageloc.sqlite

[solim]
solim的路径=/users/<;username>;/研究/h/bin/solim/solim/solim.out


[nlcd]
/br/>路径路径是什么?nlcd2006=/users/<;用户名>;研究/数据/gis/gis/nlcd2006/nlcd2006/nlcd2006/nlcd2006/土地覆盖率是什么?4-20-11 U SE5.img

[hydro1k]
[hydro1k/路径路径是什么?hydro1k路径路径是什么?用户/lt;用户名>;研究/数据/gis/hydro1k/na/na/na/na-dem.bil
路径路径是什么。U水力1_bas=/users/<;username>;lt;username>;研究/data/gis/hydro1k/na/na/na/na/u-bas_-bas_-bas_-bas_-bas_-多边形。shp
hydro1k_-bas_-bas_-bas_-bas_-多边形的水上层的名称=na/u-bas_-多边形






[util]
[util]
/br/>br查找
path_of_seven_zip=/opt/local/bin/7z
path_sqlite=/opt/local/bin/sqlite3

iCal工作流:使用大型空间数据基础设施中的数据的工作流将包括按以下顺序运行以下脚本:
1。getnhdstreamflowgageidentifiers和location.py
2。getcatchmentshapefifornhdreamflowgage.py
3.从studyareashapefile.py获取绑定框
4。getusgsdevorboundingbox.py
5。GetNlcdfordemextent.py
6.获取BoundingBox.py的自然值
7。generatesoilpropertyrastersfromssurgo.py或generatesoilpropertyrastersfromsolim.py

前4个步骤必须按此顺序运行,其余工作流
组件可以按任何顺序运行。其他工作流组件,例如注册自定义数据集,也可以替换后4个工作流组件(如上所示)。请参阅每个脚本的
文档以查看调用的详细信息。




收集适用于大型陆面
过程模型的数据的工作流可能包括按以下顺序运行以下脚本:
1。GetCatchmentShapeFileforHydro1Kbasins.py
2.获取集水区形状。从studyareashapefile.py获取绑定框
3。gethydro1kdemforboundingbox.py
6.获取包围盒质心的每日气候数据。py或getghcndailyclimatedataforstationsinboundingbox.py




使用自定义本地数据源的工作流将包括按以下顺序运行
后续脚本:
1。注册表项。py
2。注册.py
3.寄存器寄存器.py
4.getssurgofeaturesforboundingbox.py

使用自定义流式流量计但使用标准空间数据(ned、nlcd、ssurgo)的工作流可以包括按以下顺序运行以下脚本:
1。寄存器studyareashapefile.py
2.从studyareashapefile.py获取绑定框
3。getusgsdevorboundingbox.py
4.getnlcdfordextent.py
5。获取BoundingBox.py的自然值
6。生成SilPropertyRastersFromsSurgo.py

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法将PowerMockito与PowerMockRunnerDelegate设置为SpringJUnit4ClassRunner一起使用   java如何将对象转换为Inputstream   java从Firebase数据库获取用户对象   java从JSON Android获取Int值   arraylist定义Java中用户定义类的二进制搜索   使用Java将参数附加到url   javascript屏蔽ui wicket数据源   Wicket上的java单选按钮在组中不起作用   具有自签名证书的java SSLHandshakeException   如何编写Java程序来打开特定的文件扩展名(.pef)?   Akka 2.3.14和Java 7如何配置TLS   部署servlet时spring“java.lang.IllegalStateException:无ServletContext集”   java如何在eclipse:eclipse之后在maven中执行代码?   第一个位置没有空格的java正则表达式   java在单个节点的Spark中运行计算