网站在百度的标头不对,网络营销项目,网站的目标,极酷wordpress在处理SMOS数据时#xff0c;遇到了读取nc数据并存为tif后#xff0c;影像投影无法改变#xff0c;因此全球数据无法重叠。源数据的投影为EPSG:6933#xff0c;希望转为EPSG:4326。 解决代码。
python
import os
import netCDF4 as nc
import numpy as np
from osgeo impo…在处理SMOS数据时遇到了读取nc数据并存为tif后影像投影无法改变因此全球数据无法重叠。源数据的投影为EPSG:6933希望转为EPSG:4326。 解决代码。
python
import os
import netCDF4 as nc
import numpy as np
from osgeo import gdal, gdalconst
# *************************导入netCDF4
file_path rI:\\
input_name file_path SM_SCIE_MIR_L4AGBB_20110101T000000_20211231T235959_100_001_8.nc
out_path rI:\out\\
res 0.25 #目标数据的分辨率
top 57 #目标数据的top坐标
geo_transform [-179, res, 0.00, top, 0.00, -res] #投影转换os.makedirs(out_path, exist_okTrue)with nc.Dataset(input_name) as DS:data DS.variables[AGB] #nc文件数据data_arr1 np.asarray(data) #转为数组src_proj DS.proj4text #nc原始文件投影信息for j in range(0, 11):year str(2011 j)data_arr3 np.where(data_arr1[j] 0, 0, data_arr1[j])data_arr4np.flipud(data_arr3) #影像上下变换# 获取数组的行数和列数rows, cols data_arr4.shape# 创建一个新的Dataset对象driver gdal.GetDriverByName(MEM)dataset driver.Create(, cols, rows, 1, gdal.GDT_Float32)# 将数组的数据写入Dataset对象band dataset.GetRasterBand(1)band.WriteArray(data_arr4)# 设置地理变换信息dataset.SetGeoTransform(geo_transform) # 这里的参数需要设置一下尽管这个参数在warp后被抹去。# 设置投影信息dataset.SetProjection(src_proj) # 源文件的投影。option gdal.WarpOptions(formatGTiff, srcSRSsrc_proj, dstSRSEPSG:4326, outputTypegdal.GDT_Float32, resampleAlggdalconst.GRA_NearestNeighbour)out_name out_path ** year .tifresult_datagdal.Warp(out_name, dataset, optionsoption, xResres, yResres, creationOptions[COMPRESSLZW], dstNodata0)result_data.SetGeoTransform(geo_transform) #warp后geo_transform信息被抹去这里需要再次设定。result_data.FlushCache()del result_dataprint(out_name)