如何在Popen中导入Tif

How to import Tif in Popen

我想用 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)

谢谢

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

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