3/12/2012

Topography in WPS

Two weeks ago, I tried to run CMAQ. However, it was really beyond my expectation that the pollution emission source data were so difficult to deal with, and finally we had to give up.

SMOKE is a set of programs responsible for the emission data. It takes in pollution inventory and turns it into CMAQ permitted format. In addition, it also divides the inventory spatially into grids and temporally into hours and days as most inventory data we get are annual. The problem is, SMOKE is developed by Americans and for USA use. The standards and administrative divisions are totally different. To take advantage of SMOKE, a specific methodology to adapt to the local is needed. Spanish scholars (R. Borge, et al)  have done that. In China, Prof. Zheng Junyu from South China University of Technology spent two years finishing that.

We are lucky that on 2nd March, Prof. Zheng came here and gave us a speech, exactly about pollution inventory preparation. He promised to give us his fruit so that we can go further. This Wednesday we are going there to learn about the skills.

Last week, I tried to replace topography data for WPS with my own data. WPS is the pre-processing software of WRF, preparing geographical and meteorological data for real-case weather simulation. It consists of three sub-programs, among which geogrid is responsible for interpolating static geographical data into grids. WPS is equipped with global geographical data issued by USGS, with 10m, 5m, 2m, 30s resolutions. For better precision, we have to add customized data to geogrid. We've got 1s (30 meters) PRD DEM data, and we can replace the topography data with it. Later, we are going to collect landuse data and do the same replacement.

The work is not so difficult as it seems. Both DEM data and geogrid formatted data are in grids. All I have to do is to read DEM into memory and then output it to static data. GDAL facilitates us greatly with dealing with DEM and WPS provides the output routine. We have to pay attention to obeying the WPS program interface. Also, data sequence in these two data formats are different. GDAL tends to read data from the first row (from north to south), but geogrid routine writes data from the south to the north. 

Ater the static data are ready, some configurations have to be modified to instruct geogrid to use the data we specified. After geo_em.d* have been output, we can use NCL to view the result. A sample ncl script can be downloaded here

In this way, terrain data with better resolution can be applied to WRF, which should affect the simulation result, like wind direction. Of course, the simulation grid is important in determining the significance of this work. Simulation with large domains and low resolution care less about course geography.

Fig1. Terrain with USGS 10m data

Fig2. Terrain with 1s data

3/05/2012

人生的转折点?

此刻,我正坐在303,听着小萝莉的 phd qualify,看着一页一页很华丽的图文,百感交集:这就是我以后要做的?

昨天看了一篇日志,一个满怀壮志的青年不甘于过着每天上班哄妻子带小孩的平淡日子,决意出国,只有外面的大千世界才能容下他博大的雄心。时隔四年,当他每天忙于看paper、做project、写本子,他最大的愿望就是早点毕业,过上高级知识分子应该有的高薪生活,然后有一个幸福的家庭。他不禁感叹到,到最后,我竟然回到了原点。

这或许是困扰所有人的一个问题:我们为什么活着?几天前,我收到了PSU的offer,我当然很兴奋,但我知道我并没有做好准备。我的兴奋只是因为我赢得了【申请】这一仗,我的【被认可】让我有很大的成就感。但是,这其实只是最初的一小步,后面还有5年6年甚至更长的时间。每天,我要做的就是看paper,写paper,申项目,做presentation,很明显我并不愿意过这样的生活,这只是为我今后有更好的生活付出的代价。不知将来我是否会为我今天这样“牺牲”的决定后悔?

美国,多么令人向往的国家。从小,我妈就希望我出人头地,而一个标竿就是出国,留洋。而我也从小迫切地希望能出去走走,去看我妈妈、我外婆、我曾外婆都从没看过的世界。可是,就在两年前,我真的到了美国,三个星期的时间里给我的只有无助、寂寞,也正是这三周灰色的印象,让我在本科毕业时放弃了出国的想法。如今,为何我又萌生了出国的想法呢?说实话,连我自己也说不清楚。或许小池子说的对吧,我心里还是有一颗出去走走的火苗,如果我出去了,或许有一天我会后悔;可如果我没有出去,我将来肯定会后悔。Follow your heart.

Young and to be young, follow your heart.

