python对卫星地图tif文件转换?

Python011

python对卫星地图tif文件转换?,第1张

pathjoin那里错了。应该是:

图一中的错误表明,imread返回值img是None

imread的第一个参数,即使传入的是一个无效的文件名,它也不会抛出错误,而是返回一个None.

第一个参数的赋值是this.dir = os.path.join(dir + ...)

这种写法并不好,一般来说,应该是写成

this.dir = os.path.join(dir , filename)

并且,你应当在这之后检查一下这个文件是否存在:

if not os.path.isfile(this.dir):

....raise FileNotFoundError(this.dir)

然后才可以交给imread()去读取

import os

n=1

for x in os.listdir(r'e:/tif'): #文件夹路径自己改

if x[-3:]=='tif':

os.renames(x,str(n)+'.tif')

n+=1

用python读取TIFF文件,可采用以下代码

framedim = [2048,2048]

nb_elem = framedim[0]*framedim[1]

offset = 4096

formatdata = np.uint16

f = open(path, 'rb')

f.seek(offset)#TODO: only header size for tiff !!

d = np.fromfile(f, dtype=formatdata, count=nb_elem).reshape(framedim)

写入TIFF文件,则需要pylibtiff库

例如

from libtiff import TIFF

tif = TIFF.open(path, 'w')

tif.write_image(image)

image为二维ndarray