带调色板TIFF到Jpeg的转化Python脚本

本文介绍了一个Python脚本,该脚本能够批量将GEOTIFF格式的图像转换为JPEG格式,并从中提取关键元数据。这些元数据包括图像尺寸、地理坐标等信息,有助于管理和检索图像文件。

发现东西存成文件放到电脑里边超级难找,找不到就成了破烂,说不定下次就被Format掉了。最近赶51前赶快把机器里不积累的小东西发到BLOG上来存档。
下边是很早转DRG数据时写的Python脚本都快在电脑里边沉下去了。

 1 # 功能:用于将调色板GEOTIFF转化为JPEG并获取元数据.py
 2 # 作者:贠建明
 3 # 日期:2007-1-22
 4 
 5 import os,sys,string
 6 
 7 # 遍历目录获取TIF文件名
 8 def GetTiffFileName(dir):
 9     filenames = []
10     
11     dirlist=os.listdir(dir)
12     for subdir in dirlist:
13         subdir = os.path.join(dir, subdir)
14         if os.path.isdir(subdir):
15             subfilelist=os.listdir(subdir)
16             for filename in subfilelist:
17                 if filename[-4:].lower()==".tif":
18                     filenames.append(os.path.join(subdir, filename))
19         else:
20             filenames.append(subdir)
21 
22     filelist=file("c:/filelist.txt",'w')
23     for filename in filenames:
24         filelist.write(filename + "\n")
25 
26     filelist.close()        
27     return filenames    
28 
29                
30 # 获取元数据到文件
31 def GetMetadata(filenames):
32     metainfo = file('c:/metainfo.txt','w')
33     for filename in filenames:
34         os.system("gdalinfo > C:/info.txt " + filename)   
35         info = file('C:/info.txt','r')
36         while True:
37             line = info.readline()
38             if len(line) == 0:
39                 break
40             
41             if line[:4== 'Size':
42                 #文件地址
43                 metainfo.write('\n')
44                 i = filename.rfind('\\')+1
45                 path = "c:\\JPG\\" + filename[i:-4+ ".jpg"              
46                 metainfo.write(path)
47                 metainfo.write(',')
48                 #分幅号
49                 noOrigin = filename[-17:-7]
50                 intNO = ord(noOrigin[0])-ord('A'+ 1  
51                 mapNo = str(intNO)+noOrigin[1:3]+noOrigin[4:]
52                 metainfo.write(mapNo)
53                 metainfo.write(',')
54                 # 列行号
55                 metainfo.write(line[8:len(line)-1])
56             if line[:10== 'Upper Left':
57                 metainfo.write(',')
58                 metainfo.write(line[14:len(line)-3])
59             if line[:11== 'Lower Right':
60                 metainfo.write(',')
61                 metainfo.write(line[14:len(line)-3])
62                 metainfo.write(',')
63                 # 投影带号
64                 strip = string.atoi(filename[-16:-14]) #'H:\DRG\I48E009021\I48E009021DRG.tif'[-16:-14]='48'
65                 strip = strip-30
66                 metainfo.write(str(strip))
67 
68         info.close()    
69 
70     metainfo.close();
71     
72     for filename in filenames:
73         os.system("gdalinfo >> C:/AllInfo.txt " + filename)    
74 
75 
76 # 进行TIFF到Jpeg的转化
77 def GeoTiff2Jpeg(filenames):
78     for filename in filenames:
79         os.system("call C:\FWTools1.0.5\setfw.bat & pct2rgb "+filename+" c:/rgb.tif")
80         i = filename.rfind('\\')+1
81         os.system("gdal_translate c:/rgb.tif -of JPEG c:/JPG/" + filename[i:-4+ ".jpg")
82 
83     
84 if __name__=="__main__":
85     files = GetTiffFileName('I:\\5万实验数据\\DRG')
86     #GetMetadata(files)
87     GeoTiff2Jpeg(files)
88    

转载于:https://www.cnblogs.com/flyingfish/archive/2007/04/28/730573.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值