Capturing and preprocessing photos from Ricoh Theta S for Mapillary

Ricoh Theta S camera has a two lens, and can make a 360×180 panoramic photos every 8 seconds.

Walking equipment

You need an anything selfie-stick and gpx logger in your mobile device.

Cycling equipment

  • Backpack with side straps and side pocket
  • Anything tripod. May be tripod for studio light, without side handle will be better.
  • Selfie-stick, mounted beetwen tripod and camera.
  • Software gpx logger in mobile device, or hardware gpx logger.
  • External USB battery
  • Optionally: Camera Thread Screw Rod for allow connect USB power cable while camera mounted at tripod.

Capturing

  1. Seal all LEDs at camera by duct tape, for your less visible.
  2. Make sure it gpx logger is on at maximum record frequency.
  3. Begin capture at timer mode, with shutter sound.
  4. Turn off WiFi at camera (middle side button), and in your mobile device too, for power save.
  5. Just go. Don’t think about the camera tilt, photos can be rotated at pre-processing.

Avoid tree branches while cycling! (i now have a scratches at lens, их можно заполировать пастой ГОИ?)

Avoid rain!

Pre-processing at PC

You need:

  • JOSM with plugins photo_geotagging, photo_adjust
  • Hugin (nona.exe from Hugin)
  • exiftool
  • Total Commander with exif plugin, GeoSetter, or some other program, where you can find photos with null “GPS Img Direction” tag

Camera produces a 360×180 frames with Google Photosphere tags in EXIF:

exiftool R0038875.JPG

Date/Time Original              : 2016:09:17 19:42:26
Accelerometer                   : 3 -4.5
Compass                         : 135
GPS Img Direction Ref           : True North
GPS Img Direction               : 135
Full Pano Height Pixels         : 2688
Full Pano Width Pixels          : 5376
Pose Heading Degrees            : 135
Pose Pitch Degrees              : -4.5
Pose Roll Degrees               : 3.0
Projection Type                 : equirectangular
Use Panorama Viewer             : True
GPS Position                    : 55 deg 48' 50.44" N, 37 deg 36' 6.91" E

So we have “Use Panorama Viewer” – describe it is a photosphere, GPS Position – it gets from smartphone, but we turn off WiFi for power save, GPS Img Direction (some times, after turn on camera it field is empty, so we need set it manually), and “Accelerometer” – value of this tag we can send to nona.exe, witch will rotate shot, even if the camera was tilted, or upside-down.

  1. Add gps coordinates into photos, using gps tracks and photo_geotagging plugin in JOSM. Also you can correct here position manually, if signal was bad. Save positions in EXIF.
  2. Find all photos with empty value in “GPS Img Direction” tag. I can’t find a Ubuntu software for this, so i use a exif.wdx plugin for Total Commander for MS Windows.
  3. Drag-and-drop these files in JOSM. Set direction (azimuth) for center of photos with Ctrl key, and save positions in EXIF.
  4. photo_adjust plugin may be produces a strange values for “GPS Img Direction” tag, so it not acceptable for Google Street View program (i want to upload photos to many sites, not just one). So i run all photos through

exiftool -overwrite_original -P -ProjectionType="equirectangular" -UsePanoramaViewer="True" -"GPSImgDirection<$exif:GPSImgDirection" -"PoseHeadingDegrees<$exif:GPSImgDirection" -"CroppedAreaImageWidthPixels<$ImageWidth" -"CroppedAreaImageHeightPixels<$ImageHeight" -"FullPanoWidthPixels<$ImageWidth" -"FullPanoHeightPixels<$ImageHeight" -CroppedAreaLeftPixels="0" -CroppedAreaTopPixels="0" "' + filepath + '"

  1. Correction of camera tilt. Ricoh Theta viewer and Google Street View rotate photos at client, we must rotate photos before uploading using nona.exe Try to rotate one picture in hugin, open a .pto file, and you must generate it for all photos, and run it through nona exe. Also you need reset “Accelerometer”, “Pose Pitch Degrees”, “Pose Roll Degrees” tags, using exiftool.
  2. That’s all, now you upload photos to Mapillary with web-uploader, or upload scripts.

Ricoh Theta S correction python scripts at github: https://github.com/trolleway/theta_tools

Street view for Apsheronsk narrow gauge railway

In 2012 Google Maps was get huge promotion: they hired a special train at some of Swizerland mountain railway, and make a streetview from flatcar.

In 2016 i am repeat this technology stack with panoramic camera Ricoh Theta S at Apsheronsk narrow-gauge mountain railway.
Continue reading

Ручная геопривязка фотографий в JOSM

Описание операций по ручной привязке фотографий к координатам в программе JOSM – кроссплатформенно и лицензионно свободно.

Я мыслю географически. Для того что бы найти фотографию в своём фотоархиве, мне проще вспомнить её место сьёмки, чем год, дату или название мероприятия. Если геопривязанную фотографию выложить на большинство сайтов и фотохостингов, то координаты из неё подхватятся сами, и она получит больше просмотров. 

Многие люди думают, что геопривязку фотографий можно сделать только со специальным GPS-датчиком для фотоаппарата. Это не так, достаточно всё время прогулки писать GPS-трек на планшет или навигатор, и потом привязать фото к треку при постобработке. 

