Как стать автором
Обновить
25
2.6
Алексей Печников @N-Cube

Geoscience R&D and Geophysical Modeling

Отправить сообщение

Open Source спутниковая интерферометрия PyGMTSAR (Python InSAR)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

С тех пор, как я рассказывал на хабре про мой открытый проект спутниковой интерферометрии PyGMTSAR (Python InSAR библиотека) для обработки и анализа радарных данных спутников Sentinel-1, прошло много времени и сегодня PyGMTSAR представляет собой наиболее мощный инструмент среди всех открытых InSAR. Притом, PyGMTSAR действительно общедоступен, поскольку не требует скачивать огромные данные, устанавливать программное обеспечение и так далее — достаточно просто открыть ссылки на Google Colab в браузере и посмотреть и запустить готовые примеры или адаптировать их для своей территории и области интереса. Предлагаемые Google Colab примеры включают в себя создание отдельных интерферограмм для анализа результатов сейсмических событий (землетрясений) и наводнений, создание рельефа, анализ серий интерферограмм для мониторинга оползней и проседаний грунта. И все эти возможности доступны в один клик онлайн на Google Colab и в Docker контейнерах. Для профессионалов предоставляется полностью программируемая среда для выполнения InSAR задач и интерактивной 3D визуализации, доступная на Google Colab, в Docker контейнерах, на GitHub Action runners, и, конечно, на локальных компьютерах и на облачных хостах.


Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Книга по Open Source процессору спутниковой интерферометрии PyGMTSAR (Python InSAR)

Время на прочтение3 мин
Количество просмотров1.4K

Почти четверть века назад я занимался моделированием интерференции и голографии в оптических нелинейных средах — попросту говоря, фотополимерах — а сегодня в качестве хобби разрабатываю открытый InSAR процессор PyGMTSAR. Если вам покажется странным, почему в качестве хобби, то это просто — потому, что я могу сделать продукт лучше, чем аналоги от НАСА (JPL ISCE) и Европейского космического агенства (SNAP), а вот гранты на разработку они выдают гражданам США и Евросоюза (коим я не являюсь). Что касается российской науки, то лишь спустя десятилетие после окончания университета я случайно узнал (гугл показал ссылку на меня же в запросе, связанном с интерферограммами в фотополимерах), что моя магистерская работа заняла первое место во всероссийском конкурсе, где ННГУ им. Лобачевского из Нижнего Новгорода, кажется, и вовсе не появлялся (хотя после выпуска и завершения конкурса я еще работал в университете, я даже не знал, что мою работу отправляли на всероссийский конкурс). Наверное, это вполне объясняет, почему же мне интересна тема InSAR. А вот к фотополимерным принтерам, которые с тех пор стали мейнстримом, душа не лежит и мне гораздо интереснее именно теоретическая часть моей давней работы, которая и является основой спутниковой интерферометрии. На хабре я уже публиковал серию статей на русском языке по обработку данных с радарных спутников Sentinel-1, а для тех, кто хочет подробнее, предлагаю обратиться к моей электронной книге на английском. Она доступна во многих онлайн издательствах, включая Амазон, а также значительная часть контента опубликована в открытом PDF (также другие главы можно найти в моих постах на линкедин, когда я выкладывал драфты в процессе написания книги).


Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Бюджетный 3D принтер как конструктор. Печатаем PETG и TPU (90 мм/с), а также PLA+ (180 мм/с)

Время на прочтение6 мин
Количество просмотров8.8K

В предыдущих статьях я обещал рассказать про печать гибким филаментом на 3D принтере Creality Ender 3 v2. Идея была в том, что сначала мы настраиваем печать с самым негодным PLA филаментом и далее все работает само собой с любым приличным филаментом. В комментариях читатели мне много писали, что на боуден экструдере это невозможно; еще было много утверждений, что производитель очень лукавит и скорость печати 180 мм/с на принтере недостижима. По результатам наших тестов рад сообщить, что "страшилки" надуманы", принтер прекрасно печатает на заявленной скорости и с высокими ускорениями PLA+ (обычный PLA не выдерживает такой скорости), а также, легко может печатать PETG и TPU.


