Лес, просеки и кварталы лесничеств

Интересные вещи видны из сравнения с google: при переходе лес-вода и вода-лес похоже наблюдается релаксация детектора
(эффект памяти при порогообразном изменении интенсивности излучения) либо считывающей электроники, и этот нелинейный эффект
ландсатовцами не корректируется.
Ну и погранзастава посреди леса (согласно викимапии) на ландсате однозначно детектируется как landuse=residential :slight_smile:

ИМХО это все-таки баг. Патчик для grass70, с которым все работает как надо.
С epsg:3857 у grass70 есть проблемы, которых нет у grass64, но их удалось обойти.
Остался tile alignment с ОСМ, и можно приступать к большой загрузке.


Index: areas_io.c
===================================================================
--- areas_io.c  (revision 41933)
+++ areas_io.c  (working copy)
@@ -193,13 +193,32 @@
        idx = (p->col - last->col);
        dy = (idy > 0) ? 0.5 : ((idy < 0) ? -0.5 : 0.0);        /* dy = 0.0, 0.5, or -0.5 */
        dx = (idx > 0) ? 0.5 : ((idx < 0) ? -0.5 : 0.0);        /* dx = 0.0, 0.5, or -0.5 */
-       y = cell_head.north - (last->row + dy) * cell_head.ns_res;
-       x = cell_head.west + (last->col + dx) * cell_head.ew_res;
+
+       /* do not smooth the region borders */
+        if (last->row == 0 || last->row == Rast_window_rows() || last->col == 0 || last->col == Rast_window_cols())
+        {
+        y = cell_head.north - last->row * cell_head.ns_res;
+        x = cell_head.west + last->col * cell_head.ew_res;
+       }
+       else
+        {
+        y = cell_head.north - (last->row + dy) * cell_head.ns_res;
+        x = cell_head.west + (last->col + dx) * cell_head.ew_res;
+       }
        total++;
        Vect_append_point(points, x, y, 0.0);

-       y = cell_head.north - (p->row - dy) * cell_head.ns_res;
-       x = cell_head.west + (p->col - dx) * cell_head.ew_res;
+       /* do not smooth the region borders */
+        if (p->row == 0 || p->row == Rast_window_rows() || p->col == 0 || p->col == Rast_window_cols())
+        {
+        y = cell_head.north - p->row * cell_head.ns_res;
+        x = cell_head.west + p->col * cell_head.ew_res;
+       }
+       else
+        {
+        y = cell_head.north - (p->row - dy) * cell_head.ns_res;
+        x = cell_head.west + (p->col - dx) * cell_head.ew_res;
+       }
        total++;
        Vect_append_point(points, x, y, 0.0);

Можно чуть подробнее про кварталы лесничеств? Видел столбики (снято к сожалению только с одной стороны):

14 | 14
1 | 2

9 | 15
4 | 2

с тем что сторона показывает на квартал, к которому относятся числа, все вроде понятно. А что значат два числа? Типа X и Y, или что-то иерархическое? Второй случай смущает - получатся у соседних кварталов числа сильно разные.

Числа это номера кварталов. Нумерация идет в пределах одного лесничества обычно с запада на восток и с севера на юг. Но лучше раздобыть квартальню карту у лесников.
Для МО можно скачать тут: http://rutracker.org/forum/viewtopic.php?t=2232316

А два-то номера что значат, один под другим? В #74 два примера столбика, не четыре.

Если на одной грани два номера, то это либо номера в разных лесничествах, либо старая и новая нумерация. Точно можно сказать только имея лесоустроительную карту.

Понятно, спасибо. Попробую записать побольше этих столбиков. Это в Лосином Острове (Москва), если что.

Тут http://www.ifi.rssi.ru/LO/kart/shema.html вроде бы деление на кварталы есть http://www.ifi.rssi.ru/LO/kart/shema.html - можно попробовать сопоставить.

Спасибо за карту - да, с тем, что на столбиках, оно совпадает. Также разобрался со вторым числом - там эти кварталы (как на карте) делятся на 4 подквартала по той же схеме (слева-направо сверху-вниз). Прикольная это штука, вообще - можно понять где ты и по сторонам света приблизительно ориентироваться.

Надо подумать как это отмечать. Пока отметил перекрестки со столбиками так
compartment_post=yes
compartment:NW=13/3
compartment:SE=12/1

хотя может правильнее что-то типа traffic_sign=compartment_post
Какими тэгами отмечать границы у кварталов и подкварталов? Рисоваться оно где-нибудь будет?

PS. Для интересующихся:
http://talks.guns.ru/forum_light_message/21/000244.html
http://www.iiasa.ac.at/Research/FOR/forest_cdrom/english/for_fund_en.html (терминология на английском)
так оно выглядит: http://amdmi3.ru/files/stolb.jpg

Как обозначаем номера лесных кварталов?

Подозреваю, разрубанием полигона леса и назначением ему ref=.

Была идея с boundary, но никто не придумал какой именно boundary ставить. А разрубание полигона имхо не выход - во-первых, может быть квартал с кучей полигонов леса, а может быть (теоретически) вообще без леса.

Квартал, состоящий из нескольких кусков леса, можно собрать в мультиполигон и на нём прописать теги леса + ref=.

Квартал без леса (нужны ли такие?) будет или заросшим, или ещё каким-то landuse. Не вижу проблемы поставить ref= на него.

По-моему, это ерунда - бить единый массив леса (да, я знаю что там просеки, только на деле в большинстве случаев вы просеку там не увидите при всем желании), а потом собирать обратно в мультиполигоны, когда границы - совершенно отдельный виртуальный слой. Так можно и все объекты московской области в мультиполигон собрать.

Правильный вариант получается - искать просеки (они не все заросли и не совсем), помечать соответственно (man_made=cutline) и из кусков просек собирать отношение с номером.

Теперь давайте придумаем работающий вариант :slight_smile: Я иду по лесу и вижу квартальный столбик, на нём числа, соответственно могу узнать на границе каких кварталов я нахожусь, но их границы взять неоткуда (будет только та просека, по которой я двигаюсь). Как в это случае помечать? Я пока вижу варинт с точкой (с ref=) примерно в границах квартала и с fixme (до тех пор, пока кто-нибудь остальные просеки с навигатором на обойдёт).

Я однажды пытался отрисовать границы кварталов вот таким образом: http://osm.org/go/2GcVRyO
Там кое где есть и cutline, но его, естественно, не видно.

Вот это уже ближе к теме. Только man_made=cutline вовсе не обязательно, потому что где-то просеки как таковой уже нет, а где-то она широкая и обозначена разрывом в полигоне леса. Да и отношение не обязательно - где-то проще рисовать по общим точкам. Обычный boundary, в общем - меня интересует только boundary=что.

См. Лосиный остров - я пока помечал именно столбики. Сетка регулярная, так что все отмечать не обязательно, достаточно пройти одну просеку с севера на юг, чтобы представлять к-во кварталов в каждой “строке”, остальное - дело техники.

Резать полигоны леса на кварталы и прописывать им ref мне показалось не очень удачной идей, поскольку в лесном квартале может быть не только лес но и поляна например. Нужны границы, иногда они будут совпадать с cutline, иногда еще с чем…

Есть такое предложение - обнозначать лесной квартал через Relation boundary, в который включать просеки там, где они есть и просто линии (там где просеки безнадежно заросли, не были прорублены или границы кварталов идет по полям). И уже на отношение вешать ref=номер_квартала operator=лесничество.

Так будет минимальное дублирование информации и нет зависимости от того что внутри квартала - лес или вырубки или поляна.

Любители рисовать по общим точкам меня, честно говоря уже замучали. Редактировать это потом очень неудобно.