Збереження рівнянь, які використовуються в QGIS Field Calculator?


10

Я намагаюся обчислити певні значення щойно обчисленої точки. Тому я використовую калькулятор поля, щоб написати рівняння для визначення значень.

Чи є спосіб зберегти це рівняння, так що якщо і коли я розпочну нову роботу, мені не доведеться вводити її знову?

Щось схоже на те, як ви зберігаєте стилі та символіку для масиву точок.


Це хороший запит на функцію, і його було б легко додати.
Натан Ш

Відповіді:


5

QGIS зберігає останнє рівняння, використане в калькуляторі поля, на вкладці "Останні", де ви можете повторно використовувати його, двічі клацнувши його

img польового обчислення


Це правильно, якщо ОП не використовував інших рівнянь пізніше. Але вона зникне з часом, коли ОП використовує нові рівняння. RecentКонтейнер тільки тимчасово.
ахмадханб

5

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

Відкрийте польовий калькулятор, натисніть на Function Editorвкладку, new fileа потім відредагуйте функцію. Виберіть load. Зауважте, що наразі це okбуде недоступне.

Поверніться до Expressionвкладки, виберіть customгрупу функцій та двічі клацніть на вашій функції. Виберіть поле для оновлення та натисніть ok.


Якщо ви хочете використовувати лише значення поля та константи, ви можете редагувати підпис функції за замовчуванням, який починається з value1. У моєму прикладі я його видалив, але ви можете використовувати це поле (поля) для передачі нових аргументів.

Потім ви можете отримати доступ до значень поля функції за допомогою feature["fieldName"].... будьте обережні, щоб викликати цю функцію лише на шарах, що містять вказані поля!

@qgsfunction(args='auto', group='Custom')
def funcTestCalc( feature, parent):
    return feature["fieldA"]+feature["fieldB"];

введіть тут опис зображення введіть тут опис зображення


3

На додаток до рішення від @LaughU, ви можете включити будь-яку операцію калькулятора поля у графічну модель, а потім зберегти та запустити модель. Для цього потрібно, щоб назви стовпців завжди були однаковими.


2

Якщо ви додаєте нову точку до вже існуючого шару і хочете виконати такий самий розрахунок для цієї точки, як і для всіх інших точок, ось дві корисні функції:

Віртуальне поле

Віртуальне поле автоматично обчислює вираз для кожного нового атрибута. Він також регулярно оновлюється. Так, наприклад, для віртуального поля під назвою "широта" ви могли б використовувати вираз $y.

Плюси і мінуси віртуальних полів:

  • Щоразу, коли ви додаєте нову точку, вона автоматично матиме результат виразу доданого до цього поля.
  • Автоматично оновлюється щоразу, коли вираз викладене змінюється. Отже, якщо перемістити точку в прикладі, значення "широти" зміниться автоматично.
  • Ви не можете редагувати значення віртуального поля.
  • Віртуальні поля зберігаються як частина файлу проекту QGIS, а не як формафайлу (або будь-якого формату, в якому знаходиться ваш шар). Отже, якщо ви відкриєте шар в іншому проекті, він не матиме своїх віртуальних полів.

Звичайне поле зі значенням поля за замовчуванням

Ви можете встановити поле для значення за замовчуванням на основі виразу. Коли ви створюєте нову точку, її атрибут буде автоматично заповнений значенням за замовчуванням. Ви можете змінити значення атрибута. Це не оновлюється автоматично. *

Плюси і мінуси значень поля за замовчуванням:

  • Щоразу, коли ви додаєте нову точку, вона автоматично матиме результат виразу доданого до цього поля.
  • Не оновлюється автоматично. У прикладі це означає, що якби ви перемістили існуючу точку, її значення "широти" не буде оновлено.
  • Ви можете змінити значення цього поля.
  • Збережено як частину файлу форми. Отже, якщо ви відкриєте шар в іншому проекті, він буде мати це поле в таблиці атрибутів.

* У QGIS 3.2 значення поля за замовчуванням можна (необов'язково) встановити на "застосувати значення за замовчуванням для оновлення". За допомогою цього параметра, якщо ви перемістите точку, де значенням за замовчуванням є $yпоточне значення, буде замінено новою координатою y.


Я думаю, що значення поля за замовчуванням можна встановити для автоматичного оновлення в QGIS 3.2.
she_weeds

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