image-20230719122805529


Вазы напечатаны eSUN TPU из g-code файла для PLA+ на скорости 90 мм/с, изменены только температура печати (220-230°C) и температура рабочего стола (70°C). Слои хорошо соединены, результат печати прочный и можно его сжимать и скручивать, после чего форма восстанавливается.

Читать дальше →
Всего голосов 14: ↑11 и ↓3+8
Комментарии77

PyGMTSAR is Next Generation Interferometric Synthetic Aperture Radar (InSAR) Software for Everyone

Время на прочтение6 мин
Количество просмотров2.5K

Do you need to produce satellite interferometry results for your work or study? Or should you find the way to process terabytes of radar data on your common laptop? Maybe you aren't confident about the installation and usage of the required software. Fortunately, there is the next generation of satellite interferometry products available for you. Beginners can build the results easily and advanced users might work on huge datasets. Open Source software PyGMTSAR is available on GitHub for developers and on DockerHub for advanced users and on Google Colab for everyone. This is the cloud-ready product, and it works the same as do you run it locally on your old laptop as on powerful cloud servers.


Read more →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Бюджетный 3D принтер как конструктор. Заменяем материнскую плату и прошивку

Время на прочтение15 мин
Количество просмотров19K

К нам приехал принтер Creality Ender 3 v2 с процессором GD (GigaDevice) вместо ожидаемого STM (STMicroelectronics). Принтер в базовой комплектации еще как-то работает (хотя прошивка очень урезана), но часть периферии принтера не работает вовсе (датчик филамента), а остальное работает не корректно (сенсор автокалибровки CR Touch) или перегревается (двигатели). Открытую прошивку Marlin для процессора STM можно скомпилировать и установить на матплату GD (хотя официально процессор не поддерживается), вот только эта прошивка не распознает сенсор автокалибровки. Получается, что нужна или замена материнской платы, или сенсора, или того и другого вместе. Логично начать с материнской платы и прошивки — как минимум, в открытой прошивке есть функции тестирования сенсора автокалибровки, так что уже можно будет выяснить, в порядке ли он.


После замены матплаты и установки открытой прошивки пользоваться принтером намного удобнее и качество печати улучшилось благодаря опциям калибровки всего оборудования принтера. В статье мы рассмотрим новые возможности подробнее. И, конечно же, разберемся детально с сенсором автокалибровки уровня CR Touch.


Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии18

Бюджетный 3D принтер как конструктор. Такой разный PLA и как им печатать

Время на прочтение14 мин
Количество просмотров7.4K

Низкотемпературный (с рабочей температурой от 180-200°C) филамент типа PLA (Polylactic acid) можно съесть (если сертификат прилагается), а при нагревании ничего вредного он не выделяет (при условии, что в нем нет каких-то непредвиденных добавок), что делает его идеальным для домашнего использования.


Для тестов мы заказали три катушки разного цвета PLA-F от Bing3D (11$/kg), а также катушку зеленого PLA+ (14$/kg) и eSilk-PLA Rainbow Multicolor (19$/kg, с разборной катушкой) eSUN. Эти продукты легко доступны и популярны в Таиланде на онлайн площадке Shopee.


Для начала разберемся с настройкой параметров печати для самого бюджетного филамента Bing3D. Цель проста — использовать материал как лакмусовую бумажку для выявления всех тех проблем печати, которые маскирует более качественный пластик. После повторим те же шаги с филаментом eSun и сравним результаты.



Модель напечатана из одного G-code файла с настройками для Bing3D. Слева направо показаны результаты PLA-F Bing3D (черный), PLA+ eSUN (зеленый) и eSilk-PLA Rainbow Multicolor eSUN (оранжево-золотистый). Как видим, печатать не самым бюджетным PLA проще простого — результат получается сам собой, даже если настройки взяты "с потолка". Кстати, если вы заметили небольшой "дефект" в виде наклонной черточки правее центра на золотистой вазе, то это всего лишь кошачья шерстинка :)

Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии58

Бюджетный 3D принтер как конструктор. Заменяем экструдер на металлический и получаем профит

Время на прочтение9 мин
Количество просмотров12K

Что получится, если качественно настроить Bowden экструдер, вместо столь популярного апгрейда на дорогой директ? Как оказалось, этого более чем достаточно, чтобы получить сравнимое качество печати. Можно даже и не заменять штатный пластиковый экструдер — у него есть свои преимущества, но нам хотелось приключений и мы их сполна нашли.


Попутно мы исправили еще несколько недостатков своего принтера Ender 3 v2, так что теперь можем печатать довольно сложные модели в свое удовольствие.



Выглядит цельнометаллический экструдер отлично, да и работает в целом тоже… "но есть нюанс".

Читать дальше →
Всего голосов 17: ↑13 и ↓4+9
Комментарии95

Бюджетный 3D принтер как конструктор. Собираем и настраиваем модель до 200$

Время на прочтение12 мин
Количество просмотров12K

3D принтеры давно уже превратились в конструктор — достаточно взять популярную платформу и дополнять ее фабричными и самодельными деталями и устройствами. И по стоимости бюджетный 3D принтер оказывается на уровне конструкторов лего или фишертехник (наборы со словами «робототехника» в названии и вовсе стоят кратно дороже). К примеру, большой конструктор «Fischertechnik Dynamic XXL» (и это еще без «робо») три года назад нам обошелся в 200$ (с доставкой и пошлинами), а сегодня за эти деньги можно купить один из многих популярных экструзионных (филаментных) 3D принтеров (тоже с доставкой и пошлинами). Конечно, такая покупка сопряжена с приключениями, поскольку производитель экономит на всем, на чем только может, стараясь сохранить качество печати. Притом, даже на таких принтерах энтузиастам удается получать отличные результаты — так что тут есть чему поучиться (и не только детям).


Мы выберем базовый принтер в качестве платформы с целью изучить и улучшить его так, чтобы и упростить использование и улучшить результаты печати. А поскольку дети еще не могут самостоятельно выполнять полноценные "лабораторные работы", то документировать ход работ буду я сам.



Для начала модель Articulated Snake v8 вполне удалась. Использован простейший PLA филамент от неведомого китайского производителя.

Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии63

А снег идет, или делаем новогоднюю гирлянду с детьми на микроконтроллерах Raspberry Pi Pico

Время на прочтение13 мин
Количество просмотров6.5K

Что делать, когда обычные гирлянды надоели, а пора встречать Новый год с детьми? Можно создать эффект снегопада и другие эффекты с помощью адресных светодиодов NeoPixels, добавить ИК-пульт для управления выбором эффектов, их скоростью и яркостью и, при желании, мини-дисплей для отображения текущих параметров. Так мы займем время до праздников и создадим свое устройство для украшения елки и не только елки.


Нам понадобятся микроконтроллер Raspberry Pi Pico (около 4$) или его разновидности на чипе RP2040, простейший ИК-пульт (дешевле 1$ вместе с приемником, батарейкой и белым светодиодом в комплекте) и соединенные последовательно адресные ленты WS2812B (10 светодиодов на метр, напряжение 5V, стоимость около 1$/метр). Также можно подключить миниатюрный I2C или SPI дисплей (1-3$), если таковой найдется под рукой. Код MicroPython реализует 5 разных эффектов, доступных при нажатии кнопок 1 — 5 на ИК пульте, а также обеспечивает управление яркостью гирлянды (кнопками вверх и вниз) и скоростью эффектов (кнопками вперед и назад).


Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии27

Терабайты в кармане, или Apple Silicon Air для Big Data

Время на прочтение11 мин
Количество просмотров3.2K

Думаете, Apple Silicon Air и iMac выглядят совсем уж "не серьезно" для задач обработки многотерабайтных данных? Я сам так и думал, к счастью, реальность оказалась намного интереснее. Давайте посмотрим на топовые Apple Silicon M1 iMac и M2 Air на примерах работы с данными спутниковой интерферометрии (мое хобби и, порой, работа).


PyGMTSAR Jupyter notebooks

Ниже есть ссылки на образы Docker, так что все результаты легко воспроизвести на разных операционных системах и устройствах.


Попробуйте сверхбыстрый хостинг в России от AdminVPS

Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии13

