繁体   English   中英

使用 python、R 或 cdo 将 csv 文件转换为 netcdf

[英]convert csv file to netcdf using python, R or cdo

我是 python 的新手,我很难转换文件格式。 我有一个包含 15.841 列的 csv 文件(每列的第一行是 lon,第二行是 lat,第三行是值)。 我想创建一个具有 15.841 个网格的 NetCDF 文件,每个网格的坐标将是 lon-lat 信息和 1 个值(例如,参见附件1 )。 没有时间信息。 你能帮我解决这个问题吗? 此外,如果有人有 cdo 或 R 的解决方案,我们也欢迎。

到目前为止,我的 Python 代码:

`导入 pandas 作为 pd

df = pd.read_csv('C:/anaconda/final_era5_prec.csv')

反式 = df.transpose()

trans.columns = trans.columns.map(str)

df = trans.set_index(["lat", "lon"])

xr = df.to_xarray()

xr.to_netcdf('/mnt/data/final_era5_prec.nc')`

非常感谢。

1 个网格的样子

dataframe(共15841列)

dataframe 转置后

您需要为 dataframe 创建一个多索引。 以下将创建一个更好的 netCDF 文件:

import pandas as pd

df = pd.read_csv('/mnt/data/final_era5_prec.csv')
df = df.set_index(["lat", "lon"])
xr = df.to_xarray()

xr.to_netcdf('/mnt/data/final_era5_prec.nc')`

请注意,这只有在您有纬度网格时才能正常工作。 如果要创建类似于 CF 兼容的 netCDF 文件的内容,则需要根据网格类型修改工作流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM