pdalhon betiğine gdal_merge çağrısı


10

Python için yeniyim ve (spyder) python betiğinde gdal_merge'nin nasıl kullanılacağına dair kafamı kırıyorum. Windows 10, Python 3.6 kullanıyorum ve osgeo4w'den gdal aracı yükledim. Diğer birçok gönderinin bu sorunu açıkladığını fark ettim, ancak hiçbiri bu sorunu çözmeme yardımcı olamaz.

Gdal modülünü cmd'den çağırdığımda, bir cazibe gibi çalışır:

 python "C:\OSGeo4W64\bin\gdal_merge.py" -o merged.tif input1.tif input2.tif

Ancak, bir python komut dosyasında (spyder) düzgün çalışmasını sağlayamıyorum.

İlk yaklaşım bir çıktı üretir ancak doğru adla üretmez: istediğim gibi bir 'out.tif' dosyası değil 'merged.tif' dosyası üretmez:

import sys
sys.path.append('C:\\OSGeo4W64\\bin')
import gdal_merge as gm
gm.main(['-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif'])

İkinci bir yaklaşım basitçe çıktı üretmez:

import subprocess
merge_command = ["python", "C:\OSGeo4W64\bin\gdal_merge.py", "-o", "merged.tif", "input1.tif", "input2.tif"]
subprocess.call(merge_command,shell=True)

Bu sorunun nasıl çözüleceği hakkında düşünceleriniz var mı?

Yanıtlar:


12

İlk yaklaşımda boş bir bağımsız değişken ekleyin (çünkü gdal_merge.py0'dan değil 1'den başlayan bağımsız değişkenleri ayrıştırır):

import sys
sys.path.append('C:\\OSGeo4W64\\bin')
import gdal_merge as gm
gm.main(['', '-o', 'merged.tif', 'N00W078.tif', 'N00W079.tif'])

Yolunu katıl gdal_merge.pyiçinde ikinci yaklaşımın :

import os, subprocess
gm = os.path.join('C:\\','OSGeo4W64','bin','gdal_merge.py')
merge_command = ["python", gm, "-o", "merged.tif", "input1.tif", "input2.tif"]
subprocess.call(merge_command,shell=True)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.