如何在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?。
我想用 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?。