Я совершенно новичок в геопространственном анализе и не знаю, с чего начать. Я хотел бы знать, какое соотношение полов во Вьетнаме было в 2000 году в разбивке по квадратам сетки по https://hub.worldpop.org/geodata/summary?id=11943.
Как загрузить и прочитать эти данные в R, а также извлечь мужское и женское население на квадрат сетки файлов .tiff?
Более того, как я смогу агрегировать данные, чтобы определить соотношение полов в 20-летних владениях по районам?
Большое спасибо.
Используя 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
Большое спасибо за ваш ответ и помощь. Извините, но я совершенно новичок в этом, и поэтому мне потребуется небольшое пояснение. Как бы я использовал terra::vect
для извлечения по районам? Еще раз, спасибо.
я нахожусь на окнах
Итак, RTools, двоичные файлы для библиотек [GDAL(gdal.org), PROJ (Proj.org), Geos (geos.org)], [terra, sf, gadm], пакеты для получения геопространственных возможностей на вашем компьютере. У вас есть набор библиотек, которые предоставляют различные вычислительные услуги, но необходимы для пакетов, поэтому они в первую очередь. Фактически GEOS, PROJ, GDAL (я думаю, что это лучший порядок установки). Тогда у вас есть сочетание возможностей растра и полигонов с точками линий, и вы можете извлечь растровые данные в виде полигона. Вы устанавливаете, я пойду некоторое время красить гостиную, а затем попробую расширить приведенный выше рабочий пример после прогулки с собакой.
geodata
приводит нас только к очертанию страны, gadm.org
стало раздражать, настаивая на установке расширения в браузер, так? Администратор Вьетнама geojson englishах да, у меня уже есть шейп-файлы границ округов Вьетнама. Однако то, как я буду сопоставлять соотношение полов с районом, до сих пор остается загадкой.
Мне удалось скачать его здесь gadm.org/download_country.html Извините, что это заставило вас больше работать!
Чтобы перенести анализ на уровень округа, который, как я полагаю, уже описан выше, но мы не можем сказать или извлечь какой район, установите
gadm
, чтобы получить данные национальной административной линии, в данном случае Вьетнама, что, какterra::vect
, может быть используется для добычи по району.