Category Archives: work

swat 2005 源代码的编译

swat 2005源代码是可以从官方网站上下载到的。尝试了gfortran 编译,首先删除了*.mod,使用 gfortran –c modparm.f 重新生成 parm.mod。在main.f里注释了第一行,即include ‘modparm.f’。否则会出现重复定义的问题。最后编译,可以成功,但在运行时出现 Fortran runtime error,大致是从文件里读取end of file之类的错误。

安装了intel fortran 编译器,用的是官方的30天试用版。在visual studio 2010里建立了fortran console application项目,将swat 2005里的全部*.f 加到里面。同样重新生成 parm.mod,并修改了main.f (同上),编译,试运行,可以用。

GLDAS v1 0.25度3小时降水数据

学生下载了gldas v1 0.25x 0.25度的 3-hourly 数据,据介绍里面是有rainfall数据的。但用grads或者matlab read_grib 读取时,发现没有此项,如图:

image
(click for enlarged view)

这很奇怪,因为相关说明里分明是有rainfall一项的,如在http://hydro1.sci.gsfc.nasa.gov/dods/GLDAS_NOAH025SUBP_3H.info介绍的,

image

而且对比两者,里面的参数名也不一致。

仔细研究gldas数据对应的元数据,发现每个文件每项里都有对应的最大值最小值,试着读取并对比,发现第7项4LFTX即是rainf 一项,最大值一致。看样子是read_grib等代码是专门for WMO的,跟gldas的描述不一致。所以在读取gldas等数据时,还需要注意了。

ftp://hydro1.sci.gsfc.nasa.gov/data/s4pa/GLDAS/GLDAS_NOAH025_3H_E1.002/doc/README.GLDAS2.pdf找到parameter table的相关信息,如下图

image

注意其中的pds ids,rainfall rate是132,对应于图1的第7个记录,#=132。

大概是因为read_grib的参数表是基于ncep的某种格式,读取gldas需要配置自定义的参数表。

基金终于赶出来了

本来是要写另一个的,结果三天前换成决策支持系统的。累的呀,不过终于在截止期前也赶出来了。感谢书功、彦博、小余、小曹的大力帮忙,光我一个人那累死也忙不出来的。

这期间还搞了一个三江源生态环境监测的本子,今天315也是截止日期,因为要查新报告和合作协议,今天也是赶出来的,让小余租了个车给西宁那边给送过去了。感谢小余和老杨。

希望过了这阵子可以稍轻松一些了。

忙的一塌糊涂

最近主任的项目结题,我负责其中一个课题的报告,近半个月时间都耗到里面去了。昨天开会到23点半离开,据说他们还接着开,一直到凌晨1点半。很多同事就睡在办公室里。

黑河土壤调查

与南师大的李硕老师出了一趟野外,主要是黑河流域中上游的土壤调查。调查内容包括环刀取样和原状土的渗透系数测定。前后十天。

调查点地图如下,基本是将中上游的主要土壤和土地利用类型控制住了。这应该是近些年来黑河流域开展最为系统的一次调查了。

map 
三角为调查点,红色区域为黑河流域上流,紫色为中游区域。

DSC_0669 
分两小组分别工作,我们小组在达坂山垭口的合影

出野外

出来野外已经是第三天。今天住在祁连山里的野牛沟乡里。这里连联通的信号都没有。

不过很意外,电信3G信号很好。估计是用了移动的网络。

第一天从兰州到张掖。第二天从张掖到民乐,沿途分两个车分两个小组(一组李硕带队,一组我带队)做了6个土壤剖面,内容包括环刀采样,称重,饱和下渗导水率。今天(第三天)从民乐经扁都口、祁连到野牛沟,两小组完成了7个剖面。工作很辛苦,上午6点半起床,晚上9点才吃完晚饭。还要将本子上的记录整理到笔记本电脑上。但工作开展的很顺利。工作将持续8-10天,采集剖面达45个左右。

李硕老师讲,黑河流域这样大规模的土壤采样,是没有前例的。已有的土壤剖面都集中在张掖附近。我们的工作将极大改进流域的土壤资料。

参加工作的南师大学生、寒旱所学生表现的都十分优秀。谢谢大家。

冻土实验大文件处理软件

针对实验出来的大数据文件处理进行了优化,分为三个功能模块,温度数据转换(电阻->温度)、材料力学试验数据转换和冻胀试验数据转换三个功能模块。优化主要体现在,

  1. 逐行处理,理论上不受内存大小限制
  2. 根据可用内存的70%决定load进多少数据进行批量转化
  3. 多线程,根据内存数据多少动态决定线程数
  4. 代码级别上的其他优化

一些截图如下:

主界面


温度转换功能模块界面


力学试验功能模块界面


冻胀试验功能模块界面

基于Qt实现的优法算法工具包

目前工具包集成了遗传算法,二进制遗传算法,模拟退火,快速模拟退火(VFSA),SCPSO(见王书功博士论文),和线性规划。模型部分目前只集成了简单的二水源新安江模型。目标函数包括了NSE、RMSE、BLAS等;优化目标包括最大化和最小化。

工具包使用Qt 4实现,理论上可以在Windows、Linux、Mac等主流平台上编译运行,但我们只测试了Windows平台。

存在的问题:

1. 目前没实现多线程和并行支持(尽管一些算法本身是支持并行),如果计算量过大,会导致界面不响应。

2. 以后如果增加 目标函数收敛 的动态图形界面,就更完美了。

image

QGIS

QGIS 1.0出来了,想拿 visual studio 2008 c++ express 编译一下,结果发现依赖的库太多了,还不是一下子能搞定的事。想将这个用起来,刚提交的863任务书将原 arcengine改成 qgis,将swat模型改成 noah,还是尽量的使用开源吧。研究性的东西不应该全用闭源或者商业的东西,不利于成果的推广。

基于知识推理的节水城市评估系统

学生应用clips做了一个简单的节水城市评估原型系统,初步演示了,

1. 知识推理引擎可以应用在水资源有关的管理和实践上。知识推理引擎尤其在涉及大量复杂知识规则的系统里,将十分有效;

2. clips与gis的集成,clips与其它应用程序的集成。

snap020snap021 

snap022

开发环境,

clips 6, Qt/win opensource, vc++ 2008 express, arcgis 9.2