PyGMTSAR (Python GMTSAR) — Спутниковая интерферометрия для всех

Время на прочтение5 мин
Количество просмотров2K

MacOS testsUbuntu testsPyPI testsAvailable on pypiDocker


Долго ли, коротко ли, а только мой проект спутниковой интерферометрии PyGMTSAR, начинавшийся просто для проверки некоторых идей и алгоритмов, превратился в самостоятельную Python PyPI библиотеку и обзавелся тестами (CI on Github Actions) и "живыми" примерами на Google Colab и в образе Docker, плюс документацией на GitHub Pages.

"Классическая" интерферограмма — обычно так выглядит смещение поверхности в результате сильного землетрясения

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

Оценка и устранение атмосферных помех спутниковой интерферометрии

Время на прочтение8 мин
Количество просмотров1.8K

Излучение спутникового радара проходит сквозь облака и позволяет получать снимки в темноте, в дождь и снег, когда оптическая съемка невозможна. При этом, накапливающаяся при прохождении излучения через атмосферные неоднородности временная задержка при обработке данных спутниковой радарной съемки трансформируется в ложные смещения поверхности. Такая задержка не влияет на значение когерентности (вычисляемое в так называемом окне, сильно меньшем характерного масштаба атмосферной помехи), что не позволяет обнаружить и исключить такие помехи непосредственно в процессе построения интерферограмм. Получается, что радарные снимки сделать можно в любое время и при любой погоде, вот только многие снимки оказываются искаженными, порой до неузнаваемости всей площади съемки, и стандартными методами оценки когерентности интерферограмм мы об этом даже не узнаем. Обсуждаемая проблема имеет различные решения, некоторые из которых мы и рассмотрим с примерами Jupyter ноутбуков Live Example S1A_Stack_CPGF_T173 on Google Colab и Live Example S1A_Stack_CPGF_T173 Plus on Google Colab.



Интерферограмма в центре особенно явно зашумлена атмосферной помехой, если присмотреться, то эта же помеха заметна на всех интерферограммах, включающих снимок 2015-04-27. Удаление этого одного снимка позволит полностью избавить всю серию интерферограмм от заметных атмосферных помех.

Читать дальше →
Всего голосов 3: ↑3 и ↓0+3
Комментарии4

Делаем Fischertechnik-совместимый модуль управления шаговым мотором на основе драйвера A4988 (DRV8825)

Время на прочтение7 мин
Количество просмотров5.9K

Уже давно я припас все детали, перечисленные ниже, и осталось собрать все вместе и получить модуль управления мотором для удобной установки на конструктор. Конечно, сначала мы подключили катушки шагового мотора с помощью простого H-bridge и оценили, почему так делать не стоит. Далее мотор был подключен с помощью драйвера и разница оказалась более чем наглядной.



2 вывода питания с коннекторами Фишертехник, 4 вывода для подключения мотора и 5 выводов для подключения микроконтроллера (step, dir, enable). Отверстия в крышке пропилены с помощью Dremel, равно как и проточено отверстие в шестеренке под вал мотора — предупреждаю, пластик Фишертехника, хоть он и гибкий, обрабатывается не проще металла!

Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии6

Линейная алгебра для спутниковой интерферометрии

Время на прочтение6 мин
Количество просмотров2.5K

В предыдущих статьях с примерами Jupyter ноутбуков на Google Colab мы наблюдали эффект "танцующих гор" и потом разбирали, как же это возможно. Смотрите Танцующие горы Ирана по данным спутниковой интерферометрии и Спутниковая интерферометрия для танцующих гор Ирана на Google Colab. В статьях рассказано, как можно посчитать движения территории или отдельных объектов путем анализа радарных спутниковых снимков на примере снимков Sentinel-1. Теперь посмотрим, как можно усложнить себе жизнь (однократно), чтобы получать еще более точные результаты автоматически. Вместо ручного выбора референсного изображения построим всевозможные пары изображений и посчитаем для них интерферограммы, чтобы по полученным сериям смещений с заданной их вероятностью (когерентностью) для перекрывающихся интервалов времени найти наиболее вероятную траекторию движения каждого пикселя поверхности за весь период наблюдения. Хотя я стараюсь обходиться без лишних усложнений наподобии записи в матричной форме вычисления среднего значения двух величин (многие работы по интерферометрии делают именно так — демонстрируют матричные уравнения для нахождения среднего значения для смещений, вычисленных раздельно для восходящей и нисходящей орбиты… хоть это формально и правильно, с точки зрения здравого смысла в этом нет никакого смысла), сегодня без линейной алгебры и матриц обойтись нам не удастся, зато я постараюсь объяснить все это в максимально простой и понятной форме.


Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Спутниковая интерферометрия для танцующих гор Ирана на Google Colab