Конечно же остаётся много фотографий, которые сняты в те годы, когда у меня не было GPS-навигатора. Их можно привязать к карте вручную, вопрос – в какой программе. Нужно привязывать к Openstreetmap, ведь эти данные более точные (в метрах), и детальные чем карты Google. Раньше я привязывал их только в программе GeoSetter, но она работает только на Windows. Под Wine она то ли не работает, то ли работает с тормозами, не дающими работать. Но недавно я случайно подобрал комбинацию операций для ручной геопривязки в JOSM. Вот инструкция:

  1. Нужен JOSM. Он работает одинаково на всех ОС.
  2. F12 –> Модули. Нужны модули photo_geotagging, photoadjust
  3. Включаем нужную подложку, например OSM Mapnik
  4. Кидаем через drag-and-drop фотографии в JOSM. Появляется окно “Сопоставить изображения с GPX треком” – в нём нажимаем Отмена. В окне JOSM появляется окошко с фотографией.
  5. Делаем активным слой “Изображения с данными о месторасположении”.
  6. Нажимаем на карту с нажатым Shift – и позиция изображения смещается! Если затем нажать на карту с клавишей Ctrl – то запишется направление изображения.
  7. В окошке фотографии есть клавиши листания по картинкам.
  8. Для сохранения, в окне слоёв выделяем слой с фотографиями, в контекстном меню выбираем пункт “Записать координаты в заголовок изображения”. Выставляем там настройки: Сохранить резервный файл = нет, Поменять время внесения изменений = На предыдущее значение (неизменённое mtime).
  9. Теперь у вас в IPTC-тегах фотографий записались координаты. Загрузите их на flickr под лицензией cc-by-sa.

 

Moscow historical map 2011

Настал тот год, когда #openstreetmap сам стал исторической картой.
Для новой веб-страницы я привязывал к координатам фотографии хрущёвок на проезде Русанова и Речном Вокзале, которые снесли в 2013 году. В те дни, когда я их снимал, у меня не было с собой GPS-логгера, поэтому пришлось вычислять координаты по ориентирам.

Для этого я выкачал дамп OSM за 6 января 2011 года, и вытащил из него здания и адреса. Получился вот такой тайловый слой: https://trolleway.cartodb.com/viz/b2a6f568-b27c-11e5-8252-0ecfd53eb7d3/map

Его можно подкладывать в JOSM, и снимать точные координаты.

Снос московских магазинов: фото зданий с Google

В декабре 2015 года правительство Москвы опубликовало постановление о сносе сотни мелких отдельно стоящих магазинов у метро, построенных в начале 2000-х.

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

В выходные я нашел это постановление в КонсультантПлюс. Таблица в нём была в лексиконовском формате: ячейки были нарисованы ASCII-артом. Поэтому пришлось написать скрипт на питоне, что бы сконвертировать её в csv.

Полученный csv я геокодировал вручную в QGIS, и получил geojson с точками. Затем на питоне сгенерировал html-страничку, где для каждой точки вставлена картинка данного здания из Google Street View Static API.

Получившийся файл GeoJSON, пригодный для открытия в NextGIS QGIS и других ГИСах, а так же скрипты, я выложил на https://gist.github.com/trolleway/b3a8b1e1dc6a8d561bbd

Continue reading

Использование данных Адресного реестра Москвы

В этой статье все ссылки – актуальны!

В декабре 2015 года на портале открытых данных Москвы появился набор “Адресный реестр Москвы”. Это очень полезная вещь. Он представляет собой список адресов зданий и сооружений, и что важно – с геометрией в WGS84, и распространяется под открытой лицензией!

Геометрия зданий в большинстве случаев взята от геодезистов, и ложится на местность с очень большой точностью.

Moscow buildings, painted to street names.

Я пять лет мечтал о таких данных, что бы правительство бесплатно раздавало геометрию и адреса домов. Их можно использовать для уточнения Openstreetmap, и для многих других применений. Разработчики предлагают например использовать его как классификатор адресов для служб доставки. Возможно и использование его для создания своих карт.

Однако, данные распространяются в своём формате – просто json. Для того, что бы использовать их в ГИС-приложениях, например в настольной ГИС NextGIS QGIS, нужно сначала написать скрипт, который преобразует данные в один из ogr-совместимых форматов.

Я написал такой скрипт на python. Он работает на всех операционных системах, и генерирует csv-файл с геометрией в формате WKT, который можно открыть в QGIS.
Continue reading

Картопати 2015

Осенью 2015 года на Краснопресненской прошло 2 картопати, организованных картами Спутник. Для того, что бы их результат выглядел более весомо, я сделал 8 отдельных анимированных гифок, где видны улучшения по разным типам объектов.

Continue reading

Сравнение площади территории закрытия автомобильного движения в Осло с городами РФ

Прочитал в блоге Варламова заметку, о том что в центре города Осло планируется закрыть большую территорию для проезда автомобилей. В ней были приведены картинки, где территория центра Осло была наложена на центры Москвы и других городов РФ.

Они были сделаны без учёта проекции исходной карты, и показывали неправильную площадь. Если вы нарисуете на гуглокарте ровный квадрат в центре Осло, и передвинете его в Москву, то его надо сплюснуть по вертикали.

Я повторил эту же операцию в NextGIS QGIS.

Статистика запросов тайлов openstreetmap.org по России

Некоторое время назад стала публиковаться статистика запросов тайлов с openstreetmap.org.
В ней видны координаты тайлов, количество просмотров за день, и собственно дата. В статистику попадают только те тайлы, к которым было более 10 обращений.
Я нашел статью в интернете (https://github.com/trolleway/tile_logs_vis), немного дополнил скрипты, и выложил визуализацию по России – запросы к 16 уровню за май месяц.

openstreetmap tile logs moscow 2015-05 zoom16

Посмотреть: http://demo.nextgis.ru/ngw/resource/194 … tyles=1951
Сервер может тормозить.

Скрипты на гитхабе: https://github.com/trolleway/tile_logs

 

Видно, что в России идут массовые запросы по крупным городам – похоже на трекинговые системы. А вот парки и деревни массово никого не интересуют.