如何在Popen中导入Tif

时间:2019-04-29 09:28:25

标签: python subprocess popen gdal

我想用Popen导入tif文件,然后用gdal.open打开它,因为以后我想使用其他gdal实用程序。用Popen导入似乎有效。但是对于“ src_ds = gdal.Open(src_filename)”行,我得到以下错误:

    return _gdal.Open(*args)
RuntimeError: not a string

代码

from osgeo import gdal,ogr
import struct

from subprocess import Popen, PIPE, STDOUT
user = "user"
host = "host"

dem = Popen(
    ["ssh", "{}@{}".format(user, host), "tif.tiff"], shell= True
)
dem.wait()

src_filename = dem
shp_filename = out_file1


src_ds=gdal.Open(src_filename)
gt=src_ds.GetGeoTransform()
rb=src_ds.GetRasterBand(1)

谢谢

1 个答案:

答案 0 :(得分:0)

在您的代码中,“ dem”是Popen对象,而不是代表文件名的字符串,因此gdal无法读取它。

如果映像位于远程服务器上,则需要通过网络复制数据或在远程服务器上运行代码。您可以使用带有scp的子进程来首先复制图像数据,并且还有paramiko库可以直接在python中执行此操作而无需启动新进程;参见How to scp in python?