You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#51 2015-01-05 07:04:45

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

кажется, понял откуда зубцы
они, скорее всего, появляются при перепроецировании
то есть, вопрос можно переформулировать так - как надо вызвать gdalwarp.exe чтобы не было зубцов?
я делал вот так:
c:\Program Files (x86)\GDAL>gdalwarp.exe -t_srs EPSG:3395 LC81080122014254L
GN00_B5_8b.TIF LC81080122014254LGN00_B5_8b_MERC.TIF

upd. Похоже, разобрался

Last edited by Vort (2015-01-05 07:15:15)

Offline

#52 2015-01-05 07:30:50

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Новогоднее обновление scanaerial

Логично. Чтобы избежать дополнительной интерполяции, можно еще сразу перепроецировать в EPSG:3857 - это Маркатор на сфере, а не на эллипсоиде WGS84.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#53 2015-01-05 07:45:10

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

BushmanK wrote:

Логично. Чтобы избежать дополнительной интерполяции, можно еще сразу перепроецировать в EPSG:3857 - это Маркатор на сфере, а не на эллипсоиде WGS84.

спасибо
вот что вышло в итоге:

set imagename=LC81080122014254LGN00_B5
del %imagename%_8bit.TIF
del %imagename%_8bit_merc.TIF
gdal_translate.exe -scale 4000 14000 -ot Byte e:\Downloads\ls\%imagename%.TIF %imagename%_8bit.TIF
gdalwarp.exe -r bilinear -t_srs EPSG:3857 %imagename%_8bit.TIF %imagename%_8bit_merc.TIF
gdal2tiles.py -z 6-11 %imagename%_8bit_merc.TIF

---

теперь могу ответить насчёт 8го канала:
некоторые озёра на нём просто не видны (потому что замёрзшие?)

Last edited by Vort (2015-01-09 08:37:27)

Offline

#54 2015-01-05 07:59:35

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Добавил в scanaerial поддержку инвертированной координаты Y
Теперь локальный сервер у меня подключается вот так:
server_api = tms
server_name = Landsat
server_url = http://127.0.0.1:8080/{zoom}/{x}/{-y}.png

Offline

#55 2015-01-05 08:12:47

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Новогоднее обновление scanaerial

Восьмой канал - панхроматический, он отражает яркость в видимых диапазонах (у Landsat 8) и в видимых + ближний ИК (у Landsat 7). См. картинку:
http://landsat.gsfc.nasa.gov/wp-content … b20131.jpg
ИК, (пятый) в принципе, надежнее показывает воду, т.к. она ИК поглощает, а не отражает, а с видимым может быть всякое.

Для gdal2tiles я бы еще передал s_srs на всякий случай.

Еще я вспомнил вот про такой скрипт для нормализации гистограммы https://github.com/gina-alaska/dans-gda … st-stretch - там, правда, какие-то сплошные исходники.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#56 2015-01-05 08:15:27

Xmypblu
Member
From: Москва
Registered: 2011-01-18
Posts: 422

Re: Новогоднее обновление scanaerial

Vort wrote:

Добавил в scanaerial поддержку инвертированной координаты Y
Теперь локальный сервер у меня подключается вот так:
server_api = tms
server_name = Landsat
server_url = http://127.0.0.1:8080/{zoom}/{x}/{-y}.png

можно попробовать напрямую, без веб сервера:

file:/C:/path/to/tiles/{zoom}/{x}/{-y}.png

в JOSM'e так подключается, как в скрипте - проверить надо

Offline

#57 2015-01-05 08:39:23

Brait
Member
Registered: 2010-03-16
Posts: 3

Re: Новогоднее обновление scanaerial

Год назад тоже разбирался со ScanAerial, улучшал/модифицировал, и обнаружил одну большую гадость: ScanAerial искусственно уменьшает ZOOM на одну единицу (тоесть скачивает картинки на 15 ZOOM-е вместо используемого пользователем 16-го). См. в файле projections.py, строки 65 и 79. Возможно где-то еще в исходниках прийдется править, но это обнаружится уже после удаления 65 и 79 строки.

Offline

#58 2015-01-05 08:43:24

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Спасибо за комментарий.
Там запутанная ситуация с этим зумом.
Почему-то WMS требует не такой зум, как TMS и Bing.
Я когда добавлял TMS, починил просто наугад.
Но надо, наверно, разобраться поподробнее.

Offline

#59 2015-01-05 10:09:19

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Решил разобраться с точностью scanaerial.
В итоге понял, что претензий к нему нет.

Я подготовил картинку, показывающую разные этапы обработки изображения.
ef66567a3eedde0c6adcbf0fe4a47936.png

1. Маска не размывается, алгоритм Дугласа-Пекера не применяется (deactivate_simplifying = 1, maxfilter_setting = 1). Чётко видно что обработан каждый пиксель.
2. Маска слегка размыта, видно что мелкие выступы сглажены. Многоугольник всё ещё не упрощается (deactivate_simplifying = 1, maxfilter_setting = 3).
3. Маска размыта, полигон упрощён - для того чтобы не было лишних точек. (deactivate_simplifying = 0, maxfilter_setting = 3). Стандартная настройка: небольшие выступы сгладить, лишние точки убрать.

Offline

#60 2015-01-05 15:34:13

gryphon
Member
From: Pskov
Registered: 2010-09-16
Posts: 1,690

Re: Новогоднее обновление scanaerial

Vort wrote:
gryphon wrote:

реки разбивают на несколько, озера делают одним мультиполигоном (см Онежское, Чудское)

на какого размера кусочки режут мультиполигоны рек?
что важно - количество точек или протяженность в километрах?

количество точек. Но, мне кажется, вы слишком много внимания уделяете не самому важному вопросу.Большое количество существенно для полигона/линии, для мультиполигона каких либо лимитов нет (если не ошибаюсь). Ничего не мешает сделать реку одним мультиполигоном, проблема будет лишь в том, что с ним будет очень неудобно работать. Просто посмотрите, как сделаны крупные реки, и сделайте аналогично.

Offline

#61 2015-01-05 15:50:30

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

gryphon wrote:

количество точек. Но, мне кажется, вы слишком много внимания уделяете не самому важному вопросу.Большое количество существенно для полигона/линии, для мультиполигона каких либо лимитов нет (если не ошибаюсь). Ничего не мешает сделать реку одним мультиполигоном, проблема будет лишь в том, что с ним будет очень неудобно работать. Просто посмотрите, как сделаны крупные реки, и сделайте аналогично.

наверно буду делать так:
один outer полигон на ~1.5k точек
и сколько надо мелких

Offline

#62 2015-01-05 16:27:04

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Обновлённый скрипт:

@echo off

set min_zoom=6
rem set max_zoom=12
rem set src_min=6000
rem set src_max=7600
rem set imagename=LC81080122014254LGN00_B8
set max_zoom=11
set src_min=4000
set src_max=14000
set imagename=LC81150132014255LGN00_B5

del %imagename%_merc.TIF >nul 2>&1
del %imagename%_merc_8bit.TIF >nul 2>&1

call GDALShell.bat
gdalwarp.exe -r bilinear -t_srs EPSG:3857 e:\Downloads\ls\%imagename%.TIF %imagename%_merc.TIF
gdal_translate.exe -scale %src_min% %src_max% -ot Byte %imagename%_merc.TIF %imagename%_merc_8bit.TIF
gdal2tiles.py -z %min_zoom%-%max_zoom% %imagename%_merc_8bit.TIF

Last edited by Vort (2015-01-09 08:37:12)

Offline

#63 2015-01-05 16:32:30

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Что ещё хочу отметить касаемо Landsat 8:
5й канал стоит резать до 11го зума
8й канал - до 12го
выше - нет смысла

Offline

#64 2015-01-05 20:18:48

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Новогоднее обновление scanaerial

Vort wrote:

Что ещё хочу отметить касаемо Landsat 8:
5й канал стоит резать до 11го зума
8й канал - до 12го
выше - нет смысла

