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

2024-05-11 18:53:58 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我在网上读到的关于从csv创建netcdf文件的所有示例都是从带有lat long的csv文件开始,然后是其中的变量,我从timeseries和变量开始。和lat长为每个点分开

除此之外,我看到的所有示例都是每次手动加载一个timestep。显然,如果我使用1979年的每小时数据,这是不可行的,如果可能的话,我想一次加载所有数据。如果这是不可能的,那么相对于每个时间步,加载每个网格点的数据会更快。如果您能为解决这些问题提供任何帮助,我们将不胜感激

我一直在效仿美国的例子 https://www.esri.com/arcgis-blog/products/arcgis/data-management/creating-netcdf-files-for-analysis-and-visualization-in-arcgis/ 如果这对提供帮助的人有用的话

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

干杯


Tags: 文件csv数据网格示例datetime单位netcdf
0条回答
网友
1楼 · 发布于 2024-05-11 18:53:58

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

import pandas as pd
import xarray as xr

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

您还没有指定时间的存储方式等,因此我将让您自行决定如何读取CSV并以必要的格式获取时间

相关问题 更多 >