微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 csv 数据在 python 中创建 NetCDF 文件

如何解决从 csv 数据在 python 中创建 NetCDF 文件

我目前有许多 csv 文件,每个文件用于不同的位置。在每个文件中有两列,一列是日期时间,另一列是每小时最大阵风(以节为单位)。我还有一个单独的 csv,其中包含每个 csv 文件位置的坐标。

最初我想从 3 x 4 网格中的 12 个位置创建一个 netcdf,间距为 0.25 度。

我在网上阅读的有关从 csv 创建 netcdf 文件的所有示例都从 csv 文件开始,lat long 然后是其中的变量,因为我从时间序列和变量开始。每个点的经纬度都是分开的。

除此之外,我见过的所有示例都一次手动加载每个时间步。显然,如果我使用 1979 年的每小时数据,这是不可行的,如果可能的话,我想一次性加载所有数据。如果这是不可能的,那么与每个时间步长相比,为每个网格点加载数据仍然会更快。对这些问题的任何帮助将不胜感激。

我一直在关注以下示例 https://www.esri.com/arcgis-blog/products/arcgis/data-management/creating-netcdf-files-for-analysis-and-visualization-in-arcgis/ 如果这对提供帮助的人有用

我也熟悉 CDO,但我不确定它在这里是否有任何有用的功能

干杯

解决方法

有多种方法可以做到这一点。最简单的方法可能是使用 pandas 和 xarray。下面的代码展示了如何创建一个简单的数据帧并使用 pandas/xarray 将其保存为 netCDF。

import pandas as pd
import xarray as xr

df = pd.DataFrame({"lon":range(0,10),"lat":range(0,"value":range(0,10)})
df = df.set_index(["lat","lon"])
df.to_xarray().to_netcdf("outfile.nc")

您尚未指定时间的存储方式等,因此我将让您自行确定如何读取 csvs 并以必要的格式获取时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。