Это зависит от широты, строго говоря.
У 8го канала разрешение 15м/пикс.
Скажем, если речь о 60й параллели, то с учетом проекции Меркатора получаем 15/cos(60)=15/0,5=30м/пикс.
Что находится где-то между 13м уровнем (19м/пикс) и 12м (38м/пикс).
С остальными каналами, у которых разрешение 30м/пикс, получается, соответственно, 60м/пикс для 60й параллели, что попадает между 38 и 76 у 12го и 11го уровней.

Для какой-нибудь Астрахани, находящейся много южнее, делить уже придется не на 0,5 , а где-то на 0,7.

Это справедливо для Landsat 7 и 8.

Last edited by BushmanK (2015-01-05 20:21:44)


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#65 2015-01-06 07:07:12

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Получше разобрался с параметром maxfilter_setting.

Выяснил, что в вики этот параметр описан неверно.
Это не количество сглаживаний, это размер медианного фильтра.
Фильтра, который ответственен за подавление шума.

Размер фильтра должен быть нечётным: 1, 3, 5, ...
Если поставить значение 1, фильтр будет по факту отключён.
Что и стоит делать на высококачественных снимках.

На больших значениях (91, к примеру), виден баг:
Тайлы обрабатываются по очереди, из-за чего на границах тайлов теряется информация.

Last edited by Vort (2015-01-06 07:44:59)

Offline

#66 2015-01-06 07:46:09

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Новогоднее обновление scanaerial

Если там Median, то он весьма грубо обходится с деталями.
collection.jpg
Я бы значение параметра ограничил.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#67 2015-01-06 07:48:01

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

BushmanK wrote:

Если там Median, то он весьма грубо обходится с деталями.

если снимок зашумлён, то из деталей там - только шум

BushmanK wrote:

Я бы значение параметра ограничил.

стандартная тройка - это и так минимум
если есть уверенность, что снимок без шума - ставить единицу да и всё

Last edited by Vort (2015-01-06 07:50:00)

Offline

#68 2015-01-06 08:10:24

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Забыл уточнить одну вещь, может это важно.
Фильтр применяется к чёрно-белому изображению.
Где белые точки - озеро, чёрные точки - не озеро.
Соответственно, на выходе фильтра тоже чёрно-белое изображение.

Offline

#69 2015-01-06 08:19:35

BushmanK
Member
Registered: 2011-05-03
Posts: 5,106

Re: Новогоднее обновление scanaerial

Мы все же не со снимками мыльницей имеем дело, там теплового шума и прочих чудес в таком объеме - нет. Фильтрация всего лишь упрощает задачу нахождения сходных пикселей, сглаживая разницу между ними. И как раз median (ну, после всякого рода blur-ов) более всего способен нанести деталям больше вреда, чем приносит пользы всему остальному.


"Не умею" не значит "невозможно", "не видел" не значит "не бывает". "Нет проблемы", вероятнее всего, значит, что "нет мозгов".

Offline

#70 2015-01-06 09:41:45

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

BushmanK wrote:

Мы все же не со снимками мыльницей имеем дело, там теплового шума и прочих чудес в таком объеме - нет.

Зато есть другие проблемы.
Повспоминал что мне мешало:
* Мелкие острова;
* Деревья на берегу;
* Рябь (волны);
* Тучи;
* Лёд;
* Отмель;
* Артефакты сжатия;
* Границы между снимками.

При таком количестве возможных помех, стандартная настройка scanaerial выглядит вполне логично:
Вместо того чтобы разбираться что значит конкретный одинокий пиксель - посчитать что его там нет.

Last edited by Vort (2015-01-06 10:17:20)

Offline

#71 2015-01-06 11:27:46

OverQuantum
Member
From: Zelenograd
Registered: 2009-06-17
Posts: 1,582
Website

Re: Новогоднее обновление scanaerial

ИМХО, если векторизовать пальто фотографа из примеров BushmanK, то для ручной - я бы выбрал вторую картинку ("редкие мухи"), а для автоматической - третью ("мух нет, небольшая деградация деталей"). Но от алгоритма тоже сильно зависит, надо проверять.
Особо "прямолинейным" алгоритмам картинки с большим количеством деталей противопоказаны - они их все в векторы перенесут.


