Перезавантажуєте файл CSV в QGIS?


9

Я використовую QGIS для ілюстрації результатів мого моделювання Matlab. Matlab створює файл CSV, який підключений до файлу форми в рамках QGIS.

На даний момент я маю закрити і знову відкрити QGIS, щоб показати нові результати симуляції Matlab.

Чи можливо перезавантажити таблицю атрибутів CSV-файлу без закриття та повторного відкриття QGIS?


Дякую @Jason, ваша порада спрацювала для мене принадністю - за допомогою QGIS 3.10 опція знаходиться в розділі властивостей-> джерело ! [Propertiescreatespatialindex ] ( i.stack.imgur.com/5G3y5.png )
Hannes Buhrmann,

Відповіді:


3

Я можу запропонувати альтернативний робочий процес, який, хоча і не обов'язково простіше, ніж закривати та відкривати QGIS кожен раз, може мати більше сенсу:

  • Імпортуйте своє форма форми в просторовий
  • Імпортуйте CSV в просторовий (за допомогою параметра "Віртуальний TXT / CSV)"
  • Створіть просторовий вигляд у просторі, приєднавши просторову таблицю (файл форми) до віртуальної таблиці CSV

Тепер ви можете відображати подання в QGIS, як і будь-який просторовий шар, і використовувати значення JOINed з просторового простору. Але кожного разу, коли файл CSV буде відтворений, вам потрібно буде Зняти віртуальну таблицю CSV та повторно зв’язатись із нею. Тоді оновлення в QGIS покаже нові значення. Цього потрібно лише на мить, і більше того, ви можете визначити багато поглядів і зберегти попередні навколо, якщо потрібно ...

HTH


2

Для тих, хто все ще шукає відповідь на це, не використовуючи формат простору, я знайшов щось, що працює.

Якщо у вас є csv і використовуєте з'єднання, щоб приєднати його до просторового шару, одним із варіантів об'єднання є кешування шару. Ви можете отримати цей параметр, якщо перейти до властивостей свого шару, а потім до об'єднаних даних і натиснути редагувати приєднатися. Якщо вимкнути параметр кешу , ви можете перезавантажити рівень даних після зміни файлу csv, а потім запустити перефарбування вашої карти, щоб отримати оновлений вид карти.

Можна виконати перезавантаження та перефарбування на консолі Python. По-перше, вам слід визначити назву для карти полотна, csv та шару:

mc = iface.mapCanvas()
layer=mc.currentLayer()
csv_layer=mc.currentLayer()

Обов'язково активуйте шари, коли ви називаєте їх у консолі, використовуючи метод currentLayer (це повинен бути "поточний шар").

Потім, якщо ви встановите параметр кешу як вимкнено для свого приєднання, ви можете змінити csv, а потім використати наступні дві команди в консолі Python для перемальовування карти:

csv_layer.reload()
layer.triggerRepaint()

Це працювало для мене, але у мене було лише 100 рядків даних. Можливо, операції будуть повільними без кешування, коли у вас є більший набір даних.


0

Відкрийте властивості шару файлу форми і перейдіть до General- Coordinate reference system, натисніть Create spatial index. Після її завершення файл форми буде оновлений.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.