发现东西存成文件放到电脑里边超级难找,找不到就成了破烂,说不定下次就被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