将 NetCDF (.nc) 转换为 GEOTIFF

Posted

技术标签:

【中文标题】将 NetCDF (.nc) 转换为 GEOTIFF【英文标题】:Convert NetCDF (.nc) to GEOTIFF 【发布时间】:2019-02-02 09:40:46 【问题描述】:

我的 .nc 文件大小约为 300MB,其中包含几个数据集(TEMPDEWPOINT)预测数据。我需要将(TEMP)数据集转换为多个GEOTIFF(每个时间片一个.tif)。

.nc 文件如下所示。

查看了这个answer,但它似乎是针对整个数据集的。

我尝试了GDAL,但不确定如何使其适用于每个时间片。

有什么想法吗? netcdf4-python?

【问题讨论】:

您是否尝试使用 GDAL 的gdal_translategdal_translate -of GTiff file.nc test.tiff 我为整个数据集工作,而不是一次性切片。 gdal-tranlsate 是否有任何选项可以添加时间片作为参数? 对不起,我不知道。但我相信您可以轻松编写脚本将文件分成多个时间片(例如使用 CDO 或 NCO),然后将它们分别翻译。 使用 gdal_translate -a_srs EPSG:4326 NETCDF:File_Name.nc:Band_Name -of ‘Gtiff’ Output_FileName.geotiff 。可以使用 gdalinfo 命令获取乐队名称 【参考方案1】:

gdal 有一个gdal_translate 选项,可让您将文件从.nc 转换为.tiff

见下文:

gdal_translate -of GTiff file.nc test.tiff

使用-b 选项将允许您指定要转换的波段。

gdal_translate -of GTiff -b 10 file.nc test.tiff  # to get 10th band

来自docs:

-b 波段:选择一个输入波段波段进行输出。波段从 1 开始编号。多个 -b 开关可用于选择一组输入波段以写入输出文件,或重新排序波段。从GDAL开始 1.8.0,band也可以设置为“mask,1”(或者只是“mask”)来表示输入数据集第一个band的mask band。

不幸的是,您必须知道您想要哪个波段(以数字形式而不是日期/时间形式),但是可以使用一个简单的脚本来遍历时间维度并获得您需要的索引或简单地遍历每个频段一个接一个。

【讨论】:

是的。那是正确的。你回答得有点晚,但我正在使用你的建议。所以基本上我的数据是预测未来 100 小时的数据,而且它也是有序的。所以我如果想获得前 10 个小时,那就是乐队 (1-10)。同样在我的情况下,乐队也不是什么大不了的事,即使时间不按顺序,我仍然可以在处理它们到 goeserver 时修复它们 抱歉迟到了哈哈 - 在我自己尝试搜索类似的东西时偶然发现并认为我会帮助减少未回答问题的数量!

以上是关于将 NetCDF (.nc) 转换为 GEOTIFF的主要内容,如果未能解决你的问题,请参考以下文章

geotiff与nc网格数据区别

将 70 个 netCDF 文件与 xarray 合并

通过 shapefile 剪切 NetCDF 文件

VS2008编译GDAL 1.8.1(转)

重命名 netCDF 维度

NetCDF:未安装 nc-config