水动力模型输出提取与处理工具
thyme的Python项目详细描述
百里香
t工具用于hydrodynamicmODEL输出e提取
提供处理、插值和 转换水动力海洋模型netcdf数据集。
为什么?现在有许多流体动力学建模框架被 海洋学界。所有模型都输出为netcdf格式,但是 结构、尺寸、变量、属性、命名约定, 坐标系和掩蔽规则都会有很大的变化,使得 用户很难从中提取有意义的信息 复杂系统。
这个包试图支持一种通用的交互方法 通过提取每个建模系统的细微差别来使用这些数据集 分成不同的模块,并用一个单独的api统一它们。
支持的型号
注:到目前为止,该软件包已通过测试,可与国家海洋公司合作。 业务(NOS)运营预测系统(OFS)(如CBOFS、DBOFS, ngofs等),但是如果稍加调整,它也应该可以处理输出。 来自非OFS型号。
目前支持以下海洋建模框架:
区域海洋模拟系统(ROMS)
< Buff行情>"ROMS是一个自由曲面,地形跟随,原始方程 科学界广泛使用的海洋模型 应用范围…在水平方向,基本方程 使用边界拟合、正交曲线计算 交错荒川C网格上的坐标。一般公式 曲线坐标包括笛卡尔(常数度量)和 球面(可变度量)坐标。海岸线也可以 通过陆海掩蔽指定为有限离散网格。如在 垂直的,水平的模板使用一个居中的,二阶的 有限差分。"
来自https://www.myroms.org/" rel="nofollow">https://www.myroms.org/
的说明有限体积社区海洋建模系统(FVCOM)
< Buff行情>"FVCOM是一个预测性的非结构化网格,有限体积, 自由面三维原始方程沿岸海洋环流模式 由UMASDS-WHOI共同开发。模型包括 动量、连续性、温度、盐度和密度方程 在物理和数学上使用湍流闭合 子模型。水平网格由非结构三角形组成 单元和不规则底是用广义的 地形跟踪坐标。"
来自http://fvcom.smast.umasd.edu/fvcom/" rel="nofollow">http://fvcom.smast.umasd.edu/fvcom/
的说明普林斯顿海洋模型(POM)
< Buff行情>"POM是一个西格玛坐标(地形跟踪),自由水面海洋 嵌入湍流和波浪子模型的模型,以及干湿模型 功能。"
来自http://www.ccpo.odu.edu/pomweb/index.html" rel="nofollow">http://www.ccpo.odu.edu/pomweb/index.html的说明
混合坐标海洋模型(hycom)
< Buff行情>"混合坐标海洋模型是一个原始方程海洋 从迈阿密演变而来的大气环流模式 rainer-bleck和 同事。hycom中的垂直坐标在 开阔的,分层的海洋。但是,它们平稳地过渡到z 弱分层上层海洋混合层中的坐标 浅水区地形跟随sigma坐标 在非常浅的水中调平坐标。"
来自https://www.hycom.org/attachments/067_overview.pdf的说明
此外,一个通用的 为了将模型输出文件转换为常规网格,索引文件
必须在运行时提供。索引文件的目的是持久化
在模型运行之间不改变的信息,以减少
每个周期运行的总处理时间。存储在
索引文件包括输出网格定义和通用元数据
关于模型本身。基于fvcom的混合模型索引文件
(广义)坐标系附加存储插值垂直
每个输出网格单元的坐标值。 生成网格定义时,用户可以选择使用
模型域的全部范围或提供shapefile
包含定义子网格的一个或多个多边形
(子区域/子域)网格定义将符合的。如果
未指定子网格形状文件,生成的索引文件将定义
与整个模型域匹配的规则网格(带nodata掩码)
(程度)否则,如果指定了子网格形状文件,则
索引文件将定义与
与模型域相交的所有子网格多边形的统一范围,
以及识别对应网格单元范围的信息
每个子网格。注意,当提供子网格shapefile时,所有
子网格多边形必须是矩形的,彼此一致,并且
彼此相邻。 子网格索引用于将模型输出子集到
较小的地理区域(即瓷砖),从而导致较小的
输出文件大小。可选地,对于子网格索引文件,用户可以
指定子网格shapefile中属性字段的名称
唯一标识每个子网格(平铺)。如果未指定字段,则每个
多边形的fid值用作标识符。此标识符可以是
用于构造唯一的文件名。 此外,当
生成索引文件。如果提供,任何输出网格单元
质心与地面相交多边形将在最终网格中被遮罩
定义。 必须为每个海洋预报系统创建一个索引文件
目标分辨率和范围的组合(是否使用模型的
完整域范围或子网格定义)。 一旦创建了模型索引文件,就可以无限期地为
模型/分辨率/范围/土地遮罩,直到
改变。例如,如果基于FVCOM的模型有一个混合(广义的)
在某一点(即西格玛)修改的垂直坐标系
值已更改),任何关联的索引文件都需要
使用更新格式的新模型输出文件重新生成。 通常,需要一个新的索引文件: 这个代码库是为python 3编写的,依赖于以下python
套餐: 此包使用的gdal python绑定要求系统库
现在,所以它通常不能使用 一旦安装了gdal,就可以使用pip安装百里香: 使用默认值为基于FVCOM的模型生成新索引文件
网格范围,500米目标分辨率,海岸线形状
定义要掩蔽的土地区域: 使用子网格为基于roms的模型生成新索引文件
shapefile(字段名'id'用于标识子网格区域)和
约300米目标分辨率(未指定海岸线掩码形状文件): 将基于roms的模型中的u/v电流分量插值到
在现有模型索引文件中定义的规则网格,深度为4.5
地表以下米,时间指数为0,并存储结果U/V
两个 这项工作,作为一个整体,是根据BSD 2条款许可(见
许可证,但它包含来自
美国国家海洋和大气管理局(NOAA),2017年-
2019年,分别致力于公共领域。 这个储存库是一个科学产品,不是官方的
国家海洋和大气管理局的通信,或
美国商务部。所有noaa github项目代码
按"原样"提供,用户承担责任
供其使用。对商务部或商务部的任何索赔
由于使用这个github项目而产生的商务局
受所有适用的联邦法律管辖。任何具体的
商业产品、过程或服务的服务标志、商标,
制造商或其他方不构成或暗示
商务部的认可、推荐或支持。
商务部的印章和标志,或文件的印章和标志
主席团,不得以任何方式暗示任何
DOC或美国政府的商业产品或活动。 这个软件是由国家海洋和大气
国家海洋局
测量(OCS)/海岸测量开发实验室(CSDL),供
科学和海洋学界。 CSDL感谢以下实体的帮助:直线
模块是为了支持
坐标系符合直线网格的任何模型输出
其深度坐标反映了标准深度/z层
此模块不支持垂直插值。
功能
索引(网格定义)文件
何时生成新索引文件
要求
安装
pip install gdal
安装。
我们建议通过包管理器(例如
conda
,apt
,yum
,pacman
)或从头编译。
miniconda可能是
最简单的方法。pipinstallthyme
示例用法
fromthyme.modelimportfvcomnative_model_file=fvcom.FVCOMFile('/path/to/existing_fvcom_file.nc')model_index_file=fvcom.FVCOMIndexFile('/path/to/new_index_file.nc')try:native_model_file.open()model_index_file.open()model_index_file.init_nc(native_model_file,500,'my_fvcom_model','/path/to/shoreline_shapefile.shp')finally:model_index_file.close()native_model_file.close()
fromthyme.modelimportromsnative_model_file=roms.ROMSFile('/path/to/existing_roms_file.nc')model_index_file=roms.ROMSIndexFile('/path/to/new_index_file.nc')try:native_model_file.open()model_index_file.open()model_index_file.init_nc(native_model_file,300,'my_roms_model',None,'/path/to/subgrid_shapefile.shp','subgrid_id_fieldname')finally:model_index_file.close()native_model_file.close()
numpy.ma.masked_数组中的值
对象:fromthyme.modelimportromsnative_model_file=roms.ROMSFile('/path/to/existing_roms_file.nc')model_index_file=roms.ROMSIndexFile('/path/to/existing_index_file.nc')try:native_model_file.open()model_index_file.open()(u_with_mask,v_with_mask)=native_model_file.uv_to_regular_grid(model_index_file,0,4.5)# u_with_mask and v_with_mask now contain 2D numpy masked arraysfinally:model_index_file.close()native_model_file.close()
作者
许可证
免责声明
致谢
推荐PyPI第三方库