আমি এই পোস্টের সাথে , কিউআইজিআইএসের বাইরে ওএসজিও 4 ডেল শেলের স্ক্রিপ্ট চালানোর চেষ্টা করছিলাম। তবে আমি নিম্নলিখিত ত্রুটি পেয়েছি:
আমদানি ত্রুটি: Qgis.core নামে কোনও মডিউল নেই
আমি নিম্নলিখিত পোস্টগুলি পড়েছি এবং বিভিন্ন মডিউল আমদানি করার চেষ্টা করেছি কিন্তু কোনও ফলসই হয়নি:
- কিউজিআইএস পাইথন কনসোলের বাইরে সিক্সেন্টেটি অ্যালগরিদমগুলি কীভাবে চালানো যায়?
- বাইরে থেকে কিউজিআইএস-এর জন্য কীভাবে একটি সাধারণ অজগর স্ক্রিপ্টটি চালানো যায় (যেমন সাব্লাইম টেক্সট)?
- পাইকিজিআইএস ব্যবহার করে একক পাইথন স্ক্রিপ্ট লিখছেন?
এখানে একটি সহজ স্ক্রিপ্ট যা গ্রিড তৈরি করে এবং এতে বহুভুজ শেফফিলিটি ক্লিপ করে।
দ্রষ্টব্য: এই স্ক্রিপ্টটি পরীক্ষা করা হয়েছে এবং কিউজিআইএস-এ চলাকালীন সফলভাবে কাজ করে।
##Test=name
import os
import glob
import sys
sys.path.append("C:\Program Files\QGIS Brighton\lib;%OSGEO4W_ROOT:\=/%/apps/qgis;%OSGEO4W_ROOT%\apps\qgis\bin;%OSGEO4W_ROOT%\apps\grass\grass-6.4.3\lib;%PATH%")
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.core import *
QgsApplication.setPrefixPath("C:\Program Files\QGIS Brighton\apps\qgis", True)
QgsApplication.initQgis()
from os.path import expanduser
home = expanduser("~")
# Folder path of the Results for shapefiles
path_dir = home + "\Desktop\Test\\"
path_res = path_dir + "Results\\"
def run():
# Set directory, search for all polygon .shp files and run the Create Grid and Clip algorithms then output results into Results folder
os.chdir(path_dir + "Shapefiles\\")
for fname in glob.glob("*.shp"):
outputs_1=processing.runalg("qgis:creategrid", 1000, 1000, 24108, 18351.157175, 258293.802316, 665638.226408, 1, 'EPSG:7405', None)
outputs_2=processing.runalg("qgis:clip", outputs_1['SAVENAME'], fname, path_res + "/"+ fname)
run()
QgsApplication.exitQgis()
# Remove the above line when running in QGIS
উত্তর এবং @gcarrillo দ্বারা পোস্ট করা স্ক্রিপ্ট অনুসরণ করে আমি পরিশেষে qgis.core.
সফলভাবে মডিউলগুলি আমদানি করতে পারি । @Gcarrillo দ্বারা সরবরাহিত স্ক্রিপ্টটি চলে তবে আমি একটি ট্রেসব্যাক ত্রুটি পেয়েছি:
Traceback (most recent call last):
File "Test.py", line 55, in <module>
run()
File "Test.py", line 53, in run
algClip.processAlgorithm(progress)
File "C:\Users\username\.qgis2\python\plugins\processing\algs\qgis\ftools\Clip.py", line 59, in processAlgorithm
layerA.pendingFields(),
AttributeError: 'NoneType' object has no attribute 'pendingFields'