Common Lisp로 일기예보 스크립트를 만들어 봤습니다~ 기상청 편~
11072 단어 일기 예보기상청common-lisp
어디서 많이 본 제목이죠?
그렇게 생각하는 사람.날카로운 웃음
마침 작년 advent 달력에 @fireflower0씨의 이런 보도가 있었다.
뭐야, 작년이랑 내용이 똑같잖아.이런 생각이 있으신 분들은 잠시만 기다려 주세요.
상술한 보도에 따르면OpenWeatherMap
해외 사이트의 API를 이용하는데 이번 가장 큰 특징은
일본 기상청의 데이터를 활용한 것이다.
세금이 들어가니까 여러분도 잘 활용하세요!
올해 2월에 기상청은 비공식 API를 발표하였다
제이슨 데이터를 활용할 수 있게 됐습니다.
(이하 비공식 API라고 함)
평성 28년 관민 데이터 활용 추진 기본법에서 국가 및 지방 공공단체가 데이터 공개에 주력
나는 이것이 일정한 의무를 부여받고 이 흐름을 받아들였다고 생각한다.
이 비공식 API,python 등 다른 언어에 관해서는 이미 몇 명이 사용하고 있다
common-lisp와 기상청에서 검색한 경우에도
찾지 못했기 때문에 이 보도는 아마도 세계에서 처음일 것이다.
(혹시 아시면 알려주세요.)
만든 물건
앞부분이 길어졌는데 이번에 한 것은 다음과 같다.
이것은 명령줄에 간단한 일기예보를 표시하는 스크립트입니다.
다시 @fireflower0선생님의 사이트를 보면, Joonathan S식 Parse에서
as:alist 옵션을 추가하면 좋겠다는 걸 알았어요.
그걸 모르고 했으니까 자기도 다음 라이브러리를 만들었다(^^;)
(알면 또 다른 방법을 취할 것 같다.)
→나중에 assoc-utils 등의 방법을 시도한 후
순조롭게 진행되지 못하다.기상청의 json 데이터가 좀 특이할 수 있습니다.
meteo에서도 유니오라는 자작 라이브러리를 사용하고 있어요.
grep에서 키워드가 있는 줄만 추출
unio 키워드가 포함된 S 형식을 추출합니다.
또한 추출할 내포된 깊이를 선택할 수도 있습니다.
기상청의 제이슨 데이터가 여기서 발표되는 것은 걱정스럽다
대량의 각종 데이터가 있다.애초에 그것을 대신해서 부문별로 나누기 위해서 어디에 무슨 데이터가 있겠는가
json 데이터의 구조도 조사했습니다.
자기가 보고 싶은 데이터는 며칠 동안 혼자 사는 지역의 일기예보입니다.
그냥 보고 싶어서 원하는 데이터를 골랐는데 결과는 다음과 같은 2가지였다.
날씨 표지
일기예보
그리고 일기도와 위성 영상 데이터가 있었으면 좋겠어요.
그게 조금 미뤄졌어요.- 기능이 추가되었습니다.
따라서 최초의 터미널 명령줄에 명령을 입력하면
나는 신속하게 드러낼 수 있는 물건을 만들고 싶다.
인상으로는 그렇습니다.
$ <command> <area>[enter]
<weather forcast data>
나가다❯ meteo 輪島市
((☔☁ . 雨 時々 くもり 所により 夕方 まで 雷 を伴う) (☁→☼ . くもり 昼過ぎ から 晴れ) (☁ . くもり))
lisp의cons단원인 것 같아!Alist라는 물건이야!정서가 고조되구나!zsh 설정 파일에 깊이 들어갔기 때문에 개인이command에 전화할 필요가 없습니다
자동으로 표시됩니다.조사하러 가는 시간 낭비는 그렇습니다.
좀 아꼈어요.
날씨 표지는 기종을 문자에 의존하기 때문에 잘 드러나지 않는다
이런 경우도 있지만 글씨체가 바뀌면 볼 수 있을 것 같아요.
상술한 데이터의 사이트 측면은 다음과 같다.
날씨 로고도 사이트랑 잘 어울려요!
사이트에 나오는 것처럼 더 자세한 데이터를 원할 때
사용 방법 등의 옵션을 지정할 수 있습니다.원본 S자 데이터를 추가합니다.
상세한 상황은readme에 쓰여 있으니 저쪽을 참조하세요.
운영 환경
필자의 환경은 lubuntu20이다.04
처리 시스템은 SBCL 2.0.1입니다.debian입니다.
roswell script이므로 roswell도 필수입니다.
ros 스크립트도build 가능하지만
왜build에서 생성된 실행 파일이 데이터 구축 시
데이터에 따라 업데이트되지 않았기 때문에ros 스크립트를 열어 주십시오
직접 실행할 링크를 설정하십시오.
그래서 저는 맥이 괜찮을 것 같아요.
윈도우즈라면 WSL2에 좋아하는 linux를 넣어서 사용하십시오.
@t-sin선생님의 건의, 원본 코드 수정, 상술한
나는 문장을 수정했다.감사합니다!
내일 달라진다고 뜨면 웃음 성공.
← 잘 되고 있는지 확인!성공했어![2021-12-05 10:30:14]
왜냐하면 로스웰은build을 할 수 있으니까.
$ ros build meteo.ros
이렇게 실행하면meteo라는 실행 파일을 생성할 수 있습니다.나는 윈도우즈 환경에서도 대략exe 파일을 사용할 수 있을 것이라고 생각한다.
나는 그쪽의 패스를 통해 운행 속도를 높일 수 있다고 생각한다.
참조:
실행 파일 0.21s user 0.04s 시스템 m11% cpu2.141 total
소스 파일 0.84s user 0.12s 시스템 m49% cpu 1.930 total
어?토탈이 왜 커지지?
다만, 체감으로는 파일을 실행하는 것이 더 빠르다.
최후
기상청의 비공식 API URL은 다음과 같습니다.
일기예보(모레까지·주)
https://www.jma.go.jp/bosai/forecast/data/overview_week/(pathCode).json
날씨 개요(모레까지)
https://www.jma.go.jp/bosai/forecast/data/overview_forecast/(pathCode).json
날씨 개요(주)
https://www.jma.go.jp/bosai/forecast/data/overview_week/(pathCode).json
일기도 (인간용)
https://www.jma.go.jp/bosai/weather_map/
일기도 이미지 파일 이름 가져오기:
https://www.jma.go.jp/bosai/weather_map/data/list.json
데이터 JSON 가져오기 URL
https://www.jma.go.jp/bosai/weather_map/data/png/{일기도 이미지 파일 이름}
일기 예보
데이터 JSON 가져오기 URL
https://www.jma.go.jp/bosai/forecast/data/forecast/{영역 코드(offces)}.json
지역 정보에 대한 JSON 데이터
https://www.jma.go.jp/bosai/common/const/area.json
지점별 위치 및 명칭
https://www.jma.go.jp/bosai/amedas/const/amedastable.json
요소 이름
https://www.jma.go.jp/bosai/const/selectorinfos/amedas.json
가상 배우 실황
https://www.jma.go.jp/bosai/jmatile/data/nowc/targetTimes_N1.json
가상 역할 예측
https://www.jma.go.jp/bosai/jmatile/data/nowc/targetTimes_N2.json
나방 이미지 URI 구조
https://www.jma.go.jp/bosai/jmatile/data/nowc/{basetime}/none/{validtime}/surf/hrpns/{z}/{x}/{y}.png
미국 최신 시간
https://www.jma.go.jp/bosai/amedas/data/latest_time.txt
https://www.jma.go.jp/bosai/amedas/data/map/{latest_time}.json
아미다스 지점계
https://www.jma.go.jp/bosai/amedas/data/point/{stnid}/{yyyymmdd}_{h3}.json
아미다스 인용 URL
https://www.jma.go.jp/bosai/map.html#9/35.747/139.922/&elem=temp&contents=amedas&interval=60
또 참고를 했습니다.
@michan06선생님
https://qiita.com/michan06/items/48503631dd30275288f7
@e_toyoda선생님
https://qiita.com/e_toyoda/items/7a293313a725c4d306c0
@izutorishima선생님의 트위터
등 기상청 비공식 API 관련 정보 제공
이 기회를 빌려 모두에게 감사를 드립니다.
qita 첫 투고도 처음advent 달력 투고
전문 엔지니어도 아니고.
부족한 점과 부끄러운 점이 많을 수도 있어요.
용서해 주세요.
농사일을 하기 전에 일기예보를 잘 확인할 수 있는 도구가 있다면
나는 괜찮다고 생각해서 개발했다.기상청 홈페이지 업데이트에 따라
뭔가 새로운 기술이 도입된 것 같아요.
보조 기능에 있어서 동작이 무거워진다는 생각도 든다.
나는 이번 공구가 이 방면의 부족함을 보완할 수 있다고 생각한다.
그리고 common lisp는 현재 아무도 사용하지 않은 오래된 언어입니다.
Lisper 같은 사람은 언어 처리 시스템을 전문적으로 만드는 변태들이다
괄호로 징그러운 인상을 줄 수 있어요.
뭐, 부정하지 않고 웃는다
그러나 낡은 것이든 괄호가 많은 것이든 주변의 문제는 모두 해결할 수 있다
그렇게 실용적인 프로그램을 쓸 수 있는 언어라는 걸 알았으면 좋겠어요.
후기
첫 투고라 힘들게 썼어요
문장을 쓰는 과정에서emacs의 결함이 생겼다
C-w로 문자열 잘라내기
꼬리표가 갑자기 사라지고 순식간에 무슨 일이 일어났는지
이유를 알 수 없게 변하고 사실을 알아차리자 아아아아아!!!및
얼굴이 파래지다.그냥 qita 기능으로.
자동 저장이 효과적이어서 정말 큰 도움이 됐어요(^^;)
역시 큐타!기술적인 정보를 실었기 때문에.
좋은 지지.
emacs 사용자 여러분, 조심하세요.
스케줄러:혼자야?
덤
간단한 동작의 애니메이션을 만들어 봤습니다!
일본 현 정부 소재지의 날씨
왠지 그 패시장에서 시간이 오래 걸려요. 가고시마에 오류가 생겼어요...
나는 잘못된 원인을 찾고 싶다...[2021-12-08] 대응
일본 마을 183 마을의 날씨
이것도 5촌 잘못이야.내가 처리할게.
→[2021-12-08]4 마을 대응
→[12021-12-12] 나머지 한 마을도 대응할 수 있다.동명 지역의 선택을 가능하게 하기 (응급 처리 버전)
대략적으로 만들었지만 정확도는 괜찮다.
[2021-12-07] 다양한 일기도를 다운로드할 수 있는 옵션이 추가되었습니다!
[2021-1230] 다양한 해바라기의 위성 이미지를 다운로드할 수 있는 옵션이 추가되었습니다!
[2021-12-31] 나카스 이미지를 표시할 수 있는 옵션이 추가되었습니다!
[2021-01-05]도 기초 지도의 전환 옵션을 준비했다.
※ Nau cast 이미지와 관련해서는 국토지리원의 지리원 타일 이미지를 사용했습니다.
Reference
이 문제에 관하여(Common Lisp로 일기예보 스크립트를 만들어 봤습니다~ 기상청 편~), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/biofermin2/items/22634286290e779c36d5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)