GeoCrop 1.0
Я подумал и решил, что функционала и стабильности достаточно для релиза версии 1.0.
Так что да будет так: https://github.com/h4tr3d/geocrop/releases/tag/v1.0
Я подумал и решил, что функционала и стабильности достаточно для релиза версии 1.0.
Так что да будет так: https://github.com/h4tr3d/geocrop/releases/tag/v1.0
Если у вас на входе привязанный GeoTIFF, то проблем нет никаких, но если у вас просто растр (.png, .jpeg, .gif) и привязка для него, то есть нюансы. Вообще, GeoCrop умеет работать с любыми данными, с которыми умеет общаться GDAL. Но в в некоторых случаях не всё получается гладко, так, например, только сегодня он научился читать файл проекции для world-привязок (пара .prj+.pgw).
На просторах интернета можно встретить различные описания привязок, самые популярные:
GDAL не умеет только шифрованные OZFX, а так привязанная карта представляет собой пару .map+растр, где растр - это, обычно, .gif, .jpg или .png, реже - .bmp. При наличии такой привязки geocrop можно вызвать без дополнительных приготовлений: geocrop -f VRT -s 50k K-53-026-A.map K-53-026-A.vrt
Обратите внимание, что передаётся map файл, а не растр.
Т.к. сама привязка состоит из двух файлов (.prj+.pgw), то не так просто сказать, что и откуда читать. Согласно документации .pgw, .pngw или .wld файл((Описание формата: http://www.gdal.org/frmt_various.html#WLD)) подтягивается автоматически, если на входе карта в PNG (про другие форматы - ниже), а вот .prj файл нужно читать самому. Для этого в последней версии GeoCrop сделана небольшая эвристика:
-p srs_def
Т.е. при наличии привязки в виде world files GeoCrop так же можно вызвать без дополнительных приготовлений так: geocrop -f VRT -s 50k K-53-026-A.png K-53-026-A.vrt если файл проекции находится в K-53-026-A.prj или K-53-026-A.prf, или так: geocrop -f VRT -s 50k -p K-53-026-A.wkt K-53-026-A.png K-53-026-A.vrt
Обратите внимание, что в обоих случаях в качестве входного источника передаётся сам растр, а не его привязка.
Если у вас растры отличные от PNG:
Полный и актуальный список всегда можно посмотреть тут: http://www.gdal.org/formats_list.html
В данный момент GDAL не поддерживает данный формат, а значит не поддерживает и GeoCrop. Ищите способ как сконвертировать его во что-то удобочитаемое.
Вообще .gmw файлы достаточно простые для разбора, так что, возможно, появится у меня и их поддержка. Тем более, что для тех же карт GGC там сразу зашита информация об обрезке (только странно, что они сразу не сделали рамку прозрачной).
Теперь в
GeoCrop появился новый режим: генерация полигона для обрезки рамки в формате CSV+WKT. Вывод на stdout, так что можно сохранить в любой удобный файл из скрипта, после чего использовать как аргумент для -cutline
у gdalwarp в какой-то более сложной команде. Вызова gdalwarp при этом не происходит.
Активируется режим опцией -g
(от [g]enerate). Указывать выходной файл при этом не нужно - он будет проигнорирован.
Так же, теперь появилась возможность указывать файл с описанием проекции: -p srs_file
. Сама проекция должна быть в формате WKT или PROJ.4. Эта опция перезаписывает определение проекции в текущем файле. Полезна для преобразования файлов с привязками в виде world-файлов. Более того, если проекция в файле пустая, а опция не указана то произведётся попытка прочитать её автоматически из файла с таким же именем, но с расширением .prj или .prf (какой первый попадётся). Так что популярные карты ГГЦ с такими привязками теперь можно конвертировать так же просто, как и с привязками Ozi Explorer.
Чуть раньше реализована функциональность по передаче дополнительных параметров gdalwarp. Для этого нужно завершить опции приложения двойным минусом --
, опции после него будут переданы gdalwarp как есть без изменений:
geocrop -f VRT -s 200k K-53-07.map K-53-07.vrt – -overwrite
опция -overwrite
будет передана gdalwarp. Помимо этого, теперь можно переопределить и сам исполняемый файл gdalwarp - опция -w GDALWARP
.
Кроме того изменился формат опций, стало возможным указывать выходной формат (опция -f FMT
, как следствие, образовались такие возможности:
post/2016/02/11/bystro_i_nenavjazchivo_gotovim_kartu_dlja_otkrytija_v_qmapshack) или только обрезать рамку, не делая кроп (опция -n
).
Внезапно QMapShack стал юзабельным!
Но немного истории. QMapShack это революционное развитие QLandkarteGT от того же автора. Просто архитектурно QLandkarteGT перестал соответствовать требованиям.
Итак, как минимум следующие фичи теперь доступны в QMS (принятая аббревиатура для QMapShack в расслылке)(((!) отмечены фичи уникальные, по сравнению с QLGT, а (-), то, что убрано, (?) - спорные изменения)):
А вот теперь каких инструментов не хватает в QMS, но есть в QLGT:
Ну и ссылки:
Для примера будет рассмотрен сервис http://loadmap.net, который предоставляет карты с привязками в формате OziExplorer.
Минусом подобных карт бывает то, что у них есть рамка и отдельные листы карт перекрывают друг друга при открытии. Для того, что бы рамку резать я уже написал ранее((ozi2map от туда более не актуальна)) про свою программку geocrop.
Теперь про самый смак: QMS умеет открывать .vrt файлы. VRT файл это XML документ, с описанием привязки и различных преобразований, понятные движку GDAL. Так вот, в ходе беглого исследования оказалось, что мой способ резки рамки применим к VRT файлам: данное преобразование просто сохраняется внутри и применяется при открытии! Если добавить сюда тот факт, что переконвертации самого растра не происходит и просто формируется дополнительный маленький XML файл, то счастье становится полным.
Рассматривать вопрос сборки программы я подробно не буду, скажу только, что нужны dev пакеты для libgdal и libproj4. Устанавливать программу не нужно - просто скопируйте в удобное место, у меня это ~/bin
. Сборка и работа на Windows не проверялась.
Вот, преамбула завершилась… Основная часть будет короче :)
Скачиваем растровый файл карты, допустим это 500-метровка K-53-027-A, тогда файл будет K-53-027-A.png
Скачиваем файл привязки K-53-027-A.map
Обрезаем рамку и формируем VRT:
~/bin/geocrop -s 50k -f VRT K-53-027-A.map K-53-027-A.vrt
Обратите внимание на параметр -s - он задаёт масштаб листа в виде делителя, т.е. опущена 1:
, а буква обозначает степень десятки на которое нужно домножить: 50k (кило) = 50 * 10^3 = 50000 и масштаб тогда 1:50000, т.е. пятисотметровка.
//Их было четверо…
Они шли, шли, шли и, наконец, пришли!//
Наконец-то первый полноценный снегоступный ПВД за сезон. То несросты, то переносы, но всё-таки собрались: Я, Коля, Кирилл и Гена.
А вообще, пробую завести ещё одну традицию: снегоступинг на Читинзу во второй половине января или начале февраля. В прошлом году была первая серия.
Как обычно, выехали на первой электричке в субботу, домой возвращались на крайней в воскресенье.
Маршрут изначально намечали:
Партизан (пл.98 км) - руч.Просечный - С-В хребет - вершина 1156 м - трверс на Читинзу - Читинза - С-З хребет - р.Постышевка - Наречное.
Но в электричке скорректировали его до:
Красноармейский - Ручьи - С-С-В хребет (классика) - Читинза - траверс на Смольную - Смольная - С-В хребет - вершина 734 м - руч.Прав.Лесопильный - Тигровой
Небольшая сводка:
День | Протопали, км |
Набор высоты, м |
Сброс высоты, м |
Время в движении, ч |
Средняя скорость, км/ч |
Начало движения, ч |
Конец движения, ч |
---|---|---|---|---|---|---|---|
Cб | 16.9 | 1434 | 554 | 06:25 | 2.0 | 10:00 | 18:34 |
Вс | 14.2 | 201 | 1091 | 04:33 | 3.1 | 09:04 | 14:38 |
Всего | 31 | 1635 | 1645 | 10:58 | 2.8 | — | — |
Подкатом немного текста и фотографий.
Не могу не пропиарить цикл статей по управлению и устройству различных электродвигателей (ДПТ, АД, СД, всякие шаговики и так далее):
Да и вообще рекомендую блог к подписке: НПФ ВЕКТОР
Поражаюсь способности наших заграничных друзей давать всему свои термины, стоить под это целы ниши услуг и товаров. Чего только стоит:
Под каждую нишу своё снаряжение, подготовленные тропы, гиды и так далее.
При чём тут снегоступы? Оказывается и для них есть свои названия:
В статье на Snowshoe|википедии про это есть. Уж не знаю, существуют ли подготовленные снегоступные трассы, но если ответ положительный - я не удивлюсь :)
Хорошая статья на тему (автор - полярник):
Правда не знал, что -20, даже при ветре, это экстремально холодно :)
По способам: всё правильно. К примеру, дыхание ртом, когда язык загибаешь к нёбу. Про этот способ несколько лет назад сказал мой друг Олег. С тех пор и пользуюсь. Балаклава с “намордником” тоже решает. Правда скулы нужно не забывать закрывать, а то легкие не застудишь, а ряху обморозишь.
Кто не понял - название шутка. Привет Спайдеру :wink:
На воробей сходить никого сблатовать не получилось. Пришлось ноги напрячь, хотя бы где-то в районе города. Результат:
К слову сказать - до Острой не дошёл, но об этом дальше.