The more tools the better ;-)

Как-то незаметно для самого себя оказался втянут в процесс разработки и улучшения QGIS. Все началось с самого обыкновенного письма с предложением работы (буквально несколько дней назад как раз писал об этом). Во время обсуждения ТЗ Олег спросил о возможности создать универсальный плагин для вывода статистки, вроде того, что есть в ArcMap и дал ссылку на обсуждение на ГИС-Лабе, посвященное этой теме.

Дело в том, что в QGIS нет стандартных инстументов просмотра статистики по полю атрибутивной таблицы. Конечно, существуют fTools Carson’а Farmer’a, где присутствует инструмент Basic statistics, но он работает для всего слоя, игнорируя выборку, что не всегда удобно. Задача показалась мне интересной, поэтому выполнив работу я занялся этим вопросом.

Прежде всего изучил код fTools — он (они?), как и все Python плагины, распространяется в исходниках. Как уже говорил, API QGIS достаточно хорошо спроектирован и логичен, а Python язык довольно простой и к тому же требовательный к оформлению кода, поэтому больших трудностей не было. В итоге, взяв за основу код Carson’а, я написал свой инструмент, Carson’у же отправил патч, добавляющий возможность получать статистику не только для всего слоя, но и для выборки. Кроме того, запостил сообщение в теме на ГИС-Лабе, и выслал Олегу плагин для тестирования. Скажу честно, совершенно не ожидал такой реакции и последовавшего развития событий.

Сначала получил предложение по развитию плагина от Олега, суть которого сводится к следующему: изначально плагин работает только с числовыми полями, а неплохо было бы добавить статистику и по текстовым (например, количество заполенных/незаполненных, средняя длина текста и т.д.). Взял на заметку, начал реализовывать.

Вскоре пришел ответ от Carson’а. Оказывается, он тоже задумывался над добавлением возможности работать с выборкой, но у него сейчас много других проектов, и процесс движется медленно. Так что патч пришелся весьма кстати. Написал ему о статистике по текстовым полям, предложил добавить этот функционал в fTools, что было встречено с радостью. Именно заключительная фраза из письма Carson’а и вынесена в заголовок этого поста.

Не прошел незамеченным и пост на ГИС-Лабе. Получил одобрение и поддержку от тамошнего админа, а сам еще больше увяз в процессе :-).

И знаете, мне это нравится. Жутко приятно ощущать, что ты делаешь что-то полезное; осознавать, что твоя работа нужна и не проходит незамеченной; чувствовать поддержку и получать благодарность совершенно незнакомых людей. Разительный контраст с ситуацией на работе.

Наверное, здесь и кроется ответ на вопрос, озвученный в предыдущем посте. Сидеть без дела я не привык, и раз мои знания, мой опыт, я сам в конце-концов, не востребованы на работе, то неужели мне остается только и делать что переносить системники с места на место, в 100й раз рассказывать как печатать на листах формата А3, никуда не развиваться и топтаться на месте или, что еще хуже, постепенно деградировать? Ну уж нет, найдутся другие, более интересные и полезные занятия! Вот откуда эта непонятная тяга к участию в различных проектах!

Хотя, возможно, я и не прав и это просто пришло время для подъема на очередную ступень развития. Нечто подобное случалось и раньше, стоит вспомнить с каким энтузиазмом я в свое время взялся за освоение ГИС Геопроект и создание шаблонов для нее. В итоге на свет появился сборник FAQ, несколько статей, а сам я неожиданно для себя стал модератором форума технической поддержки. В связи с этим не могу не поблагодарить Евгения Ясникова (Гуру) за помощь в освоении Геопроекта, за поддержку начинаний и оказанное доверие.

Тем временем, работа над плагином статистики продолжается. Уже работает получиние информации по текстовым полям (как для всего слоя, так и для выборки). Олег прислал еще два фич-реквеста:

  • вывод гистограммы частотного распределения значений (как в ArcMap);
  • ему не нравится, что для получения информации нужно жать на кнопку :-), хочется автоматическо расчета сразу же после выбора необходимого поля.

Второе пожелание уже выполнено, начал изучать возможность построения графиков средствами PyQt, чтобы закрыть второй реквест. Кроме того, немного перестроил код плагина чтобы была возможность локализации, делаю перевод на украинский и русский языки. Параллельно пытаюсь добавить в fTools возможность выполнять пространственные операции не только над всем слоем, а и над выделенными объектами.

Очень ощущается нехватка времени: работа и, в меньшей степени, танцы не позволяют уделять достаточное количество времени для всего, чем хотелось бы заняться. Усугубляется ситуация и бытовыми проблемами — не всегда при наличии времени есть возможность поработать за компом.

Мітки: ,

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

*