2022年度長野市ごみ収集日を CSV ファイルにして Google カレンダーで使う

2022年度(令和4年度)長野市のゴミ収集日を Google カレンダーに表示させる為の CSV ファイルを作成してみました。
Google カレンダーに CSV ファイルを読み込ませる方法はこちらを参照ください。

地区別 CSV ファイル

長野市がクリエイティブ・コモンズ・ライセンス表示4.0国際(CC-BY4.0)ライセンスの下に公開しているデータを加工して作成しました。
※ 内容は保証しません。利用は、ご自身の判断でお願い致します。
また、Google カレンダーにインポートする前にファイルの内容を確認し、お好みで修正してください。
例えば、

  • 「プラスチック製容器包装」は長いので全て「プラ」に置換する。
    置換したものにしました。(2022/04/09更新)
    が、ご自身が分かりやすい名称があれば置換する。
  • 「ペットボトル」は破棄する場所があり、カレンダーに含めたくないので行を削除する。

など、自身に合ったものにした方が便利でしょう。

※ 2022/09/02 追記
CSV ファイルを Google ドライブの共有ファイルとして公開しました。
現在、下記のリンクからダウンロードすることができません。
欲しい CSV の下記 No. を元に、Google ドライブにある対象のファイルをご利用ください。

No.地区別 CSV ファイルダウンロード
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鬼無里上里、鬼無里中央1
31鬼無里中央2、鬼無里両京
32大岡甲(川口を除く)、大岡中牧、大岡弘崎、大岡聖ヶ岡
33大岡乙、大岡丙(聖ヶ岡を除く)、大岡川口
34豊野南郷、豊野石、豊野西町、豊野上組、豊野立町、豊野南町、豊野中尾1・2
35豊野横町、豊野伊豆毛、豊野上田中、豊野神代町、豊野本町1・2、豊野中尾1・2(一部)、豊野小瀬1、豊野泉平、豊野上神代、豊野豊陽台、豊野沖1・2、豊野中央組、豊野向原
36豊野本町3・4・5、豊野東町、豊野小瀬2、豊野ゆたかの、豊野豊南町、豊野下田中
37豊野浅野、豊野蟹沢、豊野入、豊野小日向、豊野上堰、豊野鳥居団地、豊野大方、豊野橋場、豊野上原、豊野蟻ケ崎、豊野城山、豊野川谷
38信州新町旭町、信州新町仲町、信州新町上町、信州新町西上町、信州新町常磐町、信州新町鹿島東、信州新町鹿島西、信州新町大原東、信州新町大原西、信州新町下市場、信州新町牧野島(伊切を除く)、信州新町鹿道、信州新町鹿道団地
39信州新町久保、信州新町本町、信州新町境町、信州新町千原田、信州新町平、信州新町和平団地、信州新町藤池団地、信州新町下川西平、信州新町太田笠子(石畑を除く)、信州新町穂刈下、信州新町穂刈中、信州新町穂刈上、信州新町穂刈北、信州新町穂刈団地、信州新町陽のあたる丘、信州新町大門、信州新町LR、信州新町原、信州新町道祖神
40信州新町津和中央、信州新町山秋、信州新町中福、信州新町栃久保、信州新町中尾、信州新町菅沼、信州新町細尾、信州新町津上、信州新町外味藤、信州新町豊和、信州新町津南、信州新町中組、信州新町味藤、信州新町橋場、信州新町安用、信州新町風越、信州新町追沢、信州新町神田、信州新町花倉、信州新町二丁田、信州新町穴平、信州新町寺尾、信州新町矢ノ尻、信州新町峰組、信州新町枌ノ木、信州新町赤柴、信州新町石畑、信州新町尾崎、信州新町上古、信州新町芦沢、信州新町本村、信州新町大河、信州新町西日時
41信州新町塩本、信州新町伊切、信州新町牧田中一、信州新町牧田中二、信州新町中牧一、信州新町中牧二、信州新町南牧住平、信州新町一倉田和、信州新町下中山、信州新町日名、信州新町和田吐唄、信州新町置原、信州新町橋木、信州新町左右、信州新町岩下、信州新町信級中央、信州新町高見、信州新町岩本、信州新町柳高、信州新町川名
42中条

情報元

上記 CSV ファイルの元データや参考にしたソースコードです。

ソースコード

公開データを加工したソースコードは以下の通りです。
実行した環境は R version 4.1.3 です。
「Rへのロード用API」をそのまま使ってみましたが、自分の所ではタイムアウトして駄目でした。
データを提供している LinkData のサイトが重い感じがしますが、作成した下記コードを実行した際はそれほど重いと感じませんでした。謎。

f <- file("http://linkdata.org/api/1/rdf1s9118i/gomi_calendar_chiku_R.txt", open = "r", encoding = "UTF-8")
chiku <- read.delim(f, header = T)
close(f)

area <- Filter(function(col) charmatch("対象地区", col), colnames(chiku))
df_area <- NULL
for (n in 1:nrow(chiku)) {
  url <- sprintf("http://linkdata.org/api/1/rdf1s9118i/gomi_calendar_2022_%02d_R.txt", n)
  # print(url)
  data <- read.delim(f <- file(url, open = "r", encoding = "UTF-8"), header = T)
  close(f)

  areas <- Filter(function(v) v != "", as.character(mapply(function(col) chiku[n, col], area)))
  area_name <- paste0(areas, collapse = "、")
  df_area <- rbind(df_area, data.frame(no = n, area = area_name))

  days <- Filter(function(col) charmatch("X00", col), colnames(data))
  df <- NULL
  for (i in 1:length(data$資源物.ごみ)) {
    target <- switch(
      data$資源物.ごみ[i],
      "可燃ごみ" = "可燃",
      "不燃ごみ" = "不燃",
      "プラスチック製容器包装" = "プラ",
      "缶、スプレー缶、カセットボンベ缶" = "缶",
      "ペットボトル" = "ペット",
      "ビン、乾電池、灰" = "ビン電",
      "剪定枝葉等" = "枝葉",
      data$資源物.ごみ[i]
    )
    marks <- as.character(mapply(function(col) {
      data[[col]][i]
    }, days))
    dates <- as.Date("2022-03-31") + which(marks == "○")
    subjects <- rep(target, length(dates))
    df <- rbind(df, data.frame(Subject = subjects, "Start Date" = dates, check.names = F))
  }
  write.csv(df, file = sprintf("2022nagano_area%02d.csv", n), fileEncoding = "UTF-8", row.names = F)
}
write.csv(df_area, file = "2022nagano_area.csv", fileEncoding = "UTF-8", row.names = F)

コメント

タイトルとURLをコピーしました