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