Я занимаюсь исследованиями и разработками для будущего проекта и надеюсь, что смогу запустить этот POC.Я не видел много онлайн о том, что я делаю - так что, надеюсь, я просто делаю что-то новое, а не невозможное.
Задача:
Мы получаемГеопространственные данные ArcGIS из примерно 250 источников - некоторые являются шейп-файлами, некоторые - AutoCAD, другие - файловой базой геоданных.Текущее решение включает в себя модель дуги для каждого источника, которая нормализует данные для дальнейшей обработки ETL - в настоящее время с выводом шейп-файла.Эти модели работают в ArcGIS до версии 10.6, в которой в качестве движка используется Python 2.7.
Для каждой из этих моделей я могу экспортировать скрипт Python этой модели.Новое решение будет предназначаться для корпоративной базы геоданных, размещенной на SQL Server 2017, с доступными службами машинного обучения (включая поддержку Python!).В идеале я хочу иметь возможность хранить этот экспортированный код Python в хранимой процедуре, которая может быть вызвана как часть большего потока данных SSIS.Альтернатива, которую я уже разработал, - это использовать задачу EXECUTE PROCESS в ArcGIS-копии python.exe с файлом * .py в качестве параметра.
Я нашел archookонлайн-проект, который хорошо показывает среду Python для соответствующих каталогов ArcGIS.
Контрольно-пропускной пункт:
- У меня проблемы соператоры импорта для модулей на основе ArcGIS.Я работаю с урезанной версией экспортированного Python - только операторы импорта.
EXEC sp_execute_external_script @language = N'Python',
@script = N'
import archook
archook.get_arcpy()
import arcpy'
- Я исследовал некоторые потенциальные совместимостиArcGIS является 32-разрядной, а SQL Server - 64-разрядной, поэтому я установил 64-разрядные инструменты фоновой геообработки, которые ArcHook, похоже, успешно находит. Кроме того, ArcGIS использует Python 2.7, а MLS использует Python 3.5, поэтому я 'Мы изменили одну версию модуля ArcHook для сопоставления с каталогами Python SQL Server Pro (который построен на 3.5). В обоих примерах MLS может найти модуль arcpy, но не может его загрузить. Я склонен кПолагаю, что решение Arc Pro более правдоподобно благодаря версии Python. Фактическое сообщение об ошибке, которое я получаю при этом выполнении:
Файл "C: \ PROGRA ~ 1 \ MICROS ~ 2\ MSSQL1 ~ 2.DEV \ MSSQL \ EXTENS ~ 1 \ DEV1701 \ 02830305-BCB6-49B3-AEEF-51DDB28FF180 \ sqlindb.py ", строка 37, в файле преобразования transform import arcpy Файл" C: \ Program Files \ ArcGIS \ Pro \ Resources\ arcpy \ аrcpy__init__.py ", строка 72, из файла arcpy.geoprocessing import gp Файл" C: \ Program Files \ ArcGIS \ Pro \ Resources \ arcpy \ arcpy \ геопроцессинг__init __. py ", строка 14, из файла ._base import * Файл" C ": \ Program Files \ ArcGIS \ Pro \ Resources \ arcpy \ arcpy \ геопроцессинг_базы.py ", строка 14, в import arcgisscripting ImportError: Ошибка загрузки DLL: указанный модуль не найден.
Ошибка SqlS satelliteCall: Ошибкав исполнении.Проверьте вывод для получения дополнительной информации.STDOUT сообщение (я) из внешнего сценария: сбой функции SqlS satelliteCall.Пожалуйста, смотрите вывод консоли для получения дополнительной информации.Трассировка (последний вызов был последним): файл "C: \ Program Files \ Microsoft SQL Server \ MSSQL14.DEV17 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ computecontext \ RxInSqlServer.py", строка 406, в rx_sql_s satellite_call rx_native_lall (спутниковый вызов)", params) Файл" C: \ Program Files \ Microsoft SQL Server \ MSSQL14.DEV17 \ PYTHON_SERVICES \ lib \ site-packages \ revoscalepy \ RxSerializable.py ", строка 291, в rx_native_call ret = px_call (имя функции, параметры) RuntimeError:Сбой функции revoscalepy.
Если у кого-либо есть какие-либо идеи относительно запуска скриптов ArcGIS во внешней среде или запуска внешних скриптов в MLS, я был бы признателен за любые идеи.