Skip to content

Commit

Permalink
exercises
Browse files Browse the repository at this point in the history
  • Loading branch information
babayoshihiko committed Jun 11, 2024
1 parent 63109a1 commit 5632742
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 36 deletions.
28 changes: 9 additions & 19 deletions _05-ex-ja.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -59,37 +59,27 @@ nz_centre = st_centroid(st_union(nz))
st_distance(cant_cent, nz_centre) # 234 km
```

E4. Most world maps have a north-up orientation.
A world map with a south-up orientation could be created by a reflection (one of the affine transformations not mentioned in this chapter) of the `world` object's geometry.
Write code to do so.
Hint: you need to use a two-element vector for this transformation.
Bonus: create an upside-down map of your country. ほとんどの世界地図は北を向いている。
E4. ほとんどの世界地図は北を向いている。
オブジェクト `world` のジオメトリの反射 (この章では触れないアフィン変換の 1 つ) によって、南を上にしたワールドマップを作ることができる。
そのコードを書きなさい。
ヒント: この変換には 2 要素のベクトルを使う必要がある
ヒント: この変換には、本章の `rotation()` 関数を使うことができる
ボーナス: あなたの国の逆さ地図を作ってみなさい。

```{r 05-ex-e4}
rotation = function(a){
r = a * pi / 180 #degrees to radians
matrix(c(cos(r), sin(r), -sin(r), cos(r)), nrow = 2, ncol = 2)
}
world_sfc = st_geometry(world)
world_sfc_mirror = world_sfc * c(1, -1)
world_sfc_mirror = world_sfc * rotation(180)
plot(world_sfc)
plot(world_sfc_mirror)
us_states_sfc = st_geometry(us_states)
us_states_sfc_mirror = us_states_sfc * c(1, -1)
us_states_sfc_mirror = us_states_sfc * rotation(180)
plot(us_states_sfc)
plot(us_states_sfc_mirror)
## nicer plot
# library(ggrepel)
# us_states_sfc_mirror_labels = st_centroid(us_states_sfc_mirror) |>
# st_coordinates() |>
# as_data_frame() |>
# mutate(name = us_states$NAME)
# us_states_sfc_mirror_sf = st_set_geometry(us_states, us_states_sfc_mirror)
# ggplot(data = us_states_sfc_mirror_sf) +
# geom_sf(color = "white") +
# geom_text_repel(data = us_states_sfc_mirror_labels, mapping = aes(X, Y, label = name), size = 3, min.segment.length = 0) +
# theme_void()
```

E5. Section [5.2.6](https://r.geocompx.org/geometry-operations.html#subsetting-and-clipping) のコードを実行しなさい。そのセクションで作成したオブジェクトを参照して、`x` **** `y` に含まれる `p` の点の部分集合を作成しなさい。
Expand Down
34 changes: 17 additions & 17 deletions _09-ex-ja.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ nlcd = rast(system.file("raster/nlcd.tif", package = "spDataLarge"))

E1. **graphics** (ヒント: `plot()`) と **tmap** パッケージ (ヒント: `tm_shape(africa) + ...`) を使って、Africa 全土の人間開発指数 (`HDI`) の地理的分布を示す地図を作成しなさい。

- それぞれの長所を経験に基づいて 2 つ挙げなさい。
- 他の地図作成パッケージを 3 つ挙げ、それぞれの利点を挙げなさい。
- ボーナス: これら 3 つの他のパッケージを使って、さらに 3 つのアフリカの地図を作りなさい。
- それぞれの長所を経験に基づいて 2 つ挙げなさい。
- 他の地図作成パッケージを 3 つ挙げ、それぞれの利点を挙げなさい。
- ボーナス: これら 3 つの他のパッケージを使って、さらに 3 つのアフリカの地図を作りなさい。

```{r}
# graphics
Expand All @@ -56,7 +56,7 @@ mf_map(x = africa, var = "HDI", type = "choro")

E2. 前の演習で作成した **tmap** を拡張して、凡例に 3 つのビンを設定しなさい: "High" (0.7 を超える `HDI`)、"Medium" (0.55 と 0.7 の間の `HDI`)、"Low" (0.55 を下回る `HDI`)。

- ボーナス: 例えば、凡例のタイトル、クラスラベル、色パレットを変更することで、マップの美観を改善しなさい。
- ボーナス: 例えば、凡例のタイトル、クラスラベル、色パレットを変更することで、マップの美観を改善しなさい。

```{r}
library(tmap)
Expand Down Expand Up @@ -88,9 +88,9 @@ tmap_arrange(ahdi, asubregions)

E4. Zion 国立公園の土地被覆マップを作成しなさい。

- 土地被覆カテゴリの認識に合わせてデフォルトの色を変更
- 縮尺バーと北矢印を追加し、両方の位置を変更して地図の美観を向上
- ボーナス: ザイオン国立公園のユタ州との位置関係を示す挿入地図を追加 (ヒント: ユタを表すオブジェクトは `us_states` データセットから抽出できる)。
- 土地被覆カテゴリの認識に合わせてデフォルトの色を変更
- 縮尺バーと北矢印を追加し、両方の位置を変更して地図の美観を向上
- ボーナス: ザイオン国立公園のユタ州との位置関係を示す挿入地図を追加 (ヒント: ユタを表すオブジェクトは `us_states` データセットから抽出できる)。

```{r}
tm_shape(nlcd) +
Expand Down Expand Up @@ -152,8 +152,8 @@ print(inset, vp = ins_vp)

E5. Eastern Africa の国々のファセットマップを作成しなさい。

- 1 つのファセットは HDI を表し、もう 1 つのファセットは人口増加を表す (ヒント: それぞれ変数`HDI``pop_growth`を使用)
- 国ごとに「小さな倍数」を設定
- 1 つのファセットは HDI を表し、もう 1 つのファセットは人口増加を表す (ヒント: それぞれ変数`HDI``pop_growth`を使用)
- 国ごとに「小さな倍数」を設定

```{r}
ea = subset(africa, subregion == "Eastern Africa")
Expand All @@ -168,8 +168,8 @@ tm_shape(ea) +

E6. これまでのファセット地図の例に基づいて、East Africa の地図アニメーションを作成しなさい。

- 各国を順番に表示
- HDI を示す凡例とともに各国を順番に表示
- 各国を順番に表示
- HDI を示す凡例とともに各国を順番に表示

```{r, eval=FALSE}
tma1 = tm_shape(ea) +
Expand All @@ -191,10 +191,10 @@ browseURL("tma2.gif")

E7. Africa における HDI のインタラクティブ地図を作成しなさい。

- **tmap**
- **mapview**
- **leaflet**
- ボーナス: 各アプローチについて、凡例 (自動的に提供されない場合) とスケールバーを追加しなさい。
- **tmap**
- **mapview**
- **leaflet**
- ボーナス: 各アプローチについて、凡例 (自動的に提供されない場合) とスケールバーを追加しなさい。

```{r, eval=FALSE}
# tmap
Expand Down Expand Up @@ -231,8 +231,8 @@ E8. 交通政策や土地利用政策をよりエビデンスに基づいたも

E9. `coffeeApp/app.R` のコードを更新し、Brazil を中心に表示するのではなく、ユーザーがどの国を中心に表示するかを選択しなさい。

- `textInput()` を使いなさい
- `selectInput()` を使いなさい
- `textInput()` を使いなさい
- `selectInput()` を使いなさい

```{asis}
The answer can be found in the `shinymod` branch of the geocompr repo: https://github.com/Robinlovelace/geocompr/pull/318/files
Expand Down

0 comments on commit 5632742

Please sign in to comment.