Практические аспекты разработки

Комментарии и строки документации

Модули Python

Взаимодействие с операционной системой

Отладка

Работа с отладчиком в IDLE

Д/З

Финальное задание (не для EJudge). В задании нет чёткой формулировки и чёткого набора требований. Чем больше требований реализовано, тем больше баллов оно приносит.

Написать программу, которая обрабатывает файл в формате GPX и выводит различную информацию о нём.

  1. Про формат GPX (см. также GPS Exchange Format):

    • Короткое описание (достаточное для большинства требований).

    • Полное описание

    • Источники gpx-файлов
      • Это место (зайти на страничку описания трека и в разделе «Скачать маршрут» выбрать «.gpx трек Garmin, Navitel и т.д.»)

      • Trail Followers (зайти на страничку описания трека и нажать «Скачать GPX-трек»

      • Скиф 4х4 (открыть трек, выбрать скачать → GPX).

        • треки с этого сайта не содержат отметок высоты
      • Мультитреки (если не нашлись) ATB-Heerenveen.gpx, track37.gpx

    • /!\ Внимание! В GPX-файлах, полученных на платформе Windows mobile, рядом с символом "\n" присутствует ещё один — "\r". Его надо просто удалить при обработке.

  2. Обязательные требования

    • Программа должна обрабатывать произвольный файл из определяемого вами множества GPX-файлов (допустим, вы скачали несколько примеров, и на каждом она работает)
    • Для каждого трека в файле программа должна выводить название трека и его суммарную длину, похожую на правду

  3. Дополнительные требования (в скобках указаны бонусные баллы)

    1. (+1) Входной файл вводится из командной строки (а не со стандартного ввода) или при помощи tkinter.filedialog

    2. (+1) Длина трека вычисляется с учётом отметок о высоте, если они есть, и в предположении идеальной горизонтали, если их нет
    3. (+1) Вывести также все путевые отметки (<wpt>) с их именами

    4. (+1) Вычисляется перепад высот и суммарная длина подъёмов и спусков
    5. (+2) При наличии временных отметок (<time>) вычисляется общее затраченное время, средняя, наименьшая и наибольшая скорости

      • Подсказка: скорее всего, вам понадобится time и в частности time.strptime(), а также, возможно, datetime

    6. (+2) При вычислении времени, высот и длин учитывается, что трек может состоять из нескольких сегментов <trkseg>, между которыми измерения проводить не надо. Привести пример такого трека.

    7. (+1) Программа работает на любом синтаксически не ошибочном gpx-файле (как минимум, с сайтов выше)
    8. (+2) Нарисовать треки (необязательно на карте, можно MatPlotLib-ом)

Python/GeoPython2021/12_Practice (последним исправлял пользователь FrBrGeorge 2021-12-07 14:32:40)