我想用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)
谢谢
答案 0 :(得分:0)
在您的代码中,“ dem”是Popen对象,而不是代表文件名的字符串,因此gdal无法读取它。
如果映像位于远程服务器上,则需要通过网络复制数据或在远程服务器上运行代码。您可以使用带有scp的子进程来首先复制图像数据,并且还有paramiko库可以直接在python中执行此操作而无需启动新进程;参见How to scp in python?。