Время на прочтение9 мин
Количество просмотров3.1K

В статье Танцующие горы Ирана по данным спутниковой интерферометрии показан очень необычно выглядящий результат спутниковой интерферометрии. Сегодня мы посмотрим, что же это значит и почему именно этого и следует ожидать. Ранее в статье PyGMTSAR, или спутниковая интерферометрия для всех с примерами Jupyter Python ноутбуков на Google Colab я рассказал про свой пакет для спутниковой интерферометрии на основе радарных снимков Sentinel-1 PyGMTSAR (Python GMTSAR), написанный именно для того, чтобы быстро и удобно получить и проанализировать результаты непосредственно в Python ноутбуке.


По ссылке вы найдете готовый ноутбук на Google Colab, позволяющий прямо в браузере выполнить всю обработку и увидеть результаты и, при желании, тут же поработать с ними: Yamchi DAM Interferograms Persistent Scatterer Interferometry (PSI) Analysis Для Debian Linux я сделал скрипт инициализации облачного инстанса GMTSAR.install.debian10.sh, а на Google Colab ноутбук автоматически установит все необходимые зависимости, просто следуйте подсказкам в ноутбуке.


Читать дальше →
Всего голосов 10: ↑9 и ↓1+8
Комментарии7

Google Cloud Storage для статического сайта общедоступного или с ограничением доступа

Время на прочтение3 мин
Количество просмотров3.4K

Рассмотрим задачу хостинга статичного веб-сайта, например, Leaflet карты с заранее посчитанными данными на ней или статичной 3D модели. Для этих целей можно воспользоваться статическим хостингом файлов на Google Cloud Storage. Кроме того, этот способ позволяет весьма просто ограничить доступ к сайту в веб-интерфейсе Google Cloud, указывая емайлы пользователей, которым доступ разрешен. За счет Google CDN и кэширования файлов можно не беспокоиться об обработке большой нагрузки, а добавление или удаление файлов доступно с помощью консольной утилиты gsutil и в веб-интерфейсе Google Cloud. Также не нужно заниматься получением и обновлением SSL сертификатов и созданием для них доменных имен. Буквально в несколько консольных команд получается масштабируемое и легко поддерживаемое решение с хранением данных в облаке Google и гарантией защиты данных.


Читать дальше →
Всего голосов 5: ↑4 и ↓1+3
Комментарии0

PyGMTSAR, или спутниковая интерферометрия для всех с примерами Jupyter Python ноутбуков на Google Colab

Время на прочтение6 мин
Количество просмотров4.2K

После анализа модели Танцующие горы Ирана по данным спутниковой интерферометрии мне захотелось проверить набор гипотез и улучшить качество результатов. Как оказалось, ни один из существующих интерферометрических пакетов не позволяет этого сделать так, как мне нужно. Оценив фронт работ, я решил, что за месяц фулл-тайм работы я смогу написать свою систему спутниковой интерферометрии для радарных снимков Sentinel-1 на основе открытого продукта GMTSAR, реализовав собственные алгоритмы обработки данных и обеспечив удобную работу в среде Jupyter Python. По образованию я радиофизик и мой диплом магистра по моделированию голограмм в оптически нелинейных средах (равно моделированию интерференции) в свое время был признан победителем во всероссийском конкурсе, так что мне удалось уложиться в поставленные сроки и реализовать все запланированное — больше свободного времени на этот проект у меня просто нет. Итак, встречайте PyGMTSAR (Python GMTSAR) — по ссылке вы найдете готовые ноутбуки, которые в один клик можно запустить на Google Colab и прямо в браузере увидеть результаты и, при желании, тут же поработать с ними. Для Debian Linux я сделал скрипт инициализации облачного инстанса GMTSAR.install.debian10.sh, а на Google Colab ноутбуки автоматически установят все необходимые зависимости, что позволяет легко запускать их в "облаках".

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии9

