发现东西存成文件放到电脑里边超级难找,找不到就成了破烂,说不定下次就被Format掉了。最近赶51前赶快把机器里不积累的小东西发到BLOG上来存档。
下边是很早转DRG数据时写的Python脚本都快在电脑里边沉下去了。
# 功能:用于将调色板GEOTIFF转化为JPEG并获取元数据.py
# 作者:Flyingfish
# 日期:2007-1-22
import os,sys,string
# 遍历目录获取TIF文件名
def GetTiffFileName(dir):
filenames = []
dirlist=os.listdir(dir)
for subdir in dirlist:
subdir = os.path.join(dir, subdir)
if os.path.isdir(subdir):
subfilelist=os.listdir(subdir)
for filename in subfilelist:
if filename[-4:].lower()==".tif":
filenames.append(os.path.join(subdir, filename))
else:
filenames.append(subdir)
filelist=file("c:/filelist.txt",'w')
for filename in filenames:
filelist.write(filename + "\n")
filelist.close()
return filenames
# 获取元数据到文件
def GetMetadata(filenames):
metainfo = file('c:/metainfo.txt','w')
for filename in filenames:
os.system("gdalinfo > C:/info.txt " + filename)
info = file('C:/info.txt','r')
while True:
line = info.readline()
if len(line) == 0:
break
if line[:4] == 'Size':
#文件地址
metainfo.write('\n')
i = filename.rfind('\\')+1
path = "c:\\JPG\\" + filename[i:-4] + ".jpg"
metainfo.write(path)
metainfo.write(',')
#分幅号
noOrigin = filename[-17:-7]
intNO = ord(noOrigin[0])-ord('A') + 1
mapNo = str(intNO)+noOrigin[1:3]+noOrigin[4:]
metainfo.write(mapNo)
metainfo.write(',')
# 列行号
metainfo.write(line[8:len(line)-1])
if line[:10] == 'Upper Left':
metainfo.write(',')
metainfo.write(line[14:len(line)-3])
if line[:11] == 'Lower Right':
metainfo.write(',')
metainfo.write(line[14:len(line)-3])
metainfo.write(',')
# 投影带号
strip = string.atoi(filename[-16:-14]) #'H:\DRG\I48E009021\I48E009021DRG.tif'[-16:-14]='48'
strip = strip-30
metainfo.write(str(strip))
info.close()
metainfo.close();
for filename in filenames:
os.system("gdalinfo >> C:/AllInfo.txt " + filename)
# 进行TIFF到Jpeg的转化
def GeoTiff2Jpeg(filenames):
for filename in filenames:
os.system("call C:\FWTools1.0.5\setfw.bat & pct2rgb "+filename+" c:/rgb.tif")
i = filename.rfind('\\')+1
os.system("gdal_translate c:/rgb.tif -of JPEG c:/JPG/" + filename[i:-4] + ".jpg")
if __name__=="__main__":
files = GetTiffFileName('I:\\5万实验数据\\DRG')
#GetMetadata(files)
GeoTiff2Jpeg(files)
