Рисование леса и других однородных полигонов - скрипт JOSM+python

А у меня после обновления он валится :frowning:

На стабильной версии josm’a (2561).
На последней (2874) - работает.

Вроде поправил совместимость с tested версией, пробуйте.
OFF: Да, svn уже кажется жутко неудобным…

При работе через IRS JOSM пишет Premature end of file. Куда смотреть?

fokin33, какая сборка? какая строчка для josm? что в браузере? что в логах josm? почему эта информация не была предоставлена в первом же посте? :wink:

a = “http://localhost:8080/?layer=irs&format=image/jpeg&force=noresize&width=600&bbox=%s,%s,%s,%s”%tuple(bbox) - запущен index.exe и сам JOSM грузит космоснимки(http://127.0.0.1:8080/?layers=irs&).
Сборка JOSM 2874. А где логи JOSM хранит я не знаю. Плагин и скрипт скачал по ссылкам сверху примерно час назад.

Какой масштаб у IRS-слоя? И в каком месте это всё происходит?

Запусти josm из командной строки как:

java.exe -Xmx512M -jar josm-latest.jar -Dsun.java2d.opengl=true

и покажи его вывод в районе сбоя.

Масштаб метров 300. На разных пробовал. В каком месте?? Географичеки в Касимовском районе рязанской области ))
Вывод JOSM в районе ошибки:


  at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at org.openstreetmap.josm.io.OsmReader.parseDataSet(OsmReader.java:596)
        ... 2 more


org.openstreetmap.josm.io.IllegalDataException: Premature end of file.
        at org.openstreetmap.josm.io.OsmReader.parseDataSet(OsmReader.java:615)
        at fuzzer.FuzzySelectAction$2.run(FuzzySelectAction.java:125)
        at java.lang.Thread.run(Unknown Source)
Caused by: org.xml.sax.SAXParseException: Premature end of file.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
        at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)

fokin33, определитесь, что не работает - Fuzzer или TWMS?

если всё-таки Fuzzer, то просьба закинуть на http://pastebin.org всё, что вывел josm от начала до конца. Ибо самое интересное вами скопировано не было :slight_smile:

Fuzzer не работает, я же написал, что в самом JOSM подложка загружается - иначе куда бы я “тыкал” мышкой - лес то еще надо найти :slight_smile:
На указанный сайт закинул.

fokin33, вы грубейшим образом нарушили синтаксис python, изменив отступ перед a. Верните пробелы на место :slight_smile:

  File "./fuzzyselect.py", line 55
    a = "http://localhost:8080/?layer=irs&format=image/jpeg&force=noresize&width
=600&bbox=%s,%s,%s,%s"%tuple(bbox)
    ^
IndentationError: expected an indented block

Ну и язык :stuck_out_tongue: программирования :laughing:

Ну вот никогда бы не подумал :slight_smile: Заработало! СпасибО!

После фузьселектов, пожалуйста, проглядывайте на предмет топологических ошибок, они явно связаны с этой активной деятельностью.
http://gis-lab.info/projects/osm-errors.html?zoom=9&lat=53.51294&lon=32.41653&layers=TB

вот еще красавец, какой-то накладывающийся сам на себя мультиполигон из 9 частей (ошибки в предыдущем сообщении починил, этот чинить не стал, автора!)
http://gis-lab.info/projects/osm-errors.html?zoom=8&lat=54.74165&lon=31.47583&layers=TB

На сайте gis-lab ссылки на историю объекта кривые: history**/-369152/**

Мне тут мысль в голову пришла…
А нельзя ли сделать на основе этого скрипта еще один - для трассировки речушек. Объекты даже более контрастные, единственное отличие - нужен не полигон, а линия…

Боюсь что трассировать в лучшем случае можно будет самые широкие реки, да ещё небось без лесов по берегам.

В вывод josm’а.
Скорее всего в скрипте происходит эксепшн.