如何在Popen中导入Tif

问题描述 投票:0回答:1

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

谢谢

python subprocess popen gdal
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.