直接上手 喜欢的点个赞!
# 模块导入
import numpy as np
import netCDF4 as nc
from osgeo import gdal,osr,ogr
import os
import glob
# 单个nc数据ndvi数据读取为多个tif文件,并将ndvi值化为-1-1之间
def NC_to_tiffs(data,Output_folder, NoData_value):
nc_data_obj = nc.Dataset(data)
Lon = nc_data_obj.variables['lon'][:]
Lat = nc_data_obj.variables['lat'][:]
ndvi_arr = np.asarray(nc_data_obj.variables['ndvi']) #将ndvi数据读取为数组
ndvi_arr_float = ndvi_arr.astype(float)/10000 #将int类型改为float类型,并化为-1 - 1之间
#影像的左上角和右下角坐标
LonMin,LatMax,LonMax,LatMin = [Lon.min(),Lat.max(),Lon.max(),Lat.min()]
#分辨率计算
N_Lat = len(Lat)
N_Lon = len(Lon)
Lon_Res = (LonMax - LonMin) /(float(N_Lon)-1)
Lat_Res = (LatMax - LatMin) / (float(N_Lat)-1)
for i in range(len(ndvi_arr[:])):
#创建.tif文件
driver = gdal.GetDriverByName('GTiff')
out_tif_name = Output_folder + '\\'+ data.split('\\')[-1].split('.')[0] + '_' +\
str(i+1) + '.tif'
out_tif = dri