在进行自己的WRF项目模拟的时候,因为需要用中国土地利用数据替换WRF内嵌老旧的土地利用数据,故需要将土地利用进行替换。我使用的中国的土地利用数据是来自中国土地利用数据(1980-2015)。其中我以下载的lucc1980为例进行演示。

1、坐标转换

   (1)下载的lucc1980数据如下图所示:

   (2)在ArcMap中打开属性表可以看到,lucc1980的坐标系为投影坐标系Krasovsky_1940_Albers,数据格式为GRID。这里需要将投影坐标系转换成地理坐标系WGS_84,并且将GRID转换为tiff格式。

2、重分类

   因为根据WRF对lucc的要求,目前只能输入USGS-24分类、IGBP-20分类或IGBP-21分类体系,而我用的中国土地利用数据是有6个一级分类,26个二级分类(具体见lucc1980中的lucc分类体系)和USGS与IGBP的分类体系都不一样。因此我这里需要将lucc的分类体系转换成USGS-24分类体系,这里我参考了我师姐的转换标准,如下图所示:

3、tiff格式转二进制

   WRF中要求所有的静态地理数据为二进制格式,而我们分类好的lucc1980为tiff格式,这里可以参考用户手册转二进制方法和气象家园中应用高精度地形数据到WRF中(ASTER,SRTM)中的方法。
   将分类好的lucc1980拷贝到Ubuntu中的WRF模型下的WPS_GEOG文件夹下,如下图所示。打开Ubuntu命令行,将文件夹更改到lucc1980。

其中的命令gdal_translate -of ENVI xxx1.tif xxx2.bil 中 xxx1为我们需要转的文件,xxx2为我们转换好的文件 在运行这步前需要安装GDAL(Geospatial Data Asbstraction Library),但气象家园的博主在试错后认为应该将命令改为gdal_translate -of ENVI -co INTERLEAVE=BSQ xxx1.tif xxx2.bil,事实证明博主的方法是对的。(这里如果你的Ubuntu没有安装GDAL的话,它会提示你需要安装gdal)

test@test:~/Build_WRF/WPS_GEOG/lucc1980$ gdal_translate -of ENVI -co INTERLEAVE=BSQ lucc1980_ProjectRaster_reclassification.tif.tif data.bil
ERROR 4: `lucc1980_ProjectRaster_reclassification.tif.tif' does not exist in the file system,
and is not recognised as a supported dataset name.GDALOpen failed - 4
`lucc1980_ProjectRaster_reclassification.tif.tif' does not exist in the file system,
and is not recognised as a supported dataset name.test@test:~/Build_WRF/WPS_GEOG/lucc1980$ gdal_translate -of ENVI -co INTERLEAVE=BSQ lucc1980_ProjectRaster_reclassification.tif data.bil
Input file size is 6157, 3393
0Warning 6: Driver ENVI does not support PIXELTYPE creation option
...10...20...30...40...50...60...70...80...90...100 - done.

得到以下三个文件:

打开data.hdr头文件,可以看到以下一些基本信息:

ENVI
description = {data.bil}
samples = 6157
lines   = 3393
bands   = 1
header offset = 0
file type = ENVI Standard
data type = 1
interleave = bsq
byte order = 0
map info = {Geographic Lat/Lon, 1, 1, 66.2922997247769, 54.9785484716575, 0.0117836266203959, 0.0117836266203959,WGS-84}
coordinate system string = {GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]]}
band names = {Band 1}

在lucc1980中新建一个空白文档并命名为index,这里可以参考官网文档Writing Static Data to the Geogrid Binary Format和博客WRF更换静态下垫面数据。根据data.hdr头文件和数据内容,index文件设置如下:

type=categorical
category_min=1
category_max=24
projection=regular_ll
dx=0.0117836266203959
dy=0.0117836266203959
known_x=1.0
known_y=1.0
known_lat=14.9967033487
known_lon=66.2922997248
wordsize=1
tile_x=6157
tile_y=3393
tile_z=1
units="category"
description="USGS 24-category land use categories"
mminlu="USGS"
missing_value=128
iswater=16
islake=-1
isice=24
isurban=1
row_order=top_bottom

