-
Notifications
You must be signed in to change notification settings - Fork 0
/
make_data.Rmd
119 lines (96 loc) · 3.07 KB
/
make_data.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
---
title: "Global Human Settlement Layer"
csl: the-american-naturalist.csl
output:
html_document:
theme: cerulean
toc: yes
pdf_document:
toc: yes
<!-- bibliography: references.bib -->
editor_options:
chunk_output_type: console
---
<!--
IMAGES:
Insert them with: ![alt text](image.png)
You can also resize them if needed: convert image.png -resize 50% image.png
If you want to center the image, go through HTML code:
<div style="text-align:center"><img src ="image.png"/></div>
REFERENCES:
For references: Put all the bibTeX references in the file "references.bib"
in the current folder and cite the references as @key or [@key] in the text.
Uncomment the bibliography field in the above header and put a "References"
title wherever you want to display the reference list.
-->
<style type="text/css">
.main-container {
max-width: 1370px;
margin-left: auto;
margin-right: auto;
}
</style>
```{r general options, include = FALSE}
knitr::knit_hooks$set(
margin = function(before, options, envir) {
if (before) par(mgp = c(1.5, .5, 0), bty = "n", plt = c(.105, .97, .13, .97))
else NULL
},
prompt = function(before, options, envir) {
options(prompt = if (options$engine %in% c("sh", "bash")) "$ " else "> ")
})
knitr::opts_chunk$set(margin = TRUE, prompt = TRUE, comment = "", eval = FALSE,
collapse = TRUE, cache = FALSE, autodep = TRUE,
dev.args = list(pointsize = 11), fig.height = 3.5,
fig.width = 4.24725, fig.retina = 2, fig.align = "center")
options(width = 137)
```
```{r}
library(sp)
library(raster)
library(ecomore)
library(magrittr)
```
## Utilitary function
```{r}
make_url <- function(yr) {
root <- paste0("http://cidportal.jrc.ec.europa.eu/ftp/jrc-opendata/GHSL/",
"GHS_BUILT_LDSMT_GLOBE_R2015B/GHS_BUILT_LDS")
globe <- "_GLOBE_R2016A_"
built <- "/V1-0/GHS_BUILT_LDS"
ext <- "_v1_0.zip"
res <- "3857_38"
paste0(root, yr, globe, res, built, yr, globe, res, ext)
}
```
## Loading the polygon of Vientiane
Downloading the polygons of the provinces of Lao PDR from
[GADM](https://gadm.org/index.html):
```{r}
if (!dir.exists("data-raw")) dir.create("data-raw")
file <- "data-raw/gadm36_LAO_1_sp.rds"
if (!file.exists(file))
download.file("https://biogeo.ucdavis.edu/data/gadm3.6/Rsp/gadm36_LAO_1_sp.rds", file)
```
Making the polygon of Vientiane prefecture:
```{r}
vientiane <- "data-raw/gadm36_LAO_1_sp.rds" %>%
readRDS() %>%
subset(NAME_1 == "Vientiane [prefecture]")
```
## Making GHS raster files
The pipeline:
```{r}
if (!dir.exists("data")) dir.create("data")
system.time(for (yr in c(1990, 2000, 2014)) {
file <- paste0("data-raw/y", yr, ".zip")
dir <- paste0("GHS_BUILT_LDS", yr, "_GLOBE_R2016A_3857_38_v1_0")
if (!file.exists(file)) download.file(make_url(yr), file)
unzip(file)
yr %>% paste0(dir, "/GHS_BUILT_LDS", ., "_GLOBE_R2016A_3857_38_v1_0_p2.tif") %>%
raster() %>%
crop_raster(., spTransform(vientiane, crs(.))) %>%
writeRaster(paste0("data/builtup", yr, "res38m3857.tif"), "GTiff", overwrite = TRUE)
unlink(dir, TRUE)
})
```