По заказу оргкомитета митинга за спасение троллейбуса в Москве я рассчитал длину троллейбусных линий, закрытых во время троллейбусного погрома за 2014–2016 года. Здесь опубликована методика подсчёта.
Можно конечно нарисовать трассы за 2 даты с нуля, но это будет не очень точно. Проще взять векторные данные из Openstreetmap.
- Скачать современные трассы из OSM через http://overpass-turbo.eu Запрос — route=trolleybus. Я месяц назад выверял маршруты, и поэтому был уверен в их полноте. Нужно скачать GeoJSON, и открыть его в NextGIS QGIS.
- Есть разные варианты подсчёта длинны, по данным OSM проще всего сосчитать “по осям улиц” — получится длина улиц, имеющих троллейбусное движение. Одностороннее и двухстороннее движение считается одинаково. Поскольку будет 2 набора данных, то можно будет узнать соотношение: какую долю линий убили временщики в городском правительстве.
- Сохраняем geojson в Shapefile. Систему координат выбираем WGS 84 / UTM Zone 37N (EPSG:32637). Векторные данные в этой СК хранятся в настоящих метрах, и можно легко рассчитать их длины. Для другого города нужно выбрать соответствующую ему зону UTM.
- В OSM узкие улицы хранятся одной линией, а широкие проспекты — двумя линиями. Для рассчёта по оси улиц нужно вручную поудалять одну линию на двухпутных улицах.
5. Состояние: я ещё перед началом погрома начал поднимать рендер маршрутов НОТ из Openstreetmap — http://trolleway.github.io/osm-mostrans/. Открытая лицензия данных OSM позволяет грузить карты в Wikimedia Commons, и поэтому есть карта до начала погрома, на конец 2013 года: https://commons.wikimedia.org/wiki/File:Moscow_trolleybus_map_2013-12_osm_(11478523196).jpg. Сохраняем шейп в новый файл, и дорисовываем линии, которые закрыли.
6. Для обоих слоёв применяем Вектор → Обработка геометрии →Экспортировать/добавить поле геометрии.
Эта операция добавляет в слои поле LENGTH c длиной каждой фичи в метрах (потому что EPSG:32637 считается в метрах)
7. Для обоих слоёв примеряем Вектор →Анализ →Базовая статистика по полю LENGTH.
На экран выводится сумма длин всех линий.
Таким образом, у меня получилось:
Длина московского троллейбуса на 01.01.2014: 528 километров.
Длина московского троллейбуса на 01.01.2017: 453 километра.
Длина по осям улиц. Версия данных 3.
Слои я сохранил в nextgis.com, вы можете их скачать в geojson: http://trolleway.nextgis.com/resource/1014
Данные распространяются под такой же лицензией, что и данные OSM на 2016-й год.