mapproxy-seed, ошибка данных wms

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 14 фев 2014, 12:52

Здравствуйте! Нужна помощь с mapproxy.
Mapproxy версии 1.5.0; в качестве источника данных - wms-слой.
Запускаю сидирование. На детальных масштабных уровнях (15-16), видимо, нет перманентного покрытия тайлами. Вопрос: как отсутствие тайлов воспринимает mapproxy? То есть я вижу, что он спотыкается об ошибки:

Код: Выделить всё

An error occured. Retry in 256 seconds: SourceError('no image returned from source WMS',)
[2014-02-14 13:35:10,005] mapproxy.source.wms - WARNING - expected image response, got: <?xml version="1.0" encoding="utf-8" ?>
<ServiceExceptionReport version="1.1.1">
  <ServiceException>
5:graphic.DrawImage error attempts=10
  </ServiceException>
</ServiceExceptionReport>
Но что он при этом делает: находит "дырку", сообщает мне об этом и идет собирать кэш дальше? Или спотыкается, и дальше идти не хочет, и надо где-то в файле конфигурации ему сказать, что хорошо бы игнорировать подобные ошибки.
Для type: tiles в документации есть параметр on_error, но для type: wms ничего подобного не нашлось.

Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

Re: mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 14 фев 2014, 14:53

Все-таки спотыкается об ошибку и дальше не идет.
Выдает недлинный traceback питона, и резюмирует: SourceError: no image returned from source WMS.

Что можно сделать для продолжения сидирования?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapproxy-seed, ошибка данных wms

Сообщение Denis Rykov » 17 фев 2014, 08:25

Как можно сидировать тайлы, если источник данных не работает. Поэтому ответ простой - почините WMS.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

Re: mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 17 фев 2014, 08:42

Да вроде как на предыдущие 14 уровней зума работал. И на 15 что-то пособирал, пока не споткнулся. А в чем может быть беда wms?

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapproxy-seed, ошибка данных wms

Сообщение Denis Rykov » 17 фев 2014, 09:07

WMS ваш или внешний, если внешний, то вопрос к его авторам. Если ваш, то посмотрите запрос (в логах) на котором он падает и уже дальше разбирайтесь.
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

Re: mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 17 фев 2014, 09:22

wms внешний - спутниковое покрытие.

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: mapproxy-seed, ошибка данных wms

Сообщение Denis Rykov » 17 фев 2014, 09:28

Тогда можете сообщить авторам WMS URL на котором он падает. Что за WMS, публичный?
Spatial is now, more than ever, just another column- The Geometry Column.

Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

Re: mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 17 фев 2014, 13:03

WMS купленный - terra.

Аватара пользователя
gala-kt
Участник
Сообщения: 89
Зарегистрирован: 26 июл 2010, 12:05
Репутация: 6
Откуда: Санкт-Петербург

Re: mapproxy-seed, ошибка данных wms

Сообщение gala-kt » 17 фев 2014, 13:32

Еще одно наблюдение: у меня есть собранный ранее кэш с этого же источника на нужном мне масштабном уровне, на нужную территорию. Но в другой проекции (в другой grid), и в другой компановке директорий:
  • - существует (дефолтная настройка):
    grid: GLOBAL_MERCATOR,
    directory_layout: tc.


    - надо:
    grid: GLOBAL_GEODETIC,
    directory_layout: tms.
1. Эксперимент_1
В mapproxy.yaml в caches прописываю еще один cache_2 с нужными мне параметрами, в качестве ресурса указываю уже существующий cache_1. В описании существующего cache прописана директория, где, собственно говоря, хрянятся тайлы, указаны компановка директорий и сетка; в качестве ресурса прописан тот самый wms, но с парметром seed_only: true.
В seed.yaml в качестве источника данных для сидирования прописан cache_2, то есть, по идее, он должен обращаться при сидировании к cache_2, cache_2 обращается к cache_1, хватает то, что есть в указанной директории с кэшем, перепроецирует, перекомпанует и складывает в ту директорию, которая указана в cache_2.

Код: Выделить всё

caches:
  cache_2:
    sources: [cache_1]
    format: image/png
    grids: [wgs_grid]
    cache:
      type: file 
      directory_layout: tms
      directory: /cache/EPSG4326

  cache_1:
    sources: [terra_wms]
    format: image/png
    grids: [gm_grid]
    cache:
      type: file 
      directory_layout: tc
      directory: /cache/EPSG900913
Результат такой же: SourceError: no image returned from source WMS. Видимо, в существующем cache_1 также отсутствуют какие-то тайлы; mapproxy, не обнаружив их в cache_1, обращается к ресурсу wms, где снова падает.

2. Эксперимент_2 (понимаю, что так делать не стоит, но эксперимента ради).
В том же mapproxy.yaml в sources добавляю еще один источник source_2: type: tiles, url - ссылка на само себя, в директорию, где спрятан уже существующий кэш. В cache_1 указываю в качестве источника source_2.
Запускаю тестовый сервер serve_develop. Запускаю сидирование.
Результат: SourceError('HTTP Error http://host:port/tms/1.0.0/name_tile_EPSG900913/tile?x=18977&y=23328&z=15&format=png": 404',)

3. Эксперимент_3.

В том же mapproxy.yaml в source_2 добавляю описание реакции на ошибки:

Код: Выделить всё

    on_error:
      other:
       response: transparent
       cache: false
И вот тогда процесс двигается с места.

Делаю выводы:
1. Исходя из того, что кэш существует, но с прорехами, - когда-то wms работал таким образом, что отсутствующие тайлы пропускал шел собирать дальше.
2. Если не обращаться к url WMS, но использовать уже имеющиеся tiles, mapproxy также спотыкается о дырки в кэше, если ему заранее не сказать, как себя вести.

Может, есть подобная стратегия поведения и с wms? Или я в целом ошибаюсь?

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей