WRF中替换LAI数据

news2024/12/23 18:13:35

WRF中替换LAI数据

本次下载的LAI数据是GLASS中的AVHRR(1981-2018)(V50),可以从这个这里获取数据GLASS_AVHRR_LAI数据集。由于我需要做一个时间序列的模拟,总共下载了从1990-2018年灌溉季3-9月份对应的天数为73,105,137,177,209,233,257的hdf格式的影像。
方法一
1.数据预处理
首先利用Panoply看一下数据的基本情况,最重要的是查看一下缩放因子,因为LAI值是从0-10,而很多LAI产品的值是2位数或3位数。
数据的基本情况本次预处理主要包括hdf转tif和GCS_Unknown_datum_based_upon_the_Clarke_1866_elipsoid转WGS-84,都是利用ArcMAP中的ModelBuilder进行批量处理(也可以使用Python进行批处理)。
1.1 hdf批量转tif
hdf转tif
1.2 GCS_Unknown_datum_based_upon_the_Clarke_1866_elipsoid转WGS-84
坐标系转换
2.tif转二进制文件
目前我按照我的d01区域掩膜tif,如下图所示。以下替换LAI数据使用GLASS01B02.V40.A2018257_WRFReplace.tif作为示例,其他替换类似。
tif数据
在Ubuntu中使用gdal将tif转为二进制格式,将GLASS01B02.V40.A2018257_WRFReplace.tif放在LAI1文件夹下,执行命令gdal_translate -of ENVI -co INTERLEAVE=BSQ GLASS01B02.V40.A2018257_WRFReplace.tif data.bil(对此命令有疑惑的同学可以可以参考我这篇博客WRF替换静态地理数据中的土地利用数据(WRF替换下垫面数据)),便得到以下文件。
转换二进制结果
在文件夹中新建文档,并命名为index,内容如下。其中dx,dy是分辨率,known_x和known_y表示与known_lat和known_lon对应的x,y坐标值,known_lat和known_lon这里设置的是影像坐下角位置的坐标,wordsize是指影像每个格网值的字节数,missing_value是影像的缺省值,tile_x和tile_y为东西方向和南北方向的格网数,tile_z为影像的层数,scale_factor为原始LAI数据的缩放因子(具体可以用Panoply查看),row_order表示读取的方向,以上这些设置均可以从原始数据和ArcMAP的影像数据里面查找到。参数的含义从WPS中可以查到。
type=continuous
projection=regular_ll
dx=0.05
dy=0.05
known_x=1.0
known_y=1.0
known_lat=32.0725587573
known_lon=35.0594129063
wordsize=2
missing_value=65535
tile_x=999
tile_y=500
tile_z=1
scale_factor=0.01
row_order=top_bottom
units=“m ^ 2/ m ^ 2”
description=“AVHRR LAI”
将将data.bil改为00001-00999.00001-00500,如果x和y轴的格网数均超过5位数,可参考WRF中如何使用SRTM的3s高分辨率地形数据集,至于为何这样设置可参考WRF替换静态地理数据中的土地利用数据(WRF替换下垫面数据)和Writing Static Data to the Geogrid Binary Format,其他文件舍弃,LAI1文件夹如下图所示。
在这里插入图片描述
3. 执行geogrid.exe
先按照默认设置执行./geogrid.exe, 读取geo_em.d02.nc中表示LAI变量的“LAI12M”。可以看出默认的LAI12M共有12层,即表示WRF中默认的LAI的分辨率为月,即每一层代表一个月的LAI。在这里读取9月的LAI后与后面替换的2018年第257天(即2018年9月份)进行对比,如第二张图所示。
默认的LAI12M
在这里插入图片描述

将LAI1文件夹放到WPS_GEOG文件夹下,并打开WPS/geogrid/中的GEOGRID.TBL,将name=LAI12M中的rel_path=default:lai_modis_10m/改为rel_path=default:LAI1/,保存,在WPS下执行./geogrid.exe。读取替换后的geo_em.d02_LAI.nc,可以看第二张图,只有一层数据(目前本人还不知道如何实现如模型默认的生成12层LAI数据,留作讨论和后续摸索)也符合index文件中的设定,但是这里并没有将像元值乘以index中设置的scale_factor=0.01,结果如第三张图所示。
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
4. Matlb替换LAI
最后一步就是,将geo_em.d02_LAI.nc中的2018年第257天的LAI数据替换掉geo_em.d02.nc中的变量LAI12M中的9月份数据,即可。本来一直想用Python直接替换,而且可以直接保存输出,不需要另创建一个nc文件,我目前还不知道如何实现,有知道的小伙伴可以评论区交流。这里我使用Matlab来直接替换LAI,并乘以scale_factor,不需要另外创建nc文件,代码如下所示。