题目是“人生的转折点?”,这个出国的决定或许会影响我的一生,甚至改变我今后的职业和发展环境。之所以加个问号,是我又怀疑这个决定真的重大到会“改变”我的人生轨迹吗?会不会如其他决定一样,当我面对它的时候,它总是无限倍地放大,而当几年后我回头再看时,它只是我人生中轻描淡写的一笔。或许根本没有什么能真正改变人生,事实上也根本没有改变之说,谁也不知道“人生”原来怎么样。这就是人生,没什么东西是大不了的。对的错的,好的坏的,都筑成了人生的一分子。

最后想起了你的一句话:

我会勇敢的走下去,只要牵着你的手。

这里的路,已不再只是你我的爱情之路,而是你我的人生长路。

2/27/2012

SMOKE 初窥

SMOKE比我想象的要复杂很多,它并不像WRF或CMAQ一样有一个核心的程序,而是有很多子程序 (processors)。

SMOKE由MCNC-North Carolina Supercomputing开发,旨在为CMAQ等空气质量模拟软件提供污染源,其实质是对国家公布的排放清单作一个数据转换,对年排放量内插出日排放量,将特定区域划分网格 (gridding)。SMOKE可以处理面源、点源、线源、生物排放等污染源,每个源由不同的程序执行。下图显示了主要程序:


Smkinven将排放清单读入,最后Smkmerge和Mrggrid输出model-ready的排放源文件。

可是,SMOKE是为美国设计的,其排放源的分类、区域代码、空间地理信息、时间谱等都使用美国标准,需要开展很多的本地化工作,华南理工大学的张礼俊的硕士论文就是做这方面的工作,可以借鉴。目前,我还是很糊涂,也在犹豫是否要深入研究,毕竟这个工作量都足够人家硕士毕业了。

2/21/2012

做一个完整的人

一直在想是不是要把这个博客写成一个纯技术型的,把对她的感情分离到另一个博客中。但今天看完周国平写的<在世纪的转折点上:尼采>后,我改变了这个想法。正如尼采所说的,我们过分地崇尚科学,甚至被科学所奴役,我们忘了一个根本性的问题:究竟是科学为人服务,还是人为科学服务?就像我之前,我觉得将科学和情感放在一个博客中展现很奇怪;事实上,我这种想法才是很奇怪的,理性和感性本就是人的两面,我为什么要刻意地分开,甚至觉得让别人看到一个技术男在谈感情是令人别扭的一件事呢?因此,我决定把我所有的想法全写在这一个博客上,只做标签上的区别,在这里,展现一个完整的我。

写到这里,顺便摘一些书上看到的比较发人深省的话。

你要站在你自己的生命之上,高屋建瓴地俯视你自己的生命,不把它看得太重要,这样你反而能真正地体验它,享受它,尽你所能地把它过得有意义。

人只以勇敢和毅力所许可的限度接近真理。强者必须认识并肯定现实,正如弱者必须害怕和逃避现实一样。只有强者才有认识的自由,弱者却需要生活在欺骗之中。精神的强者出于内在的丰满和强盛,与一切相嬉戏,玩弄至今被视为神圣不可侵犯的事物,藐视至高无上者。只有这样的强者才能真切体验到人生的意义,从人生的痛苦中发现人生的欢乐。他的精神足够充实,在沙漠中不会沮丧,反而感觉到孤独的乐趣。他的精神足够热烈,在冰窟中不会冻僵,反而感觉到凛冽的快意。这也就是尼采所提倡的酒神精神。

无聊是一颗空虚的心灵寻求消遣而不可得,它是喜剧性的。寂寞是寻求普通的人间温暖而不可得,它是中性的。然而,人们往往将它们混淆,甚至以无聊冒充孤独……“我孤独了。”啊,你配吗?

最后,总结下尼采的各种重要的观点:酒神精神,强力意志,评价,创造,“自我”,非理性,以及“一切价值的重估”。

不得不说,理科的思维让我们局囿在微观的世界中,我们更多地关注了一个技术性或科学性问题,却忘了以鸟瞰人生长河的豁达来思考人生,以俯视大千世界的广阔来理解世界。有时候,跳出一些框架,整个世界都会发生变化。


2/17/2012

CMAQ深入理解

