2016-10-05 11 views
0

Я создал довольно большой файл CSV (63000 строк и около 40 столбцов), и я хочу присоединиться к нему с помощью файла ESRI Shapefile. Я использовал ArcPy, но весь процесс занимает 30! минут. Если я присоединяюсь к оригинальному (маленькому) CSV-файлу, присоединяюсь к нему с помощью Shapefile, а затем делаю свои вычисления с помощью ArcPy и постоянно добавляю новые поля и вычисляю материал, который требуется 20 минут. Я ищу более быстрое решение и обнаружил, что есть другие модули Python, такие как PySHP или DBFPy, но я не нашел возможности для соединения таблиц, надеясь, что это может ускориться.Таблица DBF Join без использования Arcpy?

Моя цель - уйти от ArcPy настолько, насколько я могу и предпочтительнее использовать Python, поэтому предпочтительно не PostgreSQL и не alikes.

У кого-нибудь есть решение для этого? Большое спасибо!

+0

экспортировать шейп в Numpy массив с помощью FeatureClassToNumPyArray в arcpy. Прочитайте таблицу в массив numpy (множество опций). Импортируйте настройки numpy ... есть возможность присоединиться к табличным данным, встроенным там. (импортируйте numpy.lib.recfunctions как rfn .... затем выполните dir (rfn), чтобы найти функции) – NaN

+0

@NaN: Пожалуйста, сделайте этот ответ более подробной информацией. –

+0

Можете ли вы дать нам некоторые подробности о соединении и какие операции вы делаете? –

ответ

0

Не совсем подходит для записать программное моей проблемы, но на практике один:

Мой шейпфайл всегда статичны, только атрибуты функции будут меняться. Поэтому я копирую свой оригинальный шейп-файл (только основные файлы с окончаниями .shp, .shx, .prj) в мою папку вывода и переименовываю его в имя, которое я хочу. Затем я создаю свой CSV-файл со всеми вычислениями и преобразовываю его в DBF и сохраняю его с именем моего нового шейп-файла в выходной папке. Теперь ArcGIS загрузит шейп-файл вместе с моим собственным файлом DBF, и мне даже не нужно вообще ничего делать в tablejoin!

Теперь моя программа проходит через всего 50 секунд!

Я по-прежнему интересуюсь большим количеством решений для проблемы соединения таблиц, возможно, я снова столкнусь с этой проблемой в будущем, когда шейп-файл НЕ всегда статичен. Я не очень понимаю, решение Нэн, я до сих пор на «новичка» продвинутый уровень в Python :)

Приветствий

 Смежные вопросы

  • Нет связанных вопросов^_^