Як генерувати ескізи зображень із безлічі форм-файлів?


9

Нещодавно ми з колегою випустили проект з відкритим кодом під назвою Mapoteca, який є набором сценаріїв Python, який інтегрується з установкою GDAL / FWTools, що дозволяє повною мірою ознайомитися з каталогами, які шукають просторові дані та отримують ступінь, геометрію, кількість елементів, проекцію і користувач записує його у файл CSV. Ми працюємо над частиною, яка описує пов'язані файли DBF, і ми хотіли створити мініатюрні зображення кожного формфайлу, чи знаєте ви про спосіб створення цих мініатюр у jpeg чи png за допомогою Python?

Відповіді:




2

Найпростішим способом було б викликати gdal_rasterize за допомогою subprocess.call (), але я підозрюю, що це не робить ніякої інтерполяції, тому він би псевдонімів до точки нерозбірливості, якщо ви створили зображення розміру мініатюри прямо з даних. Таким чином, ви повинні створити тимчасове зображення "розумного розміру" * і використовувати бібліотеку зображень Python для масштабування його до потрібного розміру.

Але я думаю, що найбільша проблема буде полягати в тому, на якому атрибуті ви будете базувати свій стиль? Shapefiles не має властивої інформації відображення, як я впевнений, ви знаєте, тому вам потрібно буде знайти спосіб вирішення, які кольори використовувати. gdal_rasterize дає вам можливість це робити, але вибір, як правило, ґрунтується на знаннях, характерних для домену. Щоб мати загальний інструмент, вам доведеться мати загальну схему стилізації.

* Це теж щось, для чого вам, можливо, доведеться скласти кілька жорстких правил. Можливо, почніть з ідеального розміру пікселя (скажімо, 10 м на піксель), і збільште його, якщо отримане зображення занадто велике, щоб бути практичним.



1

Тільки задля повноти - mapserver також може надати гарні карти з різних базових даних у командному рядку за допомогою утиліти shp2img . Знову ж, вам потрібно буде визначитися з дуже загальним, дуже простим стилем, який відповідає вашим цілям.


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