用于执行Rhessys数据准备工作流的库和命令行脚本。

rhessysworkflows的Python项目详细描述


**rhessys workflows**{index}

**简介**


rhessysworkflows提供了一系列python工具,用于执行
[rhessys](http://fiesta.bren.ucsb.edu/~rhessys/)数据准备
工作流。这些工具建立在
[ecohydrolib](https://github.com/selimnairb/ecohydrolib)定义的工作流系统上。

在阅读之前,您可能需要查看
[this screencast](http://youtu.be/vbiqssvroiu),它提供了一个
rhessysworkflows的概念概述。

<;!--start doctor generated toc请在此处保留注释以允许自动更新-->;
<;!--不要编辑此部分,而是重新运行doctor以更新-->;
**目录**

-[作者]([作者]
-[资助]([资助]
-[源代码]([源代码]
-[安装说明]([安装说明]
-[使用自制软件在OS X上安装]([安装说明])-[安装grass、qgis和rhessysworkflows的依赖项](安装grass qgis和rhessysworkflows的依赖项)
-[安装rhessysworkflows和python包](安装rhessysworkflows和python包)
-[升级到新版本n个rhessysworkflows](升级到新版本的rhessysworkflows)
-[安装grass和qgis](安装grass和qgis)
-[在ubuntu linux 14.04或15.04上安装](安装ubuntu-linux-1404或-1504)
-[在linux下安装rhessysworkflows和python包](insLinux下的高RhessysWorkflows和Python软件包)
-[升级到RhessysWorkflows的新版本](升级到RhessysWorkflows的新版本-1)
-[有关RhessysWorkflows版本号的说明](有关RhessysWorkflows版本号的说明)
-[安装Grass插件R RhessysWorkflows](为RhessysWorkflows安装Grass加载项)
-[设置EcoHydrolib和RhessysWorkflows配置文件](设置EcoHydrolib和RhessysWorkflows配置文件)
-[使用RhessysWorkflows-简介](使用RhessysWorkflows-简介)
-[使用RhessysW工作流-典型工作流](使用RhessysWorkflows-典型工作流)
-[国家空间数据工作流](国家空间数据工作流)
-[指定要在NHD网络上定位的USGS流流数据](指定-A-USGS-streamflow-data-to-locate-on-the-NHD-network)
-[附加CT NHD集水区通过流量计排水](提取通过流量计排水的NHD集水区)
-[获取研究区域的边界框](获取研究区域的边界框)
-[从美国地质调查局获取地形数据](从美国地质局获取地形数据Al Survey)
-[从本地NLCD 2006或2011数据中提取土地覆盖数据](从本地NLCD 2006或2011数据中提取土地覆盖数据]
-[从SSURGO下载土壤数据](从SSURGO下载土壤数据)
-[注册自定义本地数据:LAI数据](注册自定义本地数据-LAI数据)
-[创建新的草地位置](创建新的草地位置)
-[将Rhessys源代码导入项目](将Rhessys源代码导入项目)
-[导入Rhessys气候数据](导入Rhessys气候数据)
-[创建气候站地图](CREATE气候站图)
-[划定流域并生成衍生数据产品](划定流域并生成衍生数据产品)
-[生成斑块图](生成斑块图)
-[生成土壤纹理图](生成土壤纹理图)
-[导入L人工智能地图到草地](将LAI地图导入草地)
-[在草地中生成土地覆盖图](在草地中生成土地覆盖图)
-[为流域创建世界文件](为流域创建世界文件)
-[创建流量表](创建流量表)
-[初始增加植被碳储量](初始化植被碳储量)
-[运行ing rhessys模型](运行rhessys模型)
-[在美国以外的流域中工作](在美国以外的流域中工作)
-[自定义本地数据工作流](自定义本地数据工作流)
-[将dem导入到项目中](将-a-dem导入到您的项目中)
-[使用DEM,将溪流和雨水渠烧入其中](使用-A-DEM-with-streams-and-storm-drawers-burned-into-it)
-[导入流量表坐标](导入流量表坐标)
-[将数据导入草地以与Rhessys一起使用](导入-data-into-grass-for-use-W使用Rhessys)
-[导入其他光栅层](导入其他光栅层)
-[土地覆盖数据](土地覆盖数据)
-[屋顶连接](屋顶连接)
-[植被LAI](植被LAI)
-[自定义斑块图](自定义斑块图)
-[自定义土壤数据](自定义土壤数据)
-[气候站区域图](气候站区域图)
-[等雨量线图](等雨量线图)
-[为自定义土壤数据生成Rhessys定义](为自定义土壤数据生成Rhessys定义)
-[创建世界文件TE在坡度较低的区域进行mplate](创建-a-world-file-template-in-areas-with-low-slope)
-[使用屋顶连接图创建地面流量表](创建-a-surface-flow-table-use-a-roof-connectivity-map)
-[创建世界文件并初始化植被碳库](创建world文件并初始化植被碳库)
-[运行自定义命令](运行自定义命令)
-[基于子宗创建多个world文件](基于子宗创建多个world文件)
-[附录](附录)
-[可视化rhessys output](可视化rhessys输出)
-[os x](os-x)
-[linux(debian/ubuntu-based systems)](linux debianubuntu-based systems)
-[deprecated installation instructions](deprecated installation instructions)
-[os x 10.7至10.10,使用kyngchaos gis包](os-x)-107-through-1010-using-kyngchaos-gis-packages)
-[安装Xcode(OS X开发工具):](安装-Xcode-OS-X开发工具)
-[安装RhessysWorkflows Python模块(包括EcoHydrolib)](安装RhessysWorkflows Python模块(包括EcoHydrolib)
-[安装RhessysWorkflows的Grass加载项](install-grass-addons-for-RhessysWorkflows-1)
-[设置EcoHydrolib和RhessysWorkflows配置文件](setup-EcoHydrolib-and-RhessysWorkflows-configuration-file-1)
-[OS X 10.6](OS-X-106)
-[从以下位置下载并安装Python 2.7:http://www.python.org/download/](download-and-install-python-27-from-httpwwwpythonorgdownload)
-[下载设置工具:https://pypi.python.org/pypi/setuptools/0.8](download-setuptools-from-httpspypythonorgpypysetuptools08)
-[安装Xcode(OS X开发工具)](install-xcode-os-x-developer-tools)
-[安装pip,安装python模块的工具](安装pip-a-tool-for-installing-python-modules)
-[安装gis工具:grass&qgis](安装gis工具grass-&;-qgis)
-[安装gdal python模块](安装gdal python modules)
-[安装RhessysWorkflows Python模块(包括EcoHydrolib)](install-RhessysWorkflows-python-modules-including-EcoHydrolib-1)
-[为RhessysWorkflows安装Grass加载项](install-Grass-Addons-for-RhessysWorkflows-2)
-[设置EcoHydrolib和RhessWorkf低配置文件](setup-ecohydrolib-and-rhessysworkflows-configuration-file-2)
-[安装本地数据](安装本地数据)
-[安装NLCD2006数据](setup-NLCD2006-data)
-[安装预打包的NHDPlusv2数据](setup-pre-packaged-NHDPlusv2-data)

<;!--结束DOCTOC生成的目录请在此处保留注释以允许自动更新-->;



authors
----
brianmiles-brian_miles@unc.edu

lawrence e.band-lband@email.unc.edu


如有疑问或需要支持,请联系[brian miles](brian_miles@unc.edu)



资助
----
这项工作得到了以下NSF拨款的支持ch:互操作性
评估集成
现有能力的分层体系结构的试验台

-第0940841号奖励-数据网联合会联盟。

-第1148090号奖励-协作研究:SI2-SSI:一个支持水文科学的合作创新




源代码
----
源代码可在以下网址找到:https://github.com/selimnairb/rhessysworkflows


文档可在以下网址找到:http://pythonhosted.org/rhessysworkflows


installation instruc选项
----
这些说明将引导您安装RhessysWorkflows
(和EcoHydrolib)以及Grass 6.4和Qgis开源gis
应用程序;Grass是RhessysWorkflows所必需的,Qgis便于可视化地理信息系统数据采集。red和produced as
您可以制作rhessys模型。


这些说明是为os x和linux用户量身定做的(特别是ubuntu 14.04或15.04;15.10不兼容,因为它与grass 7而不是grass 6.4一起提供),但是在其他linux发行版下安装
可能的。RhessysWorkflows可能在
理论上可以在Windows下工作,但这从未经过测试。鼓励windows用户在虚拟机下运行ubuntu。


rhessysworkflows与os x 10.6至10.11兼容,但官方仅支持10.9至10.11版本。有关OS X 10.6到10.8的安装说明,请参阅本文档结尾处的
[不推荐的安装说明]("不推荐的安装说明")


在屏幕上选择*关于
此Mac*。要了解您的计算机可以
运行的最新版本的OS X,请访问此有用的
[页面](http://www.everymac.com/systems/by-u capability/maximum macos supported.html)。


如果在安装过程中遇到问题,请查看
[安装
注意事项](https://github.com/selimnairb/rhessysworkflows/wiki/installation notes)
联系开发人员寻求支持之前。





[软件包](https://grass.osgeo.org/download/software/mac os x/)。
不幸的是,官方的grass 6.4(以及新的grass 7)与os x中的新安全增强功能不兼容
10.11(el capitan)。我们建议
RhessysWorkflows用户使用一种新的基于[自制](http://brew.sh/)的
安装方法,而不是禁用这个新的安全措施
(称为系统完整性保护),这种方法将安装GRASS,而不需要
操作系统的安全功能。禁用EM。

Homebrew是一个第三方软件包管理系统,它使在OS X下安装开源软件变得容易。每个可以通过Homebrew安装的软件包都称为公式。要搜索可用的软件公式,请访问
[braumeister](http://braumeister.org)。

-按照说明[此处](http://brew.sh)安装自制程序。

>;在安装过程中,可能会提示您安装OS X命令行
>;开发人员工具。选择"安装"。

**如果您已经安装了自制程序,请确保在继续之前执行以下操作:
````
brew update
brew upgrade
````

-next,install按照说明
[此处](https://github.com/osgeo/homebrew-osgeo4mac)使用osgeo4mac tap进行自制。

>;tap允许软件开发人员维护
>;软件公式的集合;osgeo4mac管理与
>;开源gis相关的许多公式。软件。

现在已经安装了自制程序,我们只需要在安装RhessysWorkflows之前安装一些软件依赖项。


来自终端应用程序的命令:

brew安装caskroom/cask/xquartz


下一步,安装python 2.7:


>;注意,这将安装python 2.7的单独副本,因此它不会干扰操作系统附带的python 2副本。x.

/>要升级到新版本的RhessysWorkflows,请在终端中输入以下内容:


pip install RhessysWorkflows--upgrade--强制重新安装

在安装
新版本之前(特别是在Linux下,有些Python包在通过*pip*安装时无法构建):


pip卸载RhessysWorkflows
pip卸载EcoHydrolib

,然后按上述步骤安装:

pip安装RhessysWorkflows

####安装grass和qgis
从终端使用自制程序安装grass和qgis,如下所示:


brew安装grass-64 gdal-20 qgis-214--没有服务器ffmpeg
brew link grass-64--force
brew linkapps qgis-214

很少访问postgis
地理空间数据库;这是qgis所必需的:


g在ubuntu linux 14.04或15.04上使用apt get安装rhessysworkflows/ecohydrolib依赖项:

sudo apt get install build essential git subversion p7zip full\
python python dev python pip python scipy\
libxml2 dev libxslt dev\
gdal gdal bin python gdal\
grass grass dev\
libbsd dev ffmpeg vlc

注意:以上适用于ubuntu 14.04。对于15.04,
gdal的打包已更改,请使用以下命令在
ubuntu 15.04下安装依赖项:

python python dev python pip python scipy\
libxml2 dev libxslt dev\
libgdal devlibgdal doc gdal bin python gdal\
grass grass dev\
libbsd dev ffmpeg vlc

>;ubuntu 15.10不兼容rhessys或rhessysworkflows
>;,因为此版本的ubuntu使用的是grass 7,rhessys或rhessysworkflows尚不支持。如果要使用另一个Linux发行版,请确保它提供上述依赖项的类似版本。


e从您的终端执行以下操作:



-重新安装
如果pip没有安装您期望的版本,则可能需要在安装新版本之前先删除rhessysworkflows和ecohydrolib(特别是在linux下,有些python包在通过*pip*安装时无法构建):


sudo pip uninstallrhessysworkflows
sudo pip卸载ecohydrolib

然后如上所述安装:

sudo pip install rhessysworkflows

这是安装说明中Linux特定部分的总结。

n仅与
RhessysWorkflows/EcoHydrolib的兼容版本一起使用。兼容版本是指
将相同的版本号写入给定
项目的元数据存储的版本。此兼容性检查对于确保
科学再现性和确保您的工作流不会
被不兼容的版本损坏是必需的。我们努力保持RhessysWorkflows/EcoHydrolib版本之间的
兼容性,但有时启用新的工作流场景需要
不兼容的更改。当新版本打破向后兼容性时,每个版本的发行说明都会注明
。好消息是
您可以同时在计算机上安装RhessysWorkflows/EcoHydrolib
的多个副本。为此,您必须执行以下操作:


1。安装[virtualenv](https://pypi.python.org/pypi/virtualenv)

2。为要运行的每个版本的
rhessysworkflows创建一个新的虚拟环境。激活要在

<4中安装特定版本的RhessysWorkflows的虚拟环境。在虚拟环境中安装RhessysWorkflows,例如安装1.0版:


pip install RhessysWorkflows==1.0


不是在虚拟环境中运行时不需要使用"sudo",因为文件安装在用户拥有的目录中帐户。

启动grass:

-os x:在终端中,键入:
```
brew link gettext--force确保grass的g.extension程序可以找到gettext,该gettext用于国际化。
grass64
````

-linux:在命令行中键入:
```
grass64
````

2。创建一个新的位置(在哪里并不重要,我们只使用它来运行g.extension命令来安装扩展)。


3.安装r.soils.texture

g.extension extension=r.soils.texture

>4。安装r.findtheriver

g.extension extension=r.findtheriver

5。退出grass(关闭所有gui窗口,然后在grass
命令行窗口中键入*exit*。

6。仅在OS X上,退出Grass后,请执行以下操作:
``
brew unlink gettext重新隐藏由自制程序安装的gettext版本,该版本可能与OS X的版本冲突。
````


有关这些加载项(r.soils.texture和r.findtheriver)的详细信息,请参阅:
-[r.findtheriver](http://grass wiki.osgeo.org/wiki/addons/grass_6_r.findtheriver)
和r.soils.texture
-[r.soils.texture](http://grasswiki.osgeo.org/wiki/addons/grass_6_r.soils.texture)。

配置文件:

+[os x](https://raw.github.com/selimnairb/rhessysworkflows/master/docs/config/ecohydro osx homebrew.cfg)

+[linux](https://raw.github.com/selimnairb/rhessysworkflows/master/docs/config/ecohydro linux.cfg)

-保存到名为.ecohydro.cfg的文件中'存储在主目录中
,并用用户名
替换所有出现的*<;myusername&;gt;*(要查找您的OS X或Linux用户名,请使用
终端中的*whoami*命令).

-设置ECOHydrolib_cfg环境变量,以便RhessyWorkflows
可以在OS X下从终端找到配置文件

+执行以下操作:


+如果您是runni在Linux上,请执行以下操作:



echo"export ld_library\u path=/usr/lib/grass64/lib:${ld_library\u path}">;~/.profile


+重新加载bash profile(或关闭并打开新的终端窗口):

source~/.bash_配置文件(Linux下的~/.profile)


这包括安装的配置部分和配置说明。




lows工具从
命令行执行。每个工具都将
与单个工作流关联的数据和元数据存储在名为*project directory*
的目录中,元数据存储在名为
*metadata.txt*的项目目录中的文件中。项目
目录中只能有一个metadata.txt,因此每个工作流必须有自己的项目
目录。

e用于执行特定工作流的工具之间的耦合。通过设计,每个工作流工具大致执行一个离散函数。这允许灵活的工作流。每个
工作流工具都将一系列条目写入元数据,以反映该工具所做的工作。大多数工作流工具都要求元数据存储中存在特定的
条目,以便执行
将要执行的工作。例如,在从demoxplorer下载研究的dem数据之前,必须知道研究区域的边界框。查询demoxplorer的工具不需要知道如何生成
边界框,它只关心边界框是否存在于元数据存储中。最后,元数据存储帮助用户编排工作流,要求在每个步骤中只输入运行特定命令所需的新信息
,其他
所需的信息可以从元数据中查询。

自行运行
例如运行:


getnhdstream flowgageidentifiersandlocation.py

将生成:

>用法:getnhdstream flowgageidentifiersandlocation.py[-h][-i configfile]-p
projectdir-g gageid
getnhdstream flowgageidentifiersandlocation.py:err或者:参数-p/--projectdir是必需的

这表示-p(也称为-projectdir)参数是必需的;
也就是说,必须指定与运行该工具的
工作流关联的项目目录。对于许多EcoHydrolib/RhessyWorkflows工具,这是唯一需要的命令行参数。

运行命令时,最好先执行不带命令行参数的命令。这将显示所需的和
可选参数。若要获取给定命令的详细帮助,请运行带有-h(也称为-help)参数的命令,例如:


getnhdstreamflowgageidentifiersanddlocation.py-h


要有描述性,以便
更易于使用。为了避免键入这些长名称,我们鼓励您在终端中使用*tab*completion。要使用
制表符完成,只需键入命令的前几个字符,然后按键盘上的"制表"键即可;整个命令名将在命令行上为您"完成"。如果整个名字不是
"已完成",请再次按Tab键查看与您键入的命令匹配的命令列表。一旦键入足够的字符来唯一标识命令,再次按Tab键将完成命令名。





/EcoHydrolib提供的注册工具。一旦所需的
数据集就位(如DEM、土壤、土地覆盖物等),
RhessysWorkflows工具就可以运行,以创建与Rhessys模型相关的世界文件和流
表。

空间数据基础设施(usgs、nhd、nlcd、
ssurgo、srtm);以及(2)使用自定义本地数据。在这些工作流中执行的
工具的组合代表了许多可能的独特
工作流中的两个。


这将是这个示例工作流的
项目目录。您可以在计算机上任何具有写入权限的位置(例如,在主目录中)创建此
目录。



为建立Rhessys模型。请注意,虽然您可以选择排水大流域的测量仪,但如果您计划使用使用使用RhessysWorkflows工具获取的ssrugo土壤数据,则研究区域必须小于10000平方公里。

流线网络运行
以下工具:

getnhdstream flowgageidentifiersandlocation.py-p standard-g 01589312

这将在项目目录"standard"中名为
metadata.txt的文件中为项目创建元数据存储。元数据存储区
将填充gage id(您在
命令行中指定的站点号),以及与此gage关联的nhd reachcode和reach measure。默认情况下,rhessysworkflows将使用web服务
来执行此查询。(如果您使用的是NHDPlusv2的本地副本
数据,请将*-s local*命令行参数添加到上述命令中;
大多数用户应忽略此问题。)

>;请注意,USGS NWIS仪表标识符可以以"0"开头。指定流量表时,必须输入前导0。


RhessysWorkflows可以使用这些集水区(存储在项目目录中的
shapefile文件中)来确定研究区域的地理
边界框(请参见下文)。此边界框可用于从本地存储的数据集以及通过Web服务接口提供的数据集中提取研究区域的空间数据。


若要提取流经流量表的NHD集水区的形状文件,请运行以下工具:

getcatchmentshapefifornhdreamflowgage.py-p standard

(如果使用的是nhdplusv2数据的本地副本,请将*-s local*
命令行参数添加到上述命令中;大多数用户应忽略此参数。)


目录。
您可以在
qgis中可视化研究区域和流量计。请注意,研究区域形状文件并不代表流域的
描述,而是应该是
流域的超集。我们将使用Grass地理信息系统描绘您的分水岭。




研究区域的框(有时也称为
"最小边界矩形")。通过运行
以下工具来执行此操作:

getboundingboxfromstudyareashapefile.py-p standard

与许多EcoHydrolib/RhessysWorkflows命令一样,您不会看到太多打印到屏幕上的输出;不用担心。命令
正在将未来工作流步骤所需的内容写入与项目目录关联的元数据
存储区。如果打开
元数据存储,即项目
目录*standard*中名为*metadata.txt*的文件,则可以在*study_area*部分中看到存储的边界框坐标
;查找名为
*bbox_wgs84*的属性



美国地质调查局(usgs)开发了一个原型web服务
,用于下载基于国家高程数据集
(ned)的地形数据。现在,我们已经定义了研究区域的边界框,
很容易从该Web服务下载DEM数据,如下所示:

getusgsdemforboundingbox.py-p standard


L高程数据集(NED)30米(1/3
弧秒)美国DEM。DEM将存储在UTM项目(WGS84基准)
中,并为您选择适当的UTM区域。通过指定相应的命令行参数,可以覆盖DEM
覆盖类型和目标空间参考系统;空间参考系统必须由其EPSG代码引用(有关详细信息,请参见http://www.spatial reference.org/ref/epsg/
)。此外,您可以选择将dem重新采样
提取到另一个空间分辨率。要了解如何指定这些
选项,请按如下方式发出帮助命令行参数:


请注意,ecohydrolib/rhessysworkflows使用dem分辨率,
范围和sptial引用导入或由后续工作流工具生成。

最后,您不需要使用USGS Web服务中的DEM。有关详细信息,请参见下面的
*自定义本地数据工作流*示例,以及在美国以外的
流域中工作的*部分。


从[U.S.Geological Survey]提供的Web服务(http://raster.nationalmap.gov/arcgis/rest/services/landcover/usgs-eros-landcover-nlcd/mapserver)进入您的项目的
学习区域。例如,
要获取NLCD 2011数据:

getusgsnlcdfordementextent.py-p standard

(如果希望为nlcd磁贴指定一个特定的名称,请使用
命令行选项*outfile*。要下载NLCD 2006数据,请执行以下操作:


getusgsnlcdfordemextent.py-p standard-t nlcd2006

高分辨率土壤数据查询和下载接口。ssurgo数据是一个复杂的数据库,由空间数据和表格数据组成。有关
此数据库格式和通过
ssrugo数据库公开的土壤调查数据的更多信息,请参见[ssurgo
元数据](http://soildatamart.nrcs.usda.gov/ssurgo metadata.aspx)。


ecohydrolib提供了两种工具,使生成土壤变得容易生态水文学建模通常需要的属性(即
数值属性ksat、孔隙度、砂百分比、粉土百分比和
粘土百分比)。T第一个工具为您的研究区域下载空间地图单元功能以及表格式土壤水力特性数据。
这些空间和表格式数据被合并,并作为esri形状文件写入您的项目目录。有关查询哪些
属性以及如何由代码聚合非空间映射单元组件的详细信息,请参见ecohydroib源代码
[此处](https://github.com/selimnairb/ecohydroib/blob/master/ecohydroib/ssurgo/featurequery.py)

[此处](https://github.com/selimnairb/ecohydrolib/blob/master/ecohydrolib/ssurgo/attributequery.py)。


ndwidth问题,soil
数据集市将srgo空间查询限制在大约小于10000平方公里的区域。出于性能原因,EcoHydrolib(因此
RhessysWorkflows)将ssurgo查询的大小限制为~2500平方公里。
如果您的研究区域大于此值,则必须指示
*getssurgofeaturesforboundingbox*将查询分为多个子查询。使用*--tile*选项启用ssurgo查询平铺:

getssurgofeaturesforboundingbox.py-p myproject_directory--tile


这些
子查询的结果随后由ecohydroib自动组合成单个向量特征
层。为了减少下载时间,默认情况下,平铺查询是并行执行的。并行运行的查询数由计算机支持的同时执行的线程数自动确定(请参见[此处](https://docs.python.org/2/library/multiprocessing.html multiprocessing.cpu count)
)。使用*--nprocesses*选项更改要并行执行的ssurgo查询数。例如,要并行执行16个查询(在8线程的机器上应该没问题):


getssurgofeaturesforboundingbox.py-p myproject_directory--tile--nprocess 16


禁用并行查询:

getssurgofeaturesforboundingbox.py-p myproject_ directory--tile--nprocesses 1

ssurgo shapefile有一个
长的名称,尽管它是描述性的,其中包括研究区域的边界框
坐标。如果不确定要在项目目录中打开的shapefile,元数据存储区的
*manifest*部分的*soil_features*属性将列出文件名。

>;查看元数据存储时,向下滚动到
>;*来源*部分。虽然属性名称有点混乱,
>;您可以看到,对于每个清单条目,ecoHydrolib都记录了详细的出处信息。对于ssurgo soil
>;功能,soil data mart web services url被列为从dem explorer下载的dem数据的
>;数据源,
>;ecohydroib会记录下载dem所用的准确url。
>;最后,如果再向下滚动一点,您会看到元数据存储的
>;*历史*部分记录了在此工作流中运行的每个
>;ecohydrolib/rhessysworkflow命令的顺序,
>;包括所有命令行参数。

ecohydrolib还提供了处理ssurgo soil
数据的第二个工具。此工具允许您使用以下数值土壤特性作为光栅值创建Ssurgo MapUnit
多边形的光栅地图:
ksat、孔隙度、粘土百分比、淤泥百分比和砂百分比。使用
以下命令在项目中生成所有这些光栅
directory:


generatesoilpropertyrastersfromssurgo.py-p standard


在本示例工作流的后面部分,我们将使用百分比沙和
百分比粘土光栅生成美国农业部土壤纹理图,我们将使用该图为研究流域定义Rhessys土壤参数。

####注册自定义本地数据:LAI数据

ecoHydrolib当前无法直接访问来自遥感源的植被叶
面积指数数据。rhessys
需要lai数据来初始化植被碳氮储量。rhessysworkflows
依赖项可以使用用户提供的lai raster向rhessys提供这些初始lai
数据。对于这个示例工作流,您可以下载lai
image
[此处](https://docs.google.com/file/d/0b7ak-9ptsls-eejazxctatekb2s/edit?usp=sharing)。使用以下命令将此用户提供的光栅注册到您的项目:


register raster.py-p standard-t lai-r/path/to/static lai-01589312.tif-b"brian miles<;brian miles@unc.edu>;"

若要使此命令生效,必须更改p传递给*-r*参数的文件
名称的路径,以反映下载示例lai图像的
计算机上的位置。

>;请注意,EcoHydrolib/RhessysWorkflows不适用于名称包含空格的文件或目录。这将在
>;未来版本中解决。

此外,LAI图像的范围与DEM的范围不完全匹配。
默认情况下,RegisterRaster不会导入与DEM范围不匹配的光栅。使用*--force*选项强制registerraster导入光栅:

registerraster.py-p standard-t lai-r/path/to/static-lai-01589312.tif-b"brian miles<;brian miles@unc.edu>;"--强制

检查命令的结果,以确保在
工作流中注册的数据适合您计划执行的建模。继续浏览到项目目录,找到dem和lai光栅,并在qgis中打开它们(您可能需要为每个光栅设置一个颜色映射,否则所有值都将呈现为灰色)。

注意上面
命令的*-b*(a.k.a.--publisher*)参数。指定后,此可选参数将存储在光栅的"来源元数据存储"条目中。


registerraster是一个通用的EcoHydrolib工具,它知道如何将多种类型的光栅导入到您的工作流中;*-t lai*
参数表示我们正在导入n lai raster(有关如何导入其他光栅类型的信息,请参见
*自定义本地数据工作流*)。registerraster将复制导入到
项目目录中的光栅;光栅将重新采样并重新投影到
匹配工作流中已存在的dem的分辨率和空间参考。您可以选择要使用的重采样方法,或关闭重采样,但如果空间
参考系统与DEM不匹配,光栅将被重采样;有关详细信息,请参阅帮助消息


/>(例如geotiff)使用rhessysworkflows构建rhessys特定的数据集。


我们将在RhessysWorkflows中开始构建这些数据,方法是在我们的项目目录中创建一个新的Grass
位置和地图集,并将我们的
DEM导入到这个地图集中:


createGrassLocationFromDEM.py-p standard-d"马里兰州卡通斯维尔附近死胡同5流域的Rhessys模型"

the*-d*(a.k.a.*--description")参数是此草地位置的文本描述;始终用引号将此参数括起来。如果你u
选择,可以指定以下草的自定义名称
参数:

1。dbase,项目目录中存储grass
位置的目录(默认为"grassdata")
2。位置(默认为"默认")
3。映射集(默认为"永久")

>;使用*--overwrite*选项创建GrassLocationFromDem,以覆盖先前调用createGrassLocationFromDem创建的草位置。请注意,大多数rhessysworkflows
>;命令提供相同的选项。覆盖grass
>;数据集的能力适应了生态水文学经常探索的性质
>;数据准备工作流程。当数据将被覆盖时,元数据存储中存储的
>;命令历史记录将保留运行所有工作流步骤的顺序列表。这可以帮助您
>;追溯您为获得当前工作流
>;状态而采取的步骤。


您应该能够将DEM光栅加载到地图视图中。我们将使用grass来可视化
接下来几个工作流步骤的结果,因此请在后台保持grass打开状态。


RhessysWorkflows还使用新的Rhessys
[paramdb](https://github.com/rhessys/paramdb)数据库和Python
库来生成Rhessys需要的植被、土壤、土地利用和其他参数。RhessysWorkflows只与Rhessys 5.16的预发布版本和更高版本的代码兼容。
目前,对于第一次使用Rhessys的用户来说,将
paramdb和Rhessys源代码导入到项目中最可靠的方法是使用impo从Github下载
代码。rtrhessyssource工具。但是,这个
工具还可以导入存储在
计算机上的rhessys源代码。这允许您从以前的rhessysworkflows项目导入代码;paramdb总是从github下载,
即使rhessys源代码是从本地源导入的。

要下载paramdb和rhessys源代码并将它们存储在
项目目录问题以下命令:

importrhesyssource.py-p standard


如果要签出备用分支,请使用*-b*选项
指定要使用的rhesys的git分支(例如"develop")。默认情况下,
importrhesyssource将使用*master*分支,这是与rhessys 5.18一起使用的适当分支。

以及流表,同时编译rhessys
二进制文件。命令完成后,打开
项目目录中的*rhessys*目录。在这里您可以看到熟悉的rhessys
目录结构,用于存储模型参数、模板、
世界文件、流表、时态事件文件和模型输出;importrhesyssource编译的
rhessys工具将被复制到*rhessys*目录的
*bin*目录中。还要注意,rhessys的所有
源代码都存储在*src*目录中。

ssysworkflows使
更容易获取和操作构建rhesys
工作文件和流表所需的地理空间数据。这意味着建模者负责构建构建
rhessys world文件和执行m奥德尔跑了。

rhessysworkflows提供了import climate data工具,可以将rhessys climate数据导入到项目中。要运行此示例工作流,
请下载示例气候数据
[此处](https://docs.google.com/file/d/0b7ak-9ptsls-q1nqbujzvxzkeue/edit?usp=sharing)。
将文件解压缩到计算机上的某个位置(例如,在您的home
目录中),这将在
位置生成一个名为*clim*的目录。发出以下命令导入这些数据:

importclimatedata.py-p standard-s/path/to/clim

必须将*/path/to/clim*替换为从上面下载的zip文件解压缩的clim
文件夹的路径。

要使您自己的气候数据与importclimatedata一起工作,数据必须存储在它们自己的目录中,每个基站都有以*.base*结尾的文件名。有关
的详细信息,请参阅ImportClimatedata帮助。


气候站。RhessysWorkflows
提供了GenerateBaseStationMap工具,可以使用从Climate
站点点派生的Thiessen多边形创建气候站点的光栅地图,这些点必须以Grass
[v.in.acsii]支持的格式在文本文件中指定(http://grass.osgeo)。org/grass64/manuals/v.in.ascii.html)工具。
在本教程中,我们将使用一个虚拟点与上面导入的*bwi*
气候站相关联。您可以下载这一点
[此处](https://docs.google.com/file/d/0b7ak-9ptsls-cmvwdmnxthrc1u/edit?usp=sharing)。
下载后,解压缩文件以显示包含该点的文本文件
,该点应如下:


1 349093.638022 4353009.809951 bwi

在实际情况下,该文件中会有其他行,
每个气候站一行。第一列是基站id
,并且必须与每个气候站关联的${station}.base文件
的基站id字段匹配。

>;在本教程稍后创建世界文件模板时,我们使用的工具generateworldtemplate将确保您的基站地图中的每个唯一光栅值都有一个气候基站文件;世界文件模板w如果不是这样,就不会生成
>;。


第二列和第三列表示我们将用来表示气候站位置
的点特征的x和y坐标(或东距
和北距)。最后一列是气候站的名称
,应该与${station}.base中的${station}匹配(即,如果您的基站
文件名是'bwi.base',最后一个字段应该是'bwi')。

基于点对多边形进行分层,并对多边形进行光栅化:


generatebasstationmap.py-p standard-b/path/to/dummy_stations1.txt

>;使用"草"工具
>;[v.voronoi](http://grass.osgeo.org/grass64/manuals/v.voronoi.html)
>;生成thiessen po莱贡请注意,如果只有两点,则此工具的某些版本可能会失败。希望在2013年晚些时候发布GRASS 6.4.3时,这一问题会得到解决。



r/>工作流程。作为这一过程的一部分,
rhessys所需的许多数据集将从dem中导出。为了描绘分水岭:

decitewatershed.py-p standard-t 500-a 1.5

um
grass命令生成的子流域的大小(以DEM单元格为单位)
[r.watershed](http://grass.osgeo.org/grass64/manuals/r.watershed.html)。


a*(a.k.a.*--areaestimate*)参数允许您提供划定流域的面积(以平方公里为单位)的猜测值。
de线性分水岭将报告该分水岭是否在该区域的20%以内。您可以通过显示名为*basin*的光栅地图来查看草中划定的流域。如果划定的流域的面积或形状与您预期的相差很大,您可能需要改变划定的水如何将您的流量计捕捉到流网络上。这可以通过更改传递给
[r.findtheriver](https://svn.osgeo.org/grass/grass addons/grass6/raster/r.findtheriver/description.html)的*-s*
(a.k.a.*--stream threshold*)或stream threshold参数和/或
*-w*(a.k.a.*--streamwindow*)参数来实现。调试分水岭划分问题,也有助于在上坡累积面积图(uaa)上查看
原始流量表和捕捉的流量表。definitewatershed将为每个streamflow gage坐标创建矢量层
(命名为*gage*和*gage_snapd*)以及uaa光栅图(命名为
*uaa*)。

>;但我们不建议您手动更改存储的元数据。您可以使用grass手动捕捉测量仪位置,并在元数据存储区的*rhessys*部分更新*测量仪东距*和*测量仪北距*属性。然后使用
>;添加*--overwrite*选项重新运行definitewatershed。


有关definitewatershed生成的派生数据集的列表,
使用grass命令*g.list rast*或检查definitewatershed
[源
代码](https://github.com/selimnairb/rhessysworkflows/blob/master/bin/definitewatershed.py)。



网格化的面片地图由与dem具有相同分辨率和广度的规则网格组成;
可以使用高程或地形湿度
索引光栅创建聚集地图。建模人员还可以使用通过EcoHydrolib的RegisterRaster工具注册的自定义补丁地图,并使用ImportRasterMapintoGrass导入到Grass中(有关此
命令的一般说明,请参见下文)。


若要创建网格化补丁地图,请在终端中输入以下内容:

generatePatchMap.py-p standard-t grid


创建高程聚集面片贴图:


generatePatchMap.py-p standard-t clump-c elevation

…地形湿度指数聚集图:



通过调用grass的r.clump命令
并将相应的源光栅作为导入生成聚集的面片图。

>;默认情况下generatepatchmap将设置z其中一个地图是
>;修补程序地图,但前提是自定义区域地图尚未在工作流中注册
>;(例如,通过RegisterRaster和
>;ImportRasterMapintoGrass的组合,请参阅下面的自定义数据教程)。如果您希望用面片地图覆盖自定义区域地图,请使用
>;*--forcezone*选项生成地图。


hed,我们可以使用grass
add-on r.soil s.texture生成usda土壤纹理类,其中
rhessys的paramdb包含参数。也可以使用
自定义土壤图,我们将在下面的"自定义本地数据
工作流*"部分中进行探索。

生成我们的草地土壤纹理图,如除了
相应的Rhessys土壤定义文件外,使用
GenerateSoiltextureMap工具如下:


GenerateSoiltextureMap.py-p standard


ssys soil
这些类映射到的默认id。您可以在草中查看生成的土壤
纹理贴图(命名为*soil_texture*)。土壤定义
文件将存储在项目目录中存储的*rhessys*目录的*defs*目录中。


ss,rhessys将
能够利用它(您也可以从您的土地覆盖
地图中导出lai地图;请参见下文):


importrastermapintograss.py-p standard-t lai-m nearest


the*-m*(a.k.a.--method*)参数指定grass应如何
对正在使用的光栅重新采样。进口。价值重采样方法是由grass的
[r.resamp.interp](http://grass.osgeo.org/grass64/manuals/r.resamp.interp.html)命令和*none*支持的方法,这将导致importrastermapintograss
跳过重采样步骤。

/>
RhessysWorkflows使用单个土地覆盖图生成Rhessys使用的以下地图:

-植被类型(地层)
-土地利用
-道路
-不透水表面
-叶面积指数(LAI;可选)

并使用
importrastermapintograss:


importrastermapintograss.py-p standard-t landcover-m nearest

但是,rhessysworkflows支持使用通过registerraster注册的自定义土地覆盖图。在任何情况下,
我们都需要提供光栅重新分类规则,以便
RhessysWorkflows知道如何从土地覆盖图生成植被、土地利用、
道路、不透水和可选的LAI图。
为此,我们使用registerlandcoverreclassrules工具:

registerlandcoverreclassrules.py-p standard-k

因此我们只需要使用*-k*(a.k.a.--generateknownrules*)
选项。对于定制的土地覆盖图,我们可以使用*-b*
(a.k.a.--buildprototyperules*)选项来生成原型规则
,我们可以根据需要进行编辑。还可以使用*-r*(a.k.a.*--ruledir*)参数指定从计算机上的另一个目录导入
existing reclass rules。要在注册原型或现有规则时包含lai reclass规则,必须使用*-l*(即*--include lai rules*)参数

>;随RhessysWorkflows提供的NLCD2006和NLCD2011的已知规则包括
>;一个lai reclass规则文件,其中包含Grassl的值以及从国际卫星陆地表面气候学项目II(ISLSCP II)中提取的常绿针叶和落叶阔叶林(均为温带)。这些数据可以[在这里]下载(http://daac.ornl.gov/cgi-bin/dsviewer.pl?ds_id=971)。


-不透水。规则
-道路。规则
-lai-recode.rule(如果选择了*--includelairules*选项)

对于这个NLCD2011示例,不需要编辑这些规则,但是您应该花点时间看看这些规则les工作。
rhessysworkflows使用grass的
[r.reclass](http://grass.osgeo.org/grass64/manuals/r.reclass.html)
用于创建lai映射的命令([r.recode](http://grass.osgeo.org/grass64/manuals/r.recode.html)
,因此规则文件遵循此格式。
需要注意的是,用于地层和
土地利用的土地覆盖重新分类规则必须生成栅格地图,其值标签与Rhessys paramdb数据库中存在的类名称相匹配。因此,在编辑图层中表达式的右侧和土地使用重新分类规则时要非常小心。


请注意,要跟踪对项目元数据中项目的重新分类规则所做的编辑,应使用runcmd workflow
命令(请参见n了解如何使用此
工具)。

>;您可以在[此处](http://www.mrlc.gov/nlcd2011.php)找到有关NLCD类的信息

by rhessys;这项
使用以下命令完成:


generatelandcovermaps.py-p standard

>;如果希望生成lai映射,则必须在上述命令行上使用*-l*
>;(a.k.a.*--makelaimap*)参数。只有在使用已知的土地覆被重新分类规则时,或在创建原型规则或使用现有规则时请求registerlandcoverreclassrules包含lai
>;重新分类规则时,此
>;才有效。

与土壤纹理图和定义生成步骤类似,
generatelandcovermaps将提供栅格数据中遇到的植被和土地利用定义类型的描述性输出。


准备为我们的分水岭创建世界文件。
首先,我们必须创建将从中创建世界文件的模板。为此,我们将使用generateworldtemplate工具。
幸运的是,这非常简单,因为元数据存储包含创建模板所需的几乎所有信息。如果您使用多个气候站,因此有一个使用generateBaseStationMap创建的基站地图,那么您所需要做的就是:


generateworldTemplate.py-p standard


r/>站点地图,您必须按如下方式指定气候站:


generateworldtemplate.py-p standard-c bwi

这里我们使用名为*bwi*

rateworldtemplate将退出并返回相应的错误。

>;如果要查看模板文件生成以及其他信息,请使用*-v*(即.*--verbose*)选项


/>createworldfile.py-p standard-v

建议这样做,因为这些
程序可能会以复杂的方式失败,而create worldfile可能无法
进行检测,因此您可能想知道
引擎盖下发生了什么。


当createworldfile完成时,它将在*wor中创建一个名为*worldfile_in it*的初始worldfile
ldfiles*目录在项目目录的*rhessys*
目录中。


创建流径(cf)rhessys
程序。您有两个选择,即cf是否应创建一个包含道路的流量
表和/或包含一个曲面流量表,以便对屋顶的非地形布线进行建模。我们将在
本示例中对道路进行布线,将屋顶留给下面讨论的*自定义本地数据*工作流



您的*rhessys*目录的e*flow*目录。现在我们已经拥有了运行Rhessys模拟所需的几乎所有功能。




>;注意,lai read应仅用于具有静态植被的rhessys模拟(即通过rhessys的*-g*命令行选项启用非动态植被模式)。

要生成重新定义的世界文件,请运行3天的rhessys模拟以合并重新定义的世界文件,并使用初始化的植被碳存储写入新的世界文件。
RhessysWorkflows为您自动执行所有这些过程,它甚至可以根据您的气候数据计算出开始为期3天的Rhessys模拟的日期。

rom点时间序列气候数据。
>;ascii或netcdf网格气候数据的用户必须运行lai read by
>;hand。RhessysWorkflows的下一版本将为runlaired添加对网格化气候数据的支持。


新的基于草的lairead版本是相对较新的,并且没有经过测试,因此我们建议您密切关注它的工作。


lairead依靠异速生长关系来初始化植被的碳储存。这些异速参数尚未添加到
rhessys paramdb。rhessys base
植被类参数的默认版本存储在rhessys paramdb源代码
[存储库](https://github.com/rhessys/paramdb/blob/development/allometry/allometry.txt)中。
rhessysworkflows将此文件以名称*allometry.txt*存储在
metry*文件夹的*paramdb*文件夹的*rhessys/db*文件夹。
在运行runlairead之前,您可以编辑此文件以满足需要。
请参阅
[rhessys wiki](https://github.com/rhessys/rhessys/wiki)
了解lairead使用的异速关系的更多信息。

完成后,将在*rhessys*目录的
*worldfiles*目录中创建名为*world*的最终世界文件。有了这个
world file,您就可以执行后续的模型工作流步骤
,包括:旋转、校准、场景运行和分析以及可视化。

tial数据
基础设施。

我们使用*tec文件*
告诉rhessys在模拟过程中的特定时间执行操作。
例如,重新定义世界文件以模拟木材收获或森林火灾。我们还使用tec文件告诉rhessys应该在什么时候生成
模型输出。要创建一个tec文件,告诉rhessys从2008年10月1日开始打印每日模型输出,请执行以下操作:


有关tec文件格式的详细信息,请参阅[rhessys wiki](https://github.com/rhessys/rhessys/wiki/temporal event control file-(tec file))。

使用rhessysworkflows构建rhessys模型后,可以手动运行模型。但是,这不会捕获项目元数据中有关
模型运行的信息。如果要在项目元数据中记录
运行,请使用run model命令:


runmodel.py-v-p standard-d"test model run"--basin-pre test-s t 2008 1 1 1-ed 2010 10 1-w world-t tec_daily.txt-r world.flow--s 0.07041256017 133.552915269 1.81283058-sv 4.12459677088 78.3440566535-gw 0.00736592779294 0.3403446799457

请注意命令行中的"---"。
'--'之前的所有命令行选项都是runmodel.py所需的选项;其中一些也是常见的
rhessys选项。"--"之后的所有选项都将传递给
rhessys。因为项目元数据知道Rhessys安装在
项目目录中的位置,所以不必指定任何Rhessys输入
文件(例如,世界文件、流表、TEC文件等)的完整路径,只需指定文件名即可。
runmodel将把Rhessys控制台出口回显到e screen(如果上面指定了*-v*或verbose
选项),并且将始终将相同的输出保存到
每个模型运行的输出文件夹中存储的名为"rhessys.out"的文件中。output
文件夹将根据您为'-pre'或output prefix
选项提供的值命名。

但是,仍然可以使用RhessysWorkflows为美国以外的流域开发Rhessys模型。一种选择是使用自定义本地数据,如
[此处]("自定义本地数据工作流")所述。如果您在澳大利亚工作,EcoHydrolib
(并可扩展为RhessysWorkflows)可使用
[澳大利亚地球科学院](http://www.ga.gov.au/data-pubs/web-services/ga-web-se)提供的Web服务接口访问1秒(约30米)分辨率
DEM数据(源自SRTM数据)服务)。
可以使用*getgademforboundingbox*命令访问这些数据。典型的
工作流程如下所示。首先,使用
*registerstudyareashapefile*命令定义您的研究区域:


(用您的EcoHydrolib项目的名称替换project_dir)。

研究区域的坐标:

getboundingboxfromstudyareashapefile.py-p project戡dir

然后,下载澳大利亚地学DEM数据:


getgademforboundingbox.py-p project戡dir

目前,有三种类型的DEM数据可用:
*1秒SRTm澳大利亚数字高程模型/>getgademforboundingbox.py-p project_dir-d dem_1s

a:

getgademforboundingbox.py-p project_dir-d dem_s_1s

有关这些数据集的详细信息,请参阅[澳大利亚地球科学元数据目录](http://www.ga.gov.au/metadata gateway/metadata/record/gcat_72759)


工作流的其余部分将继续导入streamflow gage坐标
以及[此处]描述的后续步骤(im端口流量计坐标)。

除澳大利亚DEM外,EcoHydrolib还提供对CSIRO提供的网格化土壤数据的访问,这些数据可作为
[澳大利亚土壤和景观网格](http://www.clw.csiro.au/aclep/soilandscapegrid/)数据集的一部分使用。要将这些数据下载到您的项目中,请使用
*getsoilgridaustralia*命令:


getsoilgridaustralia.py-p project\u dir

OilGridAustralia*将下载百分比砂、百分比粉土、
和百分比粘土层。下载土壤剖面前1 m的数据,使用这些层生成每个像素的深度加权平均值。下载这些数据后,
您可以使用*generatesoiltexturemap*命令生成Rhessys
美国农业部土壤类别的土壤纹理图和参数:

generatesoiltexturemap.py-p project\u dir

有关详细信息,请参见[上]("生成土壤纹理图"。


与上面的标准空间数据教程不同,我们不会为下面的工作流步骤提供数据。相反,我们将描述如何格式化您的数据以与每个工作流工具一起工作。
为了避免重复,我们只讨论在rhessysworkflows中使用本地数据的概念。我们也鼓励您阅读上述
标准空间数据教程。下面介绍的工作流序列不是唯一涉及本地数据的工作流。
此外,还可以将此示例工作流中的步骤与标准空间数据教程中的步骤结合起来。


在nhd覆盖范围之外的ds(例如在美国以外工作时
),第一个工作流步骤是使用registerdem工具导入
数字高程模型数据。要导入的dem必须采用可由
[gdal]读取的格式(http://www.gdal.org/formats\u list.html)。

按如下方式运行registerdem:

registerdem.py-p project-dir-d/path/to/my/dem.tif-b"city of springfield,custom lidar"

用于存储项目的数据(即项目目录)。
也可以在导入时重新投影或重新采样DEM。有关详细信息,请参见
registerdem的帮助(即使用*-h*
选项运行)。


registerdem将导致dem被复制到项目的
目录中,并且dem范围将用于确定研究区域的边界
框;dem范围的多边形将生成运算
,并保存为项目目录中的形状文件。


rhessysworkflows允许您在同一个工作流中同时使用
"stream burned"和标准"non burned"dem。
燃烧的dem将仅用于需要它的操作(例如
流域划分、流量表创建);标准dem将
用于确定高程、坡度、坡向等。若要使用燃烧的dem,请执行以下操作:

registerraster.py-p project_ dir-t stream_u burned_u dem-r/path/to/my/burneddem.tif-b"斯普林菲尔德市,自定义激光雷达,使用白盒GAT 3.1.2"


使用工作流,
*definitewatershed*和*createflowtable*工具将知道使用此光栅
而不是标准DEM;使用DEM的所有其他工具将继续使用标准DEM。如果要覆盖此行为(例如,要测试已刻录的dem对分水岭描绘的影响),可以将*-ignoreburneddem*选项传递到*definatewatershed*或*createflowtable*,
,这将导致它们改用标准dem。

>;我们推荐优秀的开源[白盒gat](http://ww)w.uoguelph.ca/~hydrogo/whitebox/)
>;用于将流烧录到dem数据集中。



工具以包含一个或多个点的点形状文件作为输入;
将从形状文件中提取所需量规的WGS84纬度坐标。这些坐标将写入元数据
存储中,并且将在项目目录中创建一个新的点形状文件,其中仅包含所选量规的点。


运行registergage的典型方法是:

registergage.py-p project_dir-g/path/to/gage/shapefile.shp-l dataset_name-a gage_id_attribute-d gage_id

若要运行此注释,请如上所述替换*project_dir*,指定要使用的输入
shapefile、shapefile中的数据集名称、数据集中id gage属性的名称以及所需gage的
id。数据集的名称通常与shapefile的文件名(减去.shp)相同。如果您不确定,
可以使用gdal附带的命令行工具
[ogrinfo](http://www.gdal.org/ogrinfo.html)。


e新的草地位置
-将Rhessys源代码导入到项目中
-导入Rhessys气候数据
-划定流域并生成衍生数据产品
-在草地中生成土地覆盖图

有关这些步骤的详细信息,请参见上述标准空间数据教程


s

对于
ecohydrolib支持的所有当前光栅地图类型的列表,请按如下方式运行registerraster工具:

registerraster.py-h


这还将显示所有重采样和其他可用的导入选项


Yes。所有光栅必须以文件格式存储供GDAL读取(见上文)。



registerraster.py-p project-dir-t landcover-r/path/to/my/landcover-map.tif--noresample-b"巴尔的摩生态系统研究过滤器"--force

tem study lter我们要求registerraster不要对光栅重新采样(除非其空间参考系统与dem不同,即光栅单元的分辨率不会改变)。
我们还告诉registerraster忽略这样一个事实,即土地覆盖光栅的范围与de的范围不完全匹配。M/研究区域。导入后,强烈建议您使用QGIS将覆盖在DEM上的土地覆盖图可视化,以确保土地覆盖将覆盖您研究区域的足够部分。

>;对于土地覆盖图,我们建议您不要在使用registerraster注册光栅时重新采样,而应使用grass
>;处理重采样。


若要使项目目录中的土地覆盖图可供
Rhessys使用,必须按如下方式将其导入草地:

importrastermapintograss.py-p project_dir-t landcover-m nearest

这将把土地覆盖光栅导入grass,然后使用最近邻方法对光栅重新采样。对于有效的
重采样方法列表,请使用*-h*选项运行importrastermapintograss;
您还可以指定*none*作为重采样方法,光栅
将不会重采样。


能够
创建地表流量表,该表可以包含从屋顶到附近不透水和透水区域的非地形流量路由。
Rhessys 5.16可以使用单独的地表和地下流量表来模拟这种非地形路由对景观的影响.
您可以在Rhessys中找到有关使用Surface FlowTable Routing的更多信息
[此处](https://github.com/Rhessys/Rhessys/wiki/Surface FlowTable Routing)。


若要导入屋顶连接光栅,请按如下方式使用RegisterRaster:

RegisterRaster.py-p project_dir-t roof廑con连接-r/path/to/my/roof_map.tif--noresample--force

>;与土地覆盖图一样,我们建议不要让registerraster
>;重新对屋顶连接光栅采样,而让grass处理重新采样。registerraster使用gdal对raster重新采样。gdal
>;重采样时忽略空/无数据像素,而grass的
>;r.resamp.interp则不忽略空/无数据像素。因此,当在registerraster中重新采样包含所有非屋顶
>;像素的nodata值的土地覆盖层和屋顶
>;连接光栅时,它们可能会成为
>;错误注册,这将导致无效的曲面布线
>;表。

p连接光栅可用于Rhessys,方法是
将其导入草地:

importrastermapintograss.py-p project_dir-t roof_connectivity-m nearest


res用户提供自己的lai数据,可以使用registerraster导入到项目中:


registerraster.py-p project_dir-t lai-r/path/to/my/lai_map.tif--force

importrastermapintograss.py-p project_dir-t lai-m none



通过将Rhessys导入
grass:



ls_map.tif-b"brian miles<;brian_miles@unc.edu>;,基于实地观察"


然后将土壤光栅导入
草:


importrastermapintograss.py-p project_dir-t soils-m none

e generatePatchMap工具将使用补丁映射作为区域
映射。如果您希望使用另一个地图作为区域地图,请在运行definatewatershed之后执行以下操作:

registerraster.py-p project_dir-t zone-r/path/to/my/zone_map.t if-b"brian miles<;brian miles@unc.edu>;,基于失效率的气候站区域"

通过将一个光栅导入
grass:

importrastermapintograss.py-p project_dir-t zone-m none


如果要使用isohyet映射,请在运行generateworldtemp之前执行以下操作ATE:
registerraster.py-p project_dir-t isohyet-r/path/to/my/isohyet_map.tif-b"brian miles<;brian_miles@unc.edu>;,isohyet map"

-t isohyet-m none--integer

>;请注意,我们告诉importrastermapintograss在导入时将isohyet
>;光栅值转换为整数。这是必要的,因为在当前版本的Rhessys工具Grass2World中存在限制
>;。进行整数转换时,importrastermapintograss会将光栅值乘以1000,得到三个有效数字。若要使用其他值,请指定*--multiplier*选项。


要创建
土壤定义,必须首先创建光栅重分类规则,将
映射到土壤类型和rhessys paramdb已知的土壤类型之间。目前,paramdb包含从
usda土壤结构文献中提取的定义。但是,您可以将自定义土壤参数加载到paramdb的本地副本中。有关详细信息,请参阅paramdb
[自述文件](https://github.com/rhessys/paramdb)。


*)命令行选项。这将导致在项目目录的*rules*目录中创建名为
*soils.rule*的文件。您需要根据需要编辑此文件,以便将自定义土壤类型映射到paramdb土壤类型。

>;确保每个重分类规则右侧的土壤类名与paramdb中的土壤类名相对应

/reclass_rules/

*-r*(a.k.a.*--ruledir*)参数必须指向
包含名为soils.rule文件的目录。这将被复制到项目目录的
*rules*目录中。

.py-p project_dir


此工具将向屏幕打印有关遇到的每个土壤类型
以及它们映射到的Rhessys paramdb土壤参数类的信息。如果您没有看到这样的打印输出,请检查您的土壤重新分类规则文件
,以确保它是正确的。生成的土壤定义文件将
写入
项目目录的*rhessys*目录中的*defs*目录。

>;记住大多数rhessysworkflows命令支持*--overwrite*
>;命令行选项,用于覆盖存储在
>中的现有数据;项目目录或在草地中。

这将导致方向计算的球形平均值
产生nan的值(即不是数字)。要解决此问题,可以使用
*--aspectminslopeone*命令行选项来指示
*generateworldtemplate*在计算方面的球形平均值时使用最小值为1.0的坡度贴图:


generateworldtemplate.py-p project\u dir--aspectminslopeone-c我的气候站1

kflow,您需要显式地告诉createflowtable使用roof connectivity map来生成一个surface flow table。执行以下操作:

createflowtable.py-p project\u dir--routeroofs--routeroads

这里我们同时使用了*--routeroofs*和*--routeroads*选项。
您不需要同时使用这两个选项,但通常在建模时,您将在水边工作ED也有
道路,其对路由的影响也将需要考虑。
BR/>α>创建Word文件和初始化植被碳库< BR/>< BR> >以下的工作流步骤是否使用标准的BR/>空间数据或自定义本地数据是相同的,并且将不被覆盖。这里:

-为流域创建世界文件
-初始化植被碳存储


有关这些步骤的详细信息,请参见上述标准空间数据教程



hessys模型,
但是还有许多其他工具和工作流步骤可以用来构建模型。为了允许对存储在项目目录中的数据执行任意命令
,rhessysworkflows提供runcmd命令,例如,可以编辑WorldFile模板,然后手动重新运行*grass2world*

runcmd.py-p project\u dir cp project\u dir/rhessys/templates/template project_dir/rhessys/templates/template.orig
runcmd.py-p project_dir emacs project_dir/rhessys/template
export path=project_dir/rhessys/bin:${path}
runcmd.py-p project_dir project_dir/rhessys/bin/g2w…

(有必要手动将项目目录的
rhessys二进制文件的副本添加到路径中,因为grass2world运行一个名为*rat*的助手程序,该程序必须在您的路径中)

根据run
到runcmd的命令,它将向项目元数据的处理历史
写入一个条目。这样,您至少有一个应用于项目目录中的数据的
自定义工作流步骤的记录。


rhessysworkflows允许您使用
create worldfile multiple*命令来执行此操作:


createworldfilemultiple.py-p project_dir


这将为为为您的
流域划定的每个子流域创建一个世界文件。

e使用*createflowtablemultiple*命令对应的


createflowtablemultiple.py-p project_dir

*createflowtablemultiple*支持与对应的*createflowtable*

碳和氮存储
对于使用*runlaireduplier*:

runlaireduplier.py-p项目目录



附录
——


请注意,这些工具仍在开发中,但beta版
>;是为了您的方便而提供的;功能和选项可能会在不通知的情况下更改。

该工具非常灵活,包括绘制观测数据和建模数据的能力,以及绘制多个模拟的数据的能力。在第二个y轴上绘制降雨的观测和模拟过程线的典型用法如下:



>;到[这里](HTTPS://drive.google.com/file/d/0b7ak-9ptsls-q0jdee4wqmn2vu/edit?usp=sharing)
>;下载本教程第一部分中使用的DR5研究集水区观测到的流量示例

rhessysplot还允许您制作标准时间序列、半对数时间序列和累积分布函数图。有关选项的完整说明,请使用*--help*选项:


除了制作流域比例尺输出变量的静态图之外,
rhessysworkflows还提供了一个工具*patchtomovie*,用于制作面片比例尺输出变量的动画。要使用此工具,首先需要
进行Rhessys模拟,为其创建面片缩放输出
(例如,使用*-p*输出选项)。下面的示例将创建每秒30帧的渗透动画:


patchtomovie.py-p project_dir-d path_to_simulation_with_patch_output/rhessys_patch.daily-o output_directory-f output_filename-v"recharge*1000.0"--mask grass_raster_layer--overlay grass_raster_layer_1[grass_raster_layer_n]--fps 30-t"渗透"


请注意,该变量可以是一个非常少见的数学表达式
(使用"+"、"-"、"*"和"/")组合了补丁级rhessys变量
名称和数字常量(如示例中所示)。当使用
这样的表达式时,您需要使用*-t*(也称为*--mapTitle*)选项为
动画中的每个帧指定一个标题(否则表达式
将用作标题,这可能不适合该帧)。

在指定模拟输出(例如*-r*)和草地映射集(例如*-g*)时,
使用用于创建用于运行模拟的
world文件的同一草地映射集非常重要。

py--help

*patchtomovie*使用名为*ffmpeg*的命令行程序将
单个地图编码到电影文件中。要安装*ffmpeg*ffmpeg*ffmpeg*请执行以下操作:


35 35 35 35 35 35 35 35 35 35 35 \35 \ \35 \35 35 \35 \\\35 \\\\\是的fmpeg vlc

最后,您必须在EcoHydrolib配置文件中添加一个条目。对于
os x:

[rhessys]
path_of_ffmpeg=/usr/local/bin/ffmpeg

对于linux:

[rhessys]
path_of_ffmpeg=/usr/bin/ffmpeg

-有关设置配置文件的详细信息,请






<




-通过应用商店安装xcode

>

>
-启动xcode(os x操作系统x开发工具)安装xcode(os x x操作系统x开发工具):

-通过应用商店安装xcode安装xcode




>

-通过从命令行(例如,使用终端应用程序)运行下面的
来确保安装了xcode命令行工具:

````
xcode select--install
````

-通过运行以下命令同意xcode许可证(我们只运行此命令d强制xcode向我们显示许可证):sudo cc


GRASS在内部用于执行工作流程
步骤(leadi创建Rhessys世界文件和流表)。
在安装Grass之前,您还可以使用Grass来可视化某些工作流步骤的结果。

>;在OS X 10.8、10.9或10.10下,您需要启用来自任何要安装的源的应用程序。
>;若要这样做,请打开系统首选项s>;安全和隐私>;常规*
>;并选择"允许应用程序从任意位置下载"。这样做会使您的计算机从下载的软件中暴露出更多的安全风险。我们建议您在完成
>;安装后恢复此设置。


要在OS X上安装Grass,请访问http://www.kyngchaos.com/software/grass

gdal完整框架
2。自由类型框架
3。开罗框架
4.pil(python图像库)
5.grass.app

当您在那里时,我们建议您也安装qgis(quantum gis)


除了上面安装的grass和组件外,还安装:

1。Numpy来自http://www.kyngchaos.com/software/python
2。scipy来自http://www.kyngchaos.com/software/python
2。matplotlib python模块,来自http://www.kyngchaos.com/software/python
3。qgis来自http://www.kyngchaos.com/software/qgis


dency(statsmodels)要求我们首先安装它的依赖项。如果运行Xcode 5.1或更高版本,
可能会遇到以下错误:

clang:警告:未知参数:'-mno fused madd'[-wunused command line argument hard error in future]
clang:注意:这将是将来的硬错误(不能降级为警告)
clang:警告:编译期间未使用的参数:'-mno fused madd'

如果没有看到上述错误,请跳过下一步。要解决
错误,请以这种方式安装statsmodels的依赖项(您可能需要复制并粘贴此项而不是键入它):

sudo archflags=-wno error=unused command line argument hard error in future pip install pandas patsy

这也很烦人,但是暂时不可用。

r稍后),我们需要设置archflags变量如下:


模块的RAL依赖于必须编译的非python代码。

>;为什么不将gdal python库作为rhessysworkflows的依赖项包括在内?这是为了让OS X 10.7
>;和10.8的用户生活更轻松。对于这些os,grass附带的gdal complete安装程序将在os附带的python 2.7的副本中安装gdal python模块,并且gdal python模块不会在os x下自行成功构建,这将使rhessysworkflow安装失败。Linux用户必须确保除了gdal本身之外,还安装了gdal python模块(例如,通过一个配套的包,或者通过"sudo pip install gdal")。


安装RhessysWorkflows所需的Grass插件:

1。首先启动grass
-双击应用程序文件夹中的*grass-6.4*图标

2。创建一个新的位置(在哪里并不重要,我们只使用它来运行
g.extension命令来安装扩展)
3。安装r.soils.texture

g.extension extension=r.soils.texture

>4。安装r.findtheriver

g.extension extension=r.findtheriver

5。退出Grass

有关这些加载项(r.soils.texture和r.findtheriver)的详细信息,请参见:
-[r.findtheriver](http://grass wiki.osgeo.org/wiki/addons/grass趵6趵r.findtheriver)
和r.soils.texture
-[r.soils.texture](http://grasswiki.osgeo.org/wiki/addons/grass趵6趵r.soils.texture)。

用您的用户名替换*<;myusername>;*(要查找您的OS X用户名,请在
终端中使用*whoami*命令)。

-设置ecohydrolib_cfg环境变量,以便rhessysworkflows
可以从term中找到您的配置文件最后,请执行以下操作:

echo"export ecohydrolib_cfg=${home}/.ecohydro.cfg">;~/.bash_profile

+重新加载bash profile(或关闭并打开新的终端窗口):

x
10.7到10.10,使用kyngchaos gis软件包。


如果您仍在运行OS X 10.6,您可能希望
探索[升级
选项](http://arstechnica.com/apple/2014/03/snow-leopard-updates-are-may-done-here-are-your-os-x-upgrade-options/)
,因为许多较旧的Mac可以运行更新的操作系统,包括最新版本。如果您的Mac电脑仍有一定的生命力,那么从OSX10.6升级是很重要的,这个版本不再从Apple接收安全更新,因为新版本在设计上有更多的安全功能。

r/>下面的说明(尽管我们不再有OS X 10.6机器进行
测试,因此如果您遇到问题,我们将无法提供帮助)。


由于其使用年限较长,在
OS X 10.6下还需要一些安装步骤。此外,一旦苹果停止支持这个版本的操作系统,对OSX10.6的支持也将从随后的RhessySWorkflows版本中删除。如果您考虑出于其他原因从OS X 10.6升级到
10.9,这可能会增加另一个原因。

>;您需要使用*sudo*命令行工具安装EcoHydrolib/RhessysWorkflows所需的许多组件。sudo
>;命令允许您作为超级用户运行其他命令。在os
>;x下,默认情况下,只有"admins"用户才有权运行sudo。检查您的用户帐户是否是管理员,或使您的用户成为管理员打开*系统首选项>用户>组*。请注意,要使用sudo,您的帐户还必须有一个非空密码。请参阅此Apple支持
>;[文章](http://support.apple.com/kb/ht4103?viewLocale=en_us&;locale=en_us)
>;有关详细信息。



python

这将加载python解释器。第一行输出将
显示pyth版本号。键入*exit()*退出
解释器。

在finder
2中双击存档文件,将其解压缩。从终端:

cd setup tools-0.8
sudo python ez嫒u setup.py


下载并安装Xcode 3.2.6和iOS SDK4.3 for Snow Leopard
[此处](https://developer.apple.com/downloads/index.action)(此
要求您注册一个免费的开发人员帐户)


2。从http://git scm.com/download/mac下载并安装git



安装简单)。例如,pip允许您轻松卸载
模块。若要安装PIP,请在终端窗口中输入以下内容:



grass在内部用于执行工作流
步骤(导致创建rhessys world文件和流表)。
您还将发现使用grass来可视化来自一些工作流步骤的结果是很有用的。


要在OS X上安装grass,请访问http://www.kyngchaos.com/software/grass


gdal完整框架
2。自由类型框架
3。开罗框架
4.pil(python图像库)
5.grass.app

当您在那里时,我们建议您也安装qgis(quantum gis)


除了上面安装的grass和组件外,还安装:

1。Numpy来自http://www.kyngchaos.com/software/python
2。scipy来自http://www.kyngchaos.com/software/python
2。matplotlib python模块,来自http://www.kyngchaos.com/software/python
3。qgis来自http://www.kyngchaos.com/software/qgis


RKflows与不兼容。这些
安装步骤有点难看,但请耐心等待(或从OS X 10.6升级
)。在终端窗口中键入以下内容:

export path=${path}:/library/frameworks/gdal.framework/unix/bin
sudo pip install--no install gdal
cd/tmp/pip build root/gdal
sudo python setup.py build-ext--include dirs=/library/frameworks/gdal.framework/headers--librry dirs=/library/frameworks/gdal.framework/versions/current/unix/lib
sudo pip install——不下载gdal


ying,但不可避免):

sudo pip install pandas patsy

这是必要的,因为另一个depdency(statsmodels)要求我们首先安装其依赖项。

要安装RhessysWorkflows及其依赖项(包括EcoHydrolib),
如果您运行的是Xcode 5.0或更早版本,请从终端输入以下内容:


sudo pip install RhessysWorkflows

安装RhessysWorkflows所需的Grass插件:

1。首先启动grass
-双击应用程序文件夹中的*grass-6.4*图标

2。创建一个新的位置(无论在哪里,w我们只使用它来运行g.extension命令来安装扩展)


3。安装r.soils.texture

g.extension extension=r.soils.texture

>4。安装r.findtheriver

g.extension extension=r.findtheriver

5。退出Grass

有关这些加载项(r.soils.texture和r.findtheriver)的详细信息,请参见:
-[r.findtheriver](http://grass wiki.osgeo.org/wiki/addons/grass趵6趵r.findtheriver)
和r.soils.texture
-[r.soils.texture](http://grasswiki.osgeo.org/wiki/addons/grass趵6趵r.soils.texture)。

用您的用户名替换所有出现的*<;myusername>;*(要查找您的OS X用户名,请在终端中使用*whoami*命令)。

-设置ecohydrolib_cfg环境变量,以便RhessysWorkflows可以从termi中找到您的配置文件nal,执行以下操作:

echo"export ecohydrolib_cfg=${home}/.ecohydro.cfg">;~/.bash_profile

+重新加载bash profile(或关闭并打开一个新的终端窗口):

source~/.bash撸profile

os x 1的安装和配置说明到此结束0.6.

如果您将在美国各地构建
许多模型,或者正在
服务器环境中运行rhessysworkflows,并且希望最小化对外部web
服务的调用,那么您可能希望在本地安装这些数据集以提高
性能。*这完全是可选的。大多数用户可以忽略这一点,因为查询这些数据的web服务比下载和安装这些相对较大的数据集更可取。*


\PS://docs.google.com/file/d/0b7ak-9ptsls-mhrrtvvrv9zdvk/edit?usp=sharing)

策略。

-将NLCD2006存档复制到要存储它的父文件夹中例如,在OS X下,在主目录中创建名为"data"的文件夹x 10.6:从命令行:

tar xvjf nlcd2006_landcover_4-20-11_se5.tar.bz2

+os x 10.7/10.8:双击finder中的存档文件

通过下载NHDPlusv2数据的全部或一个子集,并按照[EcoHydrolib
文档(https://github.com/selimnairb/EcoHydrolib)中的描述构建数据库,可以下载RhessysWorkflows所需的NHDPlusv2
数据库的预构建副本。
[此处](https://docs.google.com/file/d/0b7ak-9ptsls-dgvzwgrcd1nwnzq/edit?usp=sharing)。
要下载和解压缩预构建的数据,请执行以下操作:

-下载预打包的nhdplusv2数据库[此处](https://docs.google.com/file/d/0b7ak-9ptsls-dgvzwgrcd1nwnzq/edit?usp=sharing)

注意,压缩数据接近7gb,接近11gb
未压缩,下载可能需要一段时间

-复制预打包的nhdplusv2数据库arc将配置单元保存到父文件夹
命令行:

tar xvjf nhdplusv2.tar.bz2

+os x 10.7/10.8:双击finder中的存档文件

\r/>
+[操作系统X 10.6](https://raw.github.com/selimnairb/rhessysworkflows/master/docs/config/ecohydro-os x U 10.6-local.cfg)

+[操作系统X 10.7/10.8](https://raw.github.com/selimnairb/rhessysworkflows/master/docs/config/ecohydro-osx local.cfg)

+[Linux](https://raw.github.co)m/selimnairb/rhessysworkflows/master/docs/config/ecohydro linux local.cfg)

-保存到存储在主目录中的名为".ecohydro.cfg"的文件中
将"<;myusername>;"的所有错误替换为您的用户名(若要查找您的OS X或Linux用户名,请使用*whoami*comm修改示例配置以指向nhdplusv2和nlcd2006本地数据[如果使用这些数据]:


make就是用用户名替换"<;myusername>;"。

如果选择将本地nlcd或nhdplusv2存储在其他地方,只需使用每个文件的绝对路径。

-设置ecohydrolib_cfg环境变量,以便rhessysworkflows
可以找到配置文件

例如,在os x下,从终端执行以下操作:

+在编辑器中打开bash配置文件:


+添加以下内容文件末尾的ing:

export ecohydrolib_cfg=${home}/.ecohydro.cfg

+保存文件

+重新加载bash配置文件(或关闭并打开新的终端窗口):

source~/.bash配置文件

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

推荐PyPI第三方库


热门话题
java如何从Android本地存储获取媒体文件(图像、视频、音频)?   toarray Java对象数组项到字符串数组   java读取逗号分隔的配置文件的最佳方式是什么?   多线程当需要多次设置和取消时,如何在Java中使用计时器?   java Tomcat:启动。蝙蝠不见了   java通过将子路径映射到不同的控制器来拆分Spring控制器   java如何使用加密算法创建自己的安全提供者?   java如何在给定执行时间的情况下,在每个固定的时间段调用该方法   java使用Tomcat运行Servlet   java Apache poi项目符号和编号   java如何在没有毫秒的情况下打印DateTime   java在springdatajpa中按一个字段过滤而不键入query时,如何为另一个字段编写两个条件?   java为什么@Transactional在另一个提交失败时不回滚一个提交?   java为什么浏览器会将大写字母转换为小写字母?   Ajax请求的javascript问题(Liferay)   java如何在选择其他jList时更新jList   JavaSpring,XMLCOnfiguration:不在xml文件中指明注释是如何工作的?   java,包括web中的文件。xml