अजगर स्क्रिप्ट में gdal_merge बुला रहा है


10

मैं अजगर के लिए नया हूं और अपने सिर को तोड़ रहा हूं कि कैसे एक गुप्तचर (अजगर) अजगर स्क्रिप्ट में gdal_merge का उपयोग किया जाए। मैं विंडोज 10, पायथन 3.6 का उपयोग करता हूं और इसमें ओस्जेओ 4 डब्ल्यू से स्थापित गदल टूल है। मुझे लगता है कि कई अन्य पोस्ट इस समस्या का वर्णन करते हैं लेकिन कोई भी मुझे इस मुद्दे को हल करने में मदद नहीं कर सकता है।

जब मैं cmd ​​से गदल मॉड्यूल को कॉल करता हूं, तो यह एक आकर्षण की तरह काम करता है:

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

हालाँकि, मैं इसे अजगर स्क्रिप्ट (स्पाइडर) में ठीक से काम नहीं कर सकता।

पहला दृष्टिकोण एक आउटपुट का उत्पादन करता है, लेकिन सही नाम के साथ नहीं: यह एक 'आउट.टाइफ़' फ़ाइल का उत्पादन करता है, न कि 'मर्ज किए गए। टीआईफ़' फ़ाइल के रूप में।

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

एक दूसरा दृष्टिकोण केवल उत्पादन नहीं करता है:

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

इस मुद्दे को हल करने के बारे में कोई विचार?

जवाबों:


12

पहले दृष्टिकोण में एक खाली तर्क जोड़ें (क्योंकि gdal_merge.py1 से शुरू होने वाले तर्क 1 और 0 नहीं):

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

दूसरे दृष्टिकोणgdal_merge.py में शामिल हों :

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)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.