2024年度(令和6年度)の CSV ファイルはこちらで公開しています。
2022年度(令和4年度)長野市のゴミ収集日を Google カレンダーに表示させる為の CSV ファイルを作成してみました。
Google カレンダーに CSV ファイルを読み込ませる方法はこちらを参照ください。
地区別 CSV ファイル
長野市がクリエイティブ・コモンズ・ライセンス表示4.0国際(CC-BY4.0)ライセンスの下に公開しているデータを加工して作成しました。
※ 内容は保証しません。利用は、ご自身の判断でお願い致します。
また、Google カレンダーにインポートする前にファイルの内容を確認し、お好みで修正してください。
例えば、
「プラスチック製容器包装」は長いので全て「プラ」に置換する。
置換したものにしました。(2022/04/09更新)
が、ご自身が分かりやすい名称があれば置換する。- 「ペットボトル」は破棄する場所があり、カレンダーに含めたくないので行を削除する。
など、自身に合ったものにした方が便利でしょう。
※ 2022/12/22 注記
下記リンクからファイルのダウンロードができない場合、
Google ドライブの共有ファイルからダウンロードをお試しください。
その際は、欲しい CSV の下記 No. を元に対象のファイルをご利用ください。
情報元
上記 CSV ファイルの元データや参考にしたソースコードです。
- 長野市オープンデータサイト 生活環境
- 令和4年度 ごみ収集カレンダー (「最後に更新した日」は「2022年3月22日」でした。)
- Rへのロード用API
ソースコード
公開データを加工したソースコードは以下の通りです。
実行した環境は 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)
コメント