python批量读取nc文件并转为tif
时间: 2023-05-04 13:04:48 浏览: 204
Python可以使用netCDF4库来处理nc文件,同时也可以使用GDAL库将nc文件转成tif格式。
首先需要安装netCDF4和GDAL库。命令行输入以下代码即可安装:
```
conda install netcdf4
conda install gdal
```
接着,使用netCDF4打开nc文件,并获取到需要转换成tif的变量。例如,下面代码以读取变量"temperature"为例:
```
import netCDF4 as nc
nc_file = "filename.nc"
var_name = "temperature"
nc_data = nc.Dataset(nc_file)
var = nc_data.variables[var_name]
```
接下来,使用GDAL库将变量转换成tif格式。下面代码以使用gdal_array保存变量为tif格式为例:
```
import gdal
import numpy as np
from osgeo import gdal_array
gdal_array.SaveArray(np.array(var), "filename.tif")
```
最后,可以将上述代码封装成函数,方便批量读取和转换。例如,下面的函数可以读取文件夹下所有的nc文件并将其中指定的变量转换成tif格式:
```
import os
def nc_to_tif(nc_dir, var_name):
for filename in os.listdir(nc_dir):
if filename.endswith(".nc"):
nc_data = nc.Dataset(os.path.join(nc_dir, filename))
var = nc_data.variables[var_name]
tif_name = filename[:-3] + "tif"
gdal_array.SaveArray(np.array(var), tif_name)
```
只需要将文件夹路径和变量名作为参数传入函数即可批量处理。
阅读全文