Функция
#R
dev.off()
закрывает текущее графическое окно, а graphics.off()
закрывает все графические окна в текущем сеансе.#R
Глобальные карты высоты леса
В (Potapov et al., 2020) описан метод создания глобальной карты высоты лесного полога с пространственным разрешением 30 м, основанной на данных космического лидара GEDI и разновременных данных Landsat.
Для создания карты использованы данные GEDI (апрель–октябрь 2019 года) и данные Landsat за 2019 год. Высота леса моделировалась ансамблем деревьев регрессии с движущимся окном. Калибровка модели осуществлялась локально, с применением метрики GEDI RH95 (относительная высота на уровне 95%). В качестве признаков взяты разновременные данные Landsat, призванные отразить фенологические изменения на поверхности. Поскольку лидар GEDI, работающий на борту МКС, позволяет проводить измерения лишь в полосе широт от 51.6° с.ш. до 51.6° ю.ш., то для создания глобальной карты пришлось экстраполировать построенную модель в бореальные регионы (за пределы диапазона данных GEDI).
🌍 Карту можно получить на GEE: Global Forest Canopy Height from GEDI & Landsat.
Карта подготовлена лабораторией Global Land Analysis and Discovery (GLAD) департамента Географических наук университета штата Мэриленд. GLAD известна своими картами Global Forest Change и данными Harmonized Landsat Sentinel-2.
Следующая глобальная карта высоты лесного полога построена по данным 2020 года с пространственным разрешением 10 м (Lang et al., 2023). Для ее создания использованы данные GEDI, спутниковые снимки Sentinel-2 и ансамбль моделей на основе сверточных нейросетей (CNN). Итоговая модель позволяет получить в любой точке Земли высоту лесного полога и погрешность оценки высоты полога.
Применявшиеся ранее подходы для создания карт высоты полога на основе данных GEDI и Landsat-8, в частности (Potapov et al., 2020) реализовывали попиксельное отображение пространства признаков в высоту полога, без учета свойств окрестности пикселя и текстуры изображения. Применение сверточных нейросетей позволило учесть эти локальные особенности, что является существенной новизной предложенного подхода.
Проблема насыщения при расчете высоты полога, которая приводит к ухудшению точности оценок с увеличением высоты полога, в (Lang et al., 2023) решалась чисто механически — за счет огромного объема обучающих данных. Точность оценки высоты по-прежнему падает с увеличением высоты деревьев, хотя и несколько лучше, чем у более ранних подходов.
Важно, что предложенный (Lang et al., 2023) подход к расчету высоты полога может переноситься на другой временной период. Напомним, что лидар GEDI будет работать на орбите по крайней мере до конца 2024 года.
Исходный код и обученные модели доступны на Github: github.com/langnico/global-canopy-height-model.
🌍 Карта на GEE: ETH Global Sentinel-2 10m Canopy Height (2020).
Код примера
Представляется, что данная карта высот лесного полога является лучшей на сегодняшний день среди глобальных карт с точки зрения пространственного разрешения и точности. В то же время, она не использует лидарные данные для оценки высоты за пределами полосы измерений GEDI, что открывает возможности для ее совершенствования, например, с привлечением данных лидара ICESat-2.
P. Potapov, X. Li, A. Hernandez-Serna, A. Tyukavina, M.C. Hansen, A. Kommareddy, A. Pickens, S. Turubanova, H. Tang, C. E. Silva, J. Armston, R. Dubayah, J. B. Blair, M. Hofton (2020). https://doi.org/10.1016/j.rse.2020.112165
Lang, N., Jetz, W., Schindler, K. _et al._ A high-resolution canopy height model of the Earth. _Nat Ecol Evol_ (2023). https://doi.org/10.1038/s41559-023-02206-6
#лидар #лес #данные #GEE
В (Potapov et al., 2020) описан метод создания глобальной карты высоты лесного полога с пространственным разрешением 30 м, основанной на данных космического лидара GEDI и разновременных данных Landsat.
Для создания карты использованы данные GEDI (апрель–октябрь 2019 года) и данные Landsat за 2019 год. Высота леса моделировалась ансамблем деревьев регрессии с движущимся окном. Калибровка модели осуществлялась локально, с применением метрики GEDI RH95 (относительная высота на уровне 95%). В качестве признаков взяты разновременные данные Landsat, призванные отразить фенологические изменения на поверхности. Поскольку лидар GEDI, работающий на борту МКС, позволяет проводить измерения лишь в полосе широт от 51.6° с.ш. до 51.6° ю.ш., то для создания глобальной карты пришлось экстраполировать построенную модель в бореальные регионы (за пределы диапазона данных GEDI).
🌍 Карту можно получить на GEE: Global Forest Canopy Height from GEDI & Landsat.
Карта подготовлена лабораторией Global Land Analysis and Discovery (GLAD) департамента Географических наук университета штата Мэриленд. GLAD известна своими картами Global Forest Change и данными Harmonized Landsat Sentinel-2.
Следующая глобальная карта высоты лесного полога построена по данным 2020 года с пространственным разрешением 10 м (Lang et al., 2023). Для ее создания использованы данные GEDI, спутниковые снимки Sentinel-2 и ансамбль моделей на основе сверточных нейросетей (CNN). Итоговая модель позволяет получить в любой точке Земли высоту лесного полога и погрешность оценки высоты полога.
Применявшиеся ранее подходы для создания карт высоты полога на основе данных GEDI и Landsat-8, в частности (Potapov et al., 2020) реализовывали попиксельное отображение пространства признаков в высоту полога, без учета свойств окрестности пикселя и текстуры изображения. Применение сверточных нейросетей позволило учесть эти локальные особенности, что является существенной новизной предложенного подхода.
Проблема насыщения при расчете высоты полога, которая приводит к ухудшению точности оценок с увеличением высоты полога, в (Lang et al., 2023) решалась чисто механически — за счет огромного объема обучающих данных. Точность оценки высоты по-прежнему падает с увеличением высоты деревьев, хотя и несколько лучше, чем у более ранних подходов.
Важно, что предложенный (Lang et al., 2023) подход к расчету высоты полога может переноситься на другой временной период. Напомним, что лидар GEDI будет работать на орбите по крайней мере до конца 2024 года.
Исходный код и обученные модели доступны на Github: github.com/langnico/global-canopy-height-model.
🌍 Карта на GEE: ETH Global Sentinel-2 10m Canopy Height (2020).
Код примера
Представляется, что данная карта высот лесного полога является лучшей на сегодняшний день среди глобальных карт с точки зрения пространственного разрешения и точности. В то же время, она не использует лидарные данные для оценки высоты за пределами полосы измерений GEDI, что открывает возможности для ее совершенствования, например, с привлечением данных лидара ICESat-2.
P. Potapov, X. Li, A. Hernandez-Serna, A. Tyukavina, M.C. Hansen, A. Kommareddy, A. Pickens, S. Turubanova, H. Tang, C. E. Silva, J. Armston, R. Dubayah, J. B. Blair, M. Hofton (2020). https://doi.org/10.1016/j.rse.2020.112165
Lang, N., Jetz, W., Schindler, K. _et al._ A high-resolution canopy height model of the Earth. _Nat Ecol Evol_ (2023). https://doi.org/10.1038/s41559-023-02206-6
#лидар #лес #данные #GEE
Карты высоты лесного полога, полученные 1) по данным GEDI и Landsat-8 (Potapov et al., 2020) и 2) по данным GEDI и Sentinel-2 (Lang et al., 2023).
Функции
Функция — это фрагмент кода, предназначенный для решения какой-либо конкретной задачи. Мы уже знакомы с большим количеством готовых функций R, а теперь научимся создавать функции сами.
Синтаксис функции имеет вид:
Например:
или
Вызов функции по имени:
Обратите внимание, что присваивание имени функции выглядит так же, как присваивание значения переменной. И действительно, переменная
Имя функции без круглых скобок возвращает код функции.
Можно создавать анонимные функции:
Список аргументов функции может быть пуст, тогда после имени функции указываются лишь круглые скобки
Можно задавать значения аргументов по умолчанию в виде
Список аргументов переменной длины формируется добавлением многоточия
Пусть нам нужна функция, строящая графики линиями красного цвета. Создадим функцию-обертку вокруг
Вот как это работает:
По умолчанию, функция возвращает значение, вычисленное в последней строке ее кода. Кроме того, для возвращения значений можно использовать
Функции в R могут возвращать несколько объектов, относящихся к разным типам данных. Такие объекты нужно предварительно “завернуть” в список:
Созданные внутри функции переменные являются локальными, то есть их значения доступны (видимы) только внутри данной функции или вложенных в нее функций. Соответственно и функция "видит" переменные, заданные вне ее пределов:
Хотя
Области видимости вкладываются друг в друга 2️⃣.
Глобальные переменные внутри функции можно задать при помощи специального оператора присваивания
Локальность и глобальность считается по отношению к конкретному окружению. Так, в следующем примере функция
#R
Функция — это фрагмент кода, предназначенный для решения какой-либо конкретной задачи. Мы уже знакомы с большим количеством готовых функций R, а теперь научимся создавать функции сами.
Синтаксис функции имеет вид:
имя <- function(список_аргументов) {
тело функции
}
Например:
sqr <- function(x) {
x^2
}
или
sqr <- function(x) x^2
Вызов функции по имени:
sqr(2)
Обратите внимание, что присваивание имени функции выглядит так же, как присваивание значения переменной. И действительно, переменная
sqr
относится к классу функций ("function"):class(sqr)
Имя функции без круглых скобок возвращает код функции.
Можно создавать анонимные функции:
(function(x) x^2)(3)
Список аргументов функции может быть пуст, тогда после имени функции указываются лишь круглые скобки
()
.Можно задавать значения аргументов по умолчанию в виде
x = a
, y = b
и т. д. Обратите внимание: для присваивания значений аргументов используется только знак равенства, стрелка <-
тут недопустима.Список аргументов переменной длины формируется добавлением многоточия
...
в конце списка. Так открывается широкий простор для создания функций-"оберток". Пусть нам нужна функция, строящая графики линиями красного цвета. Создадим функцию-обертку вокруг
plot
, то есть функцию, основу которой составляет plot
, но с некоторыми "доработками" — в данном случае, с фиксированным значением параметра цвета (col
):plot.red <- function(x, y, ...) {
plot(x, y, col = "red", ...)
}
Вот как это работает:
x <- seq(-pi,pi,.1)
y <- sin(x)
plot.red(x,y)
По умолчанию, функция возвращает значение, вычисленное в последней строке ее кода. Кроме того, для возвращения значений можно использовать
return()
. Функции в R могут возвращать несколько объектов, относящихся к разным типам данных. Такие объекты нужно предварительно “завернуть” в список:
sqr <- function(x) {
val <- x^2
txt <- "Squaring"
ret <- list(value=val,text=txt)
return(ret)
}
sqr(2)
Созданные внутри функции переменные являются локальными, то есть их значения доступны (видимы) только внутри данной функции или вложенных в нее функций. Соответственно и функция "видит" переменные, заданные вне ее пределов:
a <- 5
foo <- function() {
b <- 10 # локальная переменная foo
a <- 3
print(a) # foo видит a
print(b) # foo видит b
}
foo()
# a в основной программе не изменилась
print(a)
# b в основной программе не определена
print(b)
Хотя
a
задана вне функции и не передается в нее через входные параметры, функция все равно видит эту переменную 1️⃣. Изменения внешних переменных внутри функции не сказываются на значении этих переменных по выходе из функции.Области видимости вкладываются друг в друга 2️⃣.
Глобальные переменные внутри функции можно задать при помощи специального оператора присваивания
<<-
:foo <- function() {
b <<- 10
}
foo()
# теперь b видима из основной программы
b
Локальность и глобальность считается по отношению к конкретному окружению. Так, в следующем примере функция
g()
является глобальной по отношению к h()
:g <- function(x) {
h <- function(x) {x-1}
print(environment(h))
print(h(x))
return(x+1)
}
g(2)
#R
This media is not supported in your browser
VIEW IN TELEGRAM
Функциональное программирование
По сути, R является языком функционального программирования. Практически все в нем делается при помощи функций. Например, элементы векторов выбираются при помощи функции-квадратной скобки:
Ничего необычного? Тогда запишем функцию-квадратную скобку в “более функциональном" виде:
За следующей записью:
кроется обычное
а операцию присваивания можно выполнить так:
В качестве примера создадим оператор
Внутри новый оператор остается функцией.
Возможности функций в R огромны, мы лишь намекнули на них. Подробности можно найти во второй части книги Хэдли Уикэма: Wickam H. Advanced R. — CRC Press, 2015.
#R
По сути, R является языком функционального программирования. Практически все в нем делается при помощи функций. Например, элементы векторов выбираются при помощи функции-квадратной скобки:
x <- c(1,2,3)
x[1]
Ничего необычного? Тогда запишем функцию-квадратную скобку в “более функциональном" виде:
`[`(x,1)
За следующей записью:
`+`(1,`*`(2,3))
кроется обычное
1+2*3
а операцию присваивания можно выполнить так:
assign("a",1)
В качестве примера создадим оператор
+=
, которого нет в базовом R:`%+=%` <- function(o1,o2) eval.parent(substitute(o1 <- o1 + o2))
x <- 1
x %+=% 2
Внутри новый оператор остается функцией.
Возможности функций в R огромны, мы лишь намекнули на них. Подробности можно найти во второй части книги Хэдли Уикэма: Wickam H. Advanced R. — CRC Press, 2015.
#R
Рассказ про основы языка R в целом закончен. Дальше будет (наконец-то!) про пространственные данные, но уже не в таком интенсивном темпе.
Акапулько — до и после урагана “Отис”
"Отис" стал одним из самых сильных ураганов, когда-либо наблюдавшихся на тихоокеанском побережье Мексики. 25 сентября 2023 года он обрушился на миллионный город Акапулько, оборвав линии электропередач, повредив тропический лес, вызвав наводнение и оползни.
На снимках показаны Акапулько и его окрестности до и после урагана "Отис". Первый снимок сделан спутником Landsat 9 29 сентября 2023 года, второй — тем же спутником, но 31 октября. Обратите внимание, как изменился ландшафт вблизи города, превратившись из ярко зеленой растительности в коричневую землю. Спустя почти неделю после урагана, вода в Лагуна-де-Трес-Палос (справа от города) мутная от растворенных в ней осадочных пород.
Сравнение двух снимков в разделенном окне: код GEE
#снимки #GEE
"Отис" стал одним из самых сильных ураганов, когда-либо наблюдавшихся на тихоокеанском побережье Мексики. 25 сентября 2023 года он обрушился на миллионный город Акапулько, оборвав линии электропередач, повредив тропический лес, вызвав наводнение и оползни.
На снимках показаны Акапулько и его окрестности до и после урагана "Отис". Первый снимок сделан спутником Landsat 9 29 сентября 2023 года, второй — тем же спутником, но 31 октября. Обратите внимание, как изменился ландшафт вблизи города, превратившись из ярко зеленой растительности в коричневую землю. Спустя почти неделю после урагана, вода в Лагуна-де-Трес-Палос (справа от города) мутная от растворенных в ней осадочных пород.
Сравнение двух снимков в разделенном окне: код GEE
#снимки #GEE
Forwarded from «Советский космос»
В этот день, в 1957 году, в СССР запущен второй искусственный спутник Земли, по западной классификации «Спутник-2», с собакой Лайкой на борту.
Успешные испытания китайской многоразовой коммерческой ракеты Hyperbola-2
Частная китайская компания iSpace провела успешное испытание многоразовой ракеты Hyperbola-2. Первая возвращаемая ступень ракеты поднялась на высоту 178,4 м и мягко опустилась на землю с точностью 1,7 м.
Двухступенчатая ракета Hyperbola-2 работает на жидком топливе: метане и кислороде. Предполагается, что она сможет доставлять на низкую околоземную орбиту до 1,9 тонн груза. Кроме этого, удачные технологические решения, отработанные на Hyperbola-2, будут использованы на более крупной многоразовой ракете Hyperbola-3.
Hyperbola-3 в конфигурации с двумя ускорителями должна выводить на низкую околоземную орбиту до 8,5 тонн полезной нагрузки. Старт Hyperbola-3 намечен на 2025 год.
#китай
Частная китайская компания iSpace провела успешное испытание многоразовой ракеты Hyperbola-2. Первая возвращаемая ступень ракеты поднялась на высоту 178,4 м и мягко опустилась на землю с точностью 1,7 м.
Двухступенчатая ракета Hyperbola-2 работает на жидком топливе: метане и кислороде. Предполагается, что она сможет доставлять на низкую околоземную орбиту до 1,9 тонн груза. Кроме этого, удачные технологические решения, отработанные на Hyperbola-2, будут использованы на более крупной многоразовой ракете Hyperbola-3.
Hyperbola-3 в конфигурации с двумя ускорителями должна выводить на низкую околоземную орбиту до 8,5 тонн полезной нагрузки. Старт Hyperbola-3 намечен на 2025 год.
#китай
Программа по созданию радарных спутников Radarsat+
Канадское космическое агентство (CSA) получит от правительства 1012 млрд. канадских долларов (около 740 млн. долл. США) сроком на 15 лет для расширения семейства спутников Radarsat.
Новая программа Radarsat+, стоимостью около 66 млн. долл. в год, существенно увеличит финансовые возможности CSA, обычный годовой бюджет которого составляет около 400 млн. долл. на все программы, не считая специальных проектов.
Семейство спутников Radarsat давно и хорошо известно. Начиная с 1995 года, их данные используют канадские госструктуры и космические агентства, такие как NASA и ESA. Применяются они как в гражданских, так и в военных целях. В настоящее время семейство состоит из аппарата RADARSAT-2 и группировки RADARSAT Constellation Mission (RCM).
RADARSAT-2 1️⃣, запущенный в декабре 2007 года, представляет собой радар С-диапазона с полным набором поляризаций (доступны все четыре комбинации горизонтальной и вертикальной поляризаций: HH, HV, VV, VH). Наилучшее пространственное разрешение (дальность/азимут): 1.6 м x 0.8 м. Характеристики продуктов RADARSAT-2 приведены здесь.
RCM 2️⃣ — группировка из трех идентичных спутников, выведенная на орбиту в июне 2019 года с целью продолжения ряда данных RADARSAT. Все спутники — радары С-диапазона с полным набором поляризаций. Наличие трех спутников позволило сократить период повторной съемки с 24 суток (у RADARSAT-2) до 4 суток. Характеристики продуктов.
Ранее, владеющая Radarsat’ами компания MDA планировала создание группировки радарных спутников Chorus, состоящей из двух аппаратов С- и Х-диапазона. Конкретные сроки разработки не указывались.
#канада #SAR
Канадское космическое агентство (CSA) получит от правительства 1012 млрд. канадских долларов (около 740 млн. долл. США) сроком на 15 лет для расширения семейства спутников Radarsat.
Новая программа Radarsat+, стоимостью около 66 млн. долл. в год, существенно увеличит финансовые возможности CSA, обычный годовой бюджет которого составляет около 400 млн. долл. на все программы, не считая специальных проектов.
Семейство спутников Radarsat давно и хорошо известно. Начиная с 1995 года, их данные используют канадские госструктуры и космические агентства, такие как NASA и ESA. Применяются они как в гражданских, так и в военных целях. В настоящее время семейство состоит из аппарата RADARSAT-2 и группировки RADARSAT Constellation Mission (RCM).
RADARSAT-2 1️⃣, запущенный в декабре 2007 года, представляет собой радар С-диапазона с полным набором поляризаций (доступны все четыре комбинации горизонтальной и вертикальной поляризаций: HH, HV, VV, VH). Наилучшее пространственное разрешение (дальность/азимут): 1.6 м x 0.8 м. Характеристики продуктов RADARSAT-2 приведены здесь.
RCM 2️⃣ — группировка из трех идентичных спутников, выведенная на орбиту в июне 2019 года с целью продолжения ряда данных RADARSAT. Все спутники — радары С-диапазона с полным набором поляризаций. Наличие трех спутников позволило сократить период повторной съемки с 24 суток (у RADARSAT-2) до 4 суток. Характеристики продуктов.
Ранее, владеющая Radarsat’ами компания MDA планировала создание группировки радарных спутников Chorus, состоящей из двух аппаратов С- и Х-диапазона. Конкретные сроки разработки не указывались.
#канада #SAR
Forwarded from TacticMedia (официальный канал)
https://youtu.be/7zAyma-B1EQ
Евгений Бабичев, ветеран космодрома Плесецк, к.и.н., рассказывает о космической фоторазведке США 1950-60-х годов XX века:
- зарождение в США интереса к разведке из космоса, мотивы, факторы и обломки U-2;
- программа WS-117L, эволюция подходов;
- секретность, легендирование и реорганизации;
- о фобиях и буржуинском патриотизме;
- тернистый путь программы Corona к успеху;
- о «ведре», Белке и Стрелке;
- создание NRO – как итог начального этапа развития космической разведки США.
Поддержи наши проекты: http://tacticmedia.ru/donate/
Ранний доступ к нашим новостям и видео: https://sponsr.ru/tacticmedia/
Tacticmedia Вконтакте: https://vk.com/tacticmedia
Телеграмм: https://yangx.top/TacticMedia_Official
Дзен: https://zen.yandex.ru/tacticmedia
Rutube: https://rutube.ru/channel/23606772/
Евгений Бабичев, ветеран космодрома Плесецк, к.и.н., рассказывает о космической фоторазведке США 1950-60-х годов XX века:
- зарождение в США интереса к разведке из космоса, мотивы, факторы и обломки U-2;
- программа WS-117L, эволюция подходов;
- секретность, легендирование и реорганизации;
- о фобиях и буржуинском патриотизме;
- тернистый путь программы Corona к успеху;
- о «ведре», Белке и Стрелке;
- создание NRO – как итог начального этапа развития космической разведки США.
Поддержи наши проекты: http://tacticmedia.ru/donate/
Ранний доступ к нашим новостям и видео: https://sponsr.ru/tacticmedia/
Tacticmedia Вконтакте: https://vk.com/tacticmedia
Телеграмм: https://yangx.top/TacticMedia_Official
Дзен: https://zen.yandex.ru/tacticmedia
Rutube: https://rutube.ru/channel/23606772/
YouTube
Е. Бабичев. Военно-космическая деятельность.Космическая разведка США в период холодной войны. Ч. I
Евгений Бабичев, ветеран космодрома Плесецк, к.и.н., рассказывает о космической фоторазведке США 1950-60-х годов XX века:
- зарождение в США интереса к разведке из космоса, мотивы, факторы и обломки U-2;
- программа WS-117L, эволюция подходов;
- секретность…
- зарождение в США интереса к разведке из космоса, мотивы, факторы и обломки U-2;
- программа WS-117L, эволюция подходов;
- секретность…