Как импортировать TIF в Попен - PullRequest
1 голос
/ 29 апреля 2019

Я хочу импортировать tif-файл с помощью Popen, а затем открыть его с помощью 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)

Спасибо

1 Ответ

0 голосов
/ 30 апреля 2019

В вашем коде "dem" - это объект Popen, а не строка, представляющая имя файла, поэтому gdal не может его прочитать.

Если изображение находится на удаленном сервере, вам нужно либо скопировать данные по сети, либо запустить свой код на удаленном сервере. Вы можете использовать подпроцесс с scp, чтобы сначала скопировать данные изображения, а также есть библиотека paramiko, которая делает это непосредственно в python, не запуская новый процесс; см Как scp в питоне? .

...