zoukankan      html  css  js  c++  java
  • 带调色板TIFF到Jpeg的转化Python脚本

    发现东西存成文件放到电脑里边超级难找,找不到就成了破烂,说不定下次就被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    
  • 相关阅读:
    Computer Vision: Algorithms and ApplicationsのImage processing
    LOJ6079「2017 山东一轮集训 Day7」养猫
    网络七层协议及其作用
    观察者模式深度剖析
    NIO 中的读和写
    NIO的通道和缓冲区
    NIO简介
    使用OutputStream向屏幕上输出内容
    对象的序列化
    PushBackInputStream回退流
  • 原文地址:https://www.cnblogs.com/flyingfish/p/730573.html
Copyright © 2011-2022 走看看