Created
November 1, 2022 06:22
-
-
Save kun432/8438365699b7346238ef1fb9659e4d08 to your computer and use it in GitHub Desktop.
気象庁のJSONから特定地点の風向き・風速を取得するサンプル
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env bash | |
| function usage() { | |
| echo "$0 POINT_NAME" | |
| exit 1 | |
| } | |
| if [ $# != 1 ]; then | |
| usage | |
| fi | |
| WIND_DIRECTION=("静穏" "北北東" "北東" "東北東" "東" "東南東" "南東" "南南東" "南" "南南西" "南西" "西南西" "西" "西北西" "北西" "北北西" "北") | |
| POINT_NAME=$1 | |
| TARGET_DATE=$(date +%Y%m%d%H0000) | |
| POINT_IDS=() | |
| POINT_IDS+=($(curl -s https://www.jma.go.jp/bosai/amedas/const/amedastable.json | jq -r '. | to_entries[] | select(.value.kjName == "'"$POINT_NAME"'") | .key')) | |
| NUM_POINT_IDS=${#POINT_IDS[@]} | |
| if [ $NUM_POINT_IDS -eq 0 -o $NUM_POINT_IDS -gt 1 ]; then | |
| echo "観測所名が存在しないか、同じ名前の観測所が複数存在しています(未対応)" | |
| exit 2 | |
| fi | |
| # 全国系を使ってますが、地点系のほうがベターかなと思います。 | |
| TARGET_DATA=$(curl -s https://www.jma.go.jp/bosai/amedas/data/map/${TARGET_DATE}.json | jq -c '."'"${POINT_IDS[0]}"'"') | |
| if [ -z "${TARGET_DATA}" ]; then | |
| echo "データが見つかりませんでした" | |
| exit 3 | |
| fi | |
| D=$(echo $TARGET_DATA | jq '.windDirection[0]') | |
| S=$(echo $TARGET_DATA | jq '.wind[0]') | |
| echo "${POINT_NAME} の風向きは${WIND_DIRECTION[$D]}、風速 $S メートルです" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment