Как стать автором
Обновить

Полнота OSM в сравнении с ПКК и ГАР ФИАС

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров1.2K

Постановка задачи

База Open Street Map (OSM) является открытым ресурсом, пополняемым добровольцами. Она широко используется в проектах, где нужно отобразить что-либо на карте. Встаёт вопрос: насколько данные в ней полные и корректные?

Мы попробуем ответить на него для объектов типа "строение" (дом) на территории России. В этом нам поможет база объектов ГАР ФИАС, которая также содержит объекты такого типа, и её с некоторыми оговорками можно брать за эталонный уровень полноты. С оговорками - потому что каждый месяц в ней появляются новые объекты. На данный момент в ней около 32 млн строений (не считая гаражей, земельных участков и устаревших объектов).

Объекты ГАР ФИАС не содержат координат GPS, но есть ещё один открытый ресурс - Публичная кадастровая карта Росреестра. К сожалению, она не даёт выгружать данные целиком, как предыдущие базы, а предоставляет только API, по которому можно извлекать один объект за раз. Но зато она для многих из них содержит GPS, так что их можно сопоставить с GPS от OSM.

Забегая вперёд, озвучим результат: OSM содержит около 24% от всех домов ГАР, ПКК - около 21%, пересечение OSM с ПКК - 6% и разница координат несущественная.

Для получения результата использовался движок нормализации адресов Pullenti Address.

Данные ГАР ФИАС

Данная база разрабатывается ФНС РФ и содержит в иерархическом виде российские адресные элементы начиная с регионов на верхнем уровне и заканчивая земельными участками, домами и помещениями в них. С сайта базу можно скачать в формате XML (zip-архив с множеством xml-файлов объёма около 46Гб).

Помимо строковых представлений адресов, для домов база содержит кадастровые номера. По кадастровому номеру можно путём запроса получить информацию из Росреестра (см. далее).

С помощью Pullenti Address можно для текстового представления произвольного адреса не только разобрать его на отдельные элементы (район, населенный пункт, улица, дом и др.), но и привязать эти элементы к объектам ГАР - это нам далее пригодится.

Данные ПКК Росреестра

На момент написания статьи в Росреестре данную возможность убрали, но до конца прошлого года информацию в json-виде для объекта можно было получить путём запроса http://pkk.rosreestr.ru/api/features/5/num, где num - кадастровый номер дома. Запросы можно было посылать с одного IP не более одного в секунду, иначе система блокировала на некоторое время. Файл json содержал такую полезную информацию, как координаты (в формате меркатора, несложно переводятся в GPS), год постройки, назначение, кадастровая стоимость и др.

Была проведена работа по извлечению информации для всех объектов ГАР, которые имели в атрибутах кадастровые номера (не все имеют, но большинство). Это позволило "обогатить" объекты ГАР дополнительными атрибутами, отсутствующими в базе ГАР. В результате 21% домов в среднем по России и 59% земельных участков получили географические координаты. Таблица по регионам приведена ниже.

В настоящий момент подобную информацию можно получить через новый сервис http://nspd.gov.ru/api/geoportal/v2/search, но я пока не разбирался с данной возможностью. Поверхностное тестирование показало, что новые данные улучшены в плане полноты (координаты есть там, где их раньше не было), также введены полигоны точек вместо прямоугольников в старой версии.

Данные OSM

Чтобы не иметь дело с огромными pbf-файлами, для России данные по слоям "населенный пункт (settlement)" и "здание (building)" для точек и полигонов в виде csv-файлов были получены у NextGis. И как их теперь связать с ГАР-объектами?

Фрагмент файла building-points.csv от NextGis
Фрагмент файла building-points.csv от NextGis

Помимо явного мусора, оставим только записи, у которых есть улица (A_STRT) и номер дома (A_HSNMBR). Как видно, населённый пункт (ADDR_CITY) задаётся редко, и даже когда он задаётся, то для небольших локаций по названию непонятно, что это и в каком регионе вообще. Но зато у нас есть GPS-координаты, и по ним можно многое восстановить. Для некоторых записей есть почтовый индекс (A_PSTCD), что также даёт возможность однозначно указать родительский объект, так как у ГАР-объектов среди атрибутов есть почтовый индекс.

Для некоторых объектов ГАР координаты домов и земельных участков мы получили ранее. По этой информации можно грубо восстановить прямоугольные области GPS для вышележащих объектов вверх по иерархии (вплоть до региона).

Далее, у нас есть файл от Nextgis с координатами населённых пунктов. К сожалению, там та же проблема, что и для зданий, но опираясь на грубо полученные координаты для населенных пунктов ГАР мы можем привязать населенные OSM к объектам ГАР, тем самым уточняя области GPS для объектов ГАР. Таким образом мы получили около 169 тыс. проверенных населенных пунктов из 214 тыс. записей OSM.

Теперь можно брать очередное здание OSM, по координатам находить наименьший объект, накрывающий координатами это задние, тем самым восстанавливая (или не восстанавливая) населённый пункт. В случае удачи формируем строку адреса из восстановленного объекта + улица + номер дома, и обрабатываем через SDK Pullenti. Если здание привязалось к ГАР-объекту, то добавляем в его атрибуты координаты OSM.

Исходно в OSM-данных (на момент сентября 2024) было около 9.2 млн зданий по России. Из них около 8.2 млн (88%) удалось сопоставить с объектами ГАР. Остальное или несуществующие здания, или мусор, или непонятно что.

Результат по регионам

Результат по российским регионам представлен в табличке, где в колонке houses - количествово зданий в ГАР ФИАС, housegps - процент из них, которые получают GPS, в pkk - процент зданий, имеющих GPS в базе ПКК, osm - процент зданий, для которых удалось привязаться в OSM, pkk&osm - координаты есть в обоих источниках.

Region

houses

housegps

pkk

osm

pkk&osm

Всего

31868553

40%

21,2%

24,6%

5,8%

01: республика Адыгея

152906

63,2%

15,5%

54,9%

7,2%

02: республика Башкортостан

1075201

45,4%

33,2%

18,5%

6,3%

03: республика Бурятия

237118

38,5%

36,3%

3,9%

1,7%

04: республика Алтай

84735

41,5%

25,1%

22,8%

6,4%

05: республика Дагестан

620444

55,8%

18,5%

48,6%

11,3%

06: республика Ингушетия

87123

21,6%

7,3%

15,6%

1,4%

07: республика Кабардино-Балкарская

177717

43%

18,5%

31,9%

7,4%

08: республика Калмыкия

73505

29,1%

14%

18,1%

2,9%

09: республика Карачаево-Черкесская

109109

42,8%

21,4%

26,7%

5,3%

10: республика Карелия

95022

49,5%

17,5%

35,5%

3,6%

11: республика Коми

156488

58,2%

27,8%

41%

10,6%

12: республика Марий Эл

199540

29,5%

16,1%

16%

2,5%

13: республика Мордовия

236206

46,3%

26,5%

30,3%

10,5%

14: республика Саха

229639

35,2%

27,9%

9,5%

2,2%

15: республика Северная Осетия

137452

34,8%

12,6%

25,4%

3,2%

16: республика Татарстан

961363

33,3%

18%

20,3%

5%

17: республика Тыва

59949

67,5%

54,7%

37,3%

24,4%

18: республика Удмуртская

418630

33,4%

20,4%

19,1%

6,1%

19: республика Хакасия

146182

25,1%

14,3%

12,4%

1,6%

20: республика Чеченская

296006

36,9%

36,4%

0,7%

0,2%

21: республика Чувашская

303802

35,3%

21,4%

17,4%

3,5%

22: край Алтайский

603615

36,5%

16,8%

24,9%

5,3%

23: край Краснодарский

1794867

54,7%

21,8%

42,8%

9,9%

24: край Красноярский

656929

28,7%

16,3%

15,6%

3,2%

25: край Приморский

293347

57,8%

15,8%

49,6%

7,6%

26: край Ставропольский

782188

40,3%

15,3%

29,9%

4,8%

27: край Хабаровский

128686

70,1%

14,3%

64,7%

8,8%

28: область Амурская

168255

41%

12,1%

33,4%

4,6%

29: область Архангельская

250405

39,5%

20,6%

25,2%

6,3%

30: область Астраханская

253054

46,8%

27,1%

27,6%

7,8%

31: область Белгородская

474548

46,5%

40,3%

12,5%

6,4%

32: область Брянская

405313

28,3%

17,7%

13,6%

3,1%

33: область Владимирская

435514

31%

18,1%

16,1%

3,2%

34: область Волгоградская

683939

36,1%

16,7%

23,7%

4,3%

35: область Вологодская

311155

36%

21,8%

20,8%

6,6%

36: область Воронежская

724417

29,7%

16,6%

16,5%

3,4%

37: область Ивановская

242816

29,2%

12,9%

18,5%

2,2%

38: область Иркутская

454463

47,7%

26,5%

28,1%

7%

39: область Калининградская

159859

52,3%

32,1%

27,4%

7,3%

40: область Калужская

401111

32,9%

23,6%

17,1%

7,7%

41: край Камчатский

27852

38,7%

21,2%

19,8%

2,4%

42: область Кемеровская

576814

50,9%

20,1%

42,6%

11,8%

43: область Кировская

320148

49,2%

20,8%

39,8%

11,4%

44: область Костромская

183361

27,6%

11,1%

19,1%

2,6%

45: область Курганская

263586

43,7%

14,5%

34,2%

5%

46: область Курская

328303

25,6%

14,4%

15,7%

4,5%

47: область Ленинградская

515777

36,3%

24,3%

15,3%

3,3%

48: область Липецкая

304434

32,8%

21,1%

15,4%

3,7%

49: область Магаданская

11217

39,4%

23,9%

25,6%

10,1%

50: область Московская

1931609

30,8%

23,5%

8,9%

1,6%

51: область Мурманская

44988

33,4%

9,2%

26,4%

2,2%

52: область Нижегородская

826772

43,9%

22%

28,2%

6,2%

53: область Новгородская

244124

34,5%

13,7%

25,4%

4,5%

54: область Новосибирская

502228

43,9%

20,2%

30,8%

7,1%

55: область Омская

494391

21,1%

14,3%

8,7%

2%

56: область Оренбургская

441100

56,1%

32,7%

36,6%

13,3%

57: область Орловская

219720

26,7%

15,6%

12,7%

1,6%

58: область Пензенская

376316

31,3%

18,9%

16,3%

3,9%

59: край Пермский

634559

44,3%

24%

31,1%

10,7%

60: область Псковская

232140

31,6%

12,3%

22,1%

2,8%

61: область Ростовская

1072981

52,9%

22,4%

39,6%

9%

62: область Рязанская

361210

26,8%

18,7%

9,5%

1,5%

63: область Самарская

506325

50,7%

21,1%

38,1%

8,5%

64: область Саратовская

621979

27,6%

12,8%

18,1%

3,2%

65: область Сахалинская

53539

65,7%

47,9%

34,2%

16,4%

66: область Свердловская

892808

45,5%

14,9%

36,6%

6%

67: область Смоленская

254742

41,7%

13,4%

31,9%

3,6%

68: область Тамбовская

330574

25,6%

16,9%

11%

2,3%

69: область Тверская

505557

28,5%

12,8%

17,9%

2,3%

70: область Томская

231653

38,1%

28%

18,8%

8,7%

71: область Тульская

304110

32,6%

25,6%

9,5%

2,5%

72: область Тюменская

330063

54,1%

30,4%

32%

8,4%

73: область Ульяновская

275464

35,8%

18,7%

21,4%

4,3%

74: область Челябинская

769573

46,3%

15,4%

37,4%

6,5%

75: край Забайкальский

249959

20,3%

15,8%

5,5%

1,1%

76: область Ярославская

264940

32%

19,9%

14,4%

2,3%

77: город Москва

292336

65,8%

59,5%

34,9%

28,6%

78: город Санкт-Петербург

133996

29,2%

18,2%

14,3%

3,3%

79: автономная область Еврейская

29482

66,6%

11,4%

62,6%

7,4%

83: автономный округ Ненецкий

9296

48%

30,2%

25%

7,2%

86: автономный округ Ханты-Мансийский

137533

50,5%

21,5%

36,3%

7,3%

87: автономный округ Чукотский

4348

29,4%

8,4%

23,3%

2,3%

89: автономный округ Ямало-Ненецкий

53277

45,4%

39,2%

19,3%

13%

91: республика Крым

503855

29,1%

25%

5,4%

1,3%

92: город Севастополь

116896

49,2%

38,1%

14,7%

3,7%

Заключение

На момент осени 2024 года в OSM было около 9.2 млн записей уровня bulding по России. Из них валидируются (то есть привязываются к объектам ГАР) около 8.2 млн (88%), что составляет около 24.6% от всего количества зданий (по информации ГАР).

Не знаю, возможно ли как-либо автоматизировать коррекцию данных в OSM и загрузку. Но если да, то можно:

  1. К существующим объектам OSM добавить дополнительные теги: полный адрес, почтовый индекс, ссылку на ГАР-объект (его GUID), год постройки, этажность;

  2. Дополнить новыми объектами на основе данных ПКК, тем самым увеличив их количество почти вдвое.

Готов сформировать такие данные, если кто возьмётся за такую загрузку.

Теги:
Хабы:
Всего голосов 6: ↑5 и ↓1+6
Комментарии14

Публикации

Ближайшие события