烦死了老报错!!!



import os
import re  # regular expressions
import warnings
import matplotlib.pyplot as plt
import numpy as np
import numpy.ma as ma
import rasterio as rio
from rasterio.plot import plotting_extent
from osgeo import gdal, osr
print('///')
# os.environ['PROJ_LIB'] =r'C:\Users\jingjing\anaconda3\Library\share\proj'
os.environ['PROJ_LIB'] = 'D:\ProgramData\Anaconda3\Lib\site-packages\pyproj\proj_dir\share\proj'
def GetFullFileName(filePath):
    fileList = os.listdir(filePath)
    fullList = []
    for file in fileList:
        fullList.append(os.path.join(filePath,file))
    return fileList,fullList
print('llllllllllllllllllll')
def OpenHDF(fileName, Var_name):
    with rio.open(fileName) as dataset:
        for name in dataset.subdatasets:
            #Use regular expression to identify if subdataset has LST_Day_1km in the name (the bands)
            if re.search(Var_name,name):
                with rio.open(name) as subdataset:
                    mod = subdataset.read(1)
                    mod_meta = subdataset.meta
    return mod,mod_meta
print('======================== ')
def CreateTiff(fullFileName,dynamicArray, width, length, proj,geotransform):
    driver = gdal.GetDriverByName('GTiff')
    out_tif = driver.Create(fullFileName, width, length, 1, gdal.GDT_Float32)  # 创建框架
    out_tif.SetGeoTransform((geotransform[2],geotransform[0],geotransform[1],geotransform[5],geotransform[3],geotransform[4]))
    out_tif.SetProjection(str(proj))  # 给新建图层赋予投影信息
    
    # 数据写出
    out_tif.GetRasterBand(1).WriteArray(dynamicArray)  # 将数据写入内存,此时没有写入硬盘
    out_tif.FlushCache()  # 将数据写入硬盘
    out_tif = None  # 注意必须关闭tif文件

if __name__ == "__main__":
    
    filePath = r'D:\MODIS666\batchmodis_try'
    output_path = r'D:\MODIS666\666'
    
    file_list,full_file_name_list = GetFullFileName(filePath)
    
    for file in file_list:
        Var_name = "1 km 16 days NDVI"
        lst_night,lst_night_meta=OpenHDF(os.path.join(filePath,file), Var_name)
        lst_night = lst_night * 0.02 # NDVI的转换系数为0.0001
        width = (lst_night.shape)[1]
        length = (lst_night.shape)[0]
        
        # print(lc_meta)
        
        fullFileName = os.path.join(output_path,file[0:-4]+'1 km 16 days NDVI.tif')
        print('qqqqqqqqqqqqqqqqqqqqqq')
        CreateTiff(fullFileName,lst_night, width, length, lst_night_meta['crs'], lst_night_meta['transform'])
        
        # print(file)
        # fullFileName1 = os.path.join(output_path,file[0:-4]+'_LST_night_WGS.tif')
        # os.system('gdalwarp -s_srs "+proj=sinu +lon_0=0 +x_0=0 +y_0=0 +R=6371007.181 +units=m +no_defs" -t_srs "+proj=longlat +datum=WGS84 +no_defs" -srcnodata 0 -dstnodata 0 {} {}'.format(fullFileName, fullFileName1))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值