ncid = netcdf.open('\\tsclient\d\geo_em.d02.nc','WRITE') % 以“read-wirte”方式打开nc
laiid   = netcdf.inqVarID(ncid, 'LAI12M'); % 读变量id
lai_org = netcdf.getVar(ncid, laiid);      % 获取变量
% 第9个月
lai_9=lai_org(:,:,9)

ncid1 = netcdf.open('\\tsclient\d\geo_em.d02_LAI.nc','WRITE') % 以“read-wirte”方式打开nc
laiid1   = netcdf.inqVarID(ncid1, 'LAI12M'); % 读变量id
lai_org1 = netcdf.getVar(ncid1, laiid1);     % 获取变量
lai1_month=lai_org1/100                      %乘以缩放因子

%用更新后的LAI替换之前的lai
lai_org(:,:,9)=lai1_month

netcdf.putVar(ncid, laiid,lai_org(:,:,:));        % 写入新变量
netcdf.close(ncid);                               % 关闭nc文件

读取替换后的geo_em.d02.nc中变量LAI12M中的9月份数据如下面两幅图所示。

在这里插入图片描述

在这里插入图片描述
这样就替换完成了一个月的LAI数据,其他月份也是如此。如果其他小伙伴有更简便的方法可以评论区讨论。
方法二
目前这种方法我没有完全实现,但是可以给大家提供一个思路。
第一步预处理数据的时候首先要将tif的格网数据插值到你namelist.wps中设置的格网分辨率和行列数。
第二步不需要在WPS处理过程中做改变,而是在运行real.exe之前设置,
auxinput4_inname = “wrflowinp_d”
auxinput4_interval = 360, 360,
rdlai2d = .true.,
sst_update = 1,
这四个参数,在WRF文件夹下会生成wrflowinp文件。
第三步把第一步预处理好的数据使用python或ncl加入到输出的wrflowinp中即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

人工智能大时代——AIGC综述

生成式AI分类 模型按照输入输出的数据类型分类,目前主要包括9类。 有趣的是,在这些已发布大模型的背后,只有六个组织(OpenAI, Google, DeepMind, Meta, runway, Nvidia)参与部署了这些最先进的模型。 其主要原因是&am…

11.基于粒子群算法的含风光燃储微网优化调度(论文复现)

说明书 相关代码资源:基本算法智能微电网粒子群优化算法,微源:光伏、风机、发电机、储能等 基于多目标算法的冷热电联供型综合能源系统运行优化 基于多目标粒子群算法冷热电联供综合能源系统运行优化 MATLAB代码:基于粒子群算法的含风光燃…

0成本 使用home assistant远程开关机电脑

环境:dockerwin10HACS 问题:在外网手机上远程开关机家中电脑 解决办法:开机:WOL,关机ssh命令 背景:在部署HACS后,便想用HACS中的命令来开关机windows电脑,开机很简单,使用…

暴力破解之验证码识别

文章目录背景操作步骤1、安装python模块2、安装Captcha-killer模块3、尝试进行验证码识别背景 渗透测试过程中,现在验证码越来越多,这对测试的时候遇到的阻力不小,一位大佬给我安利了一个burp插件,Captcha-killer,可以…

ROS开发之如何使用ICM20948 IMU模块?

文章目录0.引言1.创建工作空间2.获取IMU功能包并编译3.检查IMU端口4.启动launch显示IMU测量结果0.引言 笔者研究课题涉及多传感器融合,除了前期对ROS工具的学习,还需要用IMU获取数据,对其他传感器的姿态纠正。本文使用IMU模块获取姿态数据。I…

华为乾坤王辉:新一代网络安全融合体系,筑牢企业数字化转型基石丨2023 INSEC WORLD

科技云报道原创。 随着数字化时代的到来,网络安全形势持续动荡。 围绕产业未来发展趋势、信息安全产业可持续发展、信息安全技术发展路径等话题,一场信息安全行业年度盛会——INSEC WORLD世界信息安全大会在西安盛大召开。 本届大会汇聚了近50位海内…

大数据技术(入门篇) --- 使用 Spring Boot 操作 CDH6.2.0 Hadoop

前言 本人是web后端研发,习惯使用spring boot 相关框架,因此技术选型直接使用的是spring boot,目前并未使用 spring-data-hadoop 依赖,因为这个依赖已经在 2019 年终止了,可以点击查看 ,所以我这里使用的是…

防火墙的IPSECVPN点到点实验 dsvpn多层分支实验

