我在一个文件夹中有几个(每日)Netcdf文件:2010年和2015年的5年
我想使用gdal_translate
从这些文件中提取一些变量,但我在如何在代码中表示日期written in the Netcdf file
时遇到问题。
文件的名称如下:
Nx.20120329.SUB.nc
代码:
import os
for year in range (2010,2014):
yearp=str(year).zfill(2)
for month in range(1,13):
monthp=str(month).zfill(2)
for doy in range (1, 32):
doy=str(doy).zfill(2)
inputFile='C:\\Users\\Nx.'+str(year)+''+monthp+''+str(doy)+'.SUB.nc'
inputDataset='NETCDF:\"'+inputFile+'\":sf'
outputFile='C:\\Users\\Nx.'+str(year)+''+monthp+''+str(doy)+'.SUB.img'
gdalcmd='gdal_translate -of "ENVI" '+inputDataset+' '+outputFile
os.system( gdalcmd)
我的问题:有没有办法让输出文件与输入文件同名,所以我不需要从今年到今年或从本月到那个等等。 获取任何指定文件夹中的所有文件,提取所需的变量并输入输入文件的确切名称?无论您的文件夹中有多少个文件或年份?
答案 0 :(得分:1)
您可以指定起始目录,并根据扩展程序中的所有文件,这是我要做的...
import os
import fnmatch
filenamels = []
inputExtension = ".nc"
outputExtension = ".img"
inputDir = "C:\\Users\\"
for filename in os.listdir(inputDir):
if fnmatch.fnmatch(filename, '*' + inputExtension):
filenamels.append(filename[:-len(inputExtension)])
for fn in filenamels:
inputDataset = 'NETCDF:\"'+ fn + inputExtension +'\":sf'
outputFile = inputDir + 'Nx.' + fn + '.SUB' + outputExtension
gdalcmd='gdal_translate -of "ENVI" '+ inputDataset + ' '+ outputFile
os.system( gdalcmd)
这将使用您的输入目录,并根据您提供的扩展名形成文件列表。
filenamels将包含没有扩展名的基本名称,然后您可以随意做。