Как извлечь данные из файла .tiff в R?

Я совершенно новичок в геопространственном анализе и не знаю, с чего начать. Я хотел бы знать, какое соотношение полов во Вьетнаме было в 2000 году в разбивке по квадратам сетки по https://hub.worldpop.org/geodata/summary?id=11943.

Как загрузить и прочитать эти данные в R, а также извлечь мужское и женское население на квадрат сетки файлов .tiff?

Более того, как я смогу агрегировать данные, чтобы определить соотношение полов в 20-летних владениях по районам?

Большое спасибо.

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
135
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используя terra, загрузите возраст, который хотите сравнить. Это будет медленно, так как сервер будет ограничен. Используя 2000, женщина/мужчина

library(terra)
vnm_f_2k_20 <- rast('~/Downloads/vnm_f_20_2000.tif')
vnm_m_2k_20 <- rast('~/Downloads/vnm_m_20_2000.tif')
# plot(vnm_m_2k_20) you could but not much to look at 
vnm_20_ratio <- vnm_f_2k_20/vnm_m_2k_20 # female/male
writeRaster(vnm_20_ratio, '~/Downloads/vnm_20_2k_fm_ratio.tif')
# source again
vnm_20_ration <- rast('~/Downloads/vnm_20_2k_fm_ratio.tif')
plot(vnm_20_ratio)
# import some (bad) shape files
viet_shp_vect <- vect('~/viet/Boundary.shp')
viet_shp_vect
 class       : SpatVector 
 geometry    : lines 
 dimensions  : 4588, 3  (geometries, attributes)
 extent      : 102.1421, 116.9473, 6.95331, 23.39391  (xmin, xmax, ymin, ymax)
 source      : Boundary.shp
 coord. ref. : lon/lat WGS 84 (EPSG:4326) 
 names       :   gid  Code      Type
 type        : <int> <chr>     <chr>
 values      :     1 BA010 Coastline
                  24 BA010 Coastline
                  52 BA010 Coastline
# we want polygons
viet_shp_vect_poly <- as.polygons(viet_shp_vect)
viet_shp_vect_poly
 class       : SpatVector 
 geometry    : polygons 
 dimensions  : 882, 3  (geometries, attributes)
 extent      : 103.418, 116.9473, 6.95331, 21.51663  (xmin, xmax, ymin, ymax)
 coord. ref. : lon/lat WGS 84 (EPSG:4326) 
 names       :   gid  Code      Type
 type        : <int> <chr>     <chr>
 values      :     1 BA010 Coastline
                  24 BA010 Coastline
                  52 BA010 Coastline
# okay, fewer
# which biggest? to see on vnm_20_ratio
viet_poly_expanse = expanse(viet_terra_poly, unit = 'km') # km^2
viet_terra_poly[which(viet_poly_expanse > 125)]
 class       : SpatVector 
 geometry    : polygons 
 dimensions  : 3, 3  (geometries, attributes)
 extent      : 103.8319, 107.6092, 10.00636, 21.27627  (xmin, xmax, ymin, ymax)
 coord. ref. : lon/lat WGS 84 (EPSG:4326) 
 names       :   gid  Code              Type
 type        : <int> <chr>             <chr>
 values      :   843 BA010         Coastline
                4020  AC02 District boundary
                 287 BA010         Coastline

# get their extent(s)
ext(viet_terra_poly[which(viet_poly_expanse > 125)][1])
SpatExtent : 107.377707546894, 107.609243224099, 21.0418956379434, 21.2762675716601 (xmin, xmax, ymin, ymax)
ext(viet_terra_poly[which(viet_poly_expanse > 125)][2])
SpatExtent : 103.831937267764, 104.079663940524, 10.0063610568506, 10.4522918854626 (xmin, xmax, ymin, ymax)
ext(viet_terra_poly[which(viet_poly_expanse > 125)][3])
SpatExtent : 106.915154049455, 107.108447974102, 20.7130312182932, 20.8800654844975 (xmin, xmax, ymin, ymax)
first_unk_viet_visible = crop(vnm_20_ratio,ext(viet_terra_poly[which(viet_poly_expanse > 125)][1]) 

plot(first_unk_viet_visible)

У вас есть шейп-файлы, у меня — geojson, и нам обоим нужно выяснить, какой уровень детализации, на уровне провинции или района, и все маленькие шпротли, которые это влечет за собой.

Чтобы решить, на каком уровне применять анализ, вам действительно следует обратиться к данным worldpop и к тому, на каком уровне они были собраны. Это концепция «поддержки» в пространственном анализе. Если worldpop провинциальный, следует использовать провинциальный, если районный, то районный. Надеюсь, ваш гадм организован лучше, чем мой, где я искал что-нибудь заметное, называя названия узнаваемых мест. Быстрый тур.

Если вам просто нужны значения по географическому региону

median(extract(vnm_20_ratio, viet_terra_poly[which(viet_poly_expanse > 125)][1])[, 2], na.rm = TRUE)
[1] 0.8670955

Чтобы перенести анализ на уровень округа, который, как я полагаю, уже описан выше, но мы не можем сказать или извлечь какой район, установите gadm, чтобы получить данные национальной административной линии, в данном случае Вьетнама, что, как terra::vect, может быть используется для добычи по району.

Chris 18.04.2024 15:09

Большое спасибо за ваш ответ и помощь. Извините, но я совершенно новичок в этом, и поэтому мне потребуется небольшое пояснение. Как бы я использовал terra::vect для извлечения по районам? Еще раз, спасибо.

anrisakaki96 18.04.2024 15:51

я нахожусь на окнах

anrisakaki96 18.04.2024 16:02

Итак, RTools, двоичные файлы для библиотек [GDAL(gdal.org), PROJ (Proj.org), Geos (geos.org)], [terra, sf, gadm], пакеты для получения геопространственных возможностей на вашем компьютере. У вас есть набор библиотек, которые предоставляют различные вычислительные услуги, но необходимы для пакетов, поэтому они в первую очередь. Фактически GEOS, PROJ, GDAL (я думаю, что это лучший порядок установки). Тогда у вас есть сочетание возможностей растра и полигонов с точками линий, и вы можете извлечь растровые данные в виде полигона. Вы устанавливаете, я пойду некоторое время красить гостиную, а затем попробую расширить приведенный выше рабочий пример после прогулки с собакой.

Chris 18.04.2024 16:17
geodata приводит нас только к очертанию страны, gadm.org стало раздражать, настаивая на установке расширения в браузер, так? Администратор Вьетнама geojson english
Chris 18.04.2024 17:07

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

anrisakaki96 18.04.2024 17:08

Мне удалось скачать его здесь gadm.org/download_country.html Извините, что это заставило вас больше работать!

anrisakaki96 18.04.2024 17:54

Другие вопросы по теме