Автогенерування зображень карт різних стилів у QGIS? [зачинено]


9

У мене в QGIS проста карта, що містить лише 1 шар, який складається з 10+ функцій. Тепер мені потрібно (програмно) генерувати близько 200 різних зображень JPEG-карти з тієї ж області. Кожна карта повинна мати однакові розширення карти та всі видимі функції. Однак функції повинні мати різний набір кольорів у кожній створеній карті. Докладно, у мене є файл CSV, що містить класифіковані кольори для кожної функції (1 рядок для кожного зображення, 1 стовпець та колір на особливість), приблизно так:

"A","B","C","D","E","F" (header line, 6 columns in this file)
"#000000","#FF0000","#00FF00","#0000FF","#0000FF","#808080"
"#000000","#FF0000","#FF0000","#00FF00","#00FF00","#808080"
"#FF0000","#FF0000","#000000","#800080","#FFFFFF","#FFFF00"
...

Мій поточний план полягає у використанні Perl або подібного подібного для створення 200 різних QML-файлів на основі цього файлу CSV. Тоді я планую написати сценарій Python

  1. Проведіть цикл файлів QML
  2. Відкрийте кожен файл QML, по одному, і застосуйте до нього стиль шару
  3. Відкрийте композитор карти та збережіть файл растрових зображень
  4. Закрийте композитор карти і перейдіть до наступного файлу QML

Зараз я прошу будь-який внесок стосовно:

  • Чи можна це зробити в рамках QGIS + Python?
  • Які кращі способи досягти своєї мети?
  • Підказки щодо будь-якого існуючого вихідного коду чи плагіна для досягнення цього?

Відповіді:


21

Це можливо в QGIS без будь-якого програмування python, але вам знадобиться поточний знімок розробки QGIS 2.6, оскільки він покладається на функції, додані з моменту виходу 2.4. Ось необхідні кроки:

  • Налаштуйте шари карти за бажанням (ігноруючи забарвлення функцій, які матимуть динамічні кольорові заливки)

  • Створіть нового композитора друку. Додайте елемент карти до композиції та налаштуйте її розширення за бажанням.

  • Імпортуйте файл CSV, що містить потрібні кольори функції виведення карти

  • У композиторі для друку встановіть імпортований рівень CSV як "шар покриття атласу" (шукайте вкладку "Генерація атласу"). (Якщо ви експортували атлас зараз, ви повинні отримати 200 копій точно такої самої карти ...)

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

  • Далі потрібно налаштувати свої функції таким чином, щоб вони були стилізовані до кольорів, перелічених у файлі CSV. Це робиться за допомогою кнопки "Властивості, визначені даними" внизу вкладки стилю шару:

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

  • Вам потрібно буде позначити властивість "Колір", а потім натиснути кнопку "Е", щоб відкрити редактор виразів.

  • Вираз буде приблизно таким:

    attribute(  $atlasfeature , 'A' )
    

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

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

  • Створюйте інші функції аналогічно, але використовуючи стовпці "B", "C", "D" тощо

  • Повернувшись до композитора друку, ви можете увімкнути попередній перегляд атласу (меню Atlas -> Попередній перегляд атласу) та пройти через рядки файлу CSV за допомогою стрілок на панелі інструментів. Якщо все виглядає правильно, експортуйте атлас, використовуючи параметри в меню Атлас ... і все закінчено! Не потрібно програмування!

Приклади виходу:

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

тощо, тощо

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