目录 防火墙的IPSECVPN点到点实验 dsvpn多层分支实验 ​编辑 防火墙的IPSECVPN点到点实验 配置路由器接口IP 配置接口防火墙IP 写放通的策略 ping对端防火墙的接口看是否能ping通 ipsec进行配置 配置往返流量 dsvpn多层分支实验 先配置IP 2,配置静态IP 3&#xf…

拦截导弹 导弹防御系统

拦截导弹 & 导弹防御系统拦截导弹导弹防御系统拦截导弹 题目链接:acwing1010. 拦截导弹 题目描述: 输入输出: 分析: 第一个问题为输出最长递减子序列,由于导弹数在1000以内所以采用时间复杂度为O(n2)O(n^2)O(n2)或者O(nlogn)O(nlogn)O…

介绍一款idea神级插件【Bito-ChatGPT】

什么是Bito? Bito是一款在IntelliJ IDEA编辑器中的插件,Bito插件是由ChatGPT团队开发的,它是ChatGPT团队为了提高开发效率而开发的一款工具。ChatGPT团队是一支专注于自然语言处理技术的团队,他们开发了一款基于GPT的自然语言处理…

[oeasy]python0133_[趣味拓展]好玩的unicode字符_另类字符_上下颠倒英文字符

另类字符 回忆上次内容 上次再次输出了大红心♥ 找到了红心对应的编码黑红梅方都对应有编码 原来的编码叫做 ascii️ \u这种新的编码方式叫unicode包括了 中日韩字符集等 各书写系统的字符集 除了这些常规字符之外 还有什么好玩的东西呢? 颠倒字符 这个网站可以…

DQN基本概念和算法流程(附Pytorch代码)

❀DQN算法原理 DQN,Deep Q Network本质上还是Q learning算法,它的算法精髓还是让Q估计Q_{估计}Q估计​尽可能接近Q现实Q_{现实}Q现实​,或者说是让当前状态下预测的Q值跟基于过去经验的Q值尽可能接近。在后面的介绍中Q现实Q_{现实}Q现实​也…

提高工作效率必备,5款实用的Windows系统工具推荐

每次分享实用的软件,都会给人一种踏实和喜悦的感觉,这也是我热衷于搜集和推荐高效工具软件的原因。 音量控制——EarTrumpet EarTrumpet是一款音量控制工具,可以让你更方便地调节Windows系统中不同应用程序的音量。你可以使用EarTrumpet来替代系统自带的音量混合器…

表单设计器开源的定义和应用场景布局介绍

为了实现提质增效的办公自动化,表单设计器开源工具的应用变得广泛起来。在低代码开发市场昌盛发展的今天,不少企业期望通过快速、现成的快速配置表单工具实现高效率表单制作,那么,现在给大家介绍的这款开发易用性强、组件丰富、高…

设计模式 -- 门面模式

前言 月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂) 央是一片海洋,海乃百川,代表着一块海绵(吸纳万物) 泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出) 月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容 希望大家一起坚持这个过程,也同…

stable-diffusion真的好用吗?

hi,各位大佬,今天尝试下diffusion大模型,也是CV领域的GPT,但需要prompt,我给了prompt结果并不咋滴,如下示例,并附代码及参考link 1、img2img 代码实现: import torch from PIL im…

PageHelper的使用

这个分页插件是在Mybatis的环境中使用的&#xff0c;所以项目需要导入Mybatis依赖 更加详细的用法看官方文档&#xff1a;PageHelper官网 在Mybatis中使用 前提条件 引入依赖 <dependency><groupId>com.github.pagehelper</groupId><artifactId>pa…

GANs和Generative Adversarial Nets和Vox2Vox: 3D-GAN for Brain Tumour Segmentation

参考&#xff1a; 各种生成模型&#xff1a;VAE、GAN、flow、DDPM、autoregressive models https://blog.csdn.net/zephyr_wang/article/details/126588478李沐GAN精度 x.1 生成模型家族 DGMs&#xff08;Deep Generatitve Models&#xff09;家族主要有&#xff1a;GAN&…

数据分析的目的和意义是什么?_光点科技

数据分析是一个越来越受到关注的领域&#xff0c;因为它可以帮助企业和组织利用数据来制定更明智的决策。数据分析的目的和意义是多方面的&#xff0c;例如&#xff1a; 1.了解客户需求 数据分析可以帮助企业更好地了解客户需求&#xff0c;从而制定更准确的市场营销策略。通过…

原生JS + HTML + CSS 实现快递物流信息 API 的数据链式展示

引言 全国快递物流查询 API 是一种提供实时、准确、可靠的快递物流信息查询服务的接口。它基于现有的物流信息系统&#xff0c;通过API接口的方式&#xff0c;向用户提供快递物流信息的查询、跟踪、统计等功能。使用全国快递物流查询 API&#xff0c;用户可以在自己的应用程序…