Это же OpenStreetMap. Он больше внутри, чем снаружи.

Offline

#72 2015-01-06 15:50:50

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Одной из первых проблем, которую я исправил в scanaerial, была проблема появления дублирующихся точек.
Дубли появлялись после применения к списку точек алгоритма Дугласа — Пекера.
Так как появлялись они в конце, то я просто вставил в код проверку на равенство двух последних точек.
Такой вариант работал, но качество решения мне не давало покоя - до сути проблемы то я не добрался.
Начал сегодня читать про этот алгоритм упрощения.
Узнал что он упрощает просто путём выкидывания лишних точек.
Но это ведь значит что дублей в результате быть не должно!
Однако они есть. Значит проблема в реализации алгоритма.
Стал разбираться - и действительно нашел ошибку.
На самом деле, две ошибки, но это не важно.
Подозреваю что эта ошибка приводила не только к дублированию точек, но и к общему искажению данных вершин.
Но так как точек в результате было много, такой глюк долго оставался незаметным.
Ошибку я исправил. Но есть сомнения в том, правильно ли всё вышло.
Если кто-то разбирается в этом алгоритме, прошу проверить это исправление.
Коммит: https://github.com/Vort/scanaerial/comm … 85bbf15512
Архив последней версии: https://github.com/Vort/scanaerial/arch … er_fix.zip

Last edited by Vort (2015-01-06 15:55:36)

Offline

#73 2015-01-06 16:08:17

Vitalts
Member
From: Estonia
Registered: 2010-12-30
Posts: 1,440

Re: Новогоднее обновление scanaerial

Наконец дошли руки апдейтнуть сканэриал, взял, само собой, вашу последнюю версию (из предыдущего поста). Смотрю, scanaerial.cfg оброс всеразличными ресурсами. Между тем, этот файл парситься и наименование захардкожено. Не порали вынести этот хардкод в параметры командной строки? Таким образом, можно будет подцепить несколько сканэриал с разными конфигами не дублируя сам скрипт, ну и в качестве дефолтного значения названия файла конфига, в случае его отсутсвия в параметрах командной строки, само собой, применять "scanaerial.cfg".

---

Фу ты, апдейтом свой конфиг затер, а что там за магия была прописана?... Еще одна причина выноса наименования файла конфига в параметры запуска...

Last edited by Vitalts (2015-01-06 16:15:58)

Offline

#74 2015-01-06 16:17:18

Vort
Member
Registered: 2010-11-29
Posts: 512

Re: Новогоднее обновление scanaerial

Не пойму сценария применения.
Всё равно постоянно приходится лазить в конфиг, а так ещё лазить и в настройки JOSM`a?

Vitalts wrote:

Фу ты, апдейтом свой конфиг затер, а что там за магия была прописана?... Еще одна причина выноса наименования файла конфига в параметры запуска...

Можно поподробней? Ничего не понял.
Потерялись старые настройки? Так настроить заново ведь не сложно, параметры могу объяснить.

Last edited by Vort (2015-01-06 16:20:45)

Offline

#75 2015-01-06 16:33:36

Vitalts
Member
From: Estonia
Registered: 2010-12-30
Posts: 1,440

Re: Новогоднее обновление scanaerial

Не пойму сценария применения.
Всё равно постоянно приходится лазить в конфиг, а так ещё лазить и в настройки JOSM`a?

Не нужно никуда лазить. На extools навешивается несколько сканэриал с разными конфигами, ну и по желанию, на каждый еще и хот кей повесить.

Можно поподробней? Ничего не понял.
Потерялись старые настройки? Так настроить заново ведь не сложно, параметры могу объяснить.

Да, затер. О параметрах имею представление, ведь настраивал же уже. Вспомнить адреса и подогнать настройки, с этим вы врядли поможете. Да и обошлось, я же перед обновлением на автомате забякапился, просто уже вылетело из головы, ибо руки сами сделали smile

Offline

Board footer

Powered by FluxBB