Танцующие горы Ирана по данным спутниковой интерферометрии

Время на прочтение2 мин
Количество просмотров9.5K

Территория северо-западного Ирана на границе с Каспийским морем выделяется своей сейсмической необузданностью, как во времена молодости нашей планеты. В недрах этого района и сегодня продолжаются процессы нефтегазообразования, например, поблизости от вулкана Дамаванд, геологическую модель которого я показывал ранее. Недавно я занимался вопросом устойчивости плотины Ямчи в провинции Ардебиль и полученные результаты оказались настолько удивительными, что я хочу ими здесь поделиться. Пусть в предыдущих статьях я уже показывал, как растут горы, но чтобы горы еще и танцевали — это мало где удастся увидеть! Как обычно, все данные доступны в GitHub репозитории Yamchi Dam, Ardabil, North Iran.



Плотина выделена красным кольцом, далее от нее в направлении к правому верхнему краю картинки течет река, питающая город Ардебиль. Озеро и плотина растут вверх со коростью около 10 см в год, а сам город с такой же скоростью погружается вниз. Но самое интересное в том, как именно происходит это движение — хотя значение вертикального смещения за год велико, это лишь малая часть общей картины.

Всего голосов 25: ↑21 и ↓4+17
Комментарии8

3D линеаментная геологическая модель землетрясения 6.5 баллов в Монте Кристо, Невада, США

Время на прочтение5 мин
Количество просмотров1.4K

Как мы показали в предыдущих статьях, поверхностные геологические нарушения (линеаменты) могут быть выделены с помощью линейного преобразования Радона (Хафа), в то время как геологическая плотность может быть восстановлена с помощью кольцевого преобразования Радона (Хафа). При использовании пространственной фильтрации исходных данных можно сопоставить длину волны с глубиной и получить трехмерную модель. При этом, кольцевое преобразование имеет понятные ограничения — кольцевые статистики радиусом меньше 3х пикселов недостоверны, так что, скажем, при использовании открытого рельефа всей планеты разрешением 30 м верхние 40 метров (2*30/sqrt(2)) трехмерной модели являются результатом интерполяции. В случае же линейного преобразования мы избавлены от этого ограничения, поскольку анализируем именно выходы глубинных структур на поверхность.


Сегодня мы построим объемную линеаментную модель и сравним ее с плотностной моделью и интерферограмммой сейсмического события из предыдущих статей. Как будет показано, эти модели согласуются между собой и дополняют друг друга.


Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии0

Пинбол-машина Fischertechnik с микроконтроллером BBC Microbit или Raspberry Pi Pico

Время на прочтение5 мин
Количество просмотров2.5K

Давно не брал я в руки Dremel Пора продолжить тему предыдущих статей про творческий подход к конструкторам Фишертехник, смотрите предыдущую публикацию Конструктор Fischertechnik и Dremel: допиливаем моторы, сервоприводы и пневматическую присоску


Есть такой замечательный конструктор Фишертехник ROBO TX ЭлектроПневматика (на странице по ссылке доступен документ со списком официальных деталей) и к нему методические материалы на разных языках, включая русскоязычную версию на сайте официального дилера ПакПак. Все с ними хорошо, кроме стоимости микроконтроллера, компрессора и электромагнитных клапанов, которые легко можно заменить на совместимые, что мы и сделаем. Эта статья ориентирована на желающих подобрать совместимые с Фишертехником компоненты, поскольку довольно много времени занимает выбор совместимых деталей, ожидание их доставки и тестирование.



Да, «лапша» из проводов так и просит что-то с этим сделать, но я держу себя в руках и не вмешиваюсь в процесс постройки :)

Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Информация

В рейтинге
1 028-й
Откуда
Таиланд
Зарегистрирован
Активность