Useful GIS notes and more
73 subscribers
22 photos
20 links
My notes on GIS and more
Download Telegram
Зональная статистика в Google Earth Engine в браузере

Некоторое время провозился с расчетами зональной статистики в GEE и в итоге написал скрипт который позволяет по полигональному слою собирать статистики сразу из нескольких растров и считать сразу кучу параметров (mean, median, stdDev, variance, min, max ).

Процесс описал в статье на medium. Там же есть скрипт который можно кастомизировать под свои нужды (подставить свой полигональный файл и свои растры)

https://medium.com/@anton.biatov/how-to-combine-topography-and-vegetation-a-practical-guide-to-zonal-statistics-in-google-earth-d8167615937b

#gee
Гайд: Зональная статистика в Python с Earth Engine.

Внутри:
— Шаблон для одновременного расчёта нескольких растров;
— Унифицированный редуктор (среднее/медиана/Стандартное отклонение/дисперсия/мин/макс за один проход — экономит квоты и время);
— Конвертация в GeoDataFrame (geopandas)
— Экспорт в GPKG/CSV + загрузка на Google Диск;
— Наглядные карты (рельеф, NDVI, температура почвы).
— Кодовые ячейки — как в блокноте, 1:1.

В конце статьи есть ссылка на готовый блокнот Colab.

https://medium.com/@anton.biatov/zonal-statistics-in-python-using-earth-engine-and-google-colab-7101d1d42ffd

#gee #colab #python
🔥1
Нашел идеальный сервис для скачивания видео с YouTube

https://ytdlp.online/


По сути это просто веб-обертка для Python библиотеки yt-dlp при помощи которой можно качать видео при помощи Python скриптов или команды в терминале.

Прямо в браузере отображается выполняемая команда. Можно ее повторить у себя на локальном компе.

Так же там можно скачать последнюю версию библиотеки yt-dlp для разных операционных систем, чтоб скачивать видео прямиком себе на комп.

Самый прикол в том что из-за того что сервис бесплатный, его создатели максимально с экономили затраты сервиса и реализовали скачивание видео в открытую папку, которая автоматически отчишается каждый час. И если перейти по адресу https://ytdlp.online/download/ можно увидеть что другие пользователи скачивали за последний час 😈

Сервис бесплатный.
Можно задонатить создателям через крипту или PayPel


#YouTube #video #download
👍2
Супер быстрая обрезка видео (ffmpeg + Python)

Сегодня обрезал видеозаписи некоторых мастерклассов с конференции Природоохранных ГИС Украины, для загрузки их на Ютуб канал. И сделал для себя величайшее открытие!

Раньше для обрезки видео использовал такие програмы как Openshot Video Editor или DaVinci Resolve. И эти программы дают мощный функционал для монтажа, но если нужно просто вырезать фрагмент, то они излишни. И конвертация больших видео занимает очень много времени, иногда часы.

Если нужно просто обрезать с видео по заданным секундам, то это можно сделать в 1000 раз быстрее при помощи программы ffmpeg, и автоматизировать обработку множества видео при помощи Python.

Ниже приведу код при помощи которого можно пакетно нарезать множество видео.

Шаги по подготовке:

0. Устанавливаете программу ffmpeg

1. Выписывате с какой по какую секунду нужно вырезать какое видео и куда сохранить фрагмент.

2. Записываете выписанную информацию в словарь list_clip_settings

3. Запускаете скрипт. Он циклом проходит по всем словарям в списке, и вырезает нужные фрагменты.

Вырезать 2 видео разрешением 2560  x  1600 по полтора часа каждое заняло 4 секунды, всего ЧЕТЫРЕ секунды !!!

import subprocess
from time import perf_counter

def fmt(seconds: float) -> str:
"""Форматирование секунд в HH:MM:SS."""
total = int(round(seconds))
h, rem = divmod(total, 3600)
m, s = divmod(rem, 60)
return f"{h:02d}:{m:02d}:{s:02d}"

list_clip_settings = [
{
"input": "video_source/20250723_Polischuk_Svidzinska.mp4",
"output": "video_masterklasses/20250723_Polishchuk_Olexandr-Tree_detection_for_help_U-net.mp4",
"start": "00:00:51",
"end": "01:31:17"
},
{
"input": "video_source/20250723_Polischuk_Svidzinska.mp4",
"output": "video_masterklasses/20250723_Svidzinska_Daria-analiz_prostorovo-chasovih_trendiv.mp4",
"start": "01:31:32",
"end": "02:55:22"
}
]

total_start = perf_counter()

for i in list_clip_settings:
input = i.get("input")
output = i.get("output")
start = i.get("start")
end = i.get("end")

cmd = [
"ffmpeg",
"-ss", start,
"-to", end,
"-i", str(input),
"-c", "copy",
"-map", "0",
"-movflags", "+faststart",
str(output)
]

t0 = perf_counter()

subprocess.run(cmd, check=True)

elapsed = perf_counter() - t0

print(f"Файл {str(output)} готов. Время на клип: {fmt(elapsed)}")

total_elapsed = perf_counter() - total_start

print("Готово!")
print(f"Общее затраченное время: {fmt(total_elapsed)}\n")


Фактически это просто обертка при помощи Python и subprocess вокруг команды:

ffmpeg -ss 01:31:32 -to 02:55:22 -i "path_to/input_file.mp4" -c copy -map 0 -movflags +faststart "path_to/output_file.mp4"


Пояснения:

* -c copy — без перекодирования (качество 1:1, очень быстро).

* -ss и -to — время начала/конца от исходного видео.

* -map 0 — берём все дорожки из исходника (видео+аудио).

* -movflags +faststart — удобнее для проигрывания/загрузки (метаданные впереди).


Кстати, первое из вырезанных видео про Обнаружение деревьев на космоснимках при помощи нейронных сетей (U-net) уже на ютуб канале: https://youtu.be/v09eLAgUFgs

Подписывайтесь на ютуб канал. В этом году были мощнейшие мастерклассы!

Постепенно всех их опубликуем.


#python #ffmpeg #video #video_editing
🔥31
Channel name was changed to «Useful GIS notes and more»
Веб-приложение - вьювер влажности почвы.

Хорошо видно climate change. Влажность почвы резко падает после 2020 года. Особенно хорошо видно по северным регионам.
---
Сегодня изучал возможности работы с динамическим выбором и анализом данных при помощи слайдера в GEE, и создал такое веб-приложение:

https://gee-antonbiatov.projects.earthengine.app/view/smap-soil-moisture-0-100cm

Исходные данные обновляются каждые 3 часа. Но для удобства отображения данные усреднены за каждые 10 дней.

Можно кликнуть по карте и получить график как менялась влажность почвы с марта 2015 г., усредненная за период в 10 дней.

Т.к. это дейтвительно Big Data надо подождать пока будет проведен анализ и построится график.

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

🌟И самое главное!
Можете использовать исходный скрипт, подставив свои данные (температуру, NDVI etc.).
Там я все подробно описал:

https://code.earthengine.google.com/b0836e84583b15c49e0bd28a1311bba6

#gee #climate
🔥2
Фильтрация спекл-шумов на снимках Sentinel-1 в GEE

Работая над мониторингом лесопотерь по Sentinel-1, наткнулся на интересную статью о подготовке данных: https://doi.org/10.3390/rs13101954
.
Радарные снимки содержат спекл-шум (“соль и перец”) — результат интерференции отражённых микроволн от множества мелких объектов в пикселе. Для его снижения применяют фильтрацию.

Я сравнил разные алгоритмы (ядро 9 пикселей) на лесах, вырубках и населённых пунктах. Лучшие результаты дали Boxcar и GAMMA MAP. Lee показал средний результат, Refined Lee и Improved Lee Sigma — хуже, причём последний работал медленно.

Скрипты примененных мной фильтров в комментариях к оригинальному посту: https://t.me/gis_notes/8

#gee #sar #sentinel_1
🔥3
Собрал простой вьювер лесопотерь по данным Sentinel-1 которые появились за прошедший год. Вьювер со шторокой - левая чать карты 2024-10-03, правая - 2025-10-04

https://gee-antonbiatov.projects.earthengine.app/view/galamsey2024-2025v01

даже не ожидал что на столько просто получиться выявить лесопотери (без машинлёнинга, только растровый калькулятор). Ключевые моменты описал в комментах к этому посту https://t.me/gis_notes/9


#gee #sar #sentinel_1 #forest #changedetection
🔥6🎄1
Скачать растр температуры поверхности по данным Landsat 8/9


Собрал простое приложение
1) нарисовать полигон на карте
2) настроить параметры поиска и запустить поиск снимков.
3) Выбрать один из найденных снимков
4) Отобразить на карте
5) Экспортировать GeoTiff

https://gee-antonbiatov.projects.earthengine.app/view/l8l9temperaturedownloader


Разница между данными полученными по Landsat 8 и 9 до 2-х градусов Цельсия. Что может быть обусловлено разным временем съемки.

#gee #landsat #temperature
🔥4
Наткнулся на геопортал где можно скачать ЦМР и ЦММ 50см/пиксел и классифицированное c RGB данными облако точек с детализацией 10 точек на 1м²

Можно по экспериментировать с такими данными.

Круто видны рельеф и старые дороги под сплошным лесным покровом.

И еще на портале интересно реализовано предоставление пользователю заказа с протухающими ссылками с таймером.

https://cdd.dgterritorio.gov.pt/dgt-fe

#data #lidar #dem #portugal