Ну я немного с другой стороны пошел - мне интересны мелкие детали и точная привязка - я взял кусок знакомый мне с детства.
Глянул на импорт CORINE в osm, так в ужас пришел, - там по-моему какая-то каша, хотя наверное я чего-то не понял просто.
Все после i.gensigset по идее параллелится, но я даже боюсь представить сколько времени уйдет на фильтрацию геометрии, если i.smap 5 часов.
А где можно прочитать про три типа леса? Какие вообще выделяют? Есть ли какая-то общепринятая грань между “кустарником” и “лесом”?
Я пока не буду спешить с импортом, а постараюсь сравнить результат с классификацией других сцен.
Тем более что сначала надо поправить границу, чтобы не залезать в Финляндию и Эстонию.
Больше всего конечно будет мешать недоделанность фильтра облаков и теней в GRASS.
Вот эти три типа:
GRID_CODE|CLC_CODE|LABEL1|LABEL2|LABEL3|RGB
23|311|Forest and semi natural areas|Forests|Broad-leaved forest|128-255-000
24|312|Forest and semi natural areas|Forests|Coniferous forest|000-166-000
25|313|Forest and semi natural areas|Forests|Mixed forest|077-255-000
Класс для кустарников есть, но при моем подходе к проблеме деление между “кустарником” и “лесом” (и остальными) сделали для меня соседи в ЕС
Наконец сравнил 6 канальную классификацию с 2-4-5-brovey, налицо улучшение распознавания того, что связано с водой (в основном болота),
но и ухудшение точности. Есть принципиальные проблемы, например, каким же должно быть разрешение распознанных объектов,
чтобы не положить на лопатки рендереры, гармины и прочие руссы. Так же есть необходимость порезать “хвойные” мультиполигоны на куски,
иначе импорт в OSM будет просто невозможен. Но это наверное заслуживает особой темы.
Для 15 m/pix 7 канальной классифификации решил убрать радиометрически малоосмысленные категории
как Port areas, Airports, снизив таким образом число классов до 20.
i.getsigset думает уже 4 суток, использует 16GB RAM, обработаны 12 классов.
Другой интересный эксперимент это нормировка 30 m/pix каналов и перемножение их на панхроматический канал (что-то типа Brovey)
с последующей 15 m/pix 7 канальной классифификацией.
Работает быстро, но результаты по болотам плохие.
Кстати, сравнение картинок по годам показывает местами сплошную варварскую вырубку леса в погранзоне и других малодоступных
местах.
Увы, для этого даже спутниковых сведений не нужно - возле Кингисеппа в сторону Гдова прямо вдоль шоссе вырублены огромные площади леса. А уж что творится “в глубинке” - без слез не скажешь - там каждую сосну чуть ли не “в лицо” с детства знал. И брошено огромное количество гнить. Сволочи.
Sorry за офф.
GRASS 6.4.0RC4 (EPSG_32635):/mnt/raid0/data/tmp > r.stats -l lceugr100_00_pct_reclass
100%
1 Continuous urban fabric
7 Mineral extraction sites
8 Dump sites
10 Green urban areas
12 Non-irrigated arable land
18 Pastures
20 Complex cultivation patterns
21 Land principally occupied by agriculture, with significant areas of natural vegetation
23 Broad-leaved forest
24 Coniferous forest
25 Mixed forest
26 Natural grasslands
27 Moors and heathland
29 Transitional woodland-shrub
30 Beaches, dunes, sands
32 Sparsely vegetated areas
35 Inland marshes
36 Peat bogs
37 Salt marshes
41 Water bodies
* no data
[Raster MASK present]
Может быть тут кое-что можно еще убрать.
Теперь надо как.то бороться с недоделками grass: v.split не умеет работать с полигонами,
и непонятно как заставить v.build не создавать острова и ограничить число вертексов в area.
Можно пытаться сделать v.to.points, потом v.delaunay и прибить все треугольники принадлежащие островам.
При этом получится порядка 5 миллионов треугольников на сцену
Я конечно, сразу взялся за большую и очень сложную задачу, в местах с бескрайними полями все будет гораздо
проще, это видно даже по южной части моей сцены.
Но если всерьез думать о классификации IRS, то эти геометрические проблемы надо как-то решать.
С полигонами по 200000 нодов в “outer” и 10000 “inner” островов, cо своими вложенными полигонами
далеко не уедешь.
Другой вариант - это резать сцену на мелкие квадраты, обрабатывать и заливать данные по квадратам.
Тогда появятся сдвоенные ноды на границах, и нестыковки. Но это можно пережить.
Насчет лимита нодов, у меня были мысли делать это в PostGIS + pl/SQL.
разделяем мультиполигоны так, чтобы у полигона был 1 outer, но по идее при классификации таких и быть то не должно.
берем outer мультиполигона находим две ближайшие противоположные по порядку точки и получаем два куска outer-а.
замыкаем эти куски получаем два полигона p1 и p2
делаем intersect(mp, p1) и intersect(mp, p2) получая таким образом два куска исходного mp.
Пункт 2 скорее всего нужно будет подточить, чтобы не разрезать С-образный полигон по концам, т.е надо еще проверить лежит ли внутри outer-а.
Еще можно брать не строго противоположные узлы, а противоположные ± 10% или что-то подобное.
Если убрать Финский залив и Ладожское озеро, основные источники coastline проблем,
то выяснится, что практически все остальное это острова внутри двух огромных “outer” полигонов “хвойный лес”.
Если их убрать, то гораздо легче и приятнее будет работать.
2km сетку из mapsets держу тем не менее про запас.
После 10 суток раздумий вычислитель выдал результаты классификации.
Эти два класса тоже никуда не годятся, надо убирать и переклассифицировать.
8 Dump sites
10 Green urban areas
Многие дороги и сухие пески попали вот сюда, но видимо ничего не поделаешь:
7 Mineral extraction sites
Буду задавать 512-пиксельную сетку (utm35, 15m/pix), векторизовывать, впатчивать
дорожную сеть и прочие линейные объекты, зачищать. Для заливки не хватает v.out.osm,
придется написать. Посмотрим, как с этими результатами справятся конвертеры и рендереры.
А кто-нибудь рассматривал возможность использования данных GlobCover? http://ionia1.esrin.esa.int/index.asp
Правда, это растр с разрешением 300 м на пиксель, зато классифицированный. Для крупных участков может пригодиться?
Классификация MERIS за пределами Европы иногда совершенно непотребно выглядит, даже километровый MODIS и тот точнее.
Если для вашего района есть безоблачные летнии сцены Ландсат, то скачайте их и попробуйте.
Но сначала стоит, как здесь уже упоминалось, вычислить NDVI (идеально и альбедо), по ним можно очень неплохо
нарисовать воду (моря, озера, крупные реки), и использовать уже сам ОСМ в качестве тренировочной карты.
Вышел на финишную прямую, осталось отрезать ту часть, которая лежит в Финляндии и можно будет заливать тестовую версию.
Это будет довольно большой импорт.
Так как я в этой области профессионально не работаю, получил интересный опыт