这周仔细看了CMAQ手册 CMAQv4.7.1 Operational Guidance Document 的1-5章,弄清了各子程序的compilation options, execution options, 输入还有输出。CMAQ给用户极大的灵活性,同时也带来了配置安装的极大的复杂性,每个子程序在编译和执行时都有很多的选项,目前我了解的更多的是 technical options,而 scientific options则无法理解。

本打算这周把WRF和CMAQ连起来跑一个case,但没有实现。一来团队人员不小心误删了wrf生成的文件,另外在ARWPost上又花了一点时间;二来自己这周也没什么工作热情。

顺利的话,下周串上WRF, CMAQ, SMOKE

2/12/2012

WRF和CMAQ安装配置

这周主要完成了WRF和CMAQ的安装。

记不清这是第几次安装WRF了。之前一直在自己的笔记本上装,环境是Ubuntu 32位和Intel Compiler。但笔记本上的Ubuntu经常崩溃,经常不能开机,所以就更换了机器。现在在台式机上,搭的CentOS 5 32位。原来也用的Intel 编译器,但后来跑WRF的metgrid.exe时,总是出现这么一个错误:


         forrtl: severe (173): A pointer passed to DEALLOCATE points to an array that cannot be deallocated


 随即程序就停止了。


尝试了好久,才发现网上也有人曾遇到这个问题,说是Intel编译器的问题,换成PGI就可以了。我尝试了一下,还真是。看来不同的编译器,对程序的影响还是很大的。


于是这周的工作就是安装CentOS, PGI, MPICH2, NetCDF, I/OAPI, WRF, WPS, ARWPOST, CMAQ, SMOKE。


CMAQ的安装略微复杂,要装好多库和子程序,如M3BLD, STENEX, PARIO, CVS, JPROC, BCON, ICON, CCTM, MCIP。安装过程在官方的文档中都给出了详细的说明,无非就是更改一下安装脚本中变量的路径、编译器的路径等信息。


WRF是新一代模拟气象条件的中尺度模型。CMAQ以WRF的输出为驱动,模拟污染物的传播和扩散。CMAQ综合考虑了气象条件、化学变化、污染源情况、物理过程,通过将有限空间划分成格网(不规则的?),以质量守恒为原则,用欧拉模型,计算网格间污染物的传播和网格内污染物的化学变化。CMAQ作为第三代空气质量模型,其最大的特点在于可同时考虑多种污染物,以及多尺度的无缝结合,所谓“ One atmosphere"。 

I/O API的作用是读入和输出数据,以及程序内部数据的传输。数据以netCDF形式存储。如果要做数据转换的话,这部分应该着重研究。

M3BLD的作用是将源代码编译成二进制可执行文件,因此要第一个编译。

JPROC的作用是计算在无云情况下,光分解的速率。因为很多化学物质是在光照情况下才发生的,所以入射光的能量对污染物的传播和扩散有重要影响。它通过查找一个静态表 CSQY 来确定这个值,具体原理不太清楚。

ICON为模型提供初始条件,BCON为模型提供边界条件,前者是 temporal boundary condition, 后者是 spatial lateral boundary condition。

MCIP读入大气模型( WRF )的输出结果,根据CMAQ的grid配置做适当内插和外延,为SMOKE和CMAQ提供气象条件。

CCTM是核心的CMAQ程序,将 JPROC, ICON, BCON, MCIP生成的文件整合,计算污染物的扩散情况。

CMAQ还有一些可选的库,如PROCAN用于跟踪某种污染物的传播情况,所谓过程分析 (Process analysis);CHEMMECH可供高级用户建立自己的化学变化过程。

SMOKE为CMAQ提供了污染源的情况,目前还不知道具体有哪些参数。

下周的工作目标是把WRF和CMAQ整合起来,运行一个case。


2/04/2012

重新开始

虽然这周什么也没干,但作为写博客的开始,还是记录一点。从这周开始,每周写工作总结,不定期写学习笔记。

这周从周二开始工作。笔记本装的Ubuntu还是打开不了图形界面,放弃了。打算重装系统,但怎么都装不上Fedora和CentOS。结果放台式机上一装就成了,没想到忙活了半天竟然是硬件问题。这下好了,一不做二不休,把台式机给重装了,以后也不受管理员管辖了。

以后台式机正式成为工作机器,所有之前的工作要重新开始。重新安装WRF和CMAQ。同时,对CentOS这个系统不熟悉,还要再学习一阵子。