这里需要注意的是:known_lat和known_lon是tiff文件左下角的经纬度,这需要在ArcMap中打开数据的属性,可以找到。missing_value是因为我们的tiff是一张矩形的影像,里面包括了中国土地利用,但是除此之外还有一些不是分类体系里面的像元,这些就是缺省值,现在你可能不知道,当你运行geogrid.exe时,会出现,因为我已经执行过一遍了,故知道缺省值,你到时只要遇到加上去就可以了。row_order这一项是因为读取需要从顶部往底部读取,如果不设置那么默认值为bottom_top,则读出来的影像是倒过来的。其他选项如何设置,自行查看官方文档。
接下来,将data.bil改为00001-06157.00001-03393,其中6157为lucc1980的列数,3393为lucc1980的行数,然后把其余文件删除即可,这样tiff转换二进制就成功了,如下图所示。

4、修改GEOGRID.TBL

   在WPS文件夹中的geogrid文件夹中,找到GEOGRID.TBL文件,打开后找到name=LANDUSEF项,分别在每一项的后面面加上 landmask_water = lucc1980:16 # Calculate a landmask from this field、interp_option = lucc1980:nearest_neighbor、rel_path = lucc1980:lucc1980/,然后保存即可。

5、修改namelist.wps

   其中最重要的是需要将 geog_data_res设置为 ‘usgs_30s+default’,‘lucc1980+default’,特别提醒,粗域和嵌套域的土地利用类型的分类数都必须是一样的,比如这里usgs_30s是24类,lucc1980也必须是24类,如果设置不同的话在执行real.exe会报错。我的namelist.wps设置如下所示:

&sharewrf_core = 'ARW',max_dom = 2,start_date = '2021-01-01_00:00:00','2021-01-01_00:00:00',end_date   = '2021-01-03_18:00:00','2021-01-01_00:00:00',interval_seconds = 21600io_form_geogrid = 2,debug_level=0
/&geogridparent_id         =   1,1,parent_grid_ratio =   1,3,i_parent_start    =   1,30,j_parent_start    =   1,30,e_we              =  100,121,e_sn              =  100,121,!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
! The default datasets used to produce the MAXSNOALB and ALBEDO12M! fields have changed in WPS v4.0. These fields are now interpolated! from MODIS-based datasets.!! To match the output given by the default namelist.wps in WPS v3.9.1,! the following setting for geog_data_res may be used:!! geog_data_res = 'maxsnowalb_ncep+albedo_ncep+default', 'maxsnowalb_ncep+albe$!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!
geog_data_res = 'usgs_30s+default','lucc1980+default',dx = 27000,dy = 27000,map_proj = 'mercator',ref_lat   = 43.935972,ref_lon   = 87.528372,truelat1  = 30.0,truelat2  = 60.0,stand_lon = 87,geog_data_path = '/home/test/Build_WRF/WPS_GEOG/'
/&ungribout_format = 'WPS',prefix = 'FILE',
/
&metgridfg_name = 'FILE'io_form_metgrid = 2,
/

5、运行程序

   我这个案例是模拟的新疆区域,先查看模拟域位置对不对。

test@test:~/Build_WRF/WPS-4.1$ ncl util/plotgrids_new.ncl


然后运行geogrid.exe

test@test:~/Build_WRF/WPS-4.1$ ./geogrid.exe

运行完后,看到Successful completion of geogrid,说明运行成功了,并且在WPS中生成以下两个文件。

整个流程到这里就结束了,还请给批评指正!希望对大家有帮助!

WRF替换静态地理数据中的土地利用数据(WRF替换下垫面数据)相关推荐

  1. 修改wrf下垫面数据

    替换下垫面数据步骤 1.裁切MODIS数据 我们只需要研究区域的数据,因此需要对MODIS裁切,减少需要处理的数据量.以下所有的操作都是在linux下进行. Tips:裁切的大小应该略大于WRF模拟中 ...

  2. 大数定律是什么?为何人们更愿意相信从大数据中得到的统计结果,而不是从小数据中得到的经验呢?

    大数定律是什么?为何人们更愿意相信从大数据中得到的统计结果,而不是从小数据中得到的经验呢? 00 导读 01 大数定律的概念和意义 02 蒙特卡洛方法 参考:<数据统计> 00 导读 在一 ...

  3. mysql数据库中,查询一个表的下一条数据减上一条数据的值的写法

    mysql数据库中,查询一个表的下一条数据减上一条数据的值的写法: select a.nodeId,a.cpuCharge-b.cpuCharge cpuCharge, a.chargeTime fr ...

  4. linq 清除一条数据中的某个字段值_B端通用批量数据导入方案设计

    点击上方蓝色字体,关注我 B端通用批量数据导入方案设计 文 | 3548字 估计阅读 | 9分钟 引题 B端产品经常遇到大量数据录入的需求.如春季招聘完成后,给新招的120个员工建立员工档案,并创建员 ...

  5. python数据中元素可以改变的是_下列Python数据中其元素可以改变的是( )。 (2.0分)_学小易找答案...

    [单选题]利润最大化要求改变各投入要素的投入量直到: [填空题]狭义的托幼园所环境是指在托幼园所中 , 对学前儿童身心发展产生影响的 物质 与 _________ 的总和. [单选题]关于网络营销和电 ...

  6. c语言在一组数据中找最大值最小值,用c语言输入一组数据,输出最大最小值,求c语言程序讲解: 输入一组数据,求最大值,最小值,和,平均...

    问题标题 用c语言输入一组数据,输出最大最小值,求c语言程序讲解: 输入一组数据,求最大值,最小值,和,平均 2019-7-3来自ip:18.156.193.207的网友咨询 浏览量:318 手机版 ...

  7. java word替换图片_Java Word中的文本、图片替换功能

    Word中的替换功能以查找指定文本然后替换为新的文本,可单个替换或全部替换.以下将要介绍的内容,除常见的以文本替换文本外,还将介绍使用不同对象进行替换的方法,具体可包括: 1. 指定字符串内容替换文本 ...

  8. 大数据学习笔记二:Ubuntu/Debian 下安装大数据框架Hadoop

    文章目录 安装Java 为Hadoop创建用户 安装Hadoop 配置Hadoop 配置环境变量 设置配置文件 格式化namenode 启动hadoop集群 访问hadoop集群 大数据学习系列文章: ...

  9. ACCESS2003替换数据中的通配符 本身的办法

    ACCESS2003数据中的通配符 本身的办法 (1) 要查找数据中的通配符,可以将要查找的字符用方括号括起来,如 [#]. 搜索星号 (*).问号 (?).井号 (#).左方括号 ([) 和连字符  ...

最新文章

  1. 八大排序算法合集 (归并排序、交换排序、插入排序、选择排序......)
  2. you think you know javascript
  3. C/S框架-发布和部署WebService
  4. opengl编程从入门到精通-hello,window
  5. Android permission 访问权限一览
  6. java lambda表达式_凯哥带你从零学大数据系列之Java篇---第二十二章:Lambda表达式...
  7. js中substr,substring,indexOf,lastIndexOf的用法小结
  8. ajax获取openid,异步环境下获取 openid的几个方法
  9. C++ 2022常见知识点
  10. C++处理有道单词导出单词本
  11. Dom4j报错之java.lang.NoClassDefFoundError: org/jaxen/JaxenException的解决方案
  12. Aatcc加速器市场现状及未来发展趋势
  13. 计算机与英语教学的论文开题报告,英语教学法毕业论文开题报告范文
  14. Win10 Office2016 激H失败错误代码0x80080005
  15. Apache Dubbo(概念篇)
  16. Zmeet云会议私有化部署--真正能私有化部署的类zoom会议
  17. 来自GitHub的系列渗透测试工具
  18. 在线免费pdf转ppt工具分享
  19. 理论物理极础7:对称性与守恒定律
  20. 2020.7.7_ie_12_VXLAN

热门文章

  1. 2019.04.20【NOIP提高组】模拟 B 组 观察题目+堆(?)+最大匹配+贪心、DP
  2. 中国航天科工发布“天玥”系列移动计算产品
  3. Sql Server 系统的存储过程
  4. keil提示:missing ';' before 'xxx'
  5. MATLAB图像拼接——怎么用MATLAB做拼图?
  6. python画旺仔代码_python基础1
  7. python制作飞机大战游戏准备工作相关知识点
  8. 【Android】 android | as | android studio 安装与使用
  9. python实时读取日志_paramiko使用tail实时获取服务器的日志输出详解
  10. 前端图片转码的一种处理情况