以下是使用python将CMIP6数据NC格式降水数据转栅格的示例代码:

import netCDF4 as nc
import numpy as np
import gdal
import osr

# 定义输入文件名称
input_file_name = 'pr_Amon_ACCESS-CM2_historical_r1i1p1f1_gn_185001-201412.nc'

# 定义输出文件名称
output_file_name = 'pr_Amon_ACCESS-CM2_historical_r1i1p1f1_gn_185001-201412.tif'

# 读取NC文件
c_file = nc.Dataset(input_file_name, 'r')
lat = nc_file.variables['lat'][:]
lon = nc_file.variables['lon'][:]
pr = nc_file.variables['pr'][:]

# 创建输出文件
driver = gdal.GetDriverByName('GTiff')
rows, cols = pr.shape[1:]
geo_transform = (lon[0], lon[1] - lon[0], 0, lat[0], 0, lat[1] - lat[0])
srs = osr.SpatialReference()
srs.ImportFromEPSG(4326)
output_file = driver.Create(output_file_name, cols, rows, 1, gdal.GDT_Float32)
output_file.SetGeoTransform(geo_transform)
output_file.SetProjection(srs.ExportToWkt())

# 将数据写入输出文件
band = output_file.GetRasterBand(1)
band.WriteArray(np.flipud(pr[0, :, :]))
band.SetNoDataValue(-9999)

# 关闭文件
output_file = None
c_file.close()

这段代码使用netCDF4库读取NC文件中的经纬度和降水数据,并使用gdal库创建一个GeoTIFF格式的输出文件。然后,将降水数据写入输出文件中。输出文件的地理参考和投影使用EPSG:4326(WGS 84)作为标准。

Python代码:将CMIP6数据NC格式降水数据转换为栅格

原文地址: https://www.cveoy.top/t/topic/nqzg 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录