আমি ওএসজিও 4 ডাব্লু ডিস্ট্রিবিউশন থেকে স্ট্যান্ডলোন পাইথন থেকে সেক্সট্যান্ট চালানোর উপায়টি বের করার চেষ্টা করতে এক ধরণের আটকে আছি। আমি এটি করতে চাই কারণ হ'ল প্রতিবার আমি মডেল বিল্ডারের কাছ থেকে কোনও মডেল পরীক্ষা করতে চাইলে ডায়লগটিতে প্যারামিটারগুলি প্রবেশ করিয়ে ক্লান্ত হয়ে পড়েছিলাম।
সুতরাং এখানে পাই অজগর লিপিটি এটি কল করুন test.py
# as per http://qgis.org/pyqgis-cookbook/intro.html#using-pyqgis-in-custom-application
from qgis.core import *
# supply path to where is your qgis installed
QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
# load providers
QgsApplication.initQgis()
from sextante.core.Sextante import Sextante
Sextante.alglist()
Sextante.alghelp("saga:slopeaspectcurvature")
যে আমি আমার ব্যাচ ফাইল থেকে কল করছি
@echo off
set OSGEO4W_ROOT=C:\OSGeo4W
set PYTHONPATH=%OSGEO4W_ROOT%\apps\qgis\python;%OSGEO4W_ROOT%\apps\qgis\python\plugins;%HOME%/.qgis/python/plugins
set PATH=%OSGEO4W_ROOT%\bin;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\qgis\plugins
python test.py
সমস্যাটি এটি বলে Algorithm not found
যেখানে আমি কিউজিআইএস পাইথন কনসোল থেকে অর্থপূর্ণ আউটপুট পাই।
আমার মনে হচ্ছে আমি কিছু শুরু করতে মিস করছি। কিন্তু কি?
জিইআইআই ব্যবহার করে টন পরামিতি প্রবেশের পরিবর্তে অন্য কোনও মডেল পরীক্ষা করার কি আরও ভাল উপায় আছে?
আপডেট 7/2/2012
আমি "খনি" অ্যালগরিদমগুলির সাথে পরীক্ষার জন্য জেনেরিক পাইথোনিক সমাধান খুঁজছি। পূর্বোক্ত অ্যালগরিদম কেবল একটি উদাহরণ যা দেখায় যে সম্ভবত কিছু শুরু করা হয়নি।
আপডেট 7/27/2012
স্ক্রিপ্ট রানার বিকল্প হ'ল আইপিথন কনসোলটি স্ক্রিপ্টগুলি ডিবাগ করার জন্য ব্যবহার করা । এর বাইরে আর কোনও কিছুই চলছে না বলে Sextante দিয়ে সিম্পল ইউনিট টেস্টিং করার উপায় বলে মনে হয় না :(
আপডেট 7/30/2012
ভিক্টর ওলেয়ার পরামর্শ অনুসারে, আমি নীচের কোডটির মতো Sextante আরম্ভ করার চেষ্টা করি।
#!/usr/bin/env python
import sys
from PyQt4.QtGui import QApplication
from sextante.core.Sextante import Sextante
def main():
""" main function or something """
# as per http://qgis.org/pyqgis-cookbook/intro.html#using-pyqgis-in-custom-application
from qgis.core import *
import qgis.utils
app = QApplication(sys.argv)
# supply path to where is your qgis installed
QgsApplication.setPrefixPath("C:/OSGeo4W/apps/qgis", True)
# load providers
QgsApplication.initQgis()
# how???
# qgis.utils.iface = QgisInterface.instance()
Sextante.initialize()
run_script(qgis.utils.iface)
def run_script(iface):
""" this shall be called from Script Runner"""
Sextante.alglist()
Sextante.alghelp("saga:slopeaspectcurvature")
if __name__=="__main__":
main()
তবে আমি কিছু পেতে
Traceback (most recent call last):
File "test.py", line 29, in
main()
File "test.py", line 20, in main
Sextante.initialize()
File "C:\Documents and Settings\user\.qgis\python\plugins\sextante\core\Sextante.py", line 94, in initialize
Sextante.addProvider(GrassAlgorithmProvider())
File "C:\Documents and Settings\user\.qgis\python\plugins\sextante\grass\GrassAlgorithmProvider.py", lin
e 17, in __init__
self.actions.append(DefineGrassRegionAction())
File "C:\Documents and Settings\user\.qgis\python\plugins\sextante\grass\DefineGrassRegionAction.py", li
ne 16, in __init__
canvas = QGisLayers.iface.mapCanvas()
AttributeError: 'NoneType' object has no attribute 'mapCanvas'
ঠিক আছে ... এটি সমস্তই একসাথে মেলিং তালিকার আলোচনায় পরিণত হয়। সম্ভবত এটি এসই এর পরিবর্তে কুইগিস-ব্যবহারকারী বা কিগিস-ডেভেলপারে যাওয়ার উপযুক্ত।
iface
স্বতন্ত্র QGIS স্ক্রিপ্টে অ্যাক্সেস করতে পারবেন না ।iface
পার্শ্ব কিউজিআইএস চলাকালীন কেবল তখনই ব্যবহার।