Код Python с плагином «Создание слоя точек из электронной таблицы» - PullRequest
0 голосов
/ 02 июля 2019

Я новичок в python, это первая проблема.Во-вторых, я пытаюсь автоматизировать задачу добавления векторных точечных слоев из электронных таблиц (xlsx-файлов) с помощью Python.Задача может быть выполнена вручную с помощью плагина «Добавить слой электронных таблиц».У меня есть папка с примерно 20 xlsx-файлами, которые нужно добавить в QGIS-проект в виде векторных точечных слоев.Я попробовал следующий фрагмент кода, чтобы проверить, работает ли основная задача добавления слоя электронных таблиц:

На компьютере установлена ​​ОС Win7.Речь идет о Python, который содержится в программе QGIS 3.4.Плагин, которым я хочу управлять через python, называется «Добавить слой электронных таблиц».

from qgis.core import *
import processing
processing.run("qgis:createpointslayerfromtable",
{'INPUT':r'C:\Users\Desktop\PlayItAll\Test.xlsx',
'XFIELD':'X_Pos',
'YFIELD':'Y_Pos',
'ZFIELD':None,
'MFIELD':None,
'TARGET_CRS':QgsCoordinateReferenceSystem('EPSG:4326'),
'OUTPUT':r'memory'})

Он выдает такую ​​ошибку:

File "C:/PROGRA1/QGIS31.4/apps/qgis/./python/plugins\processing\core\Processing.py", line 183, in runAlgorithm
raise QgsProcessingException(msg)

Я связался с программистом плагина, и ондал мне этот код, чтобы попробовать:

import processing
processing.runAndLoadResults("qgis:createpointslayerfromtable",
{
    'INPUT':r'C:\Users\username\Desktop\Delete\test.xlsx',
    'XFIELD':'Longitude',
    'YFIELD':'Latitude',
    'ZFIELD':None,               
    'MFIELD':None,
    'TARGET_CRS':QgsCoordinateReferenceSystem('EPSG:4326'),
    'OUTPUT':'memory'
})

Для него это сработало, для меня - нет.Я получил это на вкладке обработки:

2019-07-03T13:19:43     CRITICAL    Traceback (most recent call last):
              File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\processing\algs\qgis\PointsLayerFromTable.py", line 112, in processAlgorithm
              fields, wkb_type, target_crs)
             Exception: unknown


2019-07-03T13:19:43     CRITICAL    Traceback (most recent call last):
              File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python/plugins\processing\algs\qgis\PointsLayerFromTable.py", line 112, in processAlgorithm
              fields, wkb_type, target_crs)
             Exception: unknown

2019-07-03T13:19:43     CRITICAL     There were errors executing the algorithm.

На вкладке «Python Предупреждения» показано это:

2019-07-03T13:19:43     WARNING    warning:__console__:1: ResourceWarning:

             unclosed file


             traceback: File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\console\console.py", line 575, in runScriptEditor
              self.tabEditorWidget.currentWidget().newEditor.runScriptCode()
              File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\console\console_editor.py", line 629, in runScriptCode
              .format(filename.replace("\\", "/"), sys.getfilesystemencoding()))
              File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\console\console_sci.py", line 635, in runCommand
              more = self.runsource(src)
              File "C:/PROGRA~1/QGIS3~1.4/apps/qgis/./python\console\console_sci.py", line 665, in runsource
              return super(ShellScintilla, self).runsource(source, filename, symbol)
              File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\code.py", line 74, in runsource
              self.runcode(code)
              File "C:\PROGRA~1\QGIS3~1.4\apps\Python37\lib\code.py", line 90, in runcode
              exec(code, self.locals)
              File